55 else if( p.
nMatch(
"IONI") )
66 fprintf(
ioQQQ,
"This command changed to SPECIES H-LIKE COLLISIONS L-MIXING\n");
67 fprintf(
ioQQQ,
"I will parse it for now, but may not in the future.\n");
73 else if( p.
nMatch(
"L-MI") )
138 else if ( p.
nMatch(
"VOS12") )
157 else if( p.
nMatch(
"PENG") )
169 else if( p.
nMatch(
" OFF" ) )
181 fprintf(
ioQQQ,
"The database H-like l-mixing command needs a keyword\n"
182 " Options are OFF, PENGelly, VRINCeanu, VOS12 (SEMIClassical or Quantal).\n");
186 else if( p.
nMatch(
" OFF" ) )
197 " Options are OFF, THERmal, EXCItation off, IONIzation off,2s2p off, l-mixing [options].\n");
211 else if( p.
nMatch(
"DAMP") )
215 fprintf(
ioQQQ,
" Sorry, the DAMPING option is not implemented for the he-like sequence.\n");
223 else if( p.
nMatch(
"DIEL") )
227 fprintf(
ioQQQ,
" Sorry, but dielectronic recombination onto the h-like sequence is not possible.\n");
240 else if( p.
nMatch(
"LEVE") )
259 else if( p.
nMatch(
"PRIN") )
272 fprintf(
ioQQQ,
" Not possible to set nhlvl to >NHYDRO_MAX_LEVEL-2= %i\n",
282 fprintf(
ioQQQ,
" Not possible to set iso_sp[ipH_LIKE][ipHYDROGEN].numLevels_max to such a high value, since "
283 "alpha transition not within energy bounds of code\n");
285 fprintf(
ioQQQ,
" lowest energy is %e and corresponding highest level is %li\n" ,
293 int LevelsResolved=-1 , LevelsCollapsed=10;
318 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
321 MIN2(
iso_sp[ipISO][nelem].nCollapsed_max , LevelsCollapsed );
323 MIN2(
iso_sp[ipISO][nelem].n_HighestResolved_max , LevelsResolved );
335 else if( p.
nMatch(
"COLLAP") )
340 fprintf(
ioQQQ,
"There must be at least one collapsed level.\n");
347 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
359 else if( p.
nMatch(
"RESOLV") )
362 if( ( numLevels < 3 ) && !p.
nMatch(
"COLL") )
364 fprintf(
ioQQQ,
" cannot have fewer than 3 resolved levels, the requested number was %li\n" ,
373 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
387 fprintf(
ioQQQ,
"I did not recognize a keyword on this atom xx-like levels command."
388 " Should be COLLAPSED or RESOLVED.\n Sorry.\n\n");
418 else if( p.
nMatch(
" FSM") )
422 fprintf(
ioQQQ,
" Sorry, but fine-structure mixing can only be implemented for the He-like sequence.\n");
434 else if( p.
nMatch(
"GBAR") )
438 fprintf(
ioQQQ,
" Sorry, the GBAR option is only implemented for the He-like sequence.\n");
454 else if( p.
nMatch(
" NEW") )
466 else if( p.
nMatch(
" OFF") )
479 else if( p.
nMatch(
"LYMA") )
489 else if( p.
nMatch(
"SCALE") )
523 fprintf(
ioQQQ,
" Sorry, I didn\'t recognize an option on this SPECIES H-LIKE LYMAN PUMP command.\n");
524 fprintf(
ioQQQ,
" The options are \" OFF\", and \"SCALE\".\n");
528 else if( p.
nMatch(
"EXTRA") )
535 p.
NoNumb(
"'extra' Lyman lines");
539 fprintf(
ioQQQ,
" Sorry, the value on this SPECIES xx-LIKE LYMAN command must be at least 2.\n");
545 fprintf(
ioQQQ,
" Sorry, I didn\'t recognize an option on this SPECIES xx-LIKE LYMAN command.\n");
546 fprintf(
ioQQQ,
" The options are \"PUMP\", and \"EXTRA\".\n");
552 else if( p.
nMatch(
"RECO") &&
561 else if( p.
nMatch(
"REDI") )
574 else if( p.
nMatch(
" CRD") )
579 else if( p.
nMatch(
"CRDW") )
585 else if( !p.
nMatch(
"SHOW") )
587 fprintf(
ioQQQ,
" There should have been a second keyword on this command.\n");
588 fprintf(
ioQQQ,
" Options are _PRD, _CRD, CRDW (_ is space). Sorry.\n");
598 else if( p.
nMatch(
"RESO") )
603 else if( p.
nMatch(
"SUBO") )
608 else if( p.
nMatch(
"SHOW") )
617 fprintf(
ioQQQ,
"complete redistribution with core only.\n");
629 fprintf(
ioQQQ,
" PROBLEM Impossible value for iso_ctrl.ipLyaRedist.\n");
642 fprintf(
ioQQQ,
"complete redistribution with core only.\n");
650 fprintf(
ioQQQ,
" PROBLEM Impossible value for iso_ctrl.ipResoRedist.\n");
663 fprintf(
ioQQQ,
"complete redistribution with core only.\n");
671 fprintf(
ioQQQ,
" PROBLEM Impossible value for iso_ctrl.ipSubRedist.\n");
677 fprintf(
ioQQQ,
" here should have been another keyword on this command.\n");
678 fprintf(
ioQQQ,
" Options are ALPHA, RESONANCE, SUBORDINATE. Sorry.\n");
683 else if( p.
nMatch(
"TOPO") )
697 fprintf(
ioQQQ,
" There should have been a keyword on this SPECIES H-LIKE or HE-LIKE command.\n Sorry.\n" );
realnum xLymanPumpingScaleFactor
bool nMatch(const char *chKey) const
bool lgContinuumLoweringEnabled[NISO]
bool lgCS_PSClassic[NISO]
NORETURN void TotalInsanity(void)
void ParseDatabaseISO(long ipISO, Parser &p)
bool lgCS_therm_ave[NISO]
char chVarFmt[LIMPAR][FILENAME_PATH_LENGTH_2]
bool lgColl_l_mixing[NISO]
realnum vparm[LIMEXT][LIMPAR]
bool lgCS_Vrinceanu[NISO]
t_elementnames elementnames
t_iso_sp iso_sp[NISO][LIMELM]
void iso_update_num_levels(long ipISO, long nelem)
long int n_HighestResolved_max
long int nLyman_max[NISO]
bool lgPrintNumberOfLevels
NORETURN void NoNumb(const char *chDesc) const
long int GetElem(void) const
char chElementSym[LIMELM][CHARS_ELEMENT_SYM]
#define DEBUG_ENTRY(funcname)
int fprintf(const Output &stream, const char *format,...)
void init_genrand(unsigned long s)
const int NHYDRO_MAX_LEVEL
bool lgNoRecombInterp[NISO]