30 size_t sizeof_sanity =
sizeof( sanity );
41 if( (n=fread( pnt , 1 , sizeof_pnt ,
ioSTATE )) - sizeof_pnt )
43 fprintf(
ioQQQ,
" state_do failed reading state file, wanted %lu got %lu\n",
44 (
unsigned long)sizeof_pnt ,
49 if( (n=fread( &chk_sanity , 1 , sizeof_sanity ,
ioSTATE )) - sizeof_sanity )
51 fprintf(
ioQQQ,
" state_do failed reading sanity par of state file, wanted %lu got %lu\n",
52 (
unsigned long)sizeof_sanity ,
56 if( !
fp_equal( sanity, chk_sanity ) )
58 fprintf(
ioQQQ,
" state_do sanity fails in state file, wanted %g got %g\n",
67 fwrite( pnt , 1 , sizeof_pnt ,
ioSTATE );
69 fwrite( &sanity , 1 , sizeof_sanity ,
ioSTATE );
78 long int ipISO , nelem , ipHi, i ,
83 if( (strcmp( chJob ,
"get" ) == 0) )
88 else if( (strcmp( chJob ,
"put" ) == 0) )
99 strcpy( chFilename ,
state.chPutFilename );
104 sprintf( chIteration ,
"_%li",
iteration );
105 strcat( chFilename , chIteration );
112 if(
state.lgState_print )
113 fprintf(
ioQQQ,
" Print state quantities, start iso seq \n");
125 for( nelem=ipISO; nelem<
LIMELM; ++nelem )
127 if( nelem < 2 ||
dense.lgElmtOn[nelem] )
130 for( ipHi=1; ipHi <
iso_sp[ipISO][nelem].numLevels_max; ++ipHi )
132 if(
state.lgState_print )
134 fprintf(
ioQQQ,
" start ISO ipISO= %li, nelem= %li, ipHi %li \n",
138 for( n=0; n< ipHi; ++n )
140 fprintf(
ioQQQ,
" ISO %li %li %li %li %.4e %.4e \n",
141 ipISO , nelem , ipHi , n ,
142 iso_sp[ipISO][nelem].trans(ipHi,n).Emis().TauIn() ,
143 iso_sp[ipISO][nelem].trans(ipHi,n).Emis().TauTot() );
145 fprintf(
ioQQQ,
" end ISO ipISO\n");
149 if(
state.lgState_print )
151 fprintf(
ioQQQ,
" start Ext ipISO= %li, nelem= %li, got %li \n",
156 if(
state.lgState_print )
158 for( n=2; n<
iso_ctrl.nLyman_malloc[ipISO]; ++n )
161 fprintf(
ioQQQ,
" Ext %li %li %li %.4e %.4e \n",
163 (*tr).Emis().TauIn() ,
164 (*tr).Emis().TauTot() );
166 fprintf(
ioQQQ,
" end Ext ipISO\n");
174 if(
state.lgState_print )
176 for( n=0; n< (
nLevel1+1); ++n )
178 fprintf(
ioQQQ,
" Taulines %li %.4e %.4e \n",
186 if(
state.lgState_print )
190 fprintf(
ioQQQ,
" TauLine2 %li %.4e %.4e \n",
199 if(
state.lgState_print )
201 for( n=0; n<
nUTA; ++n )
203 fprintf(
ioQQQ,
" UTALines %li %.4e %.4e \n",
211 if(
state.lgState_print )
215 fprintf(
ioQQQ,
" HFLines %li %.4e %.4e \n",
226 if(
state.lgState_print )
228 for( ipHi=1; ipHi <
FeII.nFeIILevel_malloc; ++ipHi )
230 for( n=0; n< ipHi; ++n )
234 fprintf(
ioQQQ,
" Fe2LevN %li %li %.4e %.4e \n",
236 (*tr).Emis().TauIn() ,
237 (*tr).Emis().TauTot() );
244 if(
state.lgState_print )
246 for( n=0; n<
rfield.nupper; ++n )
248 fprintf(
ioQQQ,
" TauAbsGeo %li %li %.4e \n",
250 opac.TauAbsGeo[i][n] );
255 if(
state.lgState_print )
257 for( n=0; n<
rfield.nupper; ++n )
259 fprintf(
ioQQQ,
" TauScatGeo %li %li %.4e \n",
261 opac.TauAbsGeo[i][n] );
266 if(
state.lgState_print )
268 for( n=0; n<
rfield.nupper; ++n )
270 fprintf(
ioQQQ,
" TauTotalGeo %li %li %.4e \n",
272 opac.TauAbsGeo[i][n] );
313 for( ion=0; ion<(
LIMELM+1); ++ion )
320 for( nelem=ipISO; nelem<
LIMELM; ++nelem)
322 if(
dense.lgElmtOn[nelem] )
324 for(
long level=0; level <
iso_sp[ipISO][nelem].numLevels_local; ++level )
const int INPUT_LINE_LENGTH
bool fp_equal(sys_float x, sys_float y, int n=3)
NORETURN void TotalInsanity(void)
#define DEBUG_ENTRY(funcname)
TransitionProxy::iterator iterator
FILE * open_data(const char *fname, const char *mode, access_scheme scheme)
diatomics h2("h2", 4100., &hmi.H2_total, Yan_H2_CS)
t_iso_sp iso_sp[NISO][LIMELM]
t_mole_global mole_global
void state_get_put(const char chJob[])
STATIC void state_do(void *pnt, size_t sizeof_pnt)
TransitionList Fe2LevN("Fe2LevN", &Fe2LevNStates)
vector< vector< TransitionList > > ExtraLymanLines
multi_arr< int, 2 > ipFe2LevN
TransitionList UTALines("UTALines", &AnonStates)
TransitionList TauLine2("TauLine2", &AnonStates)
TransitionList HFLines("HFLines", &AnonStates)
multi_arr< int, 3 > ipExtraLymanLines
TransitionList TauLines("TauLines", &AnonStates)