00001
00002
00003
00004
00005 #include "cddefines.h"
00006 #include "phycon.h"
00007 #include "thermal.h"
00008 #include "parse.h"
00009
00010 void ParseTLaw(char *chCard )
00011 {
00012
00013 DEBUG_ENTRY( "ParseTLaw()" );
00014
00015
00016 thermal.lgTLaw = true;
00017 thermal.lgTSetOn = true;
00018
00019 if( nMatch("DB96",chCard) )
00020 {
00021
00022
00023 thermal.lgTeBD96 = true;
00024
00025
00026 thermal.T0BD96 = 500.f;
00027 phycon.te = thermal.T0BD96;
00028 tfidle(false);
00029
00030
00031 thermal.SigmaBD96 = 6e-22f;
00032 }
00033 else if( nMatch("SN99",chCard) )
00034 {
00035
00036
00037 thermal.lgTeSN99 = true;
00038
00039
00040 thermal.T0SN99 = 500.f;
00041 phycon.te = thermal.T0SN99;
00042 tfidle(false);
00043 }
00044 else
00045 {
00046 fprintf(ioQQQ," There must be a keyword on this command. The one I know about is BD96\n");
00047 puts( "[Stop in ParseTLaw]" );
00048 cdEXIT(EXIT_FAILURE);
00049 }
00050
00051 #if 0
00052 #include "dense.h"
00053 #include "optimize.h"
00054 #include "input.h"
00055 bool lgEOL,
00056 lgEnd;
00057 long int i,
00058 j;
00059 char chCAP[5];
00060
00061
00062
00063
00064
00065 if( nMatch("TABL",chCard) )
00066 {
00067
00068 strcpy( dense.chDenseLaw, "DLW2" );
00069 if( nMatch("DEPT",chCard) )
00070 {
00071 dense.lgDLWDepth = true;
00072 }
00073 else
00074 {
00075 dense.lgDLWDepth = false;
00076 }
00077
00078 input_readarray(chCard,&lgEnd);
00079 i = 1;
00080 dense.frad[0] = (float)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00081 dense.fhden[0] = (float)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00082 if( lgEOL )
00083 {
00084 fprintf( ioQQQ, " No pairs entered - can\'t interpolate.\n Sorry.\n" );
00085 puts( "[Stop in getdlaw]" );
00086 cdEXIT(EXIT_FAILURE);
00087 }
00088
00089 dense.nvals = 2;
00090 lgEnd = false;
00091
00092
00093 while( !lgEnd && dense.nvals < LIMTABDLAW )
00094 {
00095 input_readarray(chCard,&lgEnd);
00096 if( !lgEnd )
00097 {
00098 cap4(chCAP , chCard);
00099 if( strncmp(chCAP , "END" , 3 ) == 0 )
00100 lgEnd = true;
00101 }
00102
00103 if( !lgEnd )
00104 {
00105 i = 1;
00106 dense.frad[dense.nvals-1] = (float)FFmtRead(chCard
00107 ,&i,INPUT_LINE_LENGTH,&lgEOL);
00108 dense.fhden[dense.nvals-1] = (float)FFmtRead(chCard
00109 ,&i,INPUT_LINE_LENGTH,&lgEOL);
00110 dense.nvals += 1;
00111 }
00112 }
00113 --dense.nvals;
00114
00115 for( i=1; i < dense.nvals; i++ )
00116 {
00117
00118 if( dense.frad[i] <= dense.frad[i-1] )
00119 {
00120 fprintf( ioQQQ, " density.in radii must be in increasing order\n" );
00121 puts( "[Stop in getdlaw]" );
00122 cdEXIT(EXIT_FAILURE);
00123 }
00124 }
00125 }
00126 else
00127 {
00128
00129 i = 4;
00130 for( j=0; j < 10; j++ )
00131 {
00132 dense.DensityLaw[j] = FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00133 }
00134
00135
00136 strcpy( dense.chDenseLaw, "DLW1" );
00137
00138
00139 if( optimize.lgVarOn )
00140 {
00141
00142
00143 strcpy( optimize.chVarFmt[optimize.nparm], "DLAW %f %f %f %f %f " );
00144
00145
00146 optimize.nvfpnt[optimize.nparm] = input.nRead;
00147 for( j=0; j<LIMEXT; ++j )
00148 {
00149 optimize.vparm[j][optimize.nparm] = (float)dense.DensityLaw[j];
00150 }
00151 optimize.vincr[optimize.nparm] = 0.5;
00152 optimize.nvarxt[optimize.nparm] = LIMEXT;
00153 ++optimize.nparm;
00154 }
00155 }
00156 # endif
00157
00158 DEBUG_EXIT( "ParseTLaw()" );
00159 return;
00160 }