/*ChckFill perform sanity check confirming that the energy array has been properly filled */ #include "cddefines.h" #include "fillnu.h" #include "rfield.h" #include "chckfill.h" #include "ipoint.h" void ChckFill(void) { int lgFail; long int i, ipnt; double energy; # ifdef DEBUG_FUN fputs( "<+>ChckFill()\n", debug_fp ); # endif lgFail = FALSE; for( i=0; i < fillnu.nrange; i++ ) { /* test middle of energy bound */ energy = (fillnu.filbnd[i] + fillnu.filbnd[i+1])/2.; ipnt = ipoint(energy); if( energy < rfield.anu[ipnt-1] - rfield.widflx[ipnt-1]*0.5 ) { fprintf( ioQQQ, " ChckFill middle test low fail\n" ); lgFail = TRUE; } else if( energy > rfield.anu[ipnt-1] + rfield.widflx[ipnt-1]*0.5 ) { fprintf( ioQQQ, " ChckFill middle test high fail\n" ); lgFail = TRUE; } /* test near low bound */ energy = fillnu.filbnd[i]*0.99 + fillnu.filbnd[i+1]*0.01; ipnt = ipoint(energy); if( energy < rfield.anu[ipnt-1] - rfield.widflx[ipnt-1]*0.5 ) { fprintf( ioQQQ, " ChckFill low test low fail\n" ); lgFail = TRUE; } else if( energy > rfield.anu[ipnt-1] + rfield.widflx[ipnt-1]* 0.5 ) { fprintf( ioQQQ, " ChckFill low test high fail\n" ); lgFail = TRUE; } /* test near high bound */ energy = fillnu.filbnd[i]*0.01 + fillnu.filbnd[i+1]*0.99; ipnt = ipoint(energy); if( energy < rfield.anu[ipnt-1] - rfield.widflx[ipnt-1]* 0.5 ) { fprintf( ioQQQ, " ChckFill high test low fail\n" ); lgFail = TRUE; } else if( energy > rfield.anu[ipnt-1] + rfield.widflx[ipnt-1]* 0.5 ) { fprintf( ioQQQ, " ChckFill high test high fail\n" ); lgFail = TRUE; } } if( lgFail ) { puts( "[Stop in chckfill]" ); exit(1); } }