00001
00002
00003
00004 #include "cddefines.h"
00005 #include "radius.h"
00006 #include "dense.h"
00007 #include "optimize.h"
00008 #include "input.h"
00009 #include "parse.h"
00010
00011 void ParseGlobule(char *chCard)
00012 {
00013 bool lgEOL;
00014 long int i;
00015
00016 DEBUG_ENTRY( "ParseGlobule()" );
00017
00018
00019
00020 i = 5;
00021 radius.glbden = (float)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00022 if( lgEOL )
00023 {
00024 radius.glbden = 1.;
00025 dense.gas_phase[ipHYDROGEN] = 0.;
00026 }
00027
00028 else
00029 {
00030 dense.gas_phase[ipHYDROGEN] = radius.glbden;
00031 radius.glbden = (float)pow(10.f,radius.glbden);
00032 }
00033
00034 radius.glbrad = (float)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00035 if( lgEOL )
00036 {
00037 radius.glbrad = 3.086e18f;
00038 }
00039 else
00040 {
00041 radius.glbrad = (float)pow(10.f,radius.glbrad);
00042 }
00043
00044
00045 radius.sdrmax = radius.glbrad/25.;
00046
00047
00048 radius.lgDrMnOn = false;
00049 radius.glbpow = (float)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00050 if( lgEOL )
00051 radius.glbpow = 1.;
00052 strcpy( dense.chDenseLaw, "GLOB" );
00053
00054
00055 radius.glbdst = radius.glbrad;
00056
00057
00058 if( optimize.lgVarOn )
00059 {
00060
00061 optimize.nvfpnt[optimize.nparm] = input.nRead;
00062
00063
00064 optimize.nvarxt[optimize.nparm] = 3;
00065 strcpy( optimize.chVarFmt[optimize.nparm], "GLOBULE %f %f %f" );
00066
00067
00068 optimize.vparm[0][optimize.nparm] = (float)log10(radius.glbden);
00069 optimize.vparm[1][optimize.nparm] = (float)log10(radius.glbrad);
00070 optimize.vparm[2][optimize.nparm] = radius.glbpow;
00071 optimize.vincr[optimize.nparm] = 0.2f;
00072 ++optimize.nparm;
00073 }
00074
00075 DEBUG_EXIT( "ParseGlobule()" );
00076 return;
00077 }
00078