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 long int
00014
00015 loopi ,
00016
00017 LoopLimit;
00018
00019 DEBUG_ENTRY( "ConvIoniz()" );
00020
00021
00022
00023
00024 if( conv.lgSearch )
00025 {
00026
00027 LoopLimit = 30;
00028 }
00029 else
00030 {
00031 LoopLimit = 20;
00032 }
00033
00034
00035 loopi = 0;
00036
00037
00038
00039 if( !conv.lgSearch && conv.nPres2Ioniz == 0 )
00040 {
00041 if( ConvBase(loopi) )
00042 {
00043 DEBUG_EXIT( "ConvIoniz()" );
00044 return 1;
00045 }
00046 }
00047
00048 strcpy( conv.chConvIoniz, " NONE!!!!!" );
00049
00050
00051 do
00052 {
00053
00054 if( ConvBase(loopi) )
00055 {
00056 DEBUG_EXIT( "ConvIoniz()" );
00057
00058 return 1;
00059 }
00060
00061 if( trace.nTrConvg>=4 )
00062 {
00063
00064 fprintf( ioQQQ,
00065 " ConvIoniz4%4ld heat:%10.2e cool:%10.2e ",
00066 loopi, thermal.htot , thermal.ctot );
00067
00068
00069 if( conv.lgConvIoniz )
00070 {
00071 fprintf( ioQQQ, " ioniz converged\n" );
00072 }
00073 else
00074 {
00075 fprintf( ioQQQ, " ioniz no conv:%10.10s old %.4e new %.4e OscilOTS %c\n",
00076 conv.chConvIoniz ,
00077 conv.BadConvIoniz[0] ,
00078 conv.BadConvIoniz[1] ,
00079 TorF(conv.lgOscilOTS) );
00080 }
00081 }
00082
00083
00084 ++loopi;
00085 } while( !conv.lgConvIoniz && loopi < LoopLimit && !lgAbort );
00086
00087 if( !conv.lgConvIoniz )
00088 {
00089
00090 ++conv.nConvIonizFails;
00091
00092
00093
00094
00095 }
00096
00097
00098 if( trace.nTrConvg>=4 && !conv.lgConvIoniz )
00099 {
00100 fprintf( ioQQQ,
00101 " ConvIoniz4>>>>>>>>>>exit without converging after %li tries!!!!\n",loopi);
00102 }
00103 # if 0
00104 {
00105 #include "grainvar.h"
00106 #include "dense.h"
00107 #include "mole.h"
00108 fprintf(ioQQQ,"DEBUG co mol eden\t%.2f\t%e\t%e\t%e\t%e\n",
00109 fnzone,
00110 dense.eden,
00111 gv.TotalEden,
00112 co.comole_eden ,
00113 dense.EdenTrue);
00114 }
00115 # endif
00116
00117 DEBUG_EXIT( "ConvIoniz()" );
00118
00119 return 0;
00120 }
00121