00001
00002
00003
00004 #include "cddefines.h"
00005 #include "physconst.h"
00006 #include "rfield.h"
00007 #include "parse.h"
00008
00009 void ParseRangeOption(
00010
00011 long int nqh,
00012
00013 char *chCard)
00014 {
00015 bool lgEOL;
00016 long int i;
00017 double p1,
00018 p2;
00019
00020 DEBUG_ENTRY( "ParseRangeOption()" );
00021
00022 if( nMatch("TOTA",chCard) )
00023 {
00024 rfield.range[nqh][0] = rfield.emm;
00025 rfield.range[nqh][1] = rfield.egamry;
00026 }
00027 else if( nMatch("RANG",chCard) )
00028 {
00029 i = 1;
00030
00031 p1 = FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00032
00033
00034 p1 = FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00035 if( p1 == 0. )
00036 p1 = rfield.emm;
00037
00038 p2 = FFmtRead(chCard,&i,INPUT_LINE_LENGTH,&lgEOL);
00039
00040 if( p2 == 0. )
00041 p2 = rfield.egamry;
00042
00043
00044 if( p1 < 0. || nMatch(" LOG",chCard) )
00045 {
00046 p1 = pow(10.,p1);
00047
00048 if( !lgEOL )
00049 p2 = pow(10.,p2);
00050 }
00051
00052
00053 rfield.range[nqh][0] = MAX2((realnum)p1,rfield.emm);
00054 rfield.range[nqh][1] = MIN2((realnum)p2,rfield.egamry);
00055 if( rfield.range[nqh][0] > rfield.range[nqh][1] )
00056 {
00057 fprintf( ioQQQ, " Range MUST be in increasing order - sorry.\n" );
00058 cdEXIT(EXIT_FAILURE);
00059 }
00060 }
00061 else
00062 {
00063
00064
00065 rfield.range[nqh][0] = HIONPOT;
00066 rfield.range[nqh][1] = rfield.egamry;
00067 }
00068 return;
00069 }