45 fprintf(
ioQQQ,
" saving line data, then stopping\n" );
50 if( !
dense.lgElmtOn[nelem] )
52 fprintf(
ioQQQ,
" WARNING - I am saving line data but element %s is turned off.\n",
59 fprintf(
ioQQQ,
"Some elements are turned off and save line data requested.\n");
60 fprintf(
ioQQQ,
"Code is now designed to do save line data only with all elements on.\n");
61 fprintf(
ioQQQ,
"Please try again with all elements on.\n");
62 fprintf(
ioQQQ,
"Please try again with all elements on.\n");
69 if(
thermal.lgTemperatureConstant )
81 fprintf( ioPUN,
"\n Recombination lines of C, N, O\n" );
82 fprintf( ioPUN,
"#Ion\tWL(A)\tCoef\tIon\tWL(A)\tCoef\n" );
83 for( i=0; i<471; i+=nskip)
86 limit =
MIN2(471,i+nskip);
87 fprintf( ioPUN,
" " );
88 for( j=i; j < limit; j++ )
90 fprintf( ioPUN,
"%2.2s%2ld\t%6ld\t%8.3f\t",
93 (
long)(
LineSave.RecCoefCNO[2][j]+0.5),
96 fprintf( ioPUN,
" \n" );
98 fprintf( ioPUN,
"\n\n" );
101 dense.EdenHCorr = 1.;
118 for( i=0; i <
nUTA; i++ )
123 for( i=0; i <
LIMELM; i++ )
125 for( j=0; j <
LIMELM+1; j++ )
127 dense.xIonDense[i][j] = 1.;
134 fprintf( ioPUN,
" Level 1 transferred lines\n" );
145 fprintf( ioPUN,
"\n\n\n end level 1, start level 2\n" );
155 fprintf( ioPUN,
"\n\n\n end level 2, start inner shell UTA\n" );
157 for( i=0; i <
nUTA; i++ )
162 fprintf( ioPUN,
"\n\n\n end inner shell, start H-like iso seq\n" );
166 for( nelem=0; nelem <
LIMELM; nelem++ )
169 if( nelem < 2 ||
dense.lgElmtOn[nelem] )
175 for( ipHi=ipLo+1; ipHi <
iso_sp[
ipH_LIKE][nelem].numLevels_max; ipHi++ )
183 fprintf( ioPUN,
"\n\n\n end H-like iso seq, start He-like iso seq\n" );
185 for( nelem=1; nelem <
LIMELM; nelem++ )
187 if( nelem < 2 ||
dense.lgElmtOn[nelem] )
192 for( ipHi=ipLo+1; ipHi <
iso_sp[
ipHE_LIKE][nelem].numLevels_max; ipHi++ )
200 fprintf( ioPUN,
"\n\n\n end he-like iso seq, start hyperfine structure lines\n" );
208 fprintf( ioPUN,
"\n\n\n end hyperfine, start database lines\n" );
211 for (
int ipSpecies=0; ipSpecies <
nSpecies; ++ipSpecies)
214 em !=
dBaseTrans[ipSpecies].Emis().end(); ++em)
220 fprintf( ioPUN,
"\n\n\n end database, start satellite lines\n" );
224 for(
long nelem = ipISO; nelem <
LIMELM; nelem++ )
228 for( i=0; i<
iso_sp[ipISO][nelem].numLevels_max; i++ )
231 ioPUN ,
true , lgPrint );
239 dense.EdenHCorr = 1e-6f;
246 fprintf( ioPUN,
"\n\n\n" );
247 fprintf( ioPUN,
" end satellite, start H2 lines\n" );
253 bool lgPopsConverged;
254 double old_val, new_val;
255 (*diatom)->H2_LevelPops( lgPopsConverged, old_val, new_val );
256 (*diatom)->H2_Punch_line_data( ioPUN,
false );
260 fprintf( ioPUN,
"\n\n\n" );
261 fprintf( ioPUN,
" end H2, start FeII lines\n" );
269 fprintf(
ioQQQ ,
"\n The code is left in a disturbed state after creating the SAVE LINE DATA file.\n"
270 " No calculation is actually performed, only the SAVE LINE DATA file is produced.\n"
271 " Remove the SAVE LINE DATA command to do the calculation.\n\n ChkMonitorend is ok.\n" );
293 fprintf( ioPUN,
"#Ion\tWL\tgl\tgu\tgf\tA\tCS\tn(crt)\tdamp\n" );
310 fprintf(ioPUN,
"%s\t", chLbl );
315 if( strcmp(
save.chConPunEnr[
save.ipConPun],
"labl" )== 0 )
325 fprintf( ioPUN,
"\t%3ld\t%3ld",
327 (
long)((*t.
Lo()).g()),
328 (
long)((*t.
Hi()).g()) );
360 fprintf( ioPUN,
"\t%7.4f", 0. );
374 fprintf( ioPUN,
"\t%.3e",CritDen );
379 fprintf( ioPUN,
"\n" );
void FeIIPunData(FILE *ioPUN, bool lgDoAll)
double AnuUnit(realnum energy)
sys_float SDIV(sys_float x)
#define DEBUG_ENTRY(funcname)
realnum & col_str() const
EmissionProxy::iterator iterator
CollisionProxy Coll() const
qList::iterator Lo() const
qList::iterator Hi() const
EmissionList::reference Emis() const
void rec_lines(double t, realnum r[][471])
void EdenChange(double EdenNew)
void CoolEvaluate(double *tot)
t_elementnames elementnames
vector< diatomics * > diatoms
vector< diatomics * >::iterator diatom_iter
t_iso_sp iso_sp[NISO][LIMELM]
void iso_collide(long ipISO, long nelem)
molezone * findspecieslocal(const char buf[])
UNUSED const double COLL_CONST
void prt_wl(FILE *ioOUT, realnum wl)
NORETURN void SaveLineData(FILE *ioPUN)
void Save1LineData(const TransitionProxy &t, FILE *ioPUN, bool lgCS_2, bool &lgPrintHead)
vector< vector< TransitionList > > SatelliteLines
TransitionList UTALines("UTALines", &AnonStates)
TransitionList TauLine2("TauLine2", &AnonStates)
vector< TransitionList > dBaseTrans
TransitionList HFLines("HFLines", &AnonStates)
multi_arr< int, 3 > ipSatelliteLines
TransitionList TauLines("TauLines", &AnonStates)
void TempChange(double TempNew, bool lgForceUpdate)
void chIonLbl(char *chIonLbl_v, const TransitionProxy &t)