/*iiibod derive three-body recombination coefficients */ #include "cddefines.h" #include "nsbig.h" #include "rcota.h" #include "trace.h" #include "ioreco.h" #include "da.h" #include "iiibod.h" void iiibod(void) { long int i, iup; # ifdef DEBUG_FUN fputs( "<+>iiibod()\n", debug_fp ); # endif if( rcota.lgNoCota ) { for( i=0; i < LIMELM; i++ ) { rcota.CotaRate[i] = 0.; } nsbigCom.nsbig = 0; # ifdef DEBUG_FUN fputs( " <->iiibod()\n", debug_fp ); # endif return; } if( nsbigCom.nsbig == 0 ) { /* steve cota only defined things up to 28 */ /*lint -e506 disable lint note that following is constant */ iup = MIN2(28,LIMELM); /*lint +e506 */ } else { iup = MIN3( LIMELM , nsbigCom.nsbig , 28 ); } for( i=0; i < iup; i++ ) { rcota.CotaRate[i] = (float)da((float)(i+1)); } nsbigCom.nsbig = 0; if( trace.lgTrace && trace.lgTrace3Bod ) { fprintf( ioQQQ, " 3BOD rate:" ); for( i=1; i <= 14; i++ ) { fprintf( ioQQQ, "%8.1e", rcota.CotaRate[i-1] ); } fprintf( ioQQQ, "\n" ); } if( lgioRecom ) { /* option to punch coefficients */ fprintf( ioRecom, " 3-body rec coef vs charge \n" ); for( i=0; i < iup; i++ ) { fprintf( ioRecom, "%3ld%10.2e\n", i+1, rcota.CotaRate[i] ); } fprintf( ioRecom, "\n"); } # ifdef DEBUG_FUN fputs( " <->iiibod()\n", debug_fp ); # endif return; }