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 }