00001
00002
00003
00004 #include "cddefines.h"
00005 #include "iterations.h"
00006 #include "geometry.h"
00007 #include "trace.h"
00008 #include "parse.h"
00009
00010 void ParseTrace(char *chCard )
00011 {
00012 bool lgEOL;
00013 long int i;
00014
00015 DEBUG_ENTRY( "ParseTrace()" );
00016
00017
00018
00019
00020
00021 fprintf(ioQQQ,"DEBUG trace output turned on.\n");
00022
00023 i = 5;
00024
00025 trace.nznbug = (long)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00026 if( lgEOL )
00027 {
00028 trace.lgTrace = true;
00029 }
00030
00031
00032 trace.npsbug = (long)FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00033 if( lgEOL )
00034 {
00035 trace.npsbug = 1;
00036 }
00037
00038
00039 if( trace.nznbug == 0 && trace.npsbug <= 1 )
00040 {
00041 trace.lgTrace = true;
00042 geometry.nprint = 1;
00043 iterations.IterPrnt[0] = 1;
00044 }
00045
00046
00047
00048
00049
00050
00051
00052
00053 if( nMatch("CONV",chCard) )
00054 {
00055
00056
00057
00058
00059 if( nMatch("PRES",chCard) )
00060 trace.nTrConvg = -1;
00061
00062 else if( nMatch("TEMP",chCard) )
00063 trace.nTrConvg = -2;
00064
00065 else if( nMatch("EDEN",chCard) )
00066 trace.nTrConvg = -3;
00067
00068 else if( nMatch("IONI",chCard) )
00069 trace.nTrConvg = -4;
00070
00071
00072 else
00073 trace.nTrConvg = -100;
00074
00075
00076 if( trace.nznbug == 0 && trace.npsbug <= 1 )
00077 {
00078 trace.nTrConvg *= -1;
00079 }
00080
00081
00082 trace.lgTrace = false;
00083
00084 geometry.nprint = 10000;
00085 iterations.IterPrnt[0] = 10000;
00086
00087
00088 if( nMatch(" OTS",chCard) )
00089 trace.lgOTSBug = true;
00090
00091
00092
00093 if( nMatch("ESOU",chCard) )
00094 trace.lgESOURCE = true;
00095
00096 }
00097
00098
00099
00100 if( nMatch("H-LI",chCard) )
00101 {
00102
00103 trace.lgHBug = true;
00104
00105
00106 if( nMatch("FULL",chCard) )
00107 {
00108 trace.lgIsoTraceFull[ipH_LIKE] = true;
00109 }
00110 else
00111 {
00112 trace.lgIsoTraceFull[ipH_LIKE] = false;
00113 }
00114
00115
00116 trace.ipIsoTrace[ipH_LIKE] = GetElem(chCard);
00117
00118
00119
00120 trace.ipIsoTrace[ipH_LIKE] = MAX2(0, trace.ipIsoTrace[ipH_LIKE] );
00121 }
00122
00123
00124 if( nMatch("HE-L",chCard) )
00125 {
00126
00127 trace.lgHeBug = true;
00128
00129
00130 if( nMatch("FULL",chCard) )
00131 {
00132 trace.lgIsoTraceFull[ipHE_LIKE] = true;
00133 }
00134 else
00135 {
00136 trace.lgIsoTraceFull[ipHE_LIKE] = false;
00137 }
00138
00139
00140 trace.ipIsoTrace[ipHE_LIKE] = GetElem(chCard);
00141
00142
00143
00144 trace.ipIsoTrace[ipHE_LIKE] = MAX2(1, trace.ipIsoTrace[ipHE_LIKE] );
00145 }
00146
00147
00148 if( nMatch("BETA",chCard) )
00149 trace.lgTr8446 = true;
00150
00151 if( nMatch("CARB",chCard) )
00152 trace.lgCarBug = true;
00153
00154 if( nMatch("CALC",chCard) )
00155 trace.lgCalBug = true;
00156
00157 if( nMatch("COMP",chCard) )
00158 trace.lgComBug = true;
00159
00160 if( nMatch("CONT",chCard) )
00161 trace.lgConBug = true;
00162
00163 if( nMatch("COOL",chCard) )
00164 trace.lgCoolTr = true;
00165
00166 if( nMatch("DIFF",chCard) )
00167 trace.lgTrDiff = true;
00168
00169 if( nMatch(" DR ",chCard) )
00170 trace.lgDrBug = true;
00171
00172 if( nMatch("EDEN",chCard) || nMatch("ELECTRON",chCard) )
00173 trace.lgNeBug = true;
00174
00175 if( nMatch("GAUN",chCard) )
00176 trace.lgTrGant = true;
00177
00178 if( nMatch("GRAI",chCard) )
00179 trace.lgDustBug = true;
00180
00181 if( nMatch("HEAV",chCard) )
00182 trace.lgHeavyBug = true;
00183
00184 if( nMatch("HEAT",chCard) )
00185 trace.lgHeatBug = true;
00186
00187
00188 if( nMatch("HELI",chCard) && !nMatch("H-LI",chCard) && !nMatch("HE-L",chCard) )
00189 trace.lgHeBug = true;
00190
00191
00192 if( nMatch("HYDR",chCard) && !nMatch("H-LI",chCard))
00193 {
00194 trace.lgHBug = true;
00195 trace.lgIsoTraceFull[ipH_LIKE] = false;
00196
00197 trace.ipIsoTrace[ipH_LIKE] = 0;
00198
00199 }
00200
00201 if( nMatch("IRON",chCard) )
00202 trace.lgFeBug = true;
00203
00204 if( nMatch("VELN",chCard) )
00205 trace.lgTrLevN = true;
00206
00207 if( nMatch("LINE",chCard) )
00208 trace.lgTrLine = true;
00209
00210 if( nMatch("NEON",chCard) )
00211 trace.lgNeonBug = true;
00212
00213 if( nMatch("MOLE",chCard) )
00214 {
00215
00216
00217 if( nMatch("HMOL",chCard) )
00218 {
00219
00220 trace.lgTr_H2_Mole = true;
00221 }
00222 if( nMatch("CMOL",chCard ) )
00223 {
00224
00225 trace.lgTr_CO_Mole = true;
00226 }
00227 else
00228 {
00229
00230 trace.lgTr_CO_Mole = true;
00231 trace.lgTr_H2_Mole = true;
00232 }
00233 }
00234
00235
00236 if( nMatch("POIN",chCard) )
00237 trace.lgPointBug = true;
00238
00239
00240 if( nMatch("PTIC",chCard) )
00241 trace.lgOptcBug = true;
00242
00243 if( nMatch("PTIM",chCard) )
00244 trace.lgTrOptm = true;
00245
00246 if( nMatch(" OTS",chCard) )
00247 trace.lgOTSBug = true;
00248
00249 if( nMatch("SECO",chCard) && nMatch("IONI",chCard) )
00250
00251 trace.lgSecIon = true;
00252
00253 if( nMatch("THRE",chCard) )
00254 trace.lgTrace3Bod = true;
00255
00256
00257 if( nMatch(" TWO",chCard) )
00258 trace.lgBug2nu = true;
00259
00260
00261
00262 DEBUG_EXIT( "ParseTrace()" );
00263 return;
00264 }