Changeset 689

Show
Ignore:
Timestamp:
12/07/06 13:08:33 (2 years ago)
Author:
rjrw
Message:

Switches off grain mantle species when not needed.

Privatization of the molecular network indices now applied to
ion_iron.cpp and ion_magne.cpp -- halfway house solution works OK with
limit_eden.in.

Location:
branches/newmole/source
Files:
9 modified

Legend:

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

    r632 r689  
    7979        ParseCommands(); 
    8080 
     81        if (!CO_zero_in_zero) 
     82                CO_zero(); 
     83 
    8184        /* >> chng 06 Nov 24 rjrw: Move reaction definitions here so they can be controlled by parsed commands */ 
    8285        CO_create_react(); 
  • branches/newmole/source/ion_iron.cpp

    r678 r689  
    1515#include "ionbal.h" 
    1616#include "mole.h" 
    17 #include "mole_co_priv.h" 
    1817 
    1918/*IonIron ionization balance for iron */ 
     
    156155        { 
    157156                ionbal.PhotoRate_Shell[ipIRON][0][6][0] += 
    158                         COmole_rate[ipR_SP_Fe_S_FeP].rk*dense.xIonDense[ipSULPHUR][1] + 
    159                         COmole_rate[ipR_SiP_Fe_Si_FeP].rk*dense.xIonDense[ipSILICON][1] +  
    160                         COmole_rate[ipR_CP_Fe_C_FeP].rk*dense.xIonDense[ipCARBON][1]; 
     157                        CO_findrk("S+,Fe=>S,Fe+")*dense.xIonDense[ipSULPHUR][1] + 
     158                        CO_findrk("Si+,Fe=>Si,Fe+")*dense.xIonDense[ipSILICON][1] +  
     159                        CO_findrk("C+,Fe=>C,Fe+")*dense.xIonDense[ipCARBON][1]; 
    161160                /* CO_sink_rate("Fe");*/ 
    162161                 
  • branches/newmole/source/ion_magne.cpp

    r678 r689  
    1212#include "dense.h" 
    1313#include "mole.h" 
    14 #include "mole_co_priv.h" 
    1514#include "opacity.h" 
    1615#include "gammas.h" 
     
    122121                        /* Use sink rate from last completed state of network, including _all_ present & future Mg sinks */ 
    123122                        ionbal.PhotoRate_Shell[ipMAGNESIUM][0][3][0] +=  
    124                                 COmole_rate[ipR_SP_Mg_S_MgP].rk*dense.xIonDense[ipSULPHUR][1] + 
    125                                 COmole_rate[ipR_SiP_Mg_Si_MgP].rk*dense.xIonDense[ipSILICON][1]  +  
    126                                 COmole_rate[ipR_CP_Mg_C_MgP].rk*dense.xIonDense[ipCARBON][1]  ; 
     123                                CO_findrk("S+,Mg=>S,Mg+")*dense.xIonDense[ipSULPHUR][1] + 
     124                                CO_findrk("Si+,Mg=>Si,Mg+")*dense.xIonDense[ipSILICON][1] +  
     125                                CO_findrk("C+,Mg=>C,Mg+")*dense.xIonDense[ipCARBON][1]; 
    127126                        /* CO_sink_rate("Mg"); */ 
    128127                } 
  • branches/newmole/source/Makefile

    r680 r689  
    11SRC=abundances.cpp abund_starburst.cpp age_check.cpp assert_results.cpp \ 
    2 atmdat_2photon.cpp atmdat_3body.cpp atmdat_char_tran.cpp                                                                \ 
    3 atmdat_coll_ion.cpp atmdat_dielrec_fe.cpp atmdat_dielsupres.cpp                                 \ 
    4 atmdat_H_phot_cs.cpp atmdat_h_photocs_fit.cpp atmdat_h_rad_rec.cpp                      \ 
    5 atmdat_HS_caseb.cpp atmdat_ligbar.cpp atmdat_lines_setup.cpp                                            \ 
    6 atmdat_outer_shell.cpp atmdat_phfit.cpp atmdat_rad_rec.cpp                                                      \ 
    7 atmdat_readin.cpp atmdat_rec_lines.cpp atom_fe2ovr.cpp atom_feii.cpp            \ 
    8 atom_hyperfine.cpp atom_level2.cpp atom_level3.cpp atom_leveln.cpp                      \ 
    9 atom_oi.cpp atom_pop2.cpp atom_pop3.cpp atom_pop5.cpp                                                                           \ 
    10 atom_seq_beryllium.cpp atom_seq_boron.cpp cddefines.cpp cddrive.cpp                     \ 
    11 cdgetlinelist.cpp cdinit.cpp cdspec.cpp cloudy.cpp cont_createmesh.cpp  \ 
    12 cont_createpointers.cpp cont_ffun.cpp cont_gammas.cpp cont_gaunt.cpp            \ 
    13 cont_ipoint.cpp cont_negative.cpp cont_pump.cpp cont_setintensity.cpp           \ 
    14 conv_base.cpp conv_eden_ioniz.cpp conv_fail.cpp conv_init_solution.cpp  \ 
    15 conv_ioniz.cpp conv_itercheck.cpp conv_pres_temp_eden_ioniz.cpp                                 \ 
    16 conv_temp_eden_ioniz.cpp cool_alum.cpp cool_argo.cpp cool_calc.cpp                      \ 
    17 cool_carb.cpp cool_chlo.cpp cool_chro.cpp cool_coba.cpp cool_dima.cpp           \ 
    18 cool_etc.cpp cool_eval.cpp cool_fluo.cpp cool_iron.cpp cool_magn.cpp            \ 
    19 cool_mang.cpp cool_neon.cpp cool_nick.cpp cool_nitr.cpp cool_oxyg.cpp           \ 
    20 cool_phos.cpp cool_pota.cpp cool_pr.cpp cool_punch.cpp cool_scan.cpp            \ 
    21 cool_sili.cpp cool_sodi.cpp cool_sulf.cpp cool_tita.cpp cool_vana.cpp           \ 
    22 cool_zinc.cpp cpu.cpp dense_fabden.cpp dense_tabden.cpp dynamics.cpp            \ 
    23 eden_sum.cpp grains.cpp grains_mie.cpp grains_qheat.cpp grid_do.cpp                     \ 
    24 grid_xspec.cpp hash.cpp heat_punch.cpp heat_sum.cpp helike.cpp                                  \ 
    25 helike_create.cpp helike_cs.cpp helike_einsta.cpp helike_level.cpp                      \ 
    26 helike_recom.cpp highen.cpp hydro_bauman.cpp hydrobranch.cpp                                            \ 
    27 hydrocollid.cpp hydroeinsta.cpp hydrogenic.cpp hydrolevel.cpp                                           \ 
    28 hydrolevelpop.cpp hydrooscilstr.cpp hydroreccool.cpp hydrorecom.cpp                     \ 
    29 hydrot2low.cpp hydro_vs_rates.cpp hypho.cpp input.cpp interpolate.cpp           \ 
    30 ion_alumi.cpp ion_argon.cpp ion_beryl.cpp ion_boron.cpp ion_calci.cpp           \ 
    31 ion_carbo.cpp ion_chlor.cpp ion_chrom.cpp ion_cobal.cpp ion_collis.cpp  \ 
    32 ion_coppe.cpp ion_fluor.cpp ion_helium.cpp ion_iron.cpp ion_lithi.cpp           \ 
    33 ion_magne.cpp ion_manga.cpp ion_neon.cpp ion_nicke.cpp ion_nitro.cpp            \ 
    34 ion_oxyge.cpp ion_phosi.cpp ion_photo.cpp ion_potas.cpp ion_recomb.cpp  \ 
    35 ion_recomb_Badnell.cpp ion_scand.cpp ion_silic.cpp ion_sodiu.cpp                                \ 
    36 ion_solver.cpp ion_sulph.cpp ion_titan.cpp ion_trim.cpp ion_vanad.cpp           \ 
    37 ion_zero.cpp ion_zinc.cpp iso_continuum_lower.cpp iso_cool.cpp                                  \ 
    38 iso_create.cpp iso_ionize_recombine.cpp iso_photo.cpp iter_end_chk.cpp  \ 
     2atmdat_2photon.cpp atmdat_3body.cpp atmdat_adfa.cpp                                                                                     \ 
     3atmdat_char_tran.cpp atmdat_dielrec_fe.cpp atmdat_dielsupres.cpp                                \ 
     4atmdat_H_phot_cs.cpp atmdat_HS_caseb.cpp atmdat_ligbar.cpp                                                      \ 
     5atmdat_lines_setup.cpp atmdat_outer_shell.cpp atmdat_readin.cpp                                 \ 
     6atom_fe2ovr.cpp atom_feii.cpp atom_hyperfine.cpp atom_level2.cpp                                \ 
     7atom_level3.cpp atom_leveln.cpp atom_oi.cpp atom_pop2.cpp                                                               \ 
     8atom_pop3.cpp atom_pop5.cpp atom_seq_beryllium.cpp atom_seq_boron.cpp           \ 
     9cddefines.cpp cddrive.cpp cdgetlinelist.cpp cdinit.cpp cdspec.cpp                               \ 
     10cloudy.cpp cont_createmesh.cpp cont_createpointers.cpp cont_ffun.cpp            \ 
     11cont_gammas.cpp cont_gaunt.cpp cont_ipoint.cpp cont_negative.cpp                                \ 
     12cont_pump.cpp cont_setintensity.cpp conv_base.cpp conv_eden_ioniz.cpp           \ 
     13conv_fail.cpp conv_init_solution.cpp conv_ioniz.cpp conv_itercheck.cpp  \ 
     14conv_pres_temp_eden_ioniz.cpp conv_temp_eden_ioniz.cpp cool_alum.cpp            \ 
     15cool_argo.cpp cool_calc.cpp cool_carb.cpp cool_chlo.cpp cool_chro.cpp           \ 
     16cool_coba.cpp cool_dima.cpp cool_etc.cpp cool_eval.cpp cool_fluo.cpp            \ 
     17cool_iron.cpp cool_magn.cpp cool_mang.cpp cool_neon.cpp cool_nick.cpp           \ 
     18cool_nitr.cpp cool_oxyg.cpp cool_phos.cpp cool_pota.cpp cool_pr.cpp                     \ 
     19cool_punch.cpp cool_scan.cpp cool_sili.cpp cool_sodi.cpp cool_sulf.cpp  \ 
     20cool_tita.cpp cool_vana.cpp cool_zinc.cpp cpu.cpp dense_fabden.cpp                      \ 
     21dense_tabden.cpp dynamics.cpp eden_sum.cpp grains.cpp grains_mie.cpp            \ 
     22grains_qheat.cpp grid_do.cpp grid_xspec.cpp hash.cpp heat_punch.cpp                     \ 
     23heat_sum.cpp helike.cpp helike_create.cpp helike_cs.cpp                                                                 \ 
     24helike_einsta.cpp helike_level.cpp helike_recom.cpp highen.cpp                                  \ 
     25hydro_bauman.cpp hydrobranch.cpp hydrocollid.cpp hydroeinsta.cpp                                \ 
     26hydrogenic.cpp hydrolevel.cpp hydrolevelpop.cpp hydrooscilstr.cpp                               \ 
     27hydroreccool.cpp hydrorecom.cpp hydrot2low.cpp hydro_vs_rates.cpp                               \ 
     28hypho.cpp input.cpp interpolate.cpp ion_alumi.cpp ion_argon.cpp                                 \ 
     29ion_beryl.cpp ion_boron.cpp ion_calci.cpp ion_carbo.cpp ion_chlor.cpp           \ 
     30ion_chrom.cpp ion_cobal.cpp ion_collis.cpp ion_coppe.cpp ion_fluor.cpp  \ 
     31ion_helium.cpp ion_iron.cpp ion_lithi.cpp ion_magne.cpp ion_manga.cpp           \ 
     32ion_neon.cpp ion_nicke.cpp ion_nitro.cpp ion_oxyge.cpp ion_phosi.cpp            \ 
     33ion_photo.cpp ion_potas.cpp ion_recomb.cpp ion_recomb_Badnell.cpp                               \ 
     34ion_scand.cpp ion_silic.cpp ion_sodiu.cpp ion_solver.cpp ion_sulph.cpp  \ 
     35ion_titan.cpp ion_trim.cpp ion_vanad.cpp ion_zero.cpp ion_zinc.cpp                      \ 
     36iso_continuum_lower.cpp iso_cool.cpp iso_create.cpp                                                                                     \ 
     37iso_ionize_recombine.cpp iso_photo.cpp iter_end_chk.cpp                                                                 \ 
    3938iter_startend.cpp lines_service.cpp magnetic.cpp maincl.cpp map.cpp                     \ 
    40 math_complex.cpp mean.cpp molcol.cpp mole_co_atom.cpp                                                                           \ 
    41 mole_co_drive.cpp mole_co_etc.cpp mole_co_reactions.cpp                                                                 \ 
    42 mole_co_solve.cpp mole_co_step.cpp mole_h2.cpp mole_h2_create.cpp                               \ 
    43 mole_h2_etc.cpp mole_h2_form.cpp mole_h2_io.cpp mole_h_drive.cpp                                \ 
    44 mole_h_step.cpp opacity_add1element.cpp opacity_add1subshell.cpp                                \ 
    45 opacity_addtotal.cpp opacity_createall.cpp opacity_zero.cpp                                                     \ 
    46 optimize_amoeba.cpp optimize_do.cpp optimize_func.cpp                                                                           \ 
     39mean.cpp molcol.cpp mole_co_atom.cpp mole_co_drive.cpp mole_co_etc.cpp  \ 
     40mole_co_reactions.cpp mole_co_solve.cpp mole_co_step.cpp mole_h2.cpp            \ 
     41mole_h2_create.cpp mole_h2_etc.cpp mole_h2_form.cpp mole_h2_io.cpp                      \ 
     42mole_h_drive.cpp mole_h_step.cpp opacity_add1element.cpp                                                                \ 
     43opacity_add1subshell.cpp opacity_addtotal.cpp opacity_createall.cpp                     \ 
     44opacity_zero.cpp optimize_amoeba.cpp optimize_do.cpp optimize_func.cpp  \ 
    4745optimize_phymir.cpp optimize_powell.cpp optimize_subplx.cpp                                                     \ 
    4846parse_absmag.cpp parse_abundances.cpp parse_age.cpp parse_agn.cpp                               \ 
     
    115113atmdat_3body.o: cddefines.h ionbal.h phycon.h dense.h trace.h punch.h 
    116114atmdat_3body.o: atmdat.h 
     115atmdat_adfa.o: cddefines.h physconst.h path.h atmdat.h 
    117116atmdat_char_tran.o: cddefines.h phycon.h physconst.h abund.h dense.h iso.h 
    118117atmdat_char_tran.o: thermal.h mole.h elementnames.h heavy.h trace.h conv.h 
    119118atmdat_char_tran.o: atmdat.h 
    120 atmdat_coll_ion.o: cddefines.h physconst.h atmdat.h 
    121119atmdat_dielrec_fe.o: cddefines.h atmdat.h physconst.h 
    122120atmdat_dielsupres.o: cddefines.h ionbal.h dense.h phycon.h punch.h atmdat.h 
    123 atmdat_H_phot_cs.o: cddefines.h atmdat.h 
    124 atmdat_h_photocs_fit.o: cddefines.h atmdat.h 
    125 atmdat_h_rad_rec.o: cddefines.h atmdat.h 
    126121atmdat_HS_caseb.o: cddefines.h atmdat.h 
    127122atmdat_ligbar.o: cddefines.h physconst.h dense.h phycon.h ligbar.h 
     
    129124atmdat_lines_setup.o: taulines.h opacity.h lines.h 
    130125atmdat_outer_shell.o: cddefines.h atmdat.h 
    131 atmdat_phfit.o: cddefines.h atmdat.h 
    132 atmdat_rad_rec.o: cddefines.h atmdat.h 
    133126atmdat_readin.o: cddefines.h physconst.h taulines.h mewecoef.h iterations.h 
    134127atmdat_readin.o: heavy.h mole.h yield.h path.h trace.h lines.h 
    135128atmdat_readin.o: lines_service.h ionbal.h struc.h geometry.h dynamics.h 
    136129atmdat_readin.o: elementnames.h hyperfine.h atmdat.h atomfeii.h 
    137 atmdat_rec_lines.o: cddefines.h atmdat.h 
    138130atom_fe2ovr.o: cddefines.h doppvel.h dense.h rfield.h iso.h phycon.h 
    139131atom_fe2ovr.o: hydrogenic.h atomfeii.h 
     
    196188cont_gammas.o: cddefines.h physconst.h iso.h thermal.h secondaries.h 
    197189cont_gammas.o: opacity.h rfield.h ionbal.h atmdat.h heavy.h gammas.h 
    198 cont_gaunt.o: cddefines.h physconst.h math_complex.h thirdparty.h continuum.h 
     190cont_gaunt.o: cddefines.h physconst.h thirdparty.h continuum.h 
    199191cont_ipoint.o: cddefines.h continuum.h prt.h rfield.h ipoint.h 
    200192cont_negative.o: cddefines.h rfield.h dense.h phycon.h continuum.h 
     
    299291grains.o: interpolate.h dense.h ipoint.h elementnames.h grainvar.h grains.h 
    300292grains_mie.o: cddefines.h elementnames.h physconst.h path.h dense.h called.h 
    301 grains_mie.o: version.h grainvar.h rfield.h atmdat.h math_complex.h grains.h 
     293grains_mie.o: version.h grainvar.h rfield.h atmdat.h grains.h 
    302294grains_qheat.o: cddefines.h physconst.h radius.h rfield.h phycon.h dense.h 
    303295grains_qheat.o: hmi.h thermal.h trace.h interpolate.h iterations.h grainvar.h 
     
    321313helike_cs.o: cddefines.h iso.h dense.h helike.h helike_cs.h phycon.h 
    322314helike_cs.o: physconst.h taulines.h hydro_vs_rates.h trace.h ionbal.h 
    323 helike_cs.o: opacity.h heavy.h rfield.h atmdat.h math_complex.h thirdparty.h 
     315helike_cs.o: opacity.h heavy.h rfield.h atmdat.h thirdparty.h 
    324316helike_einsta.o: cddefines.h physconst.h taulines.h path.h dense.h trace.h 
    325317helike_einsta.o: hydro_bauman.h iso.h helike.h helike_einsta.h 
     
    374366ion_helium.o: cddefines.h dense.h trace.h iso.h ionbal.h 
    375367ion_iron.o: cddefines.h dense.h fe.h gammas.h opacity.h trace.h grainvar.h 
    376 ion_iron.o: ionbal.h mole.h mole_co_priv.h hash.h 
     368ion_iron.o: ionbal.h mole.h 
    377369ion_lithi.o: cddefines.h dense.h ionbal.h 
    378 ion_magne.o: cddefines.h atoms.h trace.h iso.h dense.h mole.h mole_co_priv.h 
    379 ion_magne.o: hash.h opacity.h gammas.h ionbal.h 
     370ion_magne.o: cddefines.h atoms.h trace.h iso.h dense.h mole.h opacity.h 
     371ion_magne.o: gammas.h ionbal.h 
    380372ion_manga.o: cddefines.h dense.h ionbal.h 
    381373ion_neon.o: cddefines.h dense.h trace.h ionbal.h 
     
    438430map.o: cddefines.h thermal.h cooling.h stopcalc.h called.h dense.h mole.h 
    439431map.o: phycon.h trace.h pressure.h conv.h map.h 
    440 math_complex.o: cddefines.h math_complex.h 
    441432mean.o: cddefines.h physconst.h radius.h dense.h hyperfine.h magnetic.h hmi.h 
    442433mean.o: phycon.h geometry.h mean.h 
     
    450441mole_co_etc.o: cddefines.h phycon.h physconst.h mole.h mole_co_priv.h hash.h 
    451442mole_co_etc.o: hmi.h doppvel.h rfield.h secondaries.h rt.h dense.h ionbal.h 
    452 mole_co_etc.o: grainvar.h 
     443mole_co_etc.o: grainvar.h timesc.h 
    453444mole_co_reactions.o: cddefines.h mole.h mole_co_priv.h hash.h hmi.h conv.h 
    454 mole_co_reactions.o: phycon.h physconst.h doppvel.h rfield.h secondaries.h 
    455 mole_co_reactions.o: ionbal.h grainvar.h rt.h 
     445mole_co_reactions.o: grainvar.h phycon.h physconst.h doppvel.h rfield.h 
     446mole_co_reactions.o: secondaries.h ionbal.h rt.h 
    456447mole_co_solve.o: cddefines.h taulines.h dense.h ionbal.h thermal.h phycon.h 
    457448mole_co_solve.o: hmi.h dynamics.h conv.h trace.h coolheavy.h timesc.h 
     
    492483optimize_do.o: cddefines.h input.h called.h prt.h punch.h optimize.h 
    493484optimize_func.o: cddefines.h zero.h lines.h prt.h called.h radius.h input.h 
    494 optimize_func.o: cloudy.h cddrive.h optimize.h grid.h iso.h taulines.h 
     485optimize_func.o: cloudy.h cddrive.h optimize.h grid.h iso.h taulines.h mole.h 
    495486optimize_phymir.o: cddefines.h version.h optimize.h 
    496487optimize_powell.o: cddefines.h optimize.h 
     
    720711rt_tau_reset.o: cddefines.h taulines.h trace.h iso.h rfield.h opacity.h h2.h 
    721712rt_tau_reset.o: mole.h geometry.h dense.h atomfeii.h colden.h rt.h 
    722 sanity_check.o: cddefines.h physconst.h math_complex.h dense.h lapack.h 
     713sanity_check.o: cddefines.h physconst.h thirdparty.h dense.h lapack.h 
    723714sanity_check.o: helike.h continuum.h helike_recom.h rfield.h taulines.h 
    724715sanity_check.o: hypho.h iso.h opacity.h hydro_bauman.h hydrogenic.h heavy.h 
     
    735726tfidle.o: thermal.h 
    736727thirdparty_bevington.o: cddefines.h bevington.h 
    737 thirdparty.o: cddefines.h math_complex.h thirdparty.h physconst.h 
     728thirdparty.o: cddefines.h thirdparty.h physconst.h 
    738729thirdparty_lapack.o: cddefines.h lapack.h 
    739730vary_input.o: cddefines.h input.h optimize.h 
  • branches/newmole/source/mole.h

    r679 r689  
    33/* mole.h */ 
    44 
     5/* Switch position of CO_zero call */ 
     6enum {CO_zero_in_zero = FALSE}; 
     7 
    58/**CO_drive main driver for heavy molecular equilibrium routines */ 
    69extern void CO_drive(void); 
    710 
     11/**CO_zero allocate + initialize workspace */ 
     12extern void CO_zero(void); 
     13 
    814/**CO_create_react build reaction structures */ 
    915extern void CO_create_react(void); 
    10  
    1116 
    1217/** called from cdInit to initialized co routines */ 
  • branches/newmole/source/mole_co_etc.cpp

    r684 r689  
    1616#include "ionbal.h" 
    1717#include "grainvar.h" 
     18#include "timesc.h" 
    1819/*lint -e778 constant expression evaluates to 0 in operation '-' */ 
    1920/*lint -e777 test floats for equal */ 
     
    189190        sp = newspecies("H2CCl+",MOLECULE,ACTIVE,NULL,0.00e+00); 
    190191        sp = newspecies("ClO+  ",MOLECULE,ACTIVE,NULL,4.00e-15); 
    191         if(1 || (gv.lgDustOn && mole.lgGrain_mole_deplete )) 
     192        /* fprintf(stderr,"ETC: %d %d\n",gv.lgDustOn, mole.lgGrain_mole_deplete); */ 
     193        if(CO_zero_in_zero || (gv.lgDustOn && mole.lgGrain_mole_deplete )) 
    192194        { 
    193195                sp = newspecies("COgrn ",MOLECULE,ACTIVE,NULL,1.00e-15); 
     
    767769}        
    768770 
     771void CO_zero(void) 
     772{ 
     773        long int i; 
     774 
     775        static int lgFirstCall = TRUE; 
     776         
     777        CO_Init(); 
     778 
     779        if (lgFirstCall) 
     780        { 
     781                /* do one-time malloc of timesc.AgeCOMoleDest */ 
     782                timesc.AgeCOMoleDest = (double*)MALLOC( mole.num_comole_calc*sizeof(double) ); 
     783 
     784                lgFirstCall = FALSE; 
     785        } 
     786 
     787        for ( i=0; i < mole.num_comole_calc; i++ ) 
     788        { 
     789                timesc.AgeCOMoleDest[i] = 0.; 
     790        } 
     791 
     792        /* largest fraction of atoms in molecules */ 
     793        for( i=0; i<mole.num_comole_calc; ++i ) 
     794                COmole[i]->xMoleFracMax = 0.; 
     795 
     796        /* zero out molecular species */ 
     797        for( i=0; i < mole.num_comole_tot; i++ ) 
     798        { 
     799                COmole[i]->hevmol = 0.; 
     800                COmole[i]->hevcol = 0.; 
     801        } 
     802} 
     803 
  • branches/newmole/source/mole_co_reactions.cpp

    r684 r689  
    9090        if( gv.lgDustOn && mole.lgGrain_mole_deplete ) 
    9191        { 
     92                /* fprintf(stderr,"REA: %d %d\n",gv.lgDustOn, mole.lgGrain_mole_deplete); */ 
    9293                newreact("COgrn=>CO,grn",ipR_COgrn_CO_grn,vib_evap,1.,1210.,0.);/*   */ 
    9394                newreact("COgrn,CRPHOT=>CO,grn",ipR_COgrn_crnu_CO_grn,crnurate,196./2.17,0.,0.); /*  */ 
  • branches/newmole/source/optimize_func.cpp

    r607 r689  
    1515#include "iso.h" 
    1616#include "taulines.h" 
     17#include "mole.h" 
    1718/* used below to derive chi2 */ 
    1819static double chi2_func(double,double,double); 
     
    8081        /* zero out lots of variables */ 
    8182        zero(); 
     83 
     84        if (!CO_zero_in_zero) 
     85                CO_zero(); 
    8286 
    8387        if( optimize.lgOptimFlow ) 
  • branches/newmole/source/zero.cpp

    r657 r689  
    6666void zero(void) 
    6767{ 
    68         long int i,j, 
     68        long int i, 
    6969          ion, 
    7070          ipISO , 
     
    104104        /* these tell the molecular solver what zone and iteration it have 
    105105         * been evaluated on */ 
    106         CO_Init(); 
    107106        hmole_init(); 
    108107        H2_Init(); 
     
    264263        timesc.time_H2_Form_here = 0.; 
    265264 
    266         if( lgFirstCall) 
    267         { 
    268                 /* do one-time malloc of timesc.AgeCOMoleDest */ 
    269                 timesc.AgeCOMoleDest = (double*)MALLOC( mole.num_comole_calc*sizeof(double) ); 
    270         } 
    271  
    272         for ( j=0; j < mole.num_comole_calc; j++ ) 
    273         { 
    274                 timesc.AgeCOMoleDest[j] = 0.; 
    275         } 
     265        if (CO_zero_in_zero) 
     266                CO_zero(); 
     267 
    276268        timesc.BigCOMoleForm = 0.; 
    277269 
     
    288280        co.COCoolBigFrac = 0.; 
    289281        co.lgCOCoolCaped = FALSE; 
    290         /* largest fraction of atoms in molecules */ 
    291         for( i=0; i<mole.num_comole_calc; ++i ) 
    292                 COmole[i]->xMoleFracMax = 0.; 
    293282 
    294283        /* flag to turn off molecular network */ 
     
    916905        ca.dstCala = 0.; 
    917906 
    918         /* zero out molecular species */ 
    919         for( i=0; i < mole.num_comole_tot; i++ ) 
    920         { 
    921                 COmole[i]->hevmol = 0.; 
    922                 COmole[i]->hevcol = 0.; 
    923         } 
    924907        /* ratio of C12O16 to C13O16 */ 
    925908        co.RatioC12O16_2_C13O16 = 30.;