00001
00002
00003
00004 #include "cddefines.h"
00005 #include "thermal.h"
00006 #include "trace.h"
00007 #include "conv.h"
00008
00009
00010
00011 int ConvIoniz(void)
00012 {
00013 DEBUG_ENTRY( "ConvIoniz()" );
00014
00015
00016 int LoopLimit = conv.lgSearch ? 30 : 20;
00017
00018
00019
00020 if( !conv.lgSearch && conv.nPres2Ioniz == 0 )
00021 {
00022 if( ConvBase(0) )
00023 return 1;
00024 }
00025
00026 strcpy( conv.chConvIoniz, " NONE!!!!!" );
00027
00028
00029 for( int i=0; i < LoopLimit; ++i )
00030 {
00031
00032 if( ConvBase(i) )
00033 return 1;
00034
00035 if( trace.nTrConvg >= 4 )
00036 {
00037
00038 fprintf( ioQQQ, " ConvIoniz4 %d heat: %.2e cool: %.2e ",
00039 i, thermal.htot , thermal.ctot );
00040
00041
00042 if( conv.lgConvIoniz )
00043 {
00044 fprintf( ioQQQ, " ioniz converged\n" );
00045 }
00046 else
00047 {
00048 fprintf( ioQQQ, " ioniz no conv: %s old %.4e new %.4e OscilOTS %c\n",
00049 conv.chConvIoniz ,
00050 conv.BadConvIoniz[0] ,
00051 conv.BadConvIoniz[1] ,
00052 TorF(conv.lgOscilOTS) );
00053 }
00054 }
00055
00056 if( conv.lgConvIoniz || lgAbort )
00057 break;
00058 }
00059
00060
00061 if( trace.nTrConvg >= 4 && !conv.lgConvIoniz )
00062 fprintf( ioQQQ,
00063 " ConvIoniz4>>>>>>>>>>exit without converging after %i tries!!!!\n", LoopLimit );
00064
00065 return 0;
00066 }