Show
Ignore:
Timestamp:
05/20/08 15:56:57 (6 months ago)
Author:
rjrw
Message:

Merged from trunk r2085:2088

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/newmole/source/conv_base.cpp

    r2023 r2089  
    608608                        conv.BadConvIoniz[1] = dense.EdenTrue; 
    609609                } 
     610 
     611                for(long ipISO=ipH_LIKE; ipISO<NISO; ++ipISO ) 
     612                { 
     613                        for( nelem=ipISO; nelem<LIMELM; ++nelem ) 
     614                        { 
     615                                if( dense.lgElmtOn[nelem] &&  
     616                                                dense.xIonDense[nelem][nelem-ipISO]/dense.eden>conv.EdenErrorAllowed / 10. && 
     617                                                !(iso.chTypeAtomUsed[ipISO][nelem][0]=='L' &&  
     618                                                        iso.xIonSimple[ipISO][nelem]<1e-10) ) 
     619                                { 
     620                                        const realnum err_tol = 1e-2; 
     621                                        realnum abund = 0.; 
     622                                        for (long n=0; n<iso.numLevels_local[ipISO][nelem]; ++n) 
     623                                        { 
     624                                                abund += StatesElem[ipISO][nelem][n].Pop; 
     625                                        } 
     626                                        if( conv.lgConvIoniz && iso.pop_ion_ov_neut[ipISO][nelem] > 1e-15 && 
     627                                                        ! fp_equal_tol(abund*dense.xIonDense[nelem][nelem+1-ipISO],dense.xIonDense[nelem][nelem-ipISO], 
     628                                                                                                                 err_tol*dense.xIonDense[nelem][nelem-ipISO])) 
     629                                        { 
     630                                                //fprintf(ioQQQ,"Inconsistent iso %ld %ld %ld %g\n",loop_ion,nelem,ipISO, 
     631                                                //                              abund*dense.xIonDense[nelem][nelem+1-ipISO]/SDIV(dense.xIonDense[nelem][nelem-ipISO])-1); 
     632                                                conv.lgConvIoniz = false; 
     633                                                sprintf( conv.chConvIoniz , "Iso!=ion" ); 
     634                                                conv.BadConvIoniz[0] = abund*dense.xIonDense[nelem][nelem+1-ipISO]; 
     635                                                conv.BadConvIoniz[1] = dense.xIonDense[nelem][nelem-ipISO]; 
     636                                        } 
     637                                } 
     638                        } 
     639                } 
     640 
    610641                ++loop_ion; 
    611642        }