00001
00002
00003
00004 #include "cddefines.h"
00005 #include "taulines.h"
00006 #include "opacity.h"
00007 #include "phycon.h"
00008 #include "secondaries.h"
00009 #include "pressure.h"
00010 #include "prt.h"
00011 #include "coolheavy.h"
00012 #include "thermal.h"
00013 #include "rfield.h"
00014 #include "dynamics.h"
00015 #include "mole.h"
00016 #include "rt.h"
00017 #include "hmi.h"
00018 #include "atomfeii.h"
00019 #include "yield.h"
00020 #include "ionbal.h"
00021 #include "atmdat.h"
00022 #include "grainvar.h"
00023 #include "hyperfine.h"
00024 #include "parse.h"
00025
00026 void ParseDont(char *chCard )
00027 {
00028 DEBUG_ENTRY( "ParseDont()" );
00029
00030 if( (nMatch( "21CM" , chCard ) || nMatch( "21 CM" , chCard )) &&
00031 nMatch( " LYA" , chCard ) && nMatch( "PUMP" , chCard ) )
00032 {
00033
00034 hyperfine.lgLya_pump_21cm = false;
00035 }
00036 else if( nMatch("ADVE",chCard) )
00037 {
00038
00039 if( nMatch("H-LI",chCard) )
00040 {
00041
00042 dynamics.lgISO[ipH_LIKE] = 0;
00043 }
00044 else if( nMatch("HE-L",chCard) )
00045 {
00046
00047 dynamics.lgISO[ipHE_LIKE] = 0;
00048 }
00049 else if( nMatch("META",chCard) )
00050 {
00051
00052 dynamics.lgMETALS = 0;
00053 }
00054 else if( nMatch("COOL",chCard) )
00055 {
00056
00057 dynamics.lgCoolHeat = 0;
00058 }
00059 else
00060 {
00061
00062 dynamics.lgISO[ipH_LIKE] = 0;
00063 dynamics.lgISO[ipHE_LIKE] = 0;
00064 dynamics.lgMETALS = 0;
00065 }
00066
00067 }
00068
00069 else if( nMatch("AUGE",chCard) )
00070 {
00071
00072 t_yield::Inst().kill_yield();
00073 phycon.lgPhysOK = false;
00074 }
00075
00076 else if( nMatch("BUFF",chCard) )
00077 {
00078
00079
00080
00081
00082
00083
00084 FILE *test = stderr;
00085 if( ioQQQ != test )
00086 {
00087
00088 fprintf( ioQQQ, " ioQQQ did not point to stdout, ignored NO BUFFERING command.\n" );
00089 }
00090
00091 }
00092
00093 else if( nMatch("CHAR",chCard) )
00094 {
00095
00096 atmdat.lgCTOn = false;
00097 phycon.lgPhysOK = false;
00098 }
00099
00100 else if( nMatch("CTHE",chCard) )
00101 {
00102
00103 atmdat.HCharHeatOn = 0.;
00104 phycon.lgPhysOK = false;
00105 }
00106
00107 else if( nMatch("COMP",chCard) )
00108 {
00109
00110 rfield.comoff = 0.;
00111 phycon.lgPhysOK = false;
00112 }
00113
00114 else if( nMatch("FEII",chCard) )
00115 {
00116
00117 FeII.lgLyaPumpOn = false;
00118 phycon.lgPhysOK = false;
00119 }
00120
00121 else if( nMatch("FILE",chCard) && nMatch("OPAC",chCard) )
00122 {
00123
00124 opac.lgUseFileOpac = false;
00125 }
00126
00127 else if( nMatch("FINE",chCard) && nMatch("OPAC",chCard) )
00128 {
00129
00130 rfield.lgOpacityFine = false;
00131 }
00132
00133 else if( nMatch("FINE",chCard) )
00134 {
00135
00136 rt.lgFstOn = false;
00137 phycon.lgPhysOK = false;
00138 }
00139
00140 else if( nMatch("FREE",chCard) )
00141 {
00142
00143 CoolHeavy.lgFreeOn = false;
00144 phycon.lgPhysOK = false;
00145 }
00146
00147 else if( nMatch("GRAI",chCard) )
00148 {
00149 if( nMatch("NEUT",chCard) )
00150 {
00151
00152 ionbal.lgGrainIonRecom = false;
00153 phycon.lgPhysOK = false;
00154 }
00155 else if( nMatch("GAS ",chCard) && nMatch("COLL",chCard) && nMatch("ENER",chCard) )
00156 {
00157
00158
00159 gv.lgDColOn = false;
00160 phycon.lgPhysOK = false;
00161 }
00162 else if( nMatch("ELEC",chCard) )
00163 {
00164
00165 gv.lgGrainElectrons = false;
00166 phycon.lgPhysOK = false;
00167 }
00168 else if( nMatch("MOLE",chCard) )
00169 {
00170
00171 mole.lgGrain_mole_deplete = false;
00172 phycon.lgPhysOK = false;
00173 }
00174 else if( nMatch("QHEA",chCard) )
00175 {
00176
00177 gv.lgQHeatOn = false;
00178 phycon.lgPhysOK = false;
00179 }
00180 else if( nMatch("X-RA",chCard) )
00181 {
00182
00183 gv.lgWD01 = true;
00184 }
00185 else if( nMatch("PHYSICS",chCard) )
00186 {
00187
00188 gv.lgGrainPhysicsOn = false;
00189 phycon.lgPhysOK = false;
00190 }
00191 else
00192 {
00193 fprintf( ioQQQ, " No key recognized on this line.\n" );
00194 cdEXIT(EXIT_FAILURE);
00195 }
00196 }
00197
00198
00199 else if( nMatch("INDU",chCard) )
00200 {
00201
00202
00203
00204 rfield.lgInducProcess = false;
00205 }
00206
00207
00208 else if( nMatch("COLL",chCard) && nMatch("IONI",chCard) )
00209 {
00210
00211 atmdat.lgCollIonOn = false;
00212 }
00213
00214 else if( nMatch("LEVE",chCard) )
00215 {
00216
00217
00218
00219
00220
00221 nWindLine = 0;
00222 }
00223
00224
00225 else if( nMatch("LINE",chCard) && !nMatch(" OTS",chCard) )
00226 {
00227 if( nMatch("DIFF",chCard) && nMatch("PUMP",chCard) )
00228 {
00229
00230
00231 rfield.DiffPumpOn = 0.;
00232 }
00233 else if( nMatch("TRAN",chCard) )
00234 {
00235
00236 rfield.lgDoLineTrans = false;
00237 }
00238 else
00239 {
00240
00241 fprintf( ioQQQ, " There has to be an option on the NO LINE command.\n" );
00242 fprintf( ioQQQ, " The optinoas are DIFFUSE PUMP and TRANSFER.\n Sorry.\n" );
00243 cdEXIT(EXIT_FAILURE);
00244 }
00245 }
00246
00247
00248 else if( nMatch("OPAC",chCard) && nMatch("REEVAL",chCard) )
00249 {
00250
00251 rfield.lgOpacityReevaluate = false;
00252 }
00253
00254 else if( nMatch("IONI",chCard) && nMatch("REEVAL",chCard) )
00255 {
00256
00257 rfield.lgIonizReevaluate = false;
00258 }
00259
00260
00261 else if( nMatch(" OTS",chCard) )
00262 {
00263 if( nMatch(" LYA",chCard) )
00264 {
00265
00266 rfield.lgLyaOTS = false;
00267 }
00268
00269 else if( nMatch("HEII",chCard) )
00270 {
00271
00272 rfield.lgHeIIOTS = false;
00273 }
00274
00275 else if( nMatch("LINE",chCard) )
00276 {
00277
00278 rfield.lgKillOTSLine = true;
00279 }
00280 }
00281
00282
00283 else if( nMatch("OUTW",chCard) )
00284 {
00285 if( nMatch("LINE",chCard) )
00286 {
00287
00288 rfield.lgKillOutLine = true;
00289 }
00290 else if( nMatch("CONT",chCard) )
00291 {
00292
00293 rfield.lgKillOutCont = true;
00294 }
00295 }
00296 else if( nMatch("MOLE",chCard) )
00297 {
00298
00299 if( nMatch(" H2 ",chCard) )
00300 {
00301
00302 hmi.lgNoH2Mole = true;
00303 }
00304 else if( nMatch(" CO ",chCard) )
00305 {
00306
00307 co.lgNoCOMole = true;
00308 }
00309 else
00310 {
00311
00312 hmi.lgNoH2Mole = true;
00313 co.lgNoCOMole = true;
00314 }
00315 phycon.lgPhysOK = false;
00316 }
00317
00318 else if( nMatch("PHOT",chCard) )
00319 {
00320
00321 ionbal.lgPhotoIoniz_On = false;
00322 phycon.lgPhysOK = false;
00323 }
00324
00325 else if( nMatch("RADI",chCard) )
00326 {
00327
00328 pressure.lgLineRadPresOn = false;
00329 }
00330
00331 else if( nMatch("RECO",chCard) )
00332 {
00333
00334 ionbal.lgCompRecoil = false;
00335 phycon.lgPhysOK = false;
00336 }
00337
00338 else if( nMatch("SCAT",chCard) && nMatch("OPAC",chCard))
00339 {
00340
00341 opac.lgScatON = false;
00342 }
00343
00344 else if( nMatch("SCAT",chCard) && nMatch("ESCA",chCard))
00345 {
00346
00347 rt.lgElecScatEscape = false;
00348 }
00349
00350 else if( nMatch("SECO",chCard) )
00351 {
00352
00353 secondaries.lgSecOFF = true;
00354 phycon.lgPhysOK = false;
00355 }
00356
00357 else if( nMatch("SPOT",chCard) )
00358 {
00359
00360 opac.otsmin = 1.;
00361 }
00362
00363 else if( nMatch("STAR",chCard) )
00364 {
00365
00366 rt.lgStarkON = false;
00367 phycon.lgPhysOK = false;
00368 }
00369
00370 else if( nMatch("STAT",chCard) )
00371 {
00372
00373 opac.lgOpacStatic = false;
00374 }
00375
00376 else if( nMatch("TEPR",chCard) )
00377 {
00378
00379
00380 thermal.lgPredNextTe = false;
00381 }
00382
00383 else if( nMatch("THRE",chCard) )
00384 {
00385
00386 ionbal.lgNoCota = true;
00387 phycon.lgPhysOK = false;
00388 }
00389
00390 else if( nMatch("TIME",chCard) )
00391 {
00392
00393
00394 prt.lgPrintTime = false;
00395 }
00396
00397 else if( nMatch(" UTA",chCard) )
00398 {
00399
00400 ionbal.lgInnerShellLine_on = false;
00401 phycon.lgPhysOK = false;
00402 }
00403
00404
00405
00406
00407 else if( strncmp(chCard , "NO VARY" , 7 ) == 0 )
00408 {
00409
00410 ((void)0);
00411 }
00412
00413 else
00414 {
00415
00416 fprintf( ioQQQ,
00417 " I do not recognize a keyword on this NO ... command.\n %s\n Sorry.\n" ,
00418 chCard);
00419 cdEXIT(EXIT_FAILURE);
00420 }
00421
00422
00423 if( nMatch("(OK)",chCard) )
00424 {
00425
00426 phycon.lgPhysOK = true;
00427 }
00428 return;
00429 }