/*ParseIonPar parse the ionization parameter command */ #include #include "cddefines.h" #include "incidspec.h" #include "varypar.h" #include "radius.h" #include "input.h" #include "ffmtread.h" #include "nonumb.h" #include "toomancon.h" #include "parse.h" void ParseIonPar(long int *nqh, char *chCard, float *ar1) { int lgEOL; long int i; # ifdef DEBUG_FUN fputs( "<+>ParseIonPar()\n", debug_fp ); # endif i = 5; /* increment nmber of specifications of continuum intensities, * then check not too many */ *nqh += 1; if( *nqh > LIMSPC ) TooManCon(); /* say that continuum is per unit area, ionization parameter*/ strcpy( spnorm.chRSpec[*nqh-1], "SQCM" ); strcpy( spnorm.chSpNorm[*nqh-1], "IONI" ); /* get the ionization parameter*/ IncidSpec.totpow[*nqh-1] = (float)FFmtRead(chCard,&i,76,&lgEOL); if( lgEOL ) NoNumb(chCard); /* vary option */ if( VaryPar.lgVarOn ) { strcpy( chVaryPar.chVarFmt[VaryPar.nparm], "IONIZATION PARAMETER=%f" ); /* pointer to where to write */ VaryPar.nvfpnt[VaryPar.nparm] = input.nRead; VaryPar.vparm[0][VaryPar.nparm] = IncidSpec.totpow[*nqh-1]; VaryPar.vincr[VaryPar.nparm] = 0.5; VaryPar.nvarxt[VaryPar.nparm] = 1; ++VaryPar.nparm; } /* set R to large value if U specified. */ if( radius.Radius == 0. ) { *ar1 = (float)radius.rdfalt; radius.Radius = pow(10.,*ar1); } # ifdef DEBUG_FUN fputs( " <->ParseIonPar()\n", debug_fp ); # endif return; }