cloudy
trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 /*ContNegative sanity check for negative continuum intensities */ 00004 #include "cddefines.h" 00005 #include "rfield.h" 00006 #include "dense.h" 00007 #include "phycon.h" 00008 #include "continuum.h" 00009 00010 void ContNegative(void) 00011 { 00012 bool lgFNeg; 00013 long int i; 00014 00015 DEBUG_ENTRY( "ContNegative()" ); 00016 00017 /* look for negative continuum points */ 00018 lgFNeg = false; 00019 for( i=0; i < rfield.nflux; i++ ) 00020 { 00021 if( rfield.flux[i] < 0. ) 00022 { 00023 fprintf( ioQQQ, " FLUX negative, value, freq, pointer=%10.2e%10.2e%5ld %4.4s %4.4s\n", 00024 rfield.flux[i], rfield.anu[i], i, rfield.chLineLabel[i] 00025 , rfield.chContLabel[i] ); 00026 lgFNeg = true; 00027 } 00028 else if( rfield.otslin[i] < 0. ) 00029 { 00030 fprintf( ioQQQ, " OTSLIN negative, value, freq, pointer=%10.2e%10.2e%5ld\n", 00031 rfield.otslin[i], rfield.anu[i], i ); 00032 lgFNeg = true; 00033 } 00034 else if( rfield.otscon[i] < 0. ) 00035 { 00036 fprintf( ioQQQ, " OTSCON negative, value, freq, pointer=%10.2e%10.2e%5ld\n", 00037 rfield.otscon[i], rfield.anu[i], i ); 00038 lgFNeg = true; 00039 } 00040 else if( rfield.SummedCon[i] < 0. ) 00041 { 00042 fprintf( ioQQQ, " OUTCON negative, value, freq, pointer=%10.2e%10.2e%5ld\n", 00043 rfield.ConInterOut[i], rfield.anu[i], i ); 00044 lgFNeg = true; 00045 } 00046 else if( rfield.ConInterOut[i] < 0. ) 00047 { 00048 fprintf( ioQQQ, " OUTCON negative, value, freq, pointer=%10.2e%10.2e%5ld\n", 00049 rfield.ConInterOut[i], rfield.anu[i], i ); 00050 lgFNeg = true; 00051 } 00052 else if( rfield.outlin[i] < 0. ) 00053 { 00054 fprintf( ioQQQ, " OUTLIN negative, value, freq, pointer=%10.2e%10.2e%5ld\n", 00055 rfield.outlin[i], rfield.anu[i], i ); 00056 lgFNeg = true; 00057 } 00058 } 00059 00060 if( !lgFNeg ) 00061 { 00062 fprintf( ioQQQ, " No parts of the continuum were negative, the electron density was%10.2e te=%10.2e\n", 00063 dense.eden, phycon.te ); 00064 fprintf( ioQQQ, " This is zone number%4ld\n", nzone ); 00065 } 00066 return; 00067 }