diff --git a/bld/build-namelist b/bld/build-namelist index a8752ce7af..5ab175590d 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3688,6 +3688,7 @@ if ($do_gw_front_igw) { if ($do_gw_front or $do_gw_front_igw) { add_default($nl, 'frontgfc'); + add_default($nl, 'front_gaussian_width'); } if ($do_gw_convect_dp) { diff --git a/bld/namelist_files/use_cases/sd_waccmx_ma_cam6.xml b/bld/namelist_files/use_cases/sd_waccmx_ma_cam6.xml index c67531174b..6b56c46b17 100644 --- a/bld/namelist_files/use_cases/sd_waccmx_ma_cam6.xml +++ b/bld/namelist_files/use_cases/sd_waccmx_ma_cam6.xml @@ -62,11 +62,11 @@ 0, -1, -24, -24, -120, -24, -120, -240 1, 24, 7, 7, 10, 365, 73, 30 - - - 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', - 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2' 'O', 'O2', 'H', 'NO', 'CO2', 'N', 'O1D', 'Op2P', 'Op2D', 'Op', - 'Np', 'N2p', 'O2p', 'NOp', 'QJOULE', 'SIGMAHAL', 'SIGMAPED', 'SolIonRate_Tot', 'QRS_TOT', 'QO3', 'QCO2', + + + 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', + 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2' 'O', 'O2', 'H', 'NO', 'CO2', 'N', 'O1D', 'Op2P', 'Op2D', 'Op', + 'Np', 'N2p', 'O2p', 'NOp', 'QJOULE', 'SIGMAHAL', 'SIGMAPED', 'SolIonRate_Tot', 'QRS_TOT', 'QO3', 'QCO2', 'QNO', 'QO3P', 'QHC2S', 'QJOULE', 'EKGW', 'TTGW', 'UTGW_TOTAL', 'T_24_COS', 'T_24_SIN', 'T_12_COS', 'T_12_SIN', 'T_08_COS', 'T_08_SIN', 'U_24_COS', 'U_24_SIN', 'U_12_COS', 'U_12_SIN', 'U_08_COS', 'U_08_SIN', @@ -75,49 +75,49 @@ 'ALATM', 'ALONM', 'AOA1', 'AOA2', 'BR', 'BRCL', 'BRO', 'BRONO2', 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH2O', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH3O2', 'CH3OOH', 'CH4', 'CL', 'CL2', 'CL2O2', 'CLDHGH', 'CLDLOW', 'CLDMED', 'CLDTOT', 'CLO', 'CLONO2', 'CLOUD', 'CO', - 'DTCOND', 'DTV', 'DUV', 'DVV', 'FLNS', 'FLNSC', 'FLNT', 'FLNTC','FSDS', 'FSNS', 'FSNSC', 'FSNT', 'FSNTC', - 'H2', 'H2O', 'H2O2', 'HBR', 'HCFC22', 'HCL', 'HNO3', 'HO2', 'HO2NO2', 'HOBR', 'HOCL', 'HORZ', - 'LANDFRAC', 'LHFLX', 'N2O', 'N2O5', 'NO2', 'NO3', 'O3', 'OCLO', 'OCNFRAC', 'OH', 'PHIS', + 'DTCOND', 'DTV', 'DUV', 'DVV', 'FLNS', 'FLNSC', 'FLNT', 'FLNTC','FSDS', 'FSNS', 'FSNSC', 'FSNT', 'FSNTC', + 'H2', 'H2O', 'H2O2', 'HBR', 'HCFC22', 'HCL', 'HNO3', 'HO2', 'HO2NO2', 'HOBR', 'HOCL', 'HORZ', + 'LANDFRAC', 'LHFLX', 'N2O', 'N2O5', 'NO2', 'NO3', 'O3', 'OCLO', 'OCNFRAC', 'OH', 'PHIS', 'PRECC', 'PRECL', 'Q', 'QFLX', 'QRL', 'QRS', 'RELHUM', 'SHFLX', 'SOLIN', 'SWCF', 'QCP', 'QTHERMAL', 'QRL_TOT', 'PSL', 'HNO3_STS', 'HNO3_NAT', 'HNO3_GAS', 'NO_Aircraft', 'NO_Lightning', 'QRS_AUR', 'QRS_CO2NIR', 'QRS_EUV', 'SAD_ICE', 'SAD_LNAT', 'SAD_SULFC', 'TREFHT', - 'VERT', 'VTGWORO', 'VTGWSPEC', 'O2_1S', 'O2_1D', 'NOX', 'NOY', 'CLOX', 'CLOY', 'BROX', 'BROY', - 'TCLY', 'TOTH', 'UIONTEND', 'VIONTEND', 'DTCORE', 'CLDLIQ', 'CLDICE', 'CONCLD', 'FRONTGF:I', - 'BTAUE', 'BTAUW', 'BTAUN', 'BTAUS', 'TAUE', 'TAUW', 'TAUN', 'TAUS', 'TAUGWX', 'TAUGWY', 'TAUX', 'TAUY', + 'VERT', 'VTGWORO', 'VTGWSPEC', 'O2_1S', 'O2_1D', 'NOX', 'NOY', 'CLOX', 'CLOY', 'BROX', 'BROY', + 'TCLY', 'TOTH', 'UIONTEND', 'VIONTEND', 'DTCORE', 'CLDLIQ', 'CLDICE', 'CONCLD', 'FRONTGF:I', + 'BTAUE', 'BTAUW', 'BTAUN', 'BTAUS', 'TAUE', 'TAUW', 'TAUN', 'TAUS', 'TAUGWX', 'TAUGWY', 'TAUX', 'TAUY', 'SNOWHLND', 'SNOWHICE', 'ICEFRAC', 'FSDSC', 'SFNO', 'SFCO', 'SFCH2O', 'CFC11STAR', 'TROPP_FD', 'KVH', 'KVM', 'KVT', 'Qbkgndtot', 'Z3GM', 'OpDens', 'EDens' - - - 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', + + + 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2', 'O', 'O2', 'H' - - - 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', - 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2', 'O', 'O2', 'H', 'NO', 'CO2', 'N', 'O1D', + + + 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', + 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2', 'O', 'O2', 'H', 'NO', 'CO2', 'N', 'O1D', 'Op2P', 'Op2D', 'Op', 'Np', 'N2p', 'O2p', 'NOp', 'QJOULE', 'SIGMAHAL', 'SIGMAPED', 'SolIonRate_Tot', 'Z3GM', 'OpDens', 'EDens' - - - 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', - 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2', 'O', 'O2', 'H', 'NO', 'CO2', 'N', 'QRS_TOT', - 'QO3', 'QCO2', 'QNO', 'QO3P', 'QHC2S', 'QJOULE', 'EKGW', 'TTGW', 'UTGW_TOTAL', + + + 'Z3', 'T', 'TIon', 'TElec', 'e', 'U', 'V', 'OMEGA', 'UI', 'VI', 'WI', 'ElecColDens', 'PHIM2D', 'PS', + 'PED_CONDUCTANCE', 'HALL_CONDUCTANCE', 'ED1', 'ED2', 'O', 'O2', 'H', 'NO', 'CO2', 'N', 'QRS_TOT', + 'QO3', 'QCO2', 'QNO', 'QO3P', 'QHC2S', 'QJOULE', 'EKGW', 'TTGW', 'UTGW_TOTAL', 'SolIonRate_Tot', 'Z3GM', 'OpDens', 'EDens' - - + + 'T_24_COS', 'T_24_SIN', 'T_12_COS', 'T_12_SIN', 'T_08_COS', 'T_08_SIN', 'U_24_COS', 'U_24_SIN', 'U_12_COS', 'U_12_SIN', 'U_08_COS', 'U_08_SIN', 'V_24_COS', 'V_24_SIN', 'V_12_COS', 'V_12_SIN', 'V_08_COS', 'V_08_SIN', 'OMEGA_24_COS', 'OMEGA_24_SIN', 'OMEGA_12_COS', 'OMEGA_12_SIN', 'OMEGA_08_COS', 'OMEGA_08_SIN' - + 'MSKtem','PS','PSL','VTHzm','UVzm','UWzm','Uzm','Vzm','THzm','Wzm','PHIS' - + 'PS', 'PSL', 'U', 'V', 'T', 'Z3', 'PHIS', 'FRONTGF:I', 'OMEGA', 'O3', 'REFF_AERO', 'SAD_AERO', 'so4_a1', 'so4_a2', 'so4_a3', 'AODVISstdn', 'NITROP_PD', @@ -135,9 +135,4 @@ .false. .false. - - 'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + jeuv_14 + jeuv_15 + jeuv_16 +', - 'jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23', - - diff --git a/bld/namelist_files/use_cases/waccmx_ma_2000_cam6.xml b/bld/namelist_files/use_cases/waccmx_ma_2000_cam6.xml index cb86bc0f9c..7052ac83bb 100644 --- a/bld/namelist_files/use_cases/waccmx_ma_2000_cam6.xml +++ b/bld/namelist_files/use_cases/waccmx_ma_2000_cam6.xml @@ -101,9 +101,4 @@ 42 - - 'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + jeuv_14 + jeuv_15 + jeuv_16 +', - 'jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23', - - diff --git a/bld/namelist_files/use_cases/waccmx_ma_hist_cam6.xml b/bld/namelist_files/use_cases/waccmx_ma_hist_cam6.xml index 7075565589..c928b43f28 100644 --- a/bld/namelist_files/use_cases/waccmx_ma_hist_cam6.xml +++ b/bld/namelist_files/use_cases/waccmx_ma_hist_cam6.xml @@ -99,9 +99,4 @@ 42 - - 'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + jeuv_14 + jeuv_15 + jeuv_16 +', - 'jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23', - - diff --git a/doc/ChangeLog b/doc/ChangeLog index 879a1724af..91d25fb0c9 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,158 @@ =============================================================== +Tag name: cam6_3_120 +Originator(s): fvitt +Date: 28 Jul 2023 +One-line Summary: Add O3S diagnostic tracer to WACCM-MA; move gravity wave parameter to namelist +Github PR URL: https://github.com/ESCOMP/CAM/pull/851 + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + + Make frontal gravity wave spectrum half-width a namelist variable (issue #839) + MA chemistry scheme (waccm_ma_mam4) needs O3S (issue #793) + +Describe any changes made to build system: N/A + +Describe any changes made to the namelist: + + New namelist parameter: + front_gaussian_width + Width of gaussian used to create frontogenesis tau profile [m/s]. + Defaults to 30 m/s + +List any changes to the defaults for the boundary datasets: N/A + +Describe any substantial timing or memory changes: N/A + +Code reviewed by: cacraigucar nusbaume + +List all files eliminated: none + +List all files added and what they do: none + +List all existing files that have been modified, and describe the changes: + +M bld/namelist_files/namelist_definition.xml + - new front_gaussian_width namelist parameter + +M bld/build-namelist + - set default front_gaussian_width + +M bld/namelist_files/namelist_defaults_cam.xml + - namelist defaults: + front_gaussian_width + O3S_Loss for WACCM-MA and SolIonRate_Tot for WACCM-X + +M bld/namelist_files/use_cases/sd_waccmx_ma_cam6.xml +M bld/namelist_files/use_cases/waccmx_ma_2000_cam6.xml +M bld/namelist_files/use_cases/waccmx_ma_hist_cam6.xml + - SolIonRate_Tot set by namelist_defaults_cam.xml + +M src/chemistry/pp_waccm_ma_mam5/chem_mech.doc +M src/chemistry/pp_waccm_ma_mam5/chem_mech.in +M src/chemistry/pp_waccm_ma_mam5/chem_mods.F90 +M src/chemistry/pp_waccm_ma_mam5/m_spc_id.F90 +M src/chemistry/pp_waccm_ma_mam5/mo_indprd.F90 +M src/chemistry/pp_waccm_ma_mam5/mo_lin_matrix.F90 +M src/chemistry/pp_waccm_ma_mam5/mo_nln_matrix.F90 +M src/chemistry/pp_waccm_ma_mam5/mo_prod_loss.F90 +M src/chemistry/pp_waccm_ma_mam5/mo_rxt_rates_conv.F90 +M src/chemistry/pp_waccm_ma_mam5/mo_sim_dat.F90 + - add diagnostic tracer O3S (explicit solver) + +M src/physics/cam/gw_drag.F90 + - move hard-wired parameter front_gaussian_width to namelist + +If there were any failures reported from running test_driver.sh on any test +platform, and checkin with these failures has been OK'd by the gatekeeper, +then copy the lines from the td.*.status files for the failed tests to the +appropriate machine below. All failed tests must be justified. + +cheyenne/intel/aux_cam: + + ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 NLCOMP + FAIL ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 RUN time=291 + - pre-existing failure + + ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s COMPARE_base_rest + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + FAIL SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h NLCOMP + FAIL SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + - HEMCO baseline failures due to known issue with HEMCO external + + ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes (Overall: DIFF) details: + FAIL ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes NLCOMP + FAIL ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: FIELDLIST field lists differ (otherwise bit-for-bit) + - new O3S tracer field + + ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie NLCOMP + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_119: DIFF + - difference are due to O3S dry dep velocity surface fields, otherwise bit-for-bit + + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s (Overall: NLFAIL) details: + ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + ERP_Ld3_Vnuopc.f09_f09_mg17.FWHIST.cheyenne_intel.cam-reduced_hist1d (Overall: NLFAIL) details: + ERP_Lh12_Vnuopc.f19_f19_mg17.FW4madSD.cheyenne_intel.cam-outfrq3h (Overall: NLFAIL) details: + ERP_Ln9_Vnuopc.f09_f09_mg17.F2000dev.cheyenne_intel.cam-outfrq9s_mg3 (Overall: NLFAIL) details: + ERP_Ln9_Vnuopc.f19_f19_mg17.FWsc1850.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + ERP_Ln9_Vnuopc.ne30_ne30_mg17.FCnudged.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + ERS_Ld3_Vnuopc.f10_f10_mg37.F1850.cheyenne_intel.cam-outfrq1d_14dec_ghg_cam_dev (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCts2nudged.cheyenne_intel.cam-outfrq9s_leapday (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCvbsxHIST.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s_waccm_ma_mam4 (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC2000climo.cheyenne_intel.cam-outfrq3s_usecase (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc_P720x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc_P720x1.ne30pg3_ne30pg3_mg17.FCLTHIST.cheyenne_intel.cam-outfrq9s (Overall: NLFAIL) details: + SMS_Ld1_Vnuopc.f09_f09_mg17.FW2000climo.cheyenne_intel.cam-outfrq1d (Overall: NLFAIL) details: + SMS_Ld1_Vnuopc.f19_f19.F2000dev.cheyenne_intel.cam-outfrq1d (Overall: NLFAIL) details: + SMS_Ld1_Vnuopc.ne30pg3_ne30pg3_mg17.FC2010climo.cheyenne_intel.cam-outfrq1d (Overall: NLFAIL) details: + SMS_Ln9_Vnuopc.f09_f09_mg17.FW1850.cheyenne_intel.cam-reduced_hist3s (Overall: NLFAIL) details: + - namelist compare failures due to new front_gaussian_width namelist parameter + +izumi/nag/aux_cam: + DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details: + FAIL DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=10 + - pre-existing failure + + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s NLCOMP + FAIL ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_119_nag: FIELDLIST field lists differ (otherwise bit-for-bit) + - new O3S tracer field + + SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s (Overall: NLFAIL) details: + SMS_D_Ln6_Vnuopc.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem (Overall: NLFAIL) details: + - namelist compare failures due to new front_gaussian_width namelist parameter + +izumi/gnu/aux_cam: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags (Overall: NLFAIL) details: + SMS_D_Ln9.f10_f10_mg37.2000_CAM%DEV%GHGMAM4_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_SESP.izumi_gnu.cam-outfrq9s (Overall: NLFAIL) details: + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee (Overall: NLFAIL) details: + SMS_P48x1_D_Ln9_Vnuopc.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s (Overall: NLFAIL) details: + - namelist compare failures due to new front_gaussian_width namelist parameter + +Summarize any changes to answers: bit-for-bit unchanged + +=============================================================== +=============================================================== + Tag name: cam6_3_119 Originator(s): fvitt Date: 19 Jul 2023 diff --git a/src/chemistry/pp_waccm_ma_mam5/chem_mech.doc b/src/chemistry/pp_waccm_ma_mam5/chem_mech.doc index 9a7379e5b2..5712d4ca8a 100644 --- a/src/chemistry/pp_waccm_ma_mam5/chem_mech.doc +++ b/src/chemistry/pp_waccm_ma_mam5/chem_mech.doc @@ -72,37 +72,38 @@ ( 69) O ( 70) O2 ( 71) O3 - ( 72) OCLO (OClO) - ( 73) OCS (OCS) - ( 74) pom_a1 (C) - ( 75) pom_a4 (C) - ( 76) S (S) - ( 77) SF6 - ( 78) SO (SO) - ( 79) SO2 - ( 80) SO3 (SO3) - ( 81) so4_a1 (NH4HSO4) - ( 82) so4_a2 (NH4HSO4) - ( 83) so4_a3 (NH4HSO4) - ( 84) so4_a5 (NH4HSO4) - ( 85) soa_a1 (C) - ( 86) soa_a2 (C) - ( 87) SOAG (C) - ( 88) e (E) - ( 89) HO2 - ( 90) N2D (N) - ( 91) N2p (N2) - ( 92) NOp (NO) - ( 93) Np (N) - ( 94) O1D (O) - ( 95) O2_1D (O2) - ( 96) O2_1S (O2) - ( 97) O2p (O2) - ( 98) OH - ( 99) Op (O) - (100) Op2D (O) - (101) Op2P (O) - (102) H2O + ( 72) O3S (O3) + ( 73) OCLO (OClO) + ( 74) OCS (OCS) + ( 75) pom_a1 (C) + ( 76) pom_a4 (C) + ( 77) S (S) + ( 78) SF6 + ( 79) SO (SO) + ( 80) SO2 + ( 81) SO3 (SO3) + ( 82) so4_a1 (NH4HSO4) + ( 83) so4_a2 (NH4HSO4) + ( 84) so4_a3 (NH4HSO4) + ( 85) so4_a5 (NH4HSO4) + ( 86) soa_a1 (C) + ( 87) soa_a2 (C) + ( 88) SOAG (C) + ( 89) e (E) + ( 90) HO2 + ( 91) N2D (N) + ( 92) N2p (N2) + ( 93) NOp (NO) + ( 94) Np (N) + ( 95) O1D (O) + ( 96) O2_1D (O2) + ( 97) O2_1S (O2) + ( 98) O2p (O2) + ( 99) OH + (100) Op (O) + (101) Op2D (O) + (102) Op2P (O) + (103) H2O Invariant species @@ -116,6 +117,9 @@ Class List ========== + Explicit + -------- + ( 1) O3S Implicit -------- @@ -762,6 +766,7 @@ Extraneous prod/loss species d(O3)/dt = r19*M*O*O2 - j7*O3 - j8*O3 - r8*O1D*O3 - r17*O*O3 - r27*HO2*O3 - r28*H*O3 - r33*OH*O3 - r46*NO2*O3 - r54*NO*O3 - r70*CL*O3 - r102*BR*O3 - r161*S*O3 - r167*SO*O3 + d(O3S)/dt = 0 d(OCLO)/dt = r74*CLO*CLO + r104*BRO*CLO - j59*OCLO - r168*SO*OCLO d(OCS)/dt = - j88*OCS - r157*O*OCS - r158*OH*OCS diff --git a/src/chemistry/pp_waccm_ma_mam5/chem_mech.in b/src/chemistry/pp_waccm_ma_mam5/chem_mech.in index 9d69d3a4f2..8443364166 100644 --- a/src/chemistry/pp_waccm_ma_mam5/chem_mech.in +++ b/src/chemistry/pp_waccm_ma_mam5/chem_mech.in @@ -81,6 +81,7 @@ O, O2, O3, + O3S -> O3, OCLO -> OClO, OCS -> OCS, pom_a1 -> C, @@ -147,7 +148,7 @@ Solution classes Explicit - + O3S End Explicit Implicit @@ -263,398 +264,398 @@ ********************************* *** odd-oxygen ********************************* -[jh2o_b] H2O + hv -> H2 + O1D -[jh2o_c] H2O + hv -> 2*H + O -[jh2o_a] H2O + hv -> OH + H -[jh2o2] H2O2 + hv -> 2*OH -[jo2_b=userdefined,] O2 + hv -> 2*O -[jo2_a=userdefined,] O2 + hv -> O + O1D -[jo3_a] O3 + hv -> O1D + O2_1D -[jo3_b] O3 + hv -> O + O2 +[jh2o_b] H2O + hv -> H2 + O1D +[jh2o_c] H2O + hv -> 2*H + O +[jh2o_a] H2O + hv -> OH + H +[jh2o2] H2O2 + hv -> 2*OH +[jo2_b=userdefined,] O2 + hv -> 2*O +[jo2_a=userdefined,] O2 + hv -> O + O1D +[jo3_a] O3 + hv -> O1D + O2_1D +[jo3_b] O3 + hv -> O + O2 ********************************* *** odd-nitrogen ********************************* -[jhno3] HNO3 + hv -> NO2 + OH -[jho2no2_a] HO2NO2 + hv -> OH + NO3 -[jho2no2_b] HO2NO2 + hv -> NO2 + HO2 -[jn2o] N2O + hv -> O1D + N2 -[jn2o5_a] N2O5 + hv -> NO2 + NO3 -[jn2o5_b] N2O5 + hv -> NO + O + NO3 -[jno=userdefined,] NO + hv -> N + O -[jno_i] NO + hv -> NOp + e -[jno2] NO2 + hv -> NO + O -[jno3_a] NO3 + hv -> NO2 + O -[jno3_b] NO3 + hv -> NO + O2 +[jhno3] HNO3 + hv -> NO2 + OH +[jho2no2_a] HO2NO2 + hv -> OH + NO3 +[jho2no2_b] HO2NO2 + hv -> NO2 + HO2 +[jn2o] N2O + hv -> O1D + N2 +[jn2o5_a] N2O5 + hv -> NO2 + NO3 +[jn2o5_b] N2O5 + hv -> NO + O + NO3 +[jno=userdefined,] NO + hv -> N + O +[jno_i] NO + hv -> NOp + e +[jno2] NO2 + hv -> NO + O +[jno3_a] NO3 + hv -> NO2 + O +[jno3_b] NO3 + hv -> NO + O2 ********************************* *** organics ********************************* -[jch2o_a] CH2O + hv -> CO + 2*H -[jch2o_b] CH2O + hv -> CO + H2 -[jch3ooh] CH3OOH + hv -> CH2O + H + OH -[jch4_a] CH4 + hv -> H + CH3O2 -[jch4_b] CH4 + hv -> 1.44*H2 + 0.18*CH2O + 0.18*O + 0.33*OH + 0.33*H + 0.44*CO2 + 0.38*CO + 0.05*H2O -[jco2] CO2 + hv -> CO + O +[jch2o_a] CH2O + hv -> CO + 2*H +[jch2o_b] CH2O + hv -> CO + H2 +[jch3ooh] CH3OOH + hv -> CH2O + H + OH +[jch4_a] CH4 + hv -> H + CH3O2 +[jch4_b] CH4 + hv -> 1.44*H2 + 0.18*CH2O + 0.18*O + 0.33*OH + 0.33*H + 0.44*CO2 + 0.38*CO + 0.05*H2O +[jco2] CO2 + hv -> CO + O ********************************* *** halogens ********************************* -[jbrcl] BRCL + hv -> BR + CL -[jbro] BRO + hv -> BR + O -[jbrono2_b] BRONO2 + hv -> BRO + NO2 -[jbrono2_a] BRONO2 + hv -> BR + NO3 -[jccl4] CCL4 + hv -> 4*CL -[jcf2clbr] CF2CLBR + hv -> BR + CL + COF2 -[jcf3br] CF3BR + hv -> BR + F + COF2 -[jcfcl3] CFC11 + hv -> 2*CL + COFCL -[jcfc113] CFC113 + hv -> 2*CL + COFCL + COF2 -[jcfc114] CFC114 + hv -> 2*CL + 2*COF2 -[jcfc115] CFC115 + hv -> CL + F + 2*COF2 -[jcf2cl2] CFC12 + hv -> 2*CL + COF2 -[jch2br2] CH2BR2 + hv -> 2*BR -[jch3br] CH3BR + hv -> BR + CH3O2 -[jch3ccl3] CH3CCL3 + hv -> 3*CL -[jch3cl] CH3CL + hv -> CL + CH3O2 -[jchbr3] CHBR3 + hv -> 3*BR -[jcl2] CL2 + hv -> 2*CL -[jcl2o2] CL2O2 + hv -> 2*CL -[jclo] CLO + hv -> CL + O -[jclono2_a] CLONO2 + hv -> CL + NO3 -[jclono2_b] CLONO2 + hv -> CLO + NO2 -[jcof2] COF2 + hv -> 2*F -[jcofcl] COFCL + hv -> F + CL -[jh2402] H2402 + hv -> 2*BR + 2*COF2 -[jhbr] HBR + hv -> BR + H -[jhcfc141b] HCFC141B + hv -> CL + COFCL -[jhcfc142b] HCFC142B + hv -> CL + COF2 -[jhcfc22] HCFC22 + hv -> CL + COF2 -[jhcl] HCL + hv -> H + CL -[jhf] HF + hv -> H + F -[jhobr] HOBR + hv -> BR + OH -[jhocl] HOCL + hv -> OH + CL -[joclo] OCLO + hv -> O + CLO -[jsf6] SF6 + hv -> sink +[jbrcl] BRCL + hv -> BR + CL +[jbro] BRO + hv -> BR + O +[jbrono2_b] BRONO2 + hv -> BRO + NO2 +[jbrono2_a] BRONO2 + hv -> BR + NO3 +[jccl4] CCL4 + hv -> 4*CL +[jcf2clbr] CF2CLBR + hv -> BR + CL + COF2 +[jcf3br] CF3BR + hv -> BR + F + COF2 +[jcfcl3] CFC11 + hv -> 2*CL + COFCL +[jcfc113] CFC113 + hv -> 2*CL + COFCL + COF2 +[jcfc114] CFC114 + hv -> 2*CL + 2*COF2 +[jcfc115] CFC115 + hv -> CL + F + 2*COF2 +[jcf2cl2] CFC12 + hv -> 2*CL + COF2 +[jch2br2] CH2BR2 + hv -> 2*BR +[jch3br] CH3BR + hv -> BR + CH3O2 +[jch3ccl3] CH3CCL3 + hv -> 3*CL +[jch3cl] CH3CL + hv -> CL + CH3O2 +[jchbr3] CHBR3 + hv -> 3*BR +[jcl2] CL2 + hv -> 2*CL +[jcl2o2] CL2O2 + hv -> 2*CL +[jclo] CLO + hv -> CL + O +[jclono2_a] CLONO2 + hv -> CL + NO3 +[jclono2_b] CLONO2 + hv -> CLO + NO2 +[jcof2] COF2 + hv -> 2*F +[jcofcl] COFCL + hv -> F + CL +[jh2402] H2402 + hv -> 2*BR + 2*COF2 +[jhbr] HBR + hv -> BR + H +[jhcfc141b] HCFC141B + hv -> CL + COFCL +[jhcfc142b] HCFC142B + hv -> CL + COF2 +[jhcfc22] HCFC22 + hv -> CL + COF2 +[jhcl] HCL + hv -> H + CL +[jhf] HF + hv -> H + F +[jhobr] HOBR + hv -> BR + OH +[jhocl] HOCL + hv -> OH + CL +[joclo] OCLO + hv -> O + CLO +[jsf6] SF6 + hv -> sink ********************************* *** ions ********************************* -[jeuv_26=userdefined,userdefined] CO2 + hv -> CO + O -[jeuv_4=userdefined,userdefined] N + hv -> Np + e -[jeuv_6=userdefined,userdefined] N2 + hv -> N2p + e -[jeuv_22=userdefined,userdefined] N2 + hv -> N + Np + e -[jeuv_23=userdefined,userdefined] N2 + hv -> N2D + Np + e -[jeuv_25=userdefined,userdefined] N2 + hv -> 1.2*N2D + 0.8*N -[jeuv_18=userdefined,userdefined] N2 + hv -> N2p + e -[jeuv_13=userdefined,userdefined] N2 + hv -> 1.2*N2D + 0.8*N -[jeuv_11=userdefined,userdefined] N2 + hv -> N2D + Np + e -[jeuv_10=userdefined,userdefined] N2 + hv -> N + Np + e -[jeuv_3=userdefined,userdefined] O + hv -> Op2P + e -[jeuv_16=userdefined,userdefined] O + hv -> Op2P + e -[jeuv_1=userdefined,userdefined] O + hv -> Op + e -[jeuv_14=userdefined,userdefined] O + hv -> Op + e -[jeuv_2=userdefined,userdefined] O + hv -> Op2D + e -[jeuv_15=userdefined,userdefined] O + hv -> Op2D + e -[jeuv_21=userdefined,userdefined] O2 + hv -> O + Op2P + e -[jeuv_17=userdefined,userdefined] O2 + hv -> O2p + e -[jeuv_7=userdefined,userdefined] O2 + hv -> O + Op + e -[jeuv_5=userdefined,userdefined] O2 + hv -> O2p + e -[jeuv_19=userdefined,userdefined] O2 + hv -> O + Op + e -[jeuv_24=userdefined,userdefined] O2 + hv -> 2*O -[jeuv_12=userdefined,userdefined] O2 + hv -> 2*O -[jeuv_9=userdefined,userdefined] O2 + hv -> O + Op2P + e -[jeuv_8=userdefined,userdefined] O2 + hv -> O + Op2D + e -[jeuv_20=userdefined,userdefined] O2 + hv -> O + Op2D + e +[jeuv_26=userdefined,userdefined] CO2 + hv -> CO + O +[jeuv_4=userdefined,userdefined] N + hv -> Np + e +[jeuv_6=userdefined,userdefined] N2 + hv -> N2p + e +[jeuv_22=userdefined,userdefined] N2 + hv -> N + Np + e +[jeuv_23=userdefined,userdefined] N2 + hv -> N2D + Np + e +[jeuv_25=userdefined,userdefined] N2 + hv -> 1.2*N2D + 0.8*N +[jeuv_18=userdefined,userdefined] N2 + hv -> N2p + e +[jeuv_13=userdefined,userdefined] N2 + hv -> 1.2*N2D + 0.8*N +[jeuv_11=userdefined,userdefined] N2 + hv -> N2D + Np + e +[jeuv_10=userdefined,userdefined] N2 + hv -> N + Np + e +[jeuv_3=userdefined,userdefined] O + hv -> Op2P + e +[jeuv_16=userdefined,userdefined] O + hv -> Op2P + e +[jeuv_1=userdefined,userdefined] O + hv -> Op + e +[jeuv_14=userdefined,userdefined] O + hv -> Op + e +[jeuv_2=userdefined,userdefined] O + hv -> Op2D + e +[jeuv_15=userdefined,userdefined] O + hv -> Op2D + e +[jeuv_21=userdefined,userdefined] O2 + hv -> O + Op2P + e +[jeuv_17=userdefined,userdefined] O2 + hv -> O2p + e +[jeuv_7=userdefined,userdefined] O2 + hv -> O + Op + e +[jeuv_5=userdefined,userdefined] O2 + hv -> O2p + e +[jeuv_19=userdefined,userdefined] O2 + hv -> O + Op + e +[jeuv_24=userdefined,userdefined] O2 + hv -> 2*O +[jeuv_12=userdefined,userdefined] O2 + hv -> 2*O +[jeuv_9=userdefined,userdefined] O2 + hv -> O + Op2P + e +[jeuv_8=userdefined,userdefined] O2 + hv -> O + Op2D + e +[jeuv_20=userdefined,userdefined] O2 + hv -> O + Op2D + e ********************************* *** sulfur ********************************* -[jh2so4] H2SO4 + hv -> SO3 + H2O -[jocs] OCS + hv -> S + CO -[jso] SO + hv -> S + O -[jso2] SO2 + hv -> SO + O -[jso3] SO3 + hv -> SO2 + O +[jh2so4] H2SO4 + hv -> SO3 + H2O +[jocs] OCS + hv -> S + CO +[jso] SO + hv -> S + O +[jso2] SO2 + hv -> SO + O +[jso3] SO3 + hv -> SO2 + O End Photolysis Reactions ********************************* *** odd-oxygen ********************************* -[ag1] O2_1D -> O2 ; 0.000258 -[ag2] O2_1S -> O2 ; 0.085 -[O1D_H2] O1D + H2 -> H + OH ; 1.2e-10 -[O1D_H2O] O1D + H2O -> 2*OH ; 1.63e-10, 60 -[O1D_N2,cph=189.81] O1D + N2 -> O + N2 ; 2.15e-11, 110 -[O1D_O2,cph=32.91] O1D + O2 -> O + O2_1S ; 2.64e-11, 55 -[O1D_O2b,cph=189.81] O1D + O2 -> O + O2 ; 6.6e-12, 55 -[O1D_O3] O1D + O3 -> O2 + O2 ; 1.2e-10 -[O2_1D_N2,cph=94.3] O2_1D + N2 -> O2 + N2 ; 1e-20 -[O2_1D_O,cph=94.3] O2_1D + O -> O2 + O ; 1.3e-16 -[O2_1D_O2,cph=94.3] O2_1D + O2 -> 2*O2 ; 3.6e-18, -220 -[O2_1S_CO2] O2_1S + CO2 -> O2_1D + CO2 ; 4.2e-13 -[O2_1S_N2,cph=62.6] O2_1S + N2 -> O2_1D + N2 ; 1.8e-15, 45 -[O2_1S_O,cph=62.6] O2_1S + O -> O2_1D + O ; 8e-14 -[O2_1S_O2,cph=62.6] O2_1S + O2 -> O2_1D + O2 ; 3.9e-17 -[O2_1S_O3,cph=62.6] O2_1S + O3 -> O2_1D + O3 ; 3.5e-11, -135 -[O_O3,cph=392.19] O + O3 -> 2*O2 ; 8e-12, -2060 -[usr_O_O,cph=493.58] O + O + M -> O2 + M -[usr_O_O2,cph=101.39] O + O2 + M -> O3 + M +[ag1] O2_1D -> O2 ; 0.000258 +[ag2] O2_1S -> O2 ; 0.085 +[O1D_H2] O1D + H2 -> H + OH ; 1.2e-10 +[O1D_H2O] O1D + H2O -> 2*OH ; 1.63e-10, 60 +[O1D_N2,cph=189.81] O1D + N2 -> O + N2 ; 2.15e-11, 110 +[O1D_O2,cph=32.91] O1D + O2 -> O + O2_1S ; 2.64e-11, 55 +[O1D_O2b,cph=189.81] O1D + O2 -> O + O2 ; 6.6e-12, 55 +[O1D_O3] O1D + O3 -> O2 + O2 ; 1.2e-10 +[O2_1D_N2,cph=94.3] O2_1D + N2 -> O2 + N2 ; 1e-20 +[O2_1D_O,cph=94.3] O2_1D + O -> O2 + O ; 1.3e-16 +[O2_1D_O2,cph=94.3] O2_1D + O2 -> 2*O2 ; 3.6e-18, -220 +[O2_1S_CO2] O2_1S + CO2 -> O2_1D + CO2 ; 4.2e-13 +[O2_1S_N2,cph=62.6] O2_1S + N2 -> O2_1D + N2 ; 1.8e-15, 45 +[O2_1S_O,cph=62.6] O2_1S + O -> O2_1D + O ; 8e-14 +[O2_1S_O2,cph=62.6] O2_1S + O2 -> O2_1D + O2 ; 3.9e-17 +[O2_1S_O3,cph=62.6] O2_1S + O3 -> O2_1D + O3 ; 3.5e-11, -135 +[O_O3,cph=392.19] O + O3 -> 2*O2 ; 8e-12, -2060 +[usr_O_O,cph=493.58] O + O + M -> O2 + M +[usr_O_O2,cph=101.39] O + O2 + M -> O3 + M ********************************* *** odd-hydrogen ********************************* -[H2_O] H2 + O -> OH + H ; 1.6e-11, -4570 -[H2O2_O] H2O2 + O -> OH + HO2 ; 1.4e-12, -2000 -[H_HO2,cph=232.59] H + HO2 -> H2 + O2 ; 6.9e-12 -[H_HO2a] H + HO2 -> 2*OH ; 7.2e-11 -[H_HO2b] H + HO2 -> H2O + O ; 1.6e-12 -[H_O2,cph=203.4] H + O2 + M -> HO2 + M ; 5.3e-32, 1.8, 9.5e-11, -0.4, 0.6 -[HO2_O,cph=226.58] HO2 + O -> OH + O2 ; 3e-11, 200 -[HO2_O3,cph=120.1] HO2 + O3 -> OH + 2*O2 ; 1e-14, -490 -[H_O3,cph=194.71] H + O3 -> OH + O2 ; 1.4e-10, -470 -[OH_H2] OH + H2 -> H2O + H ; 2.8e-12, -1800 -[OH_H2O2] OH + H2O2 -> H2O + HO2 ; 1.8e-12 -[OH_HO2,cph=293.62] OH + HO2 -> H2O + O2 ; 4.8e-11, 250 -[OH_O,cph=67.67] OH + O -> H + O2 ; 1.8e-11, 180 -[OH_O3,cph=165.3] OH + O3 -> HO2 + O2 ; 1.7e-12, -940 -[OH_OH] OH + OH -> H2O + O ; 1.8e-12 -[OH_OH_M] OH + OH + M -> H2O2 + M ; 6.9e-31, 1, 2.6e-11, 0, 0.6 -[usr_HO2_HO2,cph=165.51] HO2 + HO2 -> H2O2 + O2 +[H2_O] H2 + O -> OH + H ; 1.6e-11, -4570 +[H2O2_O] H2O2 + O -> OH + HO2 ; 1.4e-12, -2000 +[H_HO2,cph=232.59] H + HO2 -> H2 + O2 ; 6.9e-12 +[H_HO2a] H + HO2 -> 2*OH ; 7.2e-11 +[H_HO2b] H + HO2 -> H2O + O ; 1.6e-12 +[H_O2,cph=203.4] H + O2 + M -> HO2 + M ; 5.3e-32, 1.8, 9.5e-11, -0.4, 0.6 +[HO2_O,cph=226.58] HO2 + O -> OH + O2 ; 3e-11, 200 +[HO2_O3,cph=120.1] HO2 + O3 -> OH + 2*O2 ; 1e-14, -490 +[H_O3,cph=194.71] H + O3 -> OH + O2 ; 1.4e-10, -470 +[OH_H2] OH + H2 -> H2O + H ; 2.8e-12, -1800 +[OH_H2O2] OH + H2O2 -> H2O + HO2 ; 1.8e-12 +[OH_HO2,cph=293.62] OH + HO2 -> H2O + O2 ; 4.8e-11, 250 +[OH_O,cph=67.67] OH + O -> H + O2 ; 1.8e-11, 180 +[OH_O3,cph=165.3] OH + O3 -> HO2 + O2 ; 1.7e-12, -940 +[OH_OH] OH + OH -> H2O + O ; 1.8e-12 +[OH_OH_M] OH + OH + M -> H2O2 + M ; 6.9e-31, 1, 2.6e-11, 0, 0.6 +[usr_HO2_HO2,cph=165.51] HO2 + HO2 -> H2O2 + O2 ********************************* *** odd-nitrogen ********************************* -[HO2NO2_OH] HO2NO2 + OH -> H2O + NO2 + O2 ; 4.5e-13, 610 -[N2D_O,cph=229.61] N2D + O -> N + O ; 7e-13 -[N2D_O2,cph=177.51] N2D + O2 -> NO + O1D ; 5e-12 -[N_NO,cph=313.75] N + NO -> N2 + O ; 2.1e-11, 100 -[N_NO2a] N + NO2 -> N2O + O ; 2.9e-12, 220 -[N_NO2b] N + NO2 -> 2*NO ; 1.45e-12, 220 -[N_NO2c] N + NO2 -> N2 + O2 ; 1.45e-12, 220 -[N_O2,cph=133.75] N + O2 -> NO + O ; 3.3e-12, -3150 -[NO2_O,cph=193.02] NO2 + O -> NO + O2 ; 5.1e-12, 210 -[NO2_O3] NO2 + O3 -> NO3 + O2 ; 1.2e-13, -2450 -[NO2_O_M] NO2 + O + M -> NO3 + M ; 2.5e-31, 1.8, 2.2e-11, 0.7, 0.6 -[NO3_HO2] NO3 + HO2 -> OH + NO2 + O2 ; 3.5e-12 -[NO3_NO] NO3 + NO -> 2*NO2 ; 1.7e-11, 125 -[NO3_O] NO3 + O -> NO2 + O2 ; 1.3e-11 -[NO3_OH] NO3 + OH -> HO2 + NO2 ; 2.2e-11 -[N_OH] N + OH -> NO + H ; 5e-11 -[NO_HO2,cph=34.47] NO + HO2 -> NO2 + OH ; 3.44e-12, 260 -[NO_O3,cph=199.17] NO + O3 -> NO2 + O2 ; 3e-12, -1500 -[NO_O_M] NO + O + M -> NO2 + M ; 9e-32, 1.5, 3e-11, 0, 0.6 -[O1D_N2Oa] O1D + N2O -> 2*NO ; 7.26e-11, 20 -[O1D_N2Ob] O1D + N2O -> N2 + O2 ; 4.64e-11, 20 -[tag_NO2_HO2] NO2 + HO2 + M -> HO2NO2 + M ; 1.9e-31, 3.4, 4e-12, 0.3, 0.6 -[tag_NO2_NO3] NO2 + NO3 + M -> N2O5 + M ; 2.4e-30, 3, 1.6e-12, -0.1, 0.6 -[tag_NO2_OH] NO2 + OH + M -> HNO3 + M ; 1.8e-30, 3, 2.8e-11, 0, 0.6 -[usr_HNO3_OH] HNO3 + OH -> NO3 + H2O -[usr_HO2NO2_M] HO2NO2 + M -> HO2 + NO2 + M -[usr_N2O5_M] N2O5 + M -> NO2 + NO3 + M +[HO2NO2_OH] HO2NO2 + OH -> H2O + NO2 + O2 ; 4.5e-13, 610 +[N2D_O,cph=229.61] N2D + O -> N + O ; 7e-13 +[N2D_O2,cph=177.51] N2D + O2 -> NO + O1D ; 5e-12 +[N_NO,cph=313.75] N + NO -> N2 + O ; 2.1e-11, 100 +[N_NO2a] N + NO2 -> N2O + O ; 2.9e-12, 220 +[N_NO2b] N + NO2 -> 2*NO ; 1.45e-12, 220 +[N_NO2c] N + NO2 -> N2 + O2 ; 1.45e-12, 220 +[N_O2,cph=133.75] N + O2 -> NO + O ; 3.3e-12, -3150 +[NO2_O,cph=193.02] NO2 + O -> NO + O2 ; 5.1e-12, 210 +[NO2_O3] NO2 + O3 -> NO3 + O2 ; 1.2e-13, -2450 +[NO2_O_M] NO2 + O + M -> NO3 + M ; 2.5e-31, 1.8, 2.2e-11, 0.7, 0.6 +[NO3_HO2] NO3 + HO2 -> OH + NO2 + O2 ; 3.5e-12 +[NO3_NO] NO3 + NO -> 2*NO2 ; 1.7e-11, 125 +[NO3_O] NO3 + O -> NO2 + O2 ; 1.3e-11 +[NO3_OH] NO3 + OH -> HO2 + NO2 ; 2.2e-11 +[N_OH] N + OH -> NO + H ; 5e-11 +[NO_HO2,cph=34.47] NO + HO2 -> NO2 + OH ; 3.44e-12, 260 +[NO_O3,cph=199.17] NO + O3 -> NO2 + O2 ; 3e-12, -1500 +[NO_O_M] NO + O + M -> NO2 + M ; 9e-32, 1.5, 3e-11, 0, 0.6 +[O1D_N2Oa] O1D + N2O -> 2*NO ; 7.26e-11, 20 +[O1D_N2Ob] O1D + N2O -> N2 + O2 ; 4.64e-11, 20 +[tag_NO2_HO2] NO2 + HO2 + M -> HO2NO2 + M ; 1.9e-31, 3.4, 4e-12, 0.3, 0.6 +[tag_NO2_NO3] NO2 + NO3 + M -> N2O5 + M ; 2.4e-30, 3, 1.6e-12, -0.1, 0.6 +[tag_NO2_OH] NO2 + OH + M -> HNO3 + M ; 1.8e-30, 3, 2.8e-11, 0, 0.6 +[usr_HNO3_OH] HNO3 + OH -> NO3 + H2O +[usr_HO2NO2_M] HO2NO2 + M -> HO2 + NO2 + M +[usr_N2O5_M] N2O5 + M -> NO2 + NO3 + M ********************************* *** odd-chlorine ********************************* -[CL_CH2O] CL + CH2O -> HCL + HO2 + CO ; 8.1e-11, -30 -[CL_CH4] CL + CH4 -> CH3O2 + HCL ; 7.1e-12, -1270 -[CL_H2] CL + H2 -> HCL + H ; 3.05e-11, -2270 -[CL_H2O2] CL + H2O2 -> HCL + HO2 ; 1.1e-11, -980 -[CL_HO2a] CL + HO2 -> HCL + O2 ; 1.4e-11, 270 -[CL_HO2b] CL + HO2 -> OH + CLO ; 3.6e-11, -375 -[CL_O3] CL + O3 -> CLO + O2 ; 2.3e-11, -200 -[CLO_CH3O2] CLO + CH3O2 -> CL + HO2 + CH2O ; 3.3e-12, -115 -[CLO_CLOa] CLO + CLO -> 2*CL + O2 ; 3e-11, -2450 -[CLO_CLOb] CLO + CLO -> CL2 + O2 ; 1e-12, -1590 -[CLO_CLOc] CLO + CLO -> CL + OCLO ; 3.5e-13, -1370 -[CLO_HO2] CLO + HO2 -> O2 + HOCL ; 2.6e-12, 290 -[CLO_NO] CLO + NO -> NO2 + CL ; 6.4e-12, 290 -[CLONO2_CL] CLONO2 + CL -> CL2 + NO3 ; 6.5e-12, 135 -[CLO_NO2_M] CLO + NO2 + M -> CLONO2 + M ; 1.8e-31, 3.4, 1.5e-11, 1.9, 0.6 -[CLONO2_O] CLONO2 + O -> CLO + NO3 ; 3.6e-12, -840 -[CLONO2_OH] CLONO2 + OH -> HOCL + NO3 ; 1.2e-12, -330 -[CLO_O] CLO + O -> CL + O2 ; 2.8e-11, 85 -[CLO_OHa] CLO + OH -> CL + HO2 ; 7.4e-12, 270 -[CLO_OHb] CLO + OH -> HCL + O2 ; 6e-13, 230 -[HCL_O] HCL + O -> CL + OH ; 1e-11, -3300 -[HCL_OH] HCL + OH -> H2O + CL ; 1.8e-12, -250 -[HOCL_CL] HOCL + CL -> HCL + CLO ; 3.4e-12, -130 -[HOCL_O] HOCL + O -> CLO + OH ; 1.7e-13 -[HOCL_OH] HOCL + OH -> H2O + CLO ; 3e-12, -500 -[O1D_CCL4] O1D + CCL4 -> 4*CL ; 2.607e-10 -[O1D_CF2CLBR] O1D + CF2CLBR -> CL + BR + COF2 ; 9.75e-11 -[O1D_CFC11] O1D + CFC11 -> 2*CL + COFCL ; 2.07e-10 -[O1D_CFC113] O1D + CFC113 -> 2*CL + COFCL + COF2 ; 2.088e-10 -[O1D_CFC114] O1D + CFC114 -> 2*CL + 2*COF2 ; 1.17e-10 -[O1D_CFC115] O1D + CFC115 -> CL + F + 2*COF2 ; 4.644e-11 -[O1D_CFC12] O1D + CFC12 -> 2*CL + COF2 ; 1.204e-10 -[O1D_HCLa] O1D + HCL -> CL + OH ; 9.9e-11 -[O1D_HCLb] O1D + HCL -> CLO + H ; 3.3e-12 -[tag_CLO_CLO_M] CLO + CLO + M -> CL2O2 + M ; 1.9e-32, 3.6, 3.7e-12, 1.6, 0.6 -[usr_CL2O2_M] CL2O2 + M -> CLO + CLO + M +[CL_CH2O] CL + CH2O -> HCL + HO2 + CO ; 8.1e-11, -30 +[CL_CH4] CL + CH4 -> CH3O2 + HCL ; 7.1e-12, -1270 +[CL_H2] CL + H2 -> HCL + H ; 3.05e-11, -2270 +[CL_H2O2] CL + H2O2 -> HCL + HO2 ; 1.1e-11, -980 +[CL_HO2a] CL + HO2 -> HCL + O2 ; 1.4e-11, 270 +[CL_HO2b] CL + HO2 -> OH + CLO ; 3.6e-11, -375 +[CL_O3] CL + O3 -> CLO + O2 ; 2.3e-11, -200 +[CLO_CH3O2] CLO + CH3O2 -> CL + HO2 + CH2O ; 3.3e-12, -115 +[CLO_CLOa] CLO + CLO -> 2*CL + O2 ; 3e-11, -2450 +[CLO_CLOb] CLO + CLO -> CL2 + O2 ; 1e-12, -1590 +[CLO_CLOc] CLO + CLO -> CL + OCLO ; 3.5e-13, -1370 +[CLO_HO2] CLO + HO2 -> O2 + HOCL ; 2.6e-12, 290 +[CLO_NO] CLO + NO -> NO2 + CL ; 6.4e-12, 290 +[CLONO2_CL] CLONO2 + CL -> CL2 + NO3 ; 6.5e-12, 135 +[CLO_NO2_M] CLO + NO2 + M -> CLONO2 + M ; 1.8e-31, 3.4, 1.5e-11, 1.9, 0.6 +[CLONO2_O] CLONO2 + O -> CLO + NO3 ; 3.6e-12, -840 +[CLONO2_OH] CLONO2 + OH -> HOCL + NO3 ; 1.2e-12, -330 +[CLO_O] CLO + O -> CL + O2 ; 2.8e-11, 85 +[CLO_OHa] CLO + OH -> CL + HO2 ; 7.4e-12, 270 +[CLO_OHb] CLO + OH -> HCL + O2 ; 6e-13, 230 +[HCL_O] HCL + O -> CL + OH ; 1e-11, -3300 +[HCL_OH] HCL + OH -> H2O + CL ; 1.8e-12, -250 +[HOCL_CL] HOCL + CL -> HCL + CLO ; 3.4e-12, -130 +[HOCL_O] HOCL + O -> CLO + OH ; 1.7e-13 +[HOCL_OH] HOCL + OH -> H2O + CLO ; 3e-12, -500 +[O1D_CCL4] O1D + CCL4 -> 4*CL ; 2.607e-10 +[O1D_CF2CLBR] O1D + CF2CLBR -> CL + BR + COF2 ; 9.75e-11 +[O1D_CFC11] O1D + CFC11 -> 2*CL + COFCL ; 2.07e-10 +[O1D_CFC113] O1D + CFC113 -> 2*CL + COFCL + COF2 ; 2.088e-10 +[O1D_CFC114] O1D + CFC114 -> 2*CL + 2*COF2 ; 1.17e-10 +[O1D_CFC115] O1D + CFC115 -> CL + F + 2*COF2 ; 4.644e-11 +[O1D_CFC12] O1D + CFC12 -> 2*CL + COF2 ; 1.204e-10 +[O1D_HCLa] O1D + HCL -> CL + OH ; 9.9e-11 +[O1D_HCLb] O1D + HCL -> CLO + H ; 3.3e-12 +[tag_CLO_CLO_M] CLO + CLO + M -> CL2O2 + M ; 1.9e-32, 3.6, 3.7e-12, 1.6, 0.6 +[usr_CL2O2_M] CL2O2 + M -> CLO + CLO + M ********************************* *** odd-bromine ********************************* -[BR_CH2O] BR + CH2O -> HBR + HO2 + CO ; 1.7e-11, -800 -[BR_HO2] BR + HO2 -> HBR + O2 ; 4.8e-12, -310 -[BR_O3] BR + O3 -> BRO + O2 ; 1.6e-11, -780 -[BRO_BRO] BRO + BRO -> 2*BR + O2 ; 1.5e-12, 230 -[BRO_CLOa] BRO + CLO -> BR + OCLO ; 9.5e-13, 550 -[BRO_CLOb] BRO + CLO -> BR + CL + O2 ; 2.3e-12, 260 -[BRO_CLOc] BRO + CLO -> BRCL + O2 ; 4.1e-13, 290 -[BRO_HO2] BRO + HO2 -> HOBR + O2 ; 4.5e-12, 460 -[BRO_NO] BRO + NO -> BR + NO2 ; 8.8e-12, 260 -[BRO_NO2_M] BRO + NO2 + M -> BRONO2 + M ; 5.2e-31, 3.2, 6.9e-12, 2.9, 0.6 -[BRONO2_O] BRONO2 + O -> BRO + NO3 ; 1.9e-11, 215 -[BRO_O] BRO + O -> BR + O2 ; 1.9e-11, 230 -[BRO_OH] BRO + OH -> BR + HO2 ; 1.7e-11, 250 -[HBR_O] HBR + O -> BR + OH ; 5.8e-12, -1500 -[HBR_OH] HBR + OH -> BR + H2O ; 5.5e-12, 200 -[HOBR_O] HOBR + O -> BRO + OH ; 1.2e-10, -430 -[O1D_CF3BR] O1D + CF3BR -> BR + F + COF2 ; 4.5e-11 -[O1D_CHBR3] O1D + CHBR3 -> 3*BR ; 4.62e-10 -[O1D_H2402] O1D + H2402 -> 2*BR + 2*COF2 ; 1.2e-10 -[O1D_HBRa] O1D + HBR -> BR + OH ; 9e-11 -[O1D_HBRb] O1D + HBR -> BRO + H ; 3e-11 +[BR_CH2O] BR + CH2O -> HBR + HO2 + CO ; 1.7e-11, -800 +[BR_HO2] BR + HO2 -> HBR + O2 ; 4.8e-12, -310 +[BR_O3] BR + O3 -> BRO + O2 ; 1.6e-11, -780 +[BRO_BRO] BRO + BRO -> 2*BR + O2 ; 1.5e-12, 230 +[BRO_CLOa] BRO + CLO -> BR + OCLO ; 9.5e-13, 550 +[BRO_CLOb] BRO + CLO -> BR + CL + O2 ; 2.3e-12, 260 +[BRO_CLOc] BRO + CLO -> BRCL + O2 ; 4.1e-13, 290 +[BRO_HO2] BRO + HO2 -> HOBR + O2 ; 4.5e-12, 460 +[BRO_NO] BRO + NO -> BR + NO2 ; 8.8e-12, 260 +[BRO_NO2_M] BRO + NO2 + M -> BRONO2 + M ; 5.2e-31, 3.2, 6.9e-12, 2.9, 0.6 +[BRONO2_O] BRONO2 + O -> BRO + NO3 ; 1.9e-11, 215 +[BRO_O] BRO + O -> BR + O2 ; 1.9e-11, 230 +[BRO_OH] BRO + OH -> BR + HO2 ; 1.7e-11, 250 +[HBR_O] HBR + O -> BR + OH ; 5.8e-12, -1500 +[HBR_OH] HBR + OH -> BR + H2O ; 5.5e-12, 200 +[HOBR_O] HOBR + O -> BRO + OH ; 1.2e-10, -430 +[O1D_CF3BR] O1D + CF3BR -> BR + F + COF2 ; 4.5e-11 +[O1D_CHBR3] O1D + CHBR3 -> 3*BR ; 4.62e-10 +[O1D_H2402] O1D + H2402 -> 2*BR + 2*COF2 ; 1.2e-10 +[O1D_HBRa] O1D + HBR -> BR + OH ; 9e-11 +[O1D_HBRb] O1D + HBR -> BRO + H ; 3e-11 ********************************* *** odd-fluorine ********************************* -[F_CH4] F + CH4 -> HF + CH3O2 ; 1.6e-10, -260 -[F_H2] F + H2 -> HF + H ; 1.4e-10, -500 -[F_H2O] F + H2O -> HF + OH ; 1.4e-11, 0 -[F_HNO3] F + HNO3 -> HF + NO3 ; 6e-12, 400 -[O1D_COF2] O1D + COF2 -> 2*F ; 2.14e-11 -[O1D_COFCL] O1D + COFCL -> F + CL ; 1.9e-10 +[F_CH4] F + CH4 -> HF + CH3O2 ; 1.6e-10, -260 +[F_H2] F + H2 -> HF + H ; 1.4e-10, -500 +[F_H2O] F + H2O -> HF + OH ; 1.4e-11, 0 +[F_HNO3] F + HNO3 -> HF + NO3 ; 6e-12, 400 +[O1D_COF2] O1D + COF2 -> 2*F ; 2.14e-11 +[O1D_COFCL] O1D + COFCL -> F + CL ; 1.9e-10 ********************************* *** organic-halogens ********************************* -[CH2BR2_CL] CH2BR2 + CL -> 2*BR + HCL ; 6.3e-12, -800 -[CH2BR2_OH] CH2BR2 + OH -> 2*BR + H2O ; 2e-12, -840 -[CH3BR_CL] CH3BR + CL -> HCL + HO2 + BR ; 1.46e-11, -1040 -[CH3BR_OH] CH3BR + OH -> BR + H2O + HO2 ; 1.42e-12, -1150 -[CH3CCL3_OH] CH3CCL3 + OH -> H2O + 3*CL ; 1.64e-12, -1520 -[CH3CL_CL] CH3CL + CL -> HO2 + CO + 2*HCL ; 2.03e-11, -1110 -[CH3CL_OH] CH3CL + OH -> CL + H2O + HO2 ; 1.96e-12, -1200 -[CHBR3_CL] CHBR3 + CL -> 3*BR + HCL ; 4.85e-12, -850 -[CHBR3_OH] CHBR3 + OH -> 3*BR ; 9e-13, -360 -[HCFC141B_OH] HCFC141B + OH -> CL + COFCL ; 1.25e-12, -1600 -[HCFC142B_OH] HCFC142B + OH -> CL + COF2 ; 1.3e-12, -1770 -[HCFC22_OH] HCFC22 + OH -> H2O + CL + COF2 ; 9.2e-13, -1560 -[O1D_CH2BR2] O1D + CH2BR2 -> 2*BR ; 2.57e-10 -[O1D_CH3BR] O1D + CH3BR -> BR ; 1.8e-10 -[O1D_HCFC141B] O1D + HCFC141B -> CL + COFCL ; 1.794e-10 -[O1D_HCFC142B] O1D + HCFC142B -> CL + COF2 ; 1.3e-10 -[O1D_HCFC22] O1D + HCFC22 -> CL + COF2 ; 7.65e-11 +[CH2BR2_CL] CH2BR2 + CL -> 2*BR + HCL ; 6.3e-12, -800 +[CH2BR2_OH] CH2BR2 + OH -> 2*BR + H2O ; 2e-12, -840 +[CH3BR_CL] CH3BR + CL -> HCL + HO2 + BR ; 1.46e-11, -1040 +[CH3BR_OH] CH3BR + OH -> BR + H2O + HO2 ; 1.42e-12, -1150 +[CH3CCL3_OH] CH3CCL3 + OH -> H2O + 3*CL ; 1.64e-12, -1520 +[CH3CL_CL] CH3CL + CL -> HO2 + CO + 2*HCL ; 2.03e-11, -1110 +[CH3CL_OH] CH3CL + OH -> CL + H2O + HO2 ; 1.96e-12, -1200 +[CHBR3_CL] CHBR3 + CL -> 3*BR + HCL ; 4.85e-12, -850 +[CHBR3_OH] CHBR3 + OH -> 3*BR ; 9e-13, -360 +[HCFC141B_OH] HCFC141B + OH -> CL + COFCL ; 1.25e-12, -1600 +[HCFC142B_OH] HCFC142B + OH -> CL + COF2 ; 1.3e-12, -1770 +[HCFC22_OH] HCFC22 + OH -> H2O + CL + COF2 ; 9.2e-13, -1560 +[O1D_CH2BR2] O1D + CH2BR2 -> 2*BR ; 2.57e-10 +[O1D_CH3BR] O1D + CH3BR -> BR ; 1.8e-10 +[O1D_HCFC141B] O1D + HCFC141B -> CL + COFCL ; 1.794e-10 +[O1D_HCFC142B] O1D + HCFC142B -> CL + COF2 ; 1.3e-10 +[O1D_HCFC22] O1D + HCFC22 -> CL + COF2 ; 7.65e-11 ********************************* *** C1 ********************************* -[CH2O_NO3] CH2O + NO3 -> CO + HO2 + HNO3 ; 6e-13, -2058 -[CH2O_O] CH2O + O -> HO2 + OH + CO ; 3.4e-11, -1600 -[CH2O_OH] CH2O + OH -> CO + H2O + H ; 5.5e-12, 125 -[CH3O2_HO2] CH3O2 + HO2 -> CH3OOH + O2 ; 4.1e-13, 750 -[CH3O2_NO] CH3O2 + NO -> CH2O + NO2 + HO2 ; 2.8e-12, 300 -[CH3OOH_OH] CH3OOH + OH -> 0.7*CH3O2 + 0.3*OH + 0.3*CH2O + H2O ; 3.8e-12, 200 -[CH4_OH] CH4 + OH -> CH3O2 + H2O ; 2.45e-12, -1775 -[O1D_CH4a] O1D + CH4 -> CH3O2 + OH ; 1.31e-10 -[O1D_CH4b] O1D + CH4 -> CH2O + H + HO2 ; 3.5e-11 -[O1D_CH4c] O1D + CH4 -> CH2O + H2 ; 9e-12 -[usr_CO_OH] CO + OH -> CO2 + HO2 +[CH2O_NO3] CH2O + NO3 -> CO + HO2 + HNO3 ; 6e-13, -2058 +[CH2O_O] CH2O + O -> HO2 + OH + CO ; 3.4e-11, -1600 +[CH2O_OH] CH2O + OH -> CO + H2O + H ; 5.5e-12, 125 +[CH3O2_HO2] CH3O2 + HO2 -> CH3OOH + O2 ; 4.1e-13, 750 +[CH3O2_NO] CH3O2 + NO -> CH2O + NO2 + HO2 ; 2.8e-12, 300 +[CH3OOH_OH] CH3OOH + OH -> 0.7*CH3O2 + 0.3*OH + 0.3*CH2O + H2O ; 3.8e-12, 200 +[CH4_OH] CH4 + OH -> CH3O2 + H2O ; 2.45e-12, -1775 +[O1D_CH4a] O1D + CH4 -> CH3O2 + OH ; 1.31e-10 +[O1D_CH4b] O1D + CH4 -> CH2O + H + HO2 ; 3.5e-11 +[O1D_CH4c] O1D + CH4 -> CH2O + H2 ; 9e-12 +[usr_CO_OH] CO + OH -> CO2 + HO2 ********************************* *** Sulfur ********************************* -[DMS_NO3] DMS + NO3 -> SO2 + HNO3 ; 1.9e-13, 520 -[DMS_OHa] DMS + OH -> SO2 ; 1.1e-11, -280 -[OCS_O] OCS + O -> SO + CO ; 2.1e-11, -2200 -[OCS_OH] OCS + OH -> SO2 + CO + H ; 7.2e-14, -1070 -[S_O2] S + O2 -> SO + O ; 2.3e-12 -[SO2_OH_M] SO2 + OH + M -> SO3 + HO2 ; 2.9e-31, 4.1, 1.7e-12, -0.2, 0.6 -[S_O3] S + O3 -> SO + O2 ; 1.2e-11 -[SO_BRO] SO + BRO -> SO2 + BR ; 5.7e-11 -[SO_CLO] SO + CLO -> SO2 + CL ; 2.8e-11 -[S_OH] S + OH -> SO + H ; 6.6e-11 -[SO_NO2] SO + NO2 -> SO2 + NO ; 1.4e-11 -[SO_O2] SO + O2 -> SO2 + O ; 1.6e-13, -2280 -[SO_O3] SO + O3 -> SO2 + O2 ; 3.4e-12, -1100 -[SO_OCLO] SO + OCLO -> SO2 + CLO ; 1.9e-12 -[SO_OH] SO + OH -> SO2 + H ; 2.6e-11, 330 -[usr_DMS_OH] DMS + OH -> 0.5*SO2 + 0.5*HO2 -[usr_SO3_H2O] SO3 + H2O -> H2SO4 +[DMS_NO3] DMS + NO3 -> SO2 + HNO3 ; 1.9e-13, 520 +[DMS_OHa] DMS + OH -> SO2 ; 1.1e-11, -280 +[OCS_O] OCS + O -> SO + CO ; 2.1e-11, -2200 +[OCS_OH] OCS + OH -> SO2 + CO + H ; 7.2e-14, -1070 +[S_O2] S + O2 -> SO + O ; 2.3e-12 +[SO2_OH_M] SO2 + OH + M -> SO3 + HO2 ; 2.9e-31, 4.1, 1.7e-12, -0.2, 0.6 +[S_O3] S + O3 -> SO + O2 ; 1.2e-11 +[SO_BRO] SO + BRO -> SO2 + BR ; 5.7e-11 +[SO_CLO] SO + CLO -> SO2 + CL ; 2.8e-11 +[S_OH] S + OH -> SO + H ; 6.6e-11 +[SO_NO2] SO + NO2 -> SO2 + NO ; 1.4e-11 +[SO_O2] SO + O2 -> SO2 + O ; 1.6e-13, -2280 +[SO_O3] SO + O3 -> SO2 + O2 ; 3.4e-12, -1100 +[SO_OCLO] SO + OCLO -> SO2 + CLO ; 1.9e-12 +[SO_OH] SO + OH -> SO2 + H ; 2.6e-11, 330 +[usr_DMS_OH] DMS + OH -> 0.5*SO2 + 0.5*HO2 +[usr_SO3_H2O] SO3 + H2O -> H2SO4 ********************************* *** Tropospheric Aerosol ********************************* -[usr_HO2_aer] HO2 -> 0.5*H2O2 -[usr_N2O5_aer] N2O5 -> 2*HNO3 -[usr_NO2_aer] NO2 -> 0.5*OH + 0.5*NO + 0.5*HNO3 -[usr_NO3_aer] NO3 -> HNO3 +[usr_HO2_aer] HO2 -> 0.5*H2O2 +[usr_N2O5_aer] N2O5 -> 2*HNO3 +[usr_NO2_aer] NO2 -> 0.5*OH + 0.5*NO + 0.5*HNO3 +[usr_NO3_aer] NO3 -> HNO3 ********************************* *** Stratospheric Aerosol ********************************* -[het1] N2O5 -> 2*HNO3 -[het10] HOCL + HCL -> CL2 + H2O -[het11] BRONO2 -> HOBR + HNO3 -[het12] N2O5 -> 2*HNO3 -[het13] CLONO2 -> HOCL + HNO3 -[het14] BRONO2 -> HOBR + HNO3 -[het15] CLONO2 + HCL -> CL2 + HNO3 -[het16] HOCL + HCL -> CL2 + H2O -[het17] HOBR + HCL -> BRCL + H2O -[het2] CLONO2 -> HOCL + HNO3 -[het3] BRONO2 -> HOBR + HNO3 -[het4] CLONO2 + HCL -> CL2 + HNO3 -[het5] HOCL + HCL -> CL2 + H2O -[het6] HOBR + HCL -> BRCL + H2O -[het7] N2O5 -> 2*HNO3 -[het8] CLONO2 -> HOCL + HNO3 -[het9] CLONO2 + HCL -> CL2 + HNO3 +[het1] N2O5 -> 2*HNO3 +[het10] HOCL + HCL -> CL2 + H2O +[het11] BRONO2 -> HOBR + HNO3 +[het12] N2O5 -> 2*HNO3 +[het13] CLONO2 -> HOCL + HNO3 +[het14] BRONO2 -> HOBR + HNO3 +[het15] CLONO2 + HCL -> CL2 + HNO3 +[het16] HOCL + HCL -> CL2 + H2O +[het17] HOBR + HCL -> BRCL + H2O +[het2] CLONO2 -> HOCL + HNO3 +[het3] BRONO2 -> HOBR + HNO3 +[het4] CLONO2 + HCL -> CL2 + HNO3 +[het5] HOCL + HCL -> CL2 + H2O +[het6] HOBR + HCL -> BRCL + H2O +[het7] N2O5 -> 2*HNO3 +[het8] CLONO2 -> HOCL + HNO3 +[het9] CLONO2 + HCL -> CL2 + HNO3 ********************************* *** Ions ********************************* -[ag247nm,cph=483.39] Op2P -> Op ; 0.047 -[ag373nm,cph=321.3] Op2D -> Op ; 7.7e-05 -[ag732nm,cph=163.06] Op2P -> Op2D ; 0.171 -[elec1,cph=82.389] NOp + e -> 0.2*N + 0.8*N2D + O -[elec2,cph=508.95] O2p + e -> 1.15*O + 0.85*O1D -[elec3,cph=354.83] N2p + e -> 1.1*N + 0.9*N2D -[ion_N2p_O2,cph=339.59] N2p + O2 -> O2p + N2 ; 6e-11 -[ion_N2p_Oa,cph=67.53] N2p + O -> NOp + N2D -[ion_N2p_Ob] N2p + O -> Op + N2 -[ion_Np_O,cph=95.55] Np + O -> Op + N ; 1e-12 -[ion_Np_O2a,cph=239.84] Np + O2 -> O2p + N ; 4e-10 -[ion_Np_O2b,cph=646.28] Np + O2 -> NOp + O ; 2e-10 -[ion_O2p_N,cph=406.16] O2p + N -> NOp + O ; 1e-10 -[ion_O2p_N2] O2p + N2 -> NOp + NO ; 5e-16 -[ion_O2p_NO,cph=271.38] O2p + NO -> NOp + O2 ; 4.4e-10 -[ion_Op_CO2] Op + CO2 -> O2p + CO ; 9e-10 -[ion_Op_N2,cph=105.04] Op + N2 -> NOp + N -[ion_Op_N2D,cph=139.9] Op + N2D -> Np + O ; 1.3e-10 -[ion_Op_O2,cph=150.11] Op + O2 -> O2p + O -[Op2D_e,cph=319.37] Op2D + e -> Op + e -[Op2D_N2,cph=128.32] Op2D + N2 -> N2p + O ; 8e-10 -[Op2D_O,cph=319.36] Op2D + O -> Op + O ; 5e-12 -[Op2D_O2,cph=469.4] Op2D + O2 -> O2p + O ; 7e-10 -[Op2P_ea,cph=163.06] Op2P + e -> Op2D + e -[Op2P_eb,cph=482.43] Op2P + e -> Op + e -[Op2P_N2a,cph=291.38] Op2P + N2 -> N2p + O ; 4.8e-10 -[Op2P_N2b,cph=67.54] Op2P + N2 -> Np + NO ; 1e-10 -[Op2P_O,cph=501.72] Op2P + O -> Op + O ; 4e-10 +[ag247nm,cph=483.39] Op2P -> Op ; 0.047 +[ag373nm,cph=321.3] Op2D -> Op ; 7.7e-05 +[ag732nm,cph=163.06] Op2P -> Op2D ; 0.171 +[elec1,cph=82.389] NOp + e -> 0.2*N + 0.8*N2D + O +[elec2,cph=508.95] O2p + e -> 1.15*O + 0.85*O1D +[elec3,cph=354.83] N2p + e -> 1.1*N + 0.9*N2D +[ion_N2p_O2,cph=339.59] N2p + O2 -> O2p + N2 ; 6e-11 +[ion_N2p_Oa,cph=67.53] N2p + O -> NOp + N2D +[ion_N2p_Ob] N2p + O -> Op + N2 +[ion_Np_O,cph=95.55] Np + O -> Op + N ; 1e-12 +[ion_Np_O2a,cph=239.84] Np + O2 -> O2p + N ; 4e-10 +[ion_Np_O2b,cph=646.28] Np + O2 -> NOp + O ; 2e-10 +[ion_O2p_N,cph=406.16] O2p + N -> NOp + O ; 1e-10 +[ion_O2p_N2] O2p + N2 -> NOp + NO ; 5e-16 +[ion_O2p_NO,cph=271.38] O2p + NO -> NOp + O2 ; 4.4e-10 +[ion_Op_CO2] Op + CO2 -> O2p + CO ; 9e-10 +[ion_Op_N2,cph=105.04] Op + N2 -> NOp + N +[ion_Op_N2D,cph=139.9] Op + N2D -> Np + O ; 1.3e-10 +[ion_Op_O2,cph=150.11] Op + O2 -> O2p + O +[Op2D_e,cph=319.37] Op2D + e -> Op + e +[Op2D_N2,cph=128.32] Op2D + N2 -> N2p + O ; 8e-10 +[Op2D_O,cph=319.36] Op2D + O -> Op + O ; 5e-12 +[Op2D_O2,cph=469.4] Op2D + O2 -> O2p + O ; 7e-10 +[Op2P_ea,cph=163.06] Op2P + e -> Op2D + e +[Op2P_eb,cph=482.43] Op2P + e -> Op + e +[Op2P_N2a,cph=291.38] Op2P + N2 -> N2p + O ; 4.8e-10 +[Op2P_N2b,cph=67.54] Op2P + N2 -> Np + NO ; 1e-10 +[Op2P_O,cph=501.72] Op2P + O -> Op + O ; 4e-10 End Reactions Ext Forcing - so4_a2 <- dataset - DMS <- dataset - bc_a4 <- dataset - num_a1 <- dataset - num_a2 <- dataset - num_a4 <- dataset + so4_a2 <- dataset + DMS <- dataset + bc_a4 <- dataset + num_a1 <- dataset + num_a2 <- dataset + num_a4 <- dataset num_a5 <- dataset - pom_a1 <- dataset - pom_a4 <- dataset - so4_a1 <- dataset + pom_a1 <- dataset + pom_a4 <- dataset + so4_a1 <- dataset so4_a5 <- dataset - CO <- dataset - NO <- dataset - NO2 <- dataset - SO2 <- dataset - bc_a1 <- dataset - N - N2D - N2p - Op - e - Np - O2p - OH + CO <- dataset + NO <- dataset + NO2 <- dataset + SO2 <- dataset + bc_a1 <- dataset + N + N2D + N2p + Op + e + Np + O2p + OH End Ext Forcing End Chemistry diff --git a/src/chemistry/pp_waccm_ma_mam5/chem_mods.F90 b/src/chemistry/pp_waccm_ma_mam5/chem_mods.F90 index f579d54563..3c74c4fd26 100644 --- a/src/chemistry/pp_waccm_ma_mam5/chem_mods.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/chem_mods.F90 @@ -9,13 +9,13 @@ module chem_mods rxntot = 311, & ! number of total reactions gascnt = 220, & ! number of gas phase reactions nabscol = 2, & ! number of absorbing column densities - gas_pcnst = 102, & ! number of "gas phase" species + gas_pcnst = 103, & ! number of "gas phase" species nfs = 2, & ! number of "fixed" species relcnt = 0, & ! number of relationship species grpcnt = 0, & ! number of group members nzcnt = 959, & ! number of non-zero matrix entries extcnt = 24, & ! number of species with external forcing - clscnt1 = 0, & ! number of species in explicit class + clscnt1 = 1, & ! number of species in explicit class clscnt2 = 0, & ! number of species in hov class clscnt3 = 0, & ! number of species in ebi class clscnt4 = 102, & ! number of species in implicit class diff --git a/src/chemistry/pp_waccm_ma_mam5/m_spc_id.F90 b/src/chemistry/pp_waccm_ma_mam5/m_spc_id.F90 index d596a4e593..6c5ec22920 100644 --- a/src/chemistry/pp_waccm_ma_mam5/m_spc_id.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/m_spc_id.F90 @@ -71,35 +71,36 @@ module m_spc_id integer, parameter :: id_O = 69 integer, parameter :: id_O2 = 70 integer, parameter :: id_O3 = 71 - integer, parameter :: id_OCLO = 72 - integer, parameter :: id_OCS = 73 - integer, parameter :: id_pom_a1 = 74 - integer, parameter :: id_pom_a4 = 75 - integer, parameter :: id_S = 76 - integer, parameter :: id_SF6 = 77 - integer, parameter :: id_SO = 78 - integer, parameter :: id_SO2 = 79 - integer, parameter :: id_SO3 = 80 - integer, parameter :: id_so4_a1 = 81 - integer, parameter :: id_so4_a2 = 82 - integer, parameter :: id_so4_a3 = 83 - integer, parameter :: id_so4_a5 = 84 - integer, parameter :: id_soa_a1 = 85 - integer, parameter :: id_soa_a2 = 86 - integer, parameter :: id_SOAG = 87 - integer, parameter :: id_e = 88 - integer, parameter :: id_HO2 = 89 - integer, parameter :: id_N2D = 90 - integer, parameter :: id_N2p = 91 - integer, parameter :: id_NOp = 92 - integer, parameter :: id_Np = 93 - integer, parameter :: id_O1D = 94 - integer, parameter :: id_O2_1D = 95 - integer, parameter :: id_O2_1S = 96 - integer, parameter :: id_O2p = 97 - integer, parameter :: id_OH = 98 - integer, parameter :: id_Op = 99 - integer, parameter :: id_Op2D = 100 - integer, parameter :: id_Op2P = 101 - integer, parameter :: id_H2O = 102 + integer, parameter :: id_O3S = 72 + integer, parameter :: id_OCLO = 73 + integer, parameter :: id_OCS = 74 + integer, parameter :: id_pom_a1 = 75 + integer, parameter :: id_pom_a4 = 76 + integer, parameter :: id_S = 77 + integer, parameter :: id_SF6 = 78 + integer, parameter :: id_SO = 79 + integer, parameter :: id_SO2 = 80 + integer, parameter :: id_SO3 = 81 + integer, parameter :: id_so4_a1 = 82 + integer, parameter :: id_so4_a2 = 83 + integer, parameter :: id_so4_a3 = 84 + integer, parameter :: id_so4_a5 = 85 + integer, parameter :: id_soa_a1 = 86 + integer, parameter :: id_soa_a2 = 87 + integer, parameter :: id_SOAG = 88 + integer, parameter :: id_e = 89 + integer, parameter :: id_HO2 = 90 + integer, parameter :: id_N2D = 91 + integer, parameter :: id_N2p = 92 + integer, parameter :: id_NOp = 93 + integer, parameter :: id_Np = 94 + integer, parameter :: id_O1D = 95 + integer, parameter :: id_O2_1D = 96 + integer, parameter :: id_O2_1S = 97 + integer, parameter :: id_O2p = 98 + integer, parameter :: id_OH = 99 + integer, parameter :: id_Op = 100 + integer, parameter :: id_Op2D = 101 + integer, parameter :: id_Op2P = 102 + integer, parameter :: id_H2O = 103 end module m_spc_id diff --git a/src/chemistry/pp_waccm_ma_mam5/mo_indprd.F90 b/src/chemistry/pp_waccm_ma_mam5/mo_indprd.F90 index 125c4a75b8..59b51ae306 100644 --- a/src/chemistry/pp_waccm_ma_mam5/mo_indprd.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/mo_indprd.F90 @@ -17,9 +17,14 @@ subroutine indprd( class, prod, nprod, y, extfrc, rxt, chnkpnts ) real(r8), intent(in) :: extfrc(chnkpnts,extcnt) real(r8), intent(inout) :: prod(chnkpnts,nprod) !-------------------------------------------------------------------- +! ... "independent" production for Explicit species +!-------------------------------------------------------------------- + if( class == 1 ) then + prod(:,1) = 0._r8 +!-------------------------------------------------------------------- ! ... "independent" production for Implicit species !-------------------------------------------------------------------- - if( class == 4 ) then + else if( class == 4 ) then prod(:,1) = + extfrc(:,16) prod(:,2) = + extfrc(:,3) prod(:,97) = 0._r8 diff --git a/src/chemistry/pp_waccm_ma_mam5/mo_lin_matrix.F90 b/src/chemistry/pp_waccm_ma_mam5/mo_lin_matrix.F90 index 8e8cfedba7..14f1d2a1ef 100644 --- a/src/chemistry/pp_waccm_ma_mam5/mo_lin_matrix.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/mo_lin_matrix.F90 @@ -222,8 +222,8 @@ subroutine linmat01( avec_len, mat, y, rxt, het_rates ) mat(k,78) = rxt(k,92) + rxt(k,100) mat(k,81) = rxt(k,93) mat(k,529) = -( rxt(k,7) + rxt(k,8) + het_rates(k,71) ) - mat(k,134) = -( rxt(k,59) + het_rates(k,72) ) - mat(k,139) = -( rxt(k,88) + het_rates(k,73) ) + mat(k,134) = -( rxt(k,59) + het_rates(k,73) ) + mat(k,139) = -( rxt(k,88) + het_rates(k,74) ) end do end subroutine linmat01 subroutine linmat02( avec_len, mat, y, rxt, het_rates ) @@ -246,57 +246,57 @@ subroutine linmat02( avec_len, mat, y, rxt, het_rates ) !---------------------------------------------- integer :: k do k = 1,avec_len - mat(k,16) = -( het_rates(k,74) ) - mat(k,17) = -( het_rates(k,75) ) - mat(k,235) = -( het_rates(k,76) ) + mat(k,16) = -( het_rates(k,75) ) + mat(k,17) = -( het_rates(k,76) ) + mat(k,235) = -( het_rates(k,77) ) mat(k,140) = rxt(k,88) mat(k,423) = rxt(k,89) - mat(k,18) = -( rxt(k,60) + het_rates(k,77) ) - mat(k,425) = -( rxt(k,89) + het_rates(k,78) ) + mat(k,18) = -( rxt(k,60) + het_rates(k,78) ) + mat(k,425) = -( rxt(k,89) + het_rates(k,79) ) mat(k,301) = rxt(k,90) - mat(k,300) = -( rxt(k,90) + het_rates(k,79) ) + mat(k,300) = -( rxt(k,90) + het_rates(k,80) ) mat(k,109) = rxt(k,91) - mat(k,108) = -( rxt(k,91) + het_rates(k,80) ) + mat(k,108) = -( rxt(k,91) + het_rates(k,81) ) mat(k,53) = rxt(k,87) - mat(k,19) = -( het_rates(k,81) ) - mat(k,20) = -( het_rates(k,82) ) - mat(k,21) = -( het_rates(k,83) ) - mat(k,22) = -( het_rates(k,84) ) - mat(k,23) = -( het_rates(k,85) ) - mat(k,24) = -( het_rates(k,86) ) - mat(k,25) = -( het_rates(k,87) ) - mat(k,323) = -( het_rates(k,88) ) + mat(k,19) = -( het_rates(k,82) ) + mat(k,20) = -( het_rates(k,83) ) + mat(k,21) = -( het_rates(k,84) ) + mat(k,22) = -( het_rates(k,85) ) + mat(k,23) = -( het_rates(k,86) ) + mat(k,24) = -( het_rates(k,87) ) + mat(k,25) = -( het_rates(k,88) ) + mat(k,323) = -( het_rates(k,89) ) mat(k,736) = rxt(k,16) mat(k,345) = rxt(k,62) mat(k,668) = rxt(k,71) + rxt(k,72) + rxt(k,73) + rxt(k,74) + rxt(k,75) & + rxt(k,76) mat(k,501) = rxt(k,77) + rxt(k,78) + rxt(k,79) + rxt(k,80) + rxt(k,81) & + rxt(k,84) + rxt(k,85) + rxt(k,86) - mat(k,555) = -( rxt(k,263) + het_rates(k,89) ) + mat(k,555) = -( rxt(k,263) + het_rates(k,90) ) mat(k,169) = rxt(k,11) + rxt(k,153) - mat(k,334) = -( het_rates(k,90) ) - mat(k,219) = -( het_rates(k,91) ) + mat(k,334) = -( het_rates(k,91) ) + mat(k,219) = -( het_rates(k,92) ) mat(k,189) = rxt(k,304) mat(k,183) = rxt(k,309) - mat(k,242) = -( het_rates(k,92) ) + mat(k,242) = -( het_rates(k,93) ) mat(k,735) = rxt(k,16) mat(k,357) = rxt(k,297) mat(k,371) = rxt(k,300) - mat(k,273) = -( het_rates(k,93) ) + mat(k,273) = -( het_rates(k,94) ) mat(k,344) = rxt(k,62) mat(k,184) = rxt(k,310) - mat(k,726) = -( rxt(k,96) + het_rates(k,94) ) + mat(k,726) = -( rxt(k,96) + het_rates(k,95) ) mat(k,951) = rxt(k,1) mat(k,514) = rxt(k,6) mat(k,535) = rxt(k,7) mat(k,105) = rxt(k,12) - mat(k,77) = -( rxt(k,92) + rxt(k,100) + het_rates(k,95) ) + mat(k,77) = -( rxt(k,92) + rxt(k,100) + het_rates(k,96) ) mat(k,522) = rxt(k,7) mat(k,79) = rxt(k,104) - mat(k,80) = -( rxt(k,93) + rxt(k,104) + het_rates(k,96) ) - mat(k,361) = -( rxt(k,297) + het_rates(k,97) ) + mat(k,80) = -( rxt(k,93) + rxt(k,104) + het_rates(k,97) ) + mat(k,361) = -( rxt(k,297) + het_rates(k,98) ) mat(k,504) = rxt(k,78) + rxt(k,80) - mat(k,858) = -( het_rates(k,98) ) + mat(k,858) = -( het_rates(k,99) ) mat(k,955) = rxt(k,3) mat(k,233) = 2.000_r8*rxt(k,4) mat(k,904) = rxt(k,9) @@ -306,20 +306,20 @@ subroutine linmat02( avec_len, mat, y, rxt, het_rates ) mat(k,253) = rxt(k,57) mat(k,270) = rxt(k,58) mat(k,646) = .500_r8*rxt(k,265) - mat(k,378) = -( rxt(k,300) + het_rates(k,99) ) + mat(k,378) = -( rxt(k,300) + het_rates(k,100) ) mat(k,672) = rxt(k,73) + rxt(k,74) mat(k,505) = rxt(k,79) + rxt(k,81) mat(k,185) = rxt(k,284) mat(k,191) = rxt(k,285) - mat(k,188) = -( rxt(k,285) + rxt(k,304) + het_rates(k,100) ) + mat(k,188) = -( rxt(k,285) + rxt(k,304) + het_rates(k,101) ) mat(k,655) = rxt(k,75) + rxt(k,76) mat(k,495) = rxt(k,85) + rxt(k,86) mat(k,182) = rxt(k,286) mat(k,181) = -( rxt(k,284) + rxt(k,286) + rxt(k,309) + rxt(k,310) & - + het_rates(k,101) ) + + het_rates(k,102) ) mat(k,654) = rxt(k,71) + rxt(k,72) mat(k,494) = rxt(k,77) + rxt(k,84) - mat(k,959) = -( rxt(k,1) + rxt(k,2) + rxt(k,3) + het_rates(k,102) ) + mat(k,959) = -( rxt(k,1) + rxt(k,2) + rxt(k,3) + het_rates(k,103) ) mat(k,409) = .050_r8*rxt(k,24) mat(k,54) = rxt(k,87) end do diff --git a/src/chemistry/pp_waccm_ma_mam5/mo_nln_matrix.F90 b/src/chemistry/pp_waccm_ma_mam5/mo_nln_matrix.F90 index 60c42e2b51..fcd1810f01 100644 --- a/src/chemistry/pp_waccm_ma_mam5/mo_nln_matrix.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/mo_nln_matrix.F90 @@ -22,25 +22,25 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) ! ... complete matrix entries implicit species !---------------------------------------------- do k = 1,avec_len - mat(k,808) = -(rxt(k,191)*y(k,17) + rxt(k,192)*y(k,89) + rxt(k,193)*y(k,71)) + mat(k,808) = -(rxt(k,191)*y(k,17) + rxt(k,192)*y(k,90) + rxt(k,193)*y(k,71)) mat(k,486) = -rxt(k,191)*y(k,3) mat(k,563) = -rxt(k,192)*y(k,3) mat(k,538) = -rxt(k,193)*y(k,3) mat(k,927) = 4.000_r8*rxt(k,194)*y(k,5) + (rxt(k,195)+rxt(k,196))*y(k,28) & - + rxt(k,199)*y(k,61) + rxt(k,202)*y(k,69) + rxt(k,253)*y(k,78) & - + rxt(k,203)*y(k,98) - mat(k,59) = rxt(k,181)*y(k,94) - mat(k,64) = rxt(k,207)*y(k,94) - mat(k,178) = 2.000_r8*rxt(k,218)*y(k,25) + 2.000_r8*rxt(k,230)*y(k,94) & - + 2.000_r8*rxt(k,219)*y(k,98) - mat(k,216) = rxt(k,220)*y(k,25) + rxt(k,231)*y(k,94) + rxt(k,221)*y(k,98) - mat(k,165) = 3.000_r8*rxt(k,225)*y(k,25) + 3.000_r8*rxt(k,208)*y(k,94) & - + 3.000_r8*rxt(k,226)*y(k,98) + + rxt(k,199)*y(k,61) + rxt(k,202)*y(k,69) + rxt(k,253)*y(k,79) & + + rxt(k,203)*y(k,99) + mat(k,59) = rxt(k,181)*y(k,95) + mat(k,64) = rxt(k,207)*y(k,95) + mat(k,178) = 2.000_r8*rxt(k,218)*y(k,25) + 2.000_r8*rxt(k,230)*y(k,95) & + + 2.000_r8*rxt(k,219)*y(k,99) + mat(k,216) = rxt(k,220)*y(k,25) + rxt(k,231)*y(k,95) + rxt(k,221)*y(k,99) + mat(k,165) = 3.000_r8*rxt(k,225)*y(k,25) + 3.000_r8*rxt(k,208)*y(k,95) & + + 3.000_r8*rxt(k,226)*y(k,99) mat(k,786) = 2.000_r8*rxt(k,218)*y(k,16) + rxt(k,220)*y(k,18) & + 3.000_r8*rxt(k,225)*y(k,24) mat(k,616) = (rxt(k,195)+rxt(k,196))*y(k,5) - mat(k,35) = 2.000_r8*rxt(k,209)*y(k,94) - mat(k,260) = rxt(k,204)*y(k,69) + rxt(k,210)*y(k,94) + rxt(k,205)*y(k,98) + mat(k,35) = 2.000_r8*rxt(k,209)*y(k,95) + mat(k,260) = rxt(k,204)*y(k,69) + rxt(k,210)*y(k,95) + rxt(k,205)*y(k,99) mat(k,754) = rxt(k,199)*y(k,5) mat(k,687) = rxt(k,202)*y(k,5) + rxt(k,204)*y(k,45) mat(k,435) = rxt(k,253)*y(k,5) @@ -54,9 +54,9 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) mat(k,448) = (rxt(k,275)+rxt(k,280))*y(k,53) mat(k,247) = (rxt(k,275)+rxt(k,280))*y(k,49) mat(k,931) = -(4._r8*rxt(k,194)*y(k,5) + (rxt(k,195) + rxt(k,196) + rxt(k,197) & - ) * y(k,28) + rxt(k,198)*y(k,89) + rxt(k,199)*y(k,61) + rxt(k,200) & - *y(k,62) + rxt(k,202)*y(k,69) + rxt(k,203)*y(k,98) + rxt(k,253) & - *y(k,78)) + ) * y(k,28) + rxt(k,198)*y(k,90) + rxt(k,199)*y(k,61) + rxt(k,200) & + *y(k,62) + rxt(k,202)*y(k,69) + rxt(k,203)*y(k,99) + rxt(k,253) & + *y(k,79)) mat(k,620) = -(rxt(k,195) + rxt(k,196) + rxt(k,197)) * y(k,5) mat(k,567) = -rxt(k,198)*y(k,5) mat(k,758) = -rxt(k,199)*y(k,5) @@ -66,7 +66,7 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) mat(k,437) = -rxt(k,253)*y(k,5) mat(k,812) = rxt(k,193)*y(k,71) mat(k,209) = rxt(k,201)*y(k,69) - mat(k,262) = rxt(k,211)*y(k,94) + mat(k,262) = rxt(k,211)*y(k,95) mat(k,254) = rxt(k,206)*y(k,69) mat(k,691) = mat(k,691) + rxt(k,201)*y(k,6) + rxt(k,206)*y(k,53) mat(k,541) = rxt(k,193)*y(k,3) @@ -75,76 +75,76 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) mat(k,656) = -rxt(k,201)*y(k,6) mat(k,911) = rxt(k,200)*y(k,62) mat(k,625) = rxt(k,200)*y(k,5) - mat(k,29) = -(rxt(k,180)*y(k,94)) + mat(k,29) = -(rxt(k,180)*y(k,95)) mat(k,693) = -rxt(k,180)*y(k,8) - mat(k,55) = -(rxt(k,181)*y(k,94)) + mat(k,55) = -(rxt(k,181)*y(k,95)) mat(k,698) = -rxt(k,181)*y(k,9) - mat(k,60) = -(rxt(k,207)*y(k,94)) + mat(k,60) = -(rxt(k,207)*y(k,95)) mat(k,699) = -rxt(k,207)*y(k,10) - mat(k,36) = -(rxt(k,182)*y(k,94)) + mat(k,36) = -(rxt(k,182)*y(k,95)) mat(k,695) = -rxt(k,182)*y(k,11) - mat(k,65) = -(rxt(k,183)*y(k,94)) + mat(k,65) = -(rxt(k,183)*y(k,95)) mat(k,700) = -rxt(k,183)*y(k,12) - mat(k,40) = -(rxt(k,184)*y(k,94)) + mat(k,40) = -(rxt(k,184)*y(k,95)) mat(k,696) = -rxt(k,184)*y(k,13) - mat(k,70) = -(rxt(k,185)*y(k,94)) + mat(k,70) = -(rxt(k,185)*y(k,95)) mat(k,701) = -rxt(k,185)*y(k,14) - mat(k,44) = -(rxt(k,186)*y(k,94)) + mat(k,44) = -(rxt(k,186)*y(k,95)) mat(k,697) = -rxt(k,186)*y(k,15) - mat(k,174) = -(rxt(k,218)*y(k,25) + rxt(k,219)*y(k,98) + rxt(k,230)*y(k,94)) + mat(k,174) = -(rxt(k,218)*y(k,25) + rxt(k,219)*y(k,99) + rxt(k,230)*y(k,95)) mat(k,763) = -rxt(k,218)*y(k,16) mat(k,827) = -rxt(k,219)*y(k,16) mat(k,710) = -rxt(k,230)*y(k,16) mat(k,475) = -(rxt(k,155)*y(k,25) + rxt(k,191)*y(k,3) + rxt(k,235)*y(k,63) & - + rxt(k,236)*y(k,69) + rxt(k,237)*y(k,98)) + + rxt(k,236)*y(k,69) + rxt(k,237)*y(k,99)) mat(k,775) = -rxt(k,155)*y(k,17) mat(k,797) = -rxt(k,191)*y(k,17) mat(k,577) = -rxt(k,235)*y(k,17) mat(k,676) = -rxt(k,236)*y(k,17) mat(k,846) = -rxt(k,237)*y(k,17) mat(k,413) = rxt(k,162)*y(k,28) + rxt(k,239)*y(k,61) - mat(k,158) = .300_r8*rxt(k,240)*y(k,98) - mat(k,397) = (rxt(k,243)+rxt(k,244))*y(k,94) + mat(k,158) = .300_r8*rxt(k,240)*y(k,99) + mat(k,397) = (rxt(k,243)+rxt(k,244))*y(k,95) mat(k,605) = rxt(k,162)*y(k,21) mat(k,743) = rxt(k,239)*y(k,21) mat(k,718) = (rxt(k,243)+rxt(k,244))*y(k,23) mat(k,846) = mat(k,846) + .300_r8*rxt(k,240)*y(k,22) - mat(k,210) = -(rxt(k,220)*y(k,25) + rxt(k,221)*y(k,98) + rxt(k,231)*y(k,94)) + mat(k,210) = -(rxt(k,220)*y(k,25) + rxt(k,221)*y(k,99) + rxt(k,231)*y(k,95)) mat(k,764) = -rxt(k,220)*y(k,18) mat(k,829) = -rxt(k,221)*y(k,18) mat(k,711) = -rxt(k,231)*y(k,18) - mat(k,48) = -(rxt(k,222)*y(k,98)) + mat(k,48) = -(rxt(k,222)*y(k,99)) mat(k,814) = -rxt(k,222)*y(k,19) - mat(k,147) = -(rxt(k,223)*y(k,25) + rxt(k,224)*y(k,98)) + mat(k,147) = -(rxt(k,223)*y(k,25) + rxt(k,224)*y(k,99)) mat(k,761) = -rxt(k,223)*y(k,20) mat(k,823) = -rxt(k,224)*y(k,20) - mat(k,411) = -(rxt(k,162)*y(k,28) + rxt(k,238)*y(k,89) + rxt(k,239)*y(k,61)) + mat(k,411) = -(rxt(k,162)*y(k,28) + rxt(k,238)*y(k,90) + rxt(k,239)*y(k,61)) mat(k,601) = -rxt(k,162)*y(k,21) mat(k,549) = -rxt(k,238)*y(k,21) mat(k,741) = -rxt(k,239)*y(k,21) - mat(k,156) = .700_r8*rxt(k,240)*y(k,98) - mat(k,394) = rxt(k,156)*y(k,25) + rxt(k,212)*y(k,39) + rxt(k,242)*y(k,94) & - + rxt(k,241)*y(k,98) + mat(k,156) = .700_r8*rxt(k,240)*y(k,99) + mat(k,394) = rxt(k,156)*y(k,25) + rxt(k,212)*y(k,39) + rxt(k,242)*y(k,95) & + + rxt(k,241)*y(k,99) mat(k,772) = rxt(k,156)*y(k,23) mat(k,292) = rxt(k,212)*y(k,23) mat(k,715) = rxt(k,242)*y(k,23) mat(k,842) = .700_r8*rxt(k,240)*y(k,22) + rxt(k,241)*y(k,23) - mat(k,155) = -(rxt(k,240)*y(k,98)) + mat(k,155) = -(rxt(k,240)*y(k,99)) mat(k,824) = -rxt(k,240)*y(k,22) - mat(k,410) = rxt(k,238)*y(k,89) + mat(k,410) = rxt(k,238)*y(k,90) mat(k,543) = rxt(k,238)*y(k,21) - mat(k,393) = -(rxt(k,156)*y(k,25) + rxt(k,212)*y(k,39) + rxt(k,241)*y(k,98) & - + (rxt(k,242) + rxt(k,243) + rxt(k,244)) * y(k,94)) + mat(k,393) = -(rxt(k,156)*y(k,25) + rxt(k,212)*y(k,39) + rxt(k,241)*y(k,99) & + + (rxt(k,242) + rxt(k,243) + rxt(k,244)) * y(k,95)) mat(k,771) = -rxt(k,156)*y(k,23) mat(k,291) = -rxt(k,212)*y(k,23) mat(k,841) = -rxt(k,241)*y(k,23) mat(k,714) = -(rxt(k,242) + rxt(k,243) + rxt(k,244)) * y(k,23) - mat(k,161) = -(rxt(k,208)*y(k,94) + rxt(k,225)*y(k,25) + rxt(k,226)*y(k,98)) + mat(k,161) = -(rxt(k,208)*y(k,95) + rxt(k,225)*y(k,25) + rxt(k,226)*y(k,99)) mat(k,709) = -rxt(k,208)*y(k,24) mat(k,762) = -rxt(k,225)*y(k,24) mat(k,825) = -rxt(k,226)*y(k,24) mat(k,785) = -(rxt(k,155)*y(k,17) + rxt(k,156)*y(k,23) + rxt(k,157)*y(k,41) & - + rxt(k,158)*y(k,43) + (rxt(k,159) + rxt(k,160)) * y(k,89) & + + rxt(k,158)*y(k,43) + (rxt(k,159) + rxt(k,160)) * y(k,90) & + rxt(k,161)*y(k,71) + rxt(k,168)*y(k,29) + rxt(k,177)*y(k,54) & + rxt(k,218)*y(k,16) + rxt(k,220)*y(k,18) + rxt(k,223)*y(k,20) & + rxt(k,225)*y(k,24)) @@ -161,24 +161,24 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) mat(k,152) = -rxt(k,223)*y(k,25) mat(k,164) = -rxt(k,225)*y(k,25) mat(k,926) = rxt(k,196)*y(k,28) - mat(k,31) = 4.000_r8*rxt(k,180)*y(k,94) - mat(k,58) = rxt(k,181)*y(k,94) - mat(k,39) = 2.000_r8*rxt(k,182)*y(k,94) - mat(k,69) = 2.000_r8*rxt(k,183)*y(k,94) - mat(k,43) = 2.000_r8*rxt(k,184)*y(k,94) - mat(k,74) = rxt(k,185)*y(k,94) - mat(k,47) = 2.000_r8*rxt(k,186)*y(k,94) - mat(k,49) = 3.000_r8*rxt(k,222)*y(k,98) - mat(k,152) = mat(k,152) + rxt(k,224)*y(k,98) + mat(k,31) = 4.000_r8*rxt(k,180)*y(k,95) + mat(k,58) = rxt(k,181)*y(k,95) + mat(k,39) = 2.000_r8*rxt(k,182)*y(k,95) + mat(k,69) = 2.000_r8*rxt(k,183)*y(k,95) + mat(k,43) = 2.000_r8*rxt(k,184)*y(k,95) + mat(k,74) = rxt(k,185)*y(k,95) + mat(k,47) = 2.000_r8*rxt(k,186)*y(k,95) + mat(k,49) = 3.000_r8*rxt(k,222)*y(k,99) + mat(k,152) = mat(k,152) + rxt(k,224)*y(k,99) mat(k,419) = rxt(k,162)*y(k,28) mat(k,615) = rxt(k,196)*y(k,5) + rxt(k,162)*y(k,21) + (4.000_r8*rxt(k,163) & +2.000_r8*rxt(k,165))*y(k,28) + rxt(k,167)*y(k,61) + rxt(k,172) & - *y(k,69) + rxt(k,254)*y(k,78) + rxt(k,173)*y(k,98) - mat(k,93) = rxt(k,217)*y(k,94) - mat(k,88) = rxt(k,232)*y(k,94) + rxt(k,227)*y(k,98) - mat(k,98) = rxt(k,233)*y(k,94) + rxt(k,228)*y(k,98) - mat(k,116) = rxt(k,234)*y(k,94) + rxt(k,229)*y(k,98) - mat(k,462) = rxt(k,175)*y(k,69) + rxt(k,187)*y(k,94) + rxt(k,176)*y(k,98) + *y(k,69) + rxt(k,254)*y(k,79) + rxt(k,173)*y(k,99) + mat(k,93) = rxt(k,217)*y(k,95) + mat(k,88) = rxt(k,232)*y(k,95) + rxt(k,227)*y(k,99) + mat(k,98) = rxt(k,233)*y(k,95) + rxt(k,228)*y(k,99) + mat(k,116) = rxt(k,234)*y(k,95) + rxt(k,229)*y(k,99) + mat(k,462) = rxt(k,175)*y(k,69) + rxt(k,187)*y(k,95) + rxt(k,176)*y(k,99) mat(k,753) = rxt(k,167)*y(k,28) mat(k,686) = rxt(k,172)*y(k,28) + rxt(k,175)*y(k,49) mat(k,434) = rxt(k,254)*y(k,28) @@ -200,9 +200,9 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) mat(k,594) = 2.000_r8*rxt(k,189)*y(k,28) mat(k,610) = -(rxt(k,162)*y(k,21) + (4._r8*rxt(k,163) + 4._r8*rxt(k,164) & + 4._r8*rxt(k,165) + 4._r8*rxt(k,189)) * y(k,28) + rxt(k,166) & - *y(k,89) + rxt(k,167)*y(k,61) + rxt(k,169)*y(k,62) + rxt(k,172) & - *y(k,69) + (rxt(k,173) + rxt(k,174)) * y(k,98) + (rxt(k,195) & - + rxt(k,196) + rxt(k,197)) * y(k,5) + rxt(k,254)*y(k,78)) + *y(k,90) + rxt(k,167)*y(k,61) + rxt(k,169)*y(k,62) + rxt(k,172) & + *y(k,69) + (rxt(k,173) + rxt(k,174)) * y(k,99) + (rxt(k,195) & + + rxt(k,196) + rxt(k,197)) * y(k,5) + rxt(k,254)*y(k,79)) mat(k,416) = -rxt(k,162)*y(k,28) mat(k,557) = -rxt(k,166)*y(k,28) mat(k,748) = -rxt(k,167)*y(k,28) @@ -211,18 +211,18 @@ subroutine nlnmat01( avec_len, mat, y, rxt ) mat(k,851) = -(rxt(k,173) + rxt(k,174)) * y(k,28) mat(k,921) = -(rxt(k,195) + rxt(k,196) + rxt(k,197)) * y(k,28) mat(k,430) = -rxt(k,254)*y(k,28) - mat(k,780) = rxt(k,177)*y(k,54) + rxt(k,161)*y(k,71) + rxt(k,160)*y(k,89) + mat(k,780) = rxt(k,177)*y(k,54) + rxt(k,161)*y(k,71) + rxt(k,160)*y(k,90) mat(k,311) = rxt(k,170)*y(k,69) - mat(k,458) = rxt(k,188)*y(k,94) - mat(k,267) = rxt(k,177)*y(k,25) + rxt(k,178)*y(k,69) + rxt(k,179)*y(k,98) + mat(k,458) = rxt(k,188)*y(k,95) + mat(k,267) = rxt(k,177)*y(k,25) + rxt(k,178)*y(k,69) + rxt(k,179)*y(k,99) mat(k,681) = mat(k,681) + rxt(k,170)*y(k,29) + rxt(k,178)*y(k,54) mat(k,532) = rxt(k,161)*y(k,25) - mat(k,137) = rxt(k,259)*y(k,78) - mat(k,430) = mat(k,430) + rxt(k,259)*y(k,72) + mat(k,137) = rxt(k,259)*y(k,79) + mat(k,430) = mat(k,430) + rxt(k,259)*y(k,73) mat(k,557) = mat(k,557) + rxt(k,160)*y(k,25) mat(k,723) = rxt(k,188)*y(k,49) mat(k,851) = mat(k,851) + rxt(k,179)*y(k,54) - mat(k,308) = -(rxt(k,168)*y(k,25) + rxt(k,170)*y(k,69) + rxt(k,171)*y(k,98) & + mat(k,308) = -(rxt(k,168)*y(k,25) + rxt(k,170)*y(k,69) + rxt(k,171)*y(k,99) & + (rxt(k,273) + rxt(k,278) + rxt(k,283)) * y(k,49)) mat(k,768) = -rxt(k,168)*y(k,29) mat(k,667) = -rxt(k,170)*y(k,29) @@ -250,125 +250,125 @@ subroutine nlnmat02( avec_len, mat, y, rxt ) ! ... complete matrix entries implicit species !---------------------------------------------- do k = 1,avec_len - mat(k,282) = -(rxt(k,245)*y(k,98)) + mat(k,282) = -(rxt(k,245)*y(k,99)) mat(k,834) = -rxt(k,245)*y(k,31) mat(k,793) = rxt(k,191)*y(k,17) mat(k,470) = rxt(k,191)*y(k,3) + rxt(k,155)*y(k,25) + rxt(k,235)*y(k,63) & - + rxt(k,236)*y(k,69) + rxt(k,237)*y(k,98) + + rxt(k,236)*y(k,69) + rxt(k,237)*y(k,99) mat(k,148) = rxt(k,223)*y(k,25) mat(k,767) = rxt(k,155)*y(k,17) + rxt(k,223)*y(k,20) - mat(k,197) = rxt(k,299)*y(k,99) + mat(k,197) = rxt(k,299)*y(k,100) mat(k,571) = rxt(k,235)*y(k,17) - mat(k,665) = rxt(k,236)*y(k,17) + rxt(k,248)*y(k,73) - mat(k,141) = rxt(k,248)*y(k,69) + rxt(k,249)*y(k,98) - mat(k,834) = mat(k,834) + rxt(k,237)*y(k,17) + rxt(k,249)*y(k,73) + mat(k,665) = rxt(k,236)*y(k,17) + rxt(k,248)*y(k,74) + mat(k,141) = rxt(k,248)*y(k,69) + rxt(k,249)*y(k,99) + mat(k,834) = mat(k,834) + rxt(k,237)*y(k,17) + rxt(k,249)*y(k,74) mat(k,373) = rxt(k,299)*y(k,32) - mat(k,196) = -(rxt(k,299)*y(k,99)) + mat(k,196) = -(rxt(k,299)*y(k,100)) mat(k,370) = -rxt(k,299)*y(k,32) - mat(k,281) = rxt(k,245)*y(k,98) + mat(k,281) = rxt(k,245)*y(k,99) mat(k,828) = rxt(k,245)*y(k,31) - mat(k,82) = -(rxt(k,216)*y(k,94)) + mat(k,82) = -(rxt(k,216)*y(k,95)) mat(k,703) = -rxt(k,216)*y(k,33) - mat(k,56) = rxt(k,181)*y(k,94) - mat(k,61) = rxt(k,207)*y(k,94) - mat(k,66) = rxt(k,183)*y(k,94) - mat(k,41) = 2.000_r8*rxt(k,184)*y(k,94) - mat(k,71) = 2.000_r8*rxt(k,185)*y(k,94) - mat(k,45) = rxt(k,186)*y(k,94) - mat(k,33) = 2.000_r8*rxt(k,209)*y(k,94) - mat(k,94) = rxt(k,233)*y(k,94) + rxt(k,228)*y(k,98) - mat(k,112) = rxt(k,234)*y(k,94) + rxt(k,229)*y(k,98) + mat(k,56) = rxt(k,181)*y(k,95) + mat(k,61) = rxt(k,207)*y(k,95) + mat(k,66) = rxt(k,183)*y(k,95) + mat(k,41) = 2.000_r8*rxt(k,184)*y(k,95) + mat(k,71) = 2.000_r8*rxt(k,185)*y(k,95) + mat(k,45) = rxt(k,186)*y(k,95) + mat(k,33) = 2.000_r8*rxt(k,209)*y(k,95) + mat(k,94) = rxt(k,233)*y(k,95) + rxt(k,228)*y(k,99) + mat(k,112) = rxt(k,234)*y(k,95) + rxt(k,229)*y(k,99) mat(k,703) = mat(k,703) + rxt(k,181)*y(k,9) + rxt(k,207)*y(k,10) + rxt(k,183) & *y(k,12) + 2.000_r8*rxt(k,184)*y(k,13) + 2.000_r8*rxt(k,185) & *y(k,14) + rxt(k,186)*y(k,15) + 2.000_r8*rxt(k,209)*y(k,42) & + rxt(k,233)*y(k,47) + rxt(k,234)*y(k,48) mat(k,815) = rxt(k,228)*y(k,47) + rxt(k,229)*y(k,48) - mat(k,90) = -(rxt(k,217)*y(k,94)) + mat(k,90) = -(rxt(k,217)*y(k,95)) mat(k,705) = -rxt(k,217)*y(k,34) - mat(k,37) = rxt(k,182)*y(k,94) - mat(k,67) = rxt(k,183)*y(k,94) - mat(k,86) = rxt(k,232)*y(k,94) + rxt(k,227)*y(k,98) + mat(k,37) = rxt(k,182)*y(k,95) + mat(k,67) = rxt(k,183)*y(k,95) + mat(k,86) = rxt(k,232)*y(k,95) + rxt(k,227)*y(k,99) mat(k,705) = mat(k,705) + rxt(k,182)*y(k,11) + rxt(k,183)*y(k,12) & + rxt(k,232)*y(k,46) mat(k,817) = rxt(k,227)*y(k,46) - mat(k,128) = -(rxt(k,246)*y(k,63) + (rxt(k,247) + rxt(k,261)) * y(k,98)) + mat(k,128) = -(rxt(k,246)*y(k,63) + (rxt(k,247) + rxt(k,261)) * y(k,99)) mat(k,570) = -rxt(k,246)*y(k,35) mat(k,821) = -(rxt(k,247) + rxt(k,261)) * y(k,35) - mat(k,290) = -(rxt(k,212)*y(k,23) + rxt(k,213)*y(k,41) + rxt(k,214)*y(k,102) & + mat(k,290) = -(rxt(k,212)*y(k,23) + rxt(k,213)*y(k,41) + rxt(k,214)*y(k,103) & + rxt(k,215)*y(k,51)) mat(k,390) = -rxt(k,212)*y(k,39) mat(k,864) = -rxt(k,213)*y(k,39) mat(k,936) = -rxt(k,214)*y(k,39) mat(k,887) = -rxt(k,215)*y(k,39) - mat(k,62) = rxt(k,207)*y(k,94) - mat(k,72) = rxt(k,185)*y(k,94) - mat(k,83) = 2.000_r8*rxt(k,216)*y(k,94) - mat(k,91) = rxt(k,217)*y(k,94) + mat(k,62) = rxt(k,207)*y(k,95) + mat(k,72) = rxt(k,185)*y(k,95) + mat(k,83) = 2.000_r8*rxt(k,216)*y(k,95) + mat(k,91) = rxt(k,217)*y(k,95) mat(k,713) = rxt(k,207)*y(k,10) + rxt(k,185)*y(k,14) + 2.000_r8*rxt(k,216) & *y(k,33) + rxt(k,217)*y(k,34) - mat(k,439) = -((rxt(k,113) + rxt(k,114) + rxt(k,115)) * y(k,89) + rxt(k,116) & + mat(k,439) = -((rxt(k,113) + rxt(k,114) + rxt(k,115)) * y(k,90) + rxt(k,116) & *y(k,70) + rxt(k,119)*y(k,71)) mat(k,550) = -(rxt(k,113) + rxt(k,114) + rxt(k,115)) * y(k,40) mat(k,507) = -rxt(k,116)*y(k,40) mat(k,527) = -rxt(k,119)*y(k,40) - mat(k,473) = rxt(k,237)*y(k,98) - mat(k,395) = rxt(k,243)*y(k,94) + mat(k,473) = rxt(k,237)*y(k,99) + mat(k,395) = rxt(k,243)*y(k,95) mat(k,773) = rxt(k,157)*y(k,41) mat(k,293) = rxt(k,213)*y(k,41) mat(k,867) = rxt(k,157)*y(k,25) + rxt(k,213)*y(k,39) + rxt(k,111)*y(k,69) & - + rxt(k,94)*y(k,94) + rxt(k,120)*y(k,98) - mat(k,257) = rxt(k,211)*y(k,94) - mat(k,452) = rxt(k,188)*y(k,94) - mat(k,350) = rxt(k,143)*y(k,98) - mat(k,674) = rxt(k,111)*y(k,41) + rxt(k,123)*y(k,98) - mat(k,144) = rxt(k,249)*y(k,98) - mat(k,237) = rxt(k,255)*y(k,98) - mat(k,426) = rxt(k,260)*y(k,98) + + rxt(k,94)*y(k,95) + rxt(k,120)*y(k,99) + mat(k,257) = rxt(k,211)*y(k,95) + mat(k,452) = rxt(k,188)*y(k,95) + mat(k,350) = rxt(k,143)*y(k,99) + mat(k,674) = rxt(k,111)*y(k,41) + rxt(k,123)*y(k,99) + mat(k,144) = rxt(k,249)*y(k,99) + mat(k,237) = rxt(k,255)*y(k,99) + mat(k,426) = rxt(k,260)*y(k,99) mat(k,716) = rxt(k,243)*y(k,23) + rxt(k,94)*y(k,41) + rxt(k,211)*y(k,45) & + rxt(k,188)*y(k,49) mat(k,844) = rxt(k,237)*y(k,17) + rxt(k,120)*y(k,41) + rxt(k,143)*y(k,55) & - + rxt(k,123)*y(k,69) + rxt(k,249)*y(k,73) + rxt(k,255)*y(k,76) & - + rxt(k,260)*y(k,78) - mat(k,882) = -(rxt(k,94)*y(k,94) + rxt(k,111)*y(k,69) + rxt(k,120)*y(k,98) & + + rxt(k,123)*y(k,69) + rxt(k,249)*y(k,74) + rxt(k,255)*y(k,77) & + + rxt(k,260)*y(k,79) + mat(k,882) = -(rxt(k,94)*y(k,95) + rxt(k,111)*y(k,69) + rxt(k,120)*y(k,99) & + rxt(k,157)*y(k,25) + rxt(k,213)*y(k,39)) mat(k,731) = -rxt(k,94)*y(k,41) mat(k,689) = -rxt(k,111)*y(k,41) mat(k,859) = -rxt(k,120)*y(k,41) mat(k,788) = -rxt(k,157)*y(k,41) mat(k,296) = -rxt(k,213)*y(k,41) - mat(k,407) = rxt(k,244)*y(k,94) - mat(k,445) = rxt(k,113)*y(k,89) + mat(k,407) = rxt(k,244)*y(k,95) + mat(k,445) = rxt(k,113)*y(k,90) mat(k,565) = rxt(k,113)*y(k,40) mat(k,731) = mat(k,731) + rxt(k,244)*y(k,23) - mat(k,32) = -(rxt(k,209)*y(k,94)) + mat(k,32) = -(rxt(k,209)*y(k,95)) mat(k,694) = -rxt(k,209)*y(k,42) - mat(k,228) = -(rxt(k,112)*y(k,69) + rxt(k,121)*y(k,98) + rxt(k,158)*y(k,25)) + mat(k,228) = -(rxt(k,112)*y(k,69) + rxt(k,121)*y(k,99) + rxt(k,158)*y(k,25)) mat(k,658) = -rxt(k,112)*y(k,43) mat(k,830) = -rxt(k,121)*y(k,43) mat(k,765) = -rxt(k,158)*y(k,43) - mat(k,545) = 2.000_r8*rxt(k,127)*y(k,89) - mat(k,830) = mat(k,830) + 2.000_r8*rxt(k,126)*y(k,98) - mat(k,107) = rxt(k,262)*y(k,102) - mat(k,933) = rxt(k,262)*y(k,80) - mat(k,256) = -(rxt(k,204)*y(k,69) + rxt(k,205)*y(k,98) + (rxt(k,210) & - + rxt(k,211)) * y(k,94)) + mat(k,545) = 2.000_r8*rxt(k,127)*y(k,90) + mat(k,830) = mat(k,830) + 2.000_r8*rxt(k,126)*y(k,99) + mat(k,107) = rxt(k,262)*y(k,103) + mat(k,933) = rxt(k,262)*y(k,81) + mat(k,256) = -(rxt(k,204)*y(k,69) + rxt(k,205)*y(k,99) + (rxt(k,210) & + + rxt(k,211)) * y(k,95)) mat(k,662) = -rxt(k,204)*y(k,45) mat(k,832) = -rxt(k,205)*y(k,45) mat(k,712) = -(rxt(k,210) + rxt(k,211)) * y(k,45) - mat(k,792) = rxt(k,191)*y(k,17) + rxt(k,192)*y(k,89) + mat(k,792) = rxt(k,191)*y(k,17) + rxt(k,192)*y(k,90) mat(k,469) = rxt(k,191)*y(k,3) mat(k,547) = rxt(k,192)*y(k,3) - mat(k,85) = -(rxt(k,227)*y(k,98) + rxt(k,232)*y(k,94)) + mat(k,85) = -(rxt(k,227)*y(k,99) + rxt(k,232)*y(k,95)) mat(k,816) = -rxt(k,227)*y(k,46) mat(k,704) = -rxt(k,232)*y(k,46) - mat(k,95) = -(rxt(k,228)*y(k,98) + rxt(k,233)*y(k,94)) + mat(k,95) = -(rxt(k,228)*y(k,99) + rxt(k,233)*y(k,95)) mat(k,818) = -rxt(k,228)*y(k,47) mat(k,706) = -rxt(k,233)*y(k,47) - mat(k,113) = -(rxt(k,229)*y(k,98) + rxt(k,234)*y(k,94)) + mat(k,113) = -(rxt(k,229)*y(k,99) + rxt(k,234)*y(k,95)) mat(k,820) = -rxt(k,229)*y(k,48) mat(k,708) = -rxt(k,234)*y(k,48) - mat(k,453) = -(rxt(k,175)*y(k,69) + rxt(k,176)*y(k,98) + (rxt(k,187) & - + rxt(k,188)) * y(k,94) + (rxt(k,268) + rxt(k,274) + rxt(k,279) & + mat(k,453) = -(rxt(k,175)*y(k,69) + rxt(k,176)*y(k,99) + (rxt(k,187) & + + rxt(k,188)) * y(k,95) + (rxt(k,268) + rxt(k,274) + rxt(k,279) & ) * y(k,54) + (rxt(k,273) + rxt(k,278) + rxt(k,283)) * y(k,29) & + (rxt(k,275) + rxt(k,280)) * y(k,53)) mat(k,675) = -rxt(k,175)*y(k,49) @@ -386,8 +386,8 @@ subroutine nlnmat02( avec_len, mat, y, rxt ) mat(k,774) = rxt(k,218)*y(k,16) + rxt(k,155)*y(k,17) + rxt(k,220)*y(k,18) & + 2.000_r8*rxt(k,223)*y(k,20) + rxt(k,156)*y(k,23) + rxt(k,225) & *y(k,24) + rxt(k,157)*y(k,41) + rxt(k,158)*y(k,43) + rxt(k,177) & - *y(k,54) + rxt(k,159)*y(k,89) - mat(k,604) = rxt(k,174)*y(k,98) + *y(k,54) + rxt(k,159)*y(k,90) + mat(k,604) = rxt(k,174)*y(k,99) mat(k,868) = rxt(k,157)*y(k,25) mat(k,229) = rxt(k,158)*y(k,25) mat(k,266) = mat(k,266) + rxt(k,177)*y(k,25) @@ -395,63 +395,63 @@ subroutine nlnmat02( avec_len, mat, y, rxt ) mat(k,845) = mat(k,845) + rxt(k,174)*y(k,28) mat(k,387) = rxt(k,212)*y(k,39) mat(k,289) = rxt(k,212)*y(k,23) + rxt(k,213)*y(k,41) + rxt(k,215)*y(k,51) & - + rxt(k,214)*y(k,102) + + rxt(k,214)*y(k,103) mat(k,863) = rxt(k,213)*y(k,39) mat(k,886) = rxt(k,215)*y(k,39) mat(k,935) = rxt(k,214)*y(k,39) - mat(k,906) = -(rxt(k,152)*y(k,98) + rxt(k,215)*y(k,39)) + mat(k,906) = -(rxt(k,152)*y(k,99) + rxt(k,215)*y(k,39)) mat(k,860) = -rxt(k,152)*y(k,51) mat(k,297) = -rxt(k,215)*y(k,51) mat(k,489) = rxt(k,235)*y(k,63) mat(k,316) = (rxt(k,273)+rxt(k,278)+rxt(k,283))*y(k,49) mat(k,133) = rxt(k,246)*y(k,63) mat(k,466) = (rxt(k,273)+rxt(k,278)+rxt(k,283))*y(k,29) - mat(k,648) = rxt(k,151)*y(k,98) + mat(k,648) = rxt(k,151)*y(k,99) mat(k,591) = rxt(k,235)*y(k,17) + rxt(k,246)*y(k,35) mat(k,860) = mat(k,860) + rxt(k,151)*y(k,62) - mat(k,167) = -(rxt(k,128)*y(k,98)) + mat(k,167) = -(rxt(k,128)*y(k,99)) mat(k,826) = -rxt(k,128)*y(k,52) - mat(k,624) = rxt(k,149)*y(k,89) + mat(k,624) = rxt(k,149)*y(k,90) mat(k,544) = rxt(k,149)*y(k,62) mat(k,248) = -(rxt(k,206)*y(k,69) + (rxt(k,275) + rxt(k,280)) * y(k,49)) mat(k,661) = -rxt(k,206)*y(k,53) mat(k,449) = -(rxt(k,275) + rxt(k,280)) * y(k,53) - mat(k,912) = rxt(k,198)*y(k,89) + mat(k,912) = rxt(k,198)*y(k,90) mat(k,546) = rxt(k,198)*y(k,5) - mat(k,265) = -(rxt(k,177)*y(k,25) + rxt(k,178)*y(k,69) + rxt(k,179)*y(k,98) & + mat(k,265) = -(rxt(k,177)*y(k,25) + rxt(k,178)*y(k,69) + rxt(k,179)*y(k,99) & + (rxt(k,268) + rxt(k,274) + rxt(k,279)) * y(k,49)) mat(k,766) = -rxt(k,177)*y(k,54) mat(k,663) = -rxt(k,178)*y(k,54) mat(k,833) = -rxt(k,179)*y(k,54) mat(k,450) = -(rxt(k,268) + rxt(k,274) + rxt(k,279)) * y(k,54) - mat(k,598) = rxt(k,166)*y(k,89) - mat(k,307) = rxt(k,171)*y(k,98) + mat(k,598) = rxt(k,166)*y(k,90) + mat(k,307) = rxt(k,171)*y(k,99) mat(k,548) = rxt(k,166)*y(k,28) mat(k,833) = mat(k,833) + rxt(k,171)*y(k,29) mat(k,347) = -(rxt(k,131)*y(k,61) + (rxt(k,132) + rxt(k,133) + rxt(k,134) & - ) * y(k,62) + rxt(k,135)*y(k,70) + rxt(k,143)*y(k,98) + rxt(k,296) & - *y(k,97)) + ) * y(k,62) + rxt(k,135)*y(k,70) + rxt(k,143)*y(k,99) + rxt(k,296) & + *y(k,98)) mat(k,738) = -rxt(k,131)*y(k,55) mat(k,629) = -(rxt(k,132) + rxt(k,133) + rxt(k,134)) * y(k,55) mat(k,503) = -rxt(k,135)*y(k,55) mat(k,838) = -rxt(k,143)*y(k,55) mat(k,360) = -rxt(k,296)*y(k,55) - mat(k,670) = rxt(k,129)*y(k,90) + rxt(k,293)*y(k,93) - mat(k,503) = mat(k,503) + rxt(k,294)*y(k,93) - mat(k,325) = 1.100_r8*rxt(k,289)*y(k,91) + .200_r8*rxt(k,287)*y(k,92) + mat(k,670) = rxt(k,129)*y(k,91) + rxt(k,293)*y(k,94) + mat(k,503) = mat(k,503) + rxt(k,294)*y(k,94) + mat(k,325) = 1.100_r8*rxt(k,289)*y(k,92) + .200_r8*rxt(k,287)*y(k,93) mat(k,335) = rxt(k,129)*y(k,69) - mat(k,223) = 1.100_r8*rxt(k,289)*y(k,88) - mat(k,245) = .200_r8*rxt(k,287)*y(k,88) + mat(k,223) = 1.100_r8*rxt(k,289)*y(k,89) + mat(k,245) = .200_r8*rxt(k,287)*y(k,89) mat(k,276) = rxt(k,293)*y(k,69) + rxt(k,294)*y(k,70) - mat(k,103) = -((rxt(k,147) + rxt(k,148)) * y(k,94)) + mat(k,103) = -((rxt(k,147) + rxt(k,148)) * y(k,95)) mat(k,707) = -(rxt(k,147) + rxt(k,148)) * y(k,56) mat(k,342) = rxt(k,132)*y(k,62) mat(k,622) = rxt(k,132)*y(k,55) mat(k,623) = rxt(k,150)*y(k,63) mat(k,569) = rxt(k,150)*y(k,62) - mat(k,752) = -(rxt(k,131)*y(k,55) + rxt(k,140)*y(k,63) + rxt(k,144)*y(k,89) & + mat(k,752) = -(rxt(k,131)*y(k,55) + rxt(k,140)*y(k,63) + rxt(k,144)*y(k,90) & + rxt(k,145)*y(k,71) + rxt(k,146)*y(k,69) + rxt(k,167)*y(k,28) & - + rxt(k,199)*y(k,5) + rxt(k,239)*y(k,21) + rxt(k,298)*y(k,97)) + + rxt(k,199)*y(k,5) + rxt(k,239)*y(k,21) + rxt(k,298)*y(k,98)) mat(k,355) = -rxt(k,131)*y(k,61) mat(k,586) = -rxt(k,140)*y(k,61) mat(k,561) = -rxt(k,144)*y(k,61) @@ -462,12 +462,12 @@ subroutine nlnmat02( avec_len, mat, y, rxt ) mat(k,418) = -rxt(k,239)*y(k,61) mat(k,368) = -rxt(k,298)*y(k,61) mat(k,355) = mat(k,355) + 2.000_r8*rxt(k,133)*y(k,62) + rxt(k,135)*y(k,70) & - + rxt(k,143)*y(k,98) - mat(k,106) = 2.000_r8*rxt(k,147)*y(k,94) + + rxt(k,143)*y(k,99) + mat(k,106) = 2.000_r8*rxt(k,147)*y(k,95) mat(k,643) = 2.000_r8*rxt(k,133)*y(k,55) + rxt(k,136)*y(k,69) + rxt(k,256) & - *y(k,78) + *y(k,79) mat(k,685) = mat(k,685) + rxt(k,136)*y(k,62) - mat(k,515) = rxt(k,135)*y(k,55) + rxt(k,130)*y(k,90) + mat(k,515) = rxt(k,135)*y(k,55) + rxt(k,130)*y(k,91) mat(k,433) = rxt(k,256)*y(k,62) mat(k,341) = rxt(k,130)*y(k,70) mat(k,727) = 2.000_r8*rxt(k,147)*y(k,56) @@ -494,8 +494,8 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) do k = 1,avec_len mat(k,640) = -((rxt(k,132) + rxt(k,133) + rxt(k,134)) * y(k,55) + (rxt(k,136) & + rxt(k,138)) * y(k,69) + rxt(k,137)*y(k,71) + rxt(k,149) & - *y(k,89) + rxt(k,150)*y(k,63) + rxt(k,151)*y(k,98) + rxt(k,169) & - *y(k,28) + rxt(k,200)*y(k,5) + rxt(k,256)*y(k,78)) + *y(k,90) + rxt(k,150)*y(k,63) + rxt(k,151)*y(k,99) + rxt(k,169) & + *y(k,28) + rxt(k,200)*y(k,5) + rxt(k,256)*y(k,79)) mat(k,352) = -(rxt(k,132) + rxt(k,133) + rxt(k,134)) * y(k,62) mat(k,682) = -(rxt(k,136) + rxt(k,138)) * y(k,62) mat(k,533) = -rxt(k,137)*y(k,62) @@ -508,18 +508,18 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) mat(k,922) = mat(k,922) + rxt(k,199)*y(k,61) mat(k,417) = rxt(k,239)*y(k,61) mat(k,611) = mat(k,611) + rxt(k,167)*y(k,61) - mat(k,171) = rxt(k,128)*y(k,98) + mat(k,171) = rxt(k,128)*y(k,99) mat(k,749) = rxt(k,199)*y(k,5) + rxt(k,239)*y(k,21) + rxt(k,167)*y(k,28) & + 2.000_r8*rxt(k,140)*y(k,63) + rxt(k,146)*y(k,69) + rxt(k,145) & - *y(k,71) + rxt(k,144)*y(k,89) + *y(k,71) + rxt(k,144)*y(k,90) mat(k,583) = mat(k,583) + 2.000_r8*rxt(k,140)*y(k,61) + rxt(k,141)*y(k,69) & - + rxt(k,139)*y(k,89) + rxt(k,142)*y(k,98) + + rxt(k,139)*y(k,90) + rxt(k,142)*y(k,99) mat(k,682) = mat(k,682) + rxt(k,146)*y(k,61) + rxt(k,141)*y(k,63) mat(k,533) = mat(k,533) + rxt(k,145)*y(k,61) mat(k,558) = mat(k,558) + rxt(k,144)*y(k,61) + rxt(k,139)*y(k,63) mat(k,852) = mat(k,852) + rxt(k,128)*y(k,52) + rxt(k,142)*y(k,63) - mat(k,581) = -(rxt(k,139)*y(k,89) + rxt(k,140)*y(k,61) + rxt(k,141)*y(k,69) & - + rxt(k,142)*y(k,98) + rxt(k,150)*y(k,62) + rxt(k,235)*y(k,17) & + mat(k,581) = -(rxt(k,139)*y(k,90) + rxt(k,140)*y(k,61) + rxt(k,141)*y(k,69) & + + rxt(k,142)*y(k,99) + rxt(k,150)*y(k,62) + rxt(k,235)*y(k,17) & + rxt(k,246)*y(k,35)) mat(k,556) = -rxt(k,139)*y(k,63) mat(k,747) = -rxt(k,140)*y(k,63) @@ -530,9 +530,9 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) mat(k,131) = -rxt(k,246)*y(k,63) mat(k,204) = rxt(k,201)*y(k,69) mat(k,779) = rxt(k,168)*y(k,29) - mat(k,310) = rxt(k,168)*y(k,25) + rxt(k,170)*y(k,69) + rxt(k,171)*y(k,98) + mat(k,310) = rxt(k,168)*y(k,25) + rxt(k,170)*y(k,69) + rxt(k,171)*y(k,99) mat(k,294) = rxt(k,215)*y(k,51) - mat(k,896) = rxt(k,215)*y(k,39) + rxt(k,152)*y(k,98) + mat(k,896) = rxt(k,215)*y(k,39) + rxt(k,152)*y(k,99) mat(k,638) = mat(k,638) + rxt(k,138)*y(k,69) + rxt(k,137)*y(k,71) mat(k,680) = mat(k,680) + rxt(k,201)*y(k,6) + rxt(k,170)*y(k,29) + rxt(k,138) & *y(k,62) @@ -540,13 +540,13 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) mat(k,850) = mat(k,850) + rxt(k,171)*y(k,29) + rxt(k,152)*y(k,51) mat(k,683) = -(rxt(k,108)*y(k,71) + 4._r8*rxt(k,109)*y(k,69) + rxt(k,110) & *y(k,70) + rxt(k,111)*y(k,41) + rxt(k,112)*y(k,43) + rxt(k,117) & - *y(k,89) + rxt(k,123)*y(k,98) + (rxt(k,136) + rxt(k,138) & + *y(k,90) + rxt(k,123)*y(k,99) + (rxt(k,136) + rxt(k,138) & ) * y(k,62) + rxt(k,141)*y(k,63) + rxt(k,146)*y(k,61) + rxt(k,170) & *y(k,29) + rxt(k,172)*y(k,28) + rxt(k,175)*y(k,49) + rxt(k,178) & *y(k,54) + rxt(k,201)*y(k,6) + rxt(k,202)*y(k,5) + rxt(k,204) & *y(k,45) + rxt(k,206)*y(k,53) + rxt(k,236)*y(k,17) + rxt(k,248) & - *y(k,73) + (rxt(k,291) + rxt(k,292)) * y(k,91) + rxt(k,293) & - *y(k,93)) + *y(k,74) + (rxt(k,291) + rxt(k,292)) * y(k,92) + rxt(k,293) & + *y(k,94)) mat(k,534) = -rxt(k,108)*y(k,69) mat(k,513) = -rxt(k,110)*y(k,69) mat(k,876) = -rxt(k,111)*y(k,69) @@ -568,31 +568,31 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) mat(k,145) = -rxt(k,248)*y(k,69) mat(k,227) = -(rxt(k,291) + rxt(k,292)) * y(k,69) mat(k,280) = -rxt(k,293)*y(k,69) - mat(k,443) = rxt(k,115)*y(k,89) + mat(k,443) = rxt(k,115)*y(k,90) mat(k,353) = rxt(k,131)*y(k,61) + rxt(k,132)*y(k,62) + rxt(k,135)*y(k,70) & - + rxt(k,296)*y(k,97) + + rxt(k,296)*y(k,98) mat(k,750) = mat(k,750) + rxt(k,131)*y(k,55) mat(k,641) = mat(k,641) + rxt(k,132)*y(k,55) - mat(k,513) = mat(k,513) + rxt(k,135)*y(k,55) + rxt(k,250)*y(k,76) & - + rxt(k,257)*y(k,78) + rxt(k,295)*y(k,93) + (rxt(k,97)+rxt(k,98)) & - *y(k,94) + rxt(k,302)*y(k,99) + rxt(k,306)*y(k,100) + mat(k,513) = mat(k,513) + rxt(k,135)*y(k,55) + rxt(k,250)*y(k,77) & + + rxt(k,257)*y(k,79) + rxt(k,295)*y(k,94) + (rxt(k,97)+rxt(k,98)) & + *y(k,95) + rxt(k,302)*y(k,100) + rxt(k,306)*y(k,101) mat(k,240) = rxt(k,250)*y(k,70) mat(k,432) = rxt(k,257)*y(k,70) - mat(k,329) = rxt(k,287)*y(k,92) + 1.150_r8*rxt(k,288)*y(k,97) + mat(k,329) = rxt(k,287)*y(k,93) + 1.150_r8*rxt(k,288)*y(k,98) mat(k,559) = mat(k,559) + rxt(k,115)*y(k,40) - mat(k,339) = rxt(k,301)*y(k,99) - mat(k,246) = rxt(k,287)*y(k,88) + mat(k,339) = rxt(k,301)*y(k,100) + mat(k,246) = rxt(k,287)*y(k,89) mat(k,280) = mat(k,280) + rxt(k,295)*y(k,70) mat(k,725) = (rxt(k,97)+rxt(k,98))*y(k,70) - mat(k,366) = rxt(k,296)*y(k,55) + 1.150_r8*rxt(k,288)*y(k,88) - mat(k,853) = mat(k,853) + 2.000_r8*rxt(k,125)*y(k,98) - mat(k,383) = rxt(k,302)*y(k,70) + rxt(k,301)*y(k,90) + mat(k,366) = rxt(k,296)*y(k,55) + 1.150_r8*rxt(k,288)*y(k,89) + mat(k,853) = mat(k,853) + 2.000_r8*rxt(k,125)*y(k,99) + mat(k,383) = rxt(k,302)*y(k,70) + rxt(k,301)*y(k,91) mat(k,193) = rxt(k,306)*y(k,70) - mat(k,508) = -(rxt(k,97)*y(k,94) + rxt(k,102)*y(k,95) + rxt(k,110)*y(k,69) & - + rxt(k,116)*y(k,40) + rxt(k,130)*y(k,90) + rxt(k,135)*y(k,55) & - + rxt(k,250)*y(k,76) + rxt(k,257)*y(k,78) + rxt(k,290)*y(k,91) & - + (rxt(k,294) + rxt(k,295)) * y(k,93) + rxt(k,302)*y(k,99) & - + rxt(k,306)*y(k,100)) + mat(k,508) = -(rxt(k,97)*y(k,95) + rxt(k,102)*y(k,96) + rxt(k,110)*y(k,69) & + + rxt(k,116)*y(k,40) + rxt(k,130)*y(k,91) + rxt(k,135)*y(k,55) & + + rxt(k,250)*y(k,77) + rxt(k,257)*y(k,79) + rxt(k,290)*y(k,92) & + + (rxt(k,294) + rxt(k,295)) * y(k,94) + rxt(k,302)*y(k,100) & + + rxt(k,306)*y(k,101)) mat(k,719) = -rxt(k,97)*y(k,70) mat(k,78) = -rxt(k,102)*y(k,70) mat(k,677) = -rxt(k,110)*y(k,70) @@ -605,46 +605,46 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) mat(k,279) = -(rxt(k,294) + rxt(k,295)) * y(k,70) mat(k,380) = -rxt(k,302)*y(k,70) mat(k,192) = -rxt(k,306)*y(k,70) - mat(k,798) = rxt(k,193)*y(k,71) + rxt(k,192)*y(k,89) + mat(k,798) = rxt(k,193)*y(k,71) + rxt(k,192)*y(k,90) mat(k,917) = 2.000_r8*rxt(k,194)*y(k,5) + (rxt(k,196)+rxt(k,197))*y(k,28) & - + rxt(k,202)*y(k,69) + rxt(k,198)*y(k,89) - mat(k,414) = rxt(k,238)*y(k,89) - mat(k,776) = rxt(k,161)*y(k,71) + rxt(k,159)*y(k,89) + + rxt(k,202)*y(k,69) + rxt(k,198)*y(k,90) + mat(k,414) = rxt(k,238)*y(k,90) + mat(k,776) = rxt(k,161)*y(k,71) + rxt(k,159)*y(k,90) mat(k,606) = (rxt(k,196)+rxt(k,197))*y(k,5) + (2.000_r8*rxt(k,163) & +2.000_r8*rxt(k,164))*y(k,28) + rxt(k,172)*y(k,69) + rxt(k,166) & - *y(k,89) + rxt(k,174)*y(k,98) - mat(k,440) = mat(k,440) + rxt(k,119)*y(k,71) + rxt(k,113)*y(k,89) - mat(k,168) = rxt(k,128)*y(k,98) + *y(k,90) + rxt(k,174)*y(k,99) + mat(k,440) = mat(k,440) + rxt(k,119)*y(k,71) + rxt(k,113)*y(k,90) + mat(k,168) = rxt(k,128)*y(k,99) mat(k,351) = mat(k,351) + rxt(k,134)*y(k,62) - mat(k,104) = rxt(k,148)*y(k,94) - mat(k,744) = rxt(k,145)*y(k,71) + rxt(k,298)*y(k,97) + mat(k,104) = rxt(k,148)*y(k,95) + mat(k,744) = rxt(k,145)*y(k,71) + rxt(k,298)*y(k,98) mat(k,635) = rxt(k,134)*y(k,55) + rxt(k,136)*y(k,69) + rxt(k,137)*y(k,71) - mat(k,578) = rxt(k,141)*y(k,69) + rxt(k,139)*y(k,89) + mat(k,578) = rxt(k,141)*y(k,69) + rxt(k,139)*y(k,90) mat(k,677) = mat(k,677) + rxt(k,202)*y(k,5) + rxt(k,172)*y(k,28) + rxt(k,136) & *y(k,62) + rxt(k,141)*y(k,63) + 2.000_r8*rxt(k,109)*y(k,69) & - + 2.000_r8*rxt(k,108)*y(k,71) + rxt(k,117)*y(k,89) + rxt(k,101) & - *y(k,95) + rxt(k,123)*y(k,98) - mat(k,508) = mat(k,508) + 2.000_r8*rxt(k,102)*y(k,95) + + 2.000_r8*rxt(k,108)*y(k,71) + rxt(k,117)*y(k,90) + rxt(k,101) & + *y(k,96) + rxt(k,123)*y(k,99) + mat(k,508) = mat(k,508) + 2.000_r8*rxt(k,102)*y(k,96) mat(k,528) = rxt(k,193)*y(k,3) + rxt(k,161)*y(k,25) + rxt(k,119)*y(k,40) & + rxt(k,145)*y(k,61) + rxt(k,137)*y(k,62) + 2.000_r8*rxt(k,108) & - *y(k,69) + rxt(k,252)*y(k,76) + rxt(k,258)*y(k,78) & - + 2.000_r8*rxt(k,118)*y(k,89) + 2.000_r8*rxt(k,99)*y(k,94) & - + rxt(k,124)*y(k,98) + *y(k,69) + rxt(k,252)*y(k,77) + rxt(k,258)*y(k,79) & + + 2.000_r8*rxt(k,118)*y(k,90) + 2.000_r8*rxt(k,99)*y(k,95) & + + rxt(k,124)*y(k,99) mat(k,238) = mat(k,238) + rxt(k,252)*y(k,71) mat(k,427) = mat(k,427) + rxt(k,258)*y(k,71) mat(k,553) = rxt(k,192)*y(k,3) + rxt(k,198)*y(k,5) + rxt(k,238)*y(k,21) & + rxt(k,159)*y(k,25) + rxt(k,166)*y(k,28) + rxt(k,113)*y(k,40) & + rxt(k,139)*y(k,63) + rxt(k,117)*y(k,69) + 2.000_r8*rxt(k,118) & - *y(k,71) + 2.000_r8*rxt(k,127)*y(k,89) + rxt(k,122)*y(k,98) + *y(k,71) + 2.000_r8*rxt(k,127)*y(k,90) + rxt(k,122)*y(k,99) mat(k,719) = mat(k,719) + rxt(k,148)*y(k,56) + 2.000_r8*rxt(k,99)*y(k,71) mat(k,78) = mat(k,78) + rxt(k,101)*y(k,69) + 2.000_r8*rxt(k,102)*y(k,70) mat(k,364) = rxt(k,298)*y(k,61) mat(k,847) = rxt(k,174)*y(k,28) + rxt(k,128)*y(k,52) + rxt(k,123)*y(k,69) & - + rxt(k,124)*y(k,71) + rxt(k,122)*y(k,89) - mat(k,529) = -(rxt(k,99)*y(k,94) + rxt(k,108)*y(k,69) + rxt(k,118)*y(k,89) & - + rxt(k,119)*y(k,40) + rxt(k,124)*y(k,98) + rxt(k,137)*y(k,62) & + + rxt(k,124)*y(k,71) + rxt(k,122)*y(k,90) + mat(k,529) = -(rxt(k,99)*y(k,95) + rxt(k,108)*y(k,69) + rxt(k,118)*y(k,90) & + + rxt(k,119)*y(k,40) + rxt(k,124)*y(k,99) + rxt(k,137)*y(k,62) & + rxt(k,145)*y(k,61) + rxt(k,161)*y(k,25) + rxt(k,193)*y(k,3) & - + rxt(k,252)*y(k,76) + rxt(k,258)*y(k,78)) + + rxt(k,252)*y(k,77) + rxt(k,258)*y(k,79)) mat(k,720) = -rxt(k,99)*y(k,71) mat(k,678) = -rxt(k,108)*y(k,71) mat(k,554) = -rxt(k,118)*y(k,71) @@ -658,49 +658,49 @@ subroutine nlnmat03( avec_len, mat, y, rxt ) mat(k,428) = -rxt(k,258)*y(k,71) mat(k,678) = mat(k,678) + rxt(k,110)*y(k,70) mat(k,509) = rxt(k,110)*y(k,69) - mat(k,134) = -(rxt(k,259)*y(k,78)) - mat(k,422) = -rxt(k,259)*y(k,72) + mat(k,134) = -(rxt(k,259)*y(k,79)) + mat(k,422) = -rxt(k,259)*y(k,73) mat(k,910) = rxt(k,195)*y(k,28) mat(k,597) = rxt(k,195)*y(k,5) + 2.000_r8*rxt(k,165)*y(k,28) - mat(k,139) = -(rxt(k,248)*y(k,69) + rxt(k,249)*y(k,98)) - mat(k,653) = -rxt(k,248)*y(k,73) - mat(k,822) = -rxt(k,249)*y(k,73) - mat(k,235) = -(rxt(k,250)*y(k,70) + rxt(k,252)*y(k,71) + rxt(k,255)*y(k,98)) - mat(k,497) = -rxt(k,250)*y(k,76) - mat(k,524) = -rxt(k,252)*y(k,76) - mat(k,831) = -rxt(k,255)*y(k,76) + mat(k,139) = -(rxt(k,248)*y(k,69) + rxt(k,249)*y(k,99)) + mat(k,653) = -rxt(k,248)*y(k,74) + mat(k,822) = -rxt(k,249)*y(k,74) + mat(k,235) = -(rxt(k,250)*y(k,70) + rxt(k,252)*y(k,71) + rxt(k,255)*y(k,99)) + mat(k,497) = -rxt(k,250)*y(k,77) + mat(k,524) = -rxt(k,252)*y(k,77) + mat(k,831) = -rxt(k,255)*y(k,77) mat(k,425) = -(rxt(k,253)*y(k,5) + rxt(k,254)*y(k,28) + rxt(k,256)*y(k,62) & - + rxt(k,257)*y(k,70) + rxt(k,258)*y(k,71) + rxt(k,259)*y(k,72) & - + rxt(k,260)*y(k,98)) - mat(k,914) = -rxt(k,253)*y(k,78) - mat(k,602) = -rxt(k,254)*y(k,78) - mat(k,632) = -rxt(k,256)*y(k,78) - mat(k,506) = -rxt(k,257)*y(k,78) - mat(k,526) = -rxt(k,258)*y(k,78) - mat(k,136) = -rxt(k,259)*y(k,78) - mat(k,843) = -rxt(k,260)*y(k,78) - mat(k,673) = rxt(k,248)*y(k,73) - mat(k,506) = mat(k,506) + rxt(k,250)*y(k,76) - mat(k,526) = mat(k,526) + rxt(k,252)*y(k,76) + + rxt(k,257)*y(k,70) + rxt(k,258)*y(k,71) + rxt(k,259)*y(k,73) & + + rxt(k,260)*y(k,99)) + mat(k,914) = -rxt(k,253)*y(k,79) + mat(k,602) = -rxt(k,254)*y(k,79) + mat(k,632) = -rxt(k,256)*y(k,79) + mat(k,506) = -rxt(k,257)*y(k,79) + mat(k,526) = -rxt(k,258)*y(k,79) + mat(k,136) = -rxt(k,259)*y(k,79) + mat(k,843) = -rxt(k,260)*y(k,79) + mat(k,673) = rxt(k,248)*y(k,74) + mat(k,506) = mat(k,506) + rxt(k,250)*y(k,77) + mat(k,526) = mat(k,526) + rxt(k,252)*y(k,77) mat(k,143) = rxt(k,248)*y(k,69) - mat(k,236) = rxt(k,250)*y(k,70) + rxt(k,252)*y(k,71) + rxt(k,255)*y(k,98) - mat(k,843) = mat(k,843) + rxt(k,255)*y(k,76) - mat(k,300) = -(rxt(k,251)*y(k,98)) - mat(k,836) = -rxt(k,251)*y(k,79) - mat(k,913) = rxt(k,253)*y(k,78) - mat(k,599) = rxt(k,254)*y(k,78) - mat(k,129) = rxt(k,246)*y(k,63) + (rxt(k,247)+.500_r8*rxt(k,261))*y(k,98) - mat(k,627) = rxt(k,256)*y(k,78) + mat(k,236) = rxt(k,250)*y(k,70) + rxt(k,252)*y(k,71) + rxt(k,255)*y(k,99) + mat(k,843) = mat(k,843) + rxt(k,255)*y(k,77) + mat(k,300) = -(rxt(k,251)*y(k,99)) + mat(k,836) = -rxt(k,251)*y(k,80) + mat(k,913) = rxt(k,253)*y(k,79) + mat(k,599) = rxt(k,254)*y(k,79) + mat(k,129) = rxt(k,246)*y(k,63) + (rxt(k,247)+.500_r8*rxt(k,261))*y(k,99) + mat(k,627) = rxt(k,256)*y(k,79) mat(k,572) = rxt(k,246)*y(k,35) - mat(k,500) = rxt(k,257)*y(k,78) - mat(k,525) = rxt(k,258)*y(k,78) - mat(k,135) = rxt(k,259)*y(k,78) - mat(k,142) = rxt(k,249)*y(k,98) + mat(k,500) = rxt(k,257)*y(k,79) + mat(k,525) = rxt(k,258)*y(k,79) + mat(k,135) = rxt(k,259)*y(k,79) + mat(k,142) = rxt(k,249)*y(k,99) mat(k,424) = rxt(k,253)*y(k,5) + rxt(k,254)*y(k,28) + rxt(k,256)*y(k,62) & - + rxt(k,257)*y(k,70) + rxt(k,258)*y(k,71) + rxt(k,259)*y(k,72) & - + rxt(k,260)*y(k,98) + + rxt(k,257)*y(k,70) + rxt(k,258)*y(k,71) + rxt(k,259)*y(k,73) & + + rxt(k,260)*y(k,99) mat(k,836) = mat(k,836) + (rxt(k,247)+.500_r8*rxt(k,261))*y(k,35) & - + rxt(k,249)*y(k,73) + rxt(k,260)*y(k,78) + + rxt(k,249)*y(k,74) + rxt(k,260)*y(k,79) end do end subroutine nlnmat03 subroutine nlnmat04( avec_len, mat, y, rxt ) @@ -721,86 +721,86 @@ subroutine nlnmat04( avec_len, mat, y, rxt ) ! ... complete matrix entries implicit species !---------------------------------------------- do k = 1,avec_len - mat(k,108) = -(rxt(k,262)*y(k,102)) - mat(k,934) = -rxt(k,262)*y(k,80) - mat(k,299) = rxt(k,251)*y(k,98) - mat(k,819) = rxt(k,251)*y(k,79) - mat(k,323) = -(rxt(k,287)*y(k,92) + rxt(k,288)*y(k,97) + rxt(k,289)*y(k,91)) - mat(k,243) = -rxt(k,287)*y(k,88) - mat(k,358) = -rxt(k,288)*y(k,88) - mat(k,221) = -rxt(k,289)*y(k,88) + mat(k,108) = -(rxt(k,262)*y(k,103)) + mat(k,934) = -rxt(k,262)*y(k,81) + mat(k,299) = rxt(k,251)*y(k,99) + mat(k,819) = rxt(k,251)*y(k,80) + mat(k,323) = -(rxt(k,287)*y(k,93) + rxt(k,288)*y(k,98) + rxt(k,289)*y(k,92)) + mat(k,243) = -rxt(k,287)*y(k,89) + mat(k,358) = -rxt(k,288)*y(k,89) + mat(k,221) = -rxt(k,289)*y(k,89) mat(k,555) = -((rxt(k,113) + rxt(k,114) + rxt(k,115)) * y(k,40) + rxt(k,117) & - *y(k,69) + rxt(k,118)*y(k,71) + rxt(k,122)*y(k,98) & - + 4._r8*rxt(k,127)*y(k,89) + rxt(k,139)*y(k,63) + rxt(k,144) & + *y(k,69) + rxt(k,118)*y(k,71) + rxt(k,122)*y(k,99) & + + 4._r8*rxt(k,127)*y(k,90) + rxt(k,139)*y(k,63) + rxt(k,144) & *y(k,61) + rxt(k,149)*y(k,62) + (rxt(k,159) + rxt(k,160) & ) * y(k,25) + rxt(k,166)*y(k,28) + rxt(k,192)*y(k,3) + rxt(k,198) & *y(k,5) + rxt(k,238)*y(k,21)) - mat(k,442) = -(rxt(k,113) + rxt(k,114) + rxt(k,115)) * y(k,89) - mat(k,679) = -rxt(k,117)*y(k,89) - mat(k,530) = -rxt(k,118)*y(k,89) - mat(k,849) = -rxt(k,122)*y(k,89) - mat(k,580) = -rxt(k,139)*y(k,89) - mat(k,746) = -rxt(k,144)*y(k,89) - mat(k,637) = -rxt(k,149)*y(k,89) - mat(k,778) = -(rxt(k,159) + rxt(k,160)) * y(k,89) - mat(k,608) = -rxt(k,166)*y(k,89) - mat(k,800) = -rxt(k,192)*y(k,89) - mat(k,919) = -rxt(k,198)*y(k,89) - mat(k,415) = -rxt(k,238)*y(k,89) + mat(k,442) = -(rxt(k,113) + rxt(k,114) + rxt(k,115)) * y(k,90) + mat(k,679) = -rxt(k,117)*y(k,90) + mat(k,530) = -rxt(k,118)*y(k,90) + mat(k,849) = -rxt(k,122)*y(k,90) + mat(k,580) = -rxt(k,139)*y(k,90) + mat(k,746) = -rxt(k,144)*y(k,90) + mat(k,637) = -rxt(k,149)*y(k,90) + mat(k,778) = -(rxt(k,159) + rxt(k,160)) * y(k,90) + mat(k,608) = -rxt(k,166)*y(k,90) + mat(k,800) = -rxt(k,192)*y(k,90) + mat(k,919) = -rxt(k,198)*y(k,90) + mat(k,415) = -rxt(k,238)*y(k,90) mat(k,800) = mat(k,800) + rxt(k,191)*y(k,17) - mat(k,919) = mat(k,919) + rxt(k,203)*y(k,98) + mat(k,919) = mat(k,919) + rxt(k,203)*y(k,99) mat(k,478) = rxt(k,191)*y(k,3) + rxt(k,155)*y(k,25) + rxt(k,235)*y(k,63) & + rxt(k,236)*y(k,69) - mat(k,213) = rxt(k,220)*y(k,25) + rxt(k,221)*y(k,98) - mat(k,151) = rxt(k,223)*y(k,25) + rxt(k,224)*y(k,98) + mat(k,213) = rxt(k,220)*y(k,25) + rxt(k,221)*y(k,99) + mat(k,151) = rxt(k,223)*y(k,25) + rxt(k,224)*y(k,99) mat(k,415) = mat(k,415) + rxt(k,162)*y(k,28) + rxt(k,239)*y(k,61) - mat(k,399) = rxt(k,243)*y(k,94) + mat(k,399) = rxt(k,243)*y(k,95) mat(k,778) = mat(k,778) + rxt(k,155)*y(k,17) + rxt(k,220)*y(k,18) & + rxt(k,223)*y(k,20) + rxt(k,158)*y(k,43) - mat(k,608) = mat(k,608) + rxt(k,162)*y(k,21) + rxt(k,173)*y(k,98) - mat(k,286) = rxt(k,245)*y(k,98) - mat(k,130) = .500_r8*rxt(k,261)*y(k,98) + mat(k,608) = mat(k,608) + rxt(k,162)*y(k,21) + rxt(k,173)*y(k,99) + mat(k,286) = rxt(k,245)*y(k,99) + mat(k,130) = .500_r8*rxt(k,261)*y(k,99) mat(k,442) = mat(k,442) + rxt(k,116)*y(k,70) - mat(k,230) = rxt(k,158)*y(k,25) + rxt(k,112)*y(k,69) + rxt(k,121)*y(k,98) + mat(k,230) = rxt(k,158)*y(k,25) + rxt(k,112)*y(k,69) + rxt(k,121)*y(k,99) mat(k,746) = mat(k,746) + rxt(k,239)*y(k,21) - mat(k,580) = mat(k,580) + rxt(k,235)*y(k,17) + rxt(k,142)*y(k,98) + mat(k,580) = mat(k,580) + rxt(k,235)*y(k,17) + rxt(k,142)*y(k,99) mat(k,679) = mat(k,679) + rxt(k,236)*y(k,17) + rxt(k,112)*y(k,43) mat(k,510) = rxt(k,116)*y(k,40) - mat(k,530) = mat(k,530) + rxt(k,124)*y(k,98) - mat(k,302) = rxt(k,251)*y(k,98) + mat(k,530) = mat(k,530) + rxt(k,124)*y(k,99) + mat(k,302) = rxt(k,251)*y(k,99) mat(k,721) = rxt(k,243)*y(k,23) mat(k,849) = mat(k,849) + rxt(k,203)*y(k,5) + rxt(k,221)*y(k,18) + rxt(k,224) & *y(k,20) + rxt(k,173)*y(k,28) + rxt(k,245)*y(k,31) & + .500_r8*rxt(k,261)*y(k,35) + rxt(k,121)*y(k,43) + rxt(k,142) & - *y(k,63) + rxt(k,124)*y(k,71) + rxt(k,251)*y(k,79) - mat(k,334) = -(rxt(k,129)*y(k,69) + rxt(k,130)*y(k,70) + rxt(k,301)*y(k,99)) - mat(k,669) = -rxt(k,129)*y(k,90) - mat(k,502) = -rxt(k,130)*y(k,90) - mat(k,375) = -rxt(k,301)*y(k,90) - mat(k,669) = mat(k,669) + rxt(k,291)*y(k,91) - mat(k,324) = .900_r8*rxt(k,289)*y(k,91) + .800_r8*rxt(k,287)*y(k,92) - mat(k,222) = rxt(k,291)*y(k,69) + .900_r8*rxt(k,289)*y(k,88) - mat(k,244) = .800_r8*rxt(k,287)*y(k,88) - mat(k,219) = -(rxt(k,289)*y(k,88) + rxt(k,290)*y(k,70) + (rxt(k,291) & + *y(k,63) + rxt(k,124)*y(k,71) + rxt(k,251)*y(k,80) + mat(k,334) = -(rxt(k,129)*y(k,69) + rxt(k,130)*y(k,70) + rxt(k,301)*y(k,100)) + mat(k,669) = -rxt(k,129)*y(k,91) + mat(k,502) = -rxt(k,130)*y(k,91) + mat(k,375) = -rxt(k,301)*y(k,91) + mat(k,669) = mat(k,669) + rxt(k,291)*y(k,92) + mat(k,324) = .900_r8*rxt(k,289)*y(k,92) + .800_r8*rxt(k,287)*y(k,93) + mat(k,222) = rxt(k,291)*y(k,69) + .900_r8*rxt(k,289)*y(k,89) + mat(k,244) = .800_r8*rxt(k,287)*y(k,89) + mat(k,219) = -(rxt(k,289)*y(k,89) + rxt(k,290)*y(k,70) + (rxt(k,291) & + rxt(k,292)) * y(k,69)) - mat(k,320) = -rxt(k,289)*y(k,91) - mat(k,496) = -rxt(k,290)*y(k,91) - mat(k,657) = -(rxt(k,291) + rxt(k,292)) * y(k,91) - mat(k,242) = -(rxt(k,287)*y(k,88)) - mat(k,321) = -rxt(k,287)*y(k,92) - mat(k,343) = rxt(k,296)*y(k,97) - mat(k,735) = rxt(k,298)*y(k,97) - mat(k,660) = rxt(k,291)*y(k,91) - mat(k,498) = rxt(k,295)*y(k,93) + mat(k,320) = -rxt(k,289)*y(k,92) + mat(k,496) = -rxt(k,290)*y(k,92) + mat(k,657) = -(rxt(k,291) + rxt(k,292)) * y(k,92) + mat(k,242) = -(rxt(k,287)*y(k,89)) + mat(k,321) = -rxt(k,287)*y(k,93) + mat(k,343) = rxt(k,296)*y(k,98) + mat(k,735) = rxt(k,298)*y(k,98) + mat(k,660) = rxt(k,291)*y(k,92) + mat(k,498) = rxt(k,295)*y(k,94) mat(k,220) = rxt(k,291)*y(k,69) mat(k,272) = rxt(k,295)*y(k,70) mat(k,357) = rxt(k,296)*y(k,55) + rxt(k,298)*y(k,61) mat(k,273) = -(rxt(k,293)*y(k,69) + (rxt(k,294) + rxt(k,295)) * y(k,70)) - mat(k,664) = -rxt(k,293)*y(k,93) - mat(k,499) = -(rxt(k,294) + rxt(k,295)) * y(k,93) - mat(k,332) = rxt(k,301)*y(k,99) - mat(k,372) = rxt(k,301)*y(k,90) - mat(k,726) = -(rxt(k,94)*y(k,41) + rxt(k,95)*y(k,102) + (rxt(k,97) + rxt(k,98) & + mat(k,664) = -rxt(k,293)*y(k,94) + mat(k,499) = -(rxt(k,294) + rxt(k,295)) * y(k,94) + mat(k,332) = rxt(k,301)*y(k,100) + mat(k,372) = rxt(k,301)*y(k,91) + mat(k,726) = -(rxt(k,94)*y(k,41) + rxt(k,95)*y(k,103) + (rxt(k,97) + rxt(k,98) & ) * y(k,70) + rxt(k,99)*y(k,71) + (rxt(k,147) + rxt(k,148) & ) * y(k,56) + rxt(k,180)*y(k,8) + rxt(k,181)*y(k,9) + rxt(k,182) & *y(k,11) + rxt(k,183)*y(k,12) + rxt(k,184)*y(k,13) + rxt(k,185) & @@ -810,66 +810,66 @@ subroutine nlnmat04( avec_len, mat, y, rxt ) *y(k,33) + rxt(k,217)*y(k,34) + rxt(k,230)*y(k,16) + rxt(k,231) & *y(k,18) + rxt(k,232)*y(k,46) + rxt(k,233)*y(k,47) + rxt(k,234) & *y(k,48) + (rxt(k,242) + rxt(k,243) + rxt(k,244)) * y(k,23)) - mat(k,877) = -rxt(k,94)*y(k,94) - mat(k,951) = -rxt(k,95)*y(k,94) - mat(k,514) = -(rxt(k,97) + rxt(k,98)) * y(k,94) - mat(k,535) = -rxt(k,99)*y(k,94) - mat(k,105) = -(rxt(k,147) + rxt(k,148)) * y(k,94) - mat(k,30) = -rxt(k,180)*y(k,94) - mat(k,57) = -rxt(k,181)*y(k,94) - mat(k,38) = -rxt(k,182)*y(k,94) - mat(k,68) = -rxt(k,183)*y(k,94) - mat(k,42) = -rxt(k,184)*y(k,94) - mat(k,73) = -rxt(k,185)*y(k,94) - mat(k,46) = -rxt(k,186)*y(k,94) - mat(k,461) = -(rxt(k,187) + rxt(k,188)) * y(k,94) - mat(k,63) = -rxt(k,207)*y(k,94) - mat(k,163) = -rxt(k,208)*y(k,94) - mat(k,34) = -rxt(k,209)*y(k,94) - mat(k,259) = -(rxt(k,210) + rxt(k,211)) * y(k,94) - mat(k,84) = -rxt(k,216)*y(k,94) - mat(k,92) = -rxt(k,217)*y(k,94) - mat(k,176) = -rxt(k,230)*y(k,94) - mat(k,214) = -rxt(k,231)*y(k,94) - mat(k,87) = -rxt(k,232)*y(k,94) - mat(k,97) = -rxt(k,233)*y(k,94) - mat(k,115) = -rxt(k,234)*y(k,94) - mat(k,403) = -(rxt(k,242) + rxt(k,243) + rxt(k,244)) * y(k,94) - mat(k,514) = mat(k,514) + rxt(k,130)*y(k,90) - mat(k,330) = .850_r8*rxt(k,288)*y(k,97) + mat(k,877) = -rxt(k,94)*y(k,95) + mat(k,951) = -rxt(k,95)*y(k,95) + mat(k,514) = -(rxt(k,97) + rxt(k,98)) * y(k,95) + mat(k,535) = -rxt(k,99)*y(k,95) + mat(k,105) = -(rxt(k,147) + rxt(k,148)) * y(k,95) + mat(k,30) = -rxt(k,180)*y(k,95) + mat(k,57) = -rxt(k,181)*y(k,95) + mat(k,38) = -rxt(k,182)*y(k,95) + mat(k,68) = -rxt(k,183)*y(k,95) + mat(k,42) = -rxt(k,184)*y(k,95) + mat(k,73) = -rxt(k,185)*y(k,95) + mat(k,46) = -rxt(k,186)*y(k,95) + mat(k,461) = -(rxt(k,187) + rxt(k,188)) * y(k,95) + mat(k,63) = -rxt(k,207)*y(k,95) + mat(k,163) = -rxt(k,208)*y(k,95) + mat(k,34) = -rxt(k,209)*y(k,95) + mat(k,259) = -(rxt(k,210) + rxt(k,211)) * y(k,95) + mat(k,84) = -rxt(k,216)*y(k,95) + mat(k,92) = -rxt(k,217)*y(k,95) + mat(k,176) = -rxt(k,230)*y(k,95) + mat(k,214) = -rxt(k,231)*y(k,95) + mat(k,87) = -rxt(k,232)*y(k,95) + mat(k,97) = -rxt(k,233)*y(k,95) + mat(k,115) = -rxt(k,234)*y(k,95) + mat(k,403) = -(rxt(k,242) + rxt(k,243) + rxt(k,244)) * y(k,95) + mat(k,514) = mat(k,514) + rxt(k,130)*y(k,91) + mat(k,330) = .850_r8*rxt(k,288)*y(k,98) mat(k,340) = rxt(k,130)*y(k,70) - mat(k,367) = .850_r8*rxt(k,288)*y(k,88) + mat(k,367) = .850_r8*rxt(k,288)*y(k,89) mat(k,77) = -(rxt(k,101)*y(k,69) + rxt(k,102)*y(k,70)) - mat(k,651) = -rxt(k,101)*y(k,95) - mat(k,492) = -rxt(k,102)*y(k,95) - mat(k,194) = rxt(k,103)*y(k,96) - mat(k,651) = mat(k,651) + rxt(k,105)*y(k,96) - mat(k,492) = mat(k,492) + rxt(k,106)*y(k,96) - mat(k,522) = rxt(k,107)*y(k,96) + mat(k,651) = -rxt(k,101)*y(k,96) + mat(k,492) = -rxt(k,102)*y(k,96) + mat(k,194) = rxt(k,103)*y(k,97) + mat(k,651) = mat(k,651) + rxt(k,105)*y(k,97) + mat(k,492) = mat(k,492) + rxt(k,106)*y(k,97) + mat(k,522) = rxt(k,107)*y(k,97) mat(k,79) = rxt(k,103)*y(k,32) + rxt(k,105)*y(k,69) + rxt(k,106)*y(k,70) & + rxt(k,107)*y(k,71) mat(k,80) = -(rxt(k,103)*y(k,32) + rxt(k,105)*y(k,69) + rxt(k,106)*y(k,70) & + rxt(k,107)*y(k,71)) - mat(k,195) = -rxt(k,103)*y(k,96) - mat(k,652) = -rxt(k,105)*y(k,96) - mat(k,493) = -rxt(k,106)*y(k,96) - mat(k,523) = -rxt(k,107)*y(k,96) - mat(k,493) = mat(k,493) + rxt(k,97)*y(k,94) + mat(k,195) = -rxt(k,103)*y(k,97) + mat(k,652) = -rxt(k,105)*y(k,97) + mat(k,493) = -rxt(k,106)*y(k,97) + mat(k,523) = -rxt(k,107)*y(k,97) + mat(k,493) = mat(k,493) + rxt(k,97)*y(k,95) mat(k,702) = rxt(k,97)*y(k,70) - mat(k,361) = -(rxt(k,288)*y(k,88) + rxt(k,296)*y(k,55) + rxt(k,298)*y(k,61)) - mat(k,326) = -rxt(k,288)*y(k,97) - mat(k,348) = -rxt(k,296)*y(k,97) - mat(k,739) = -rxt(k,298)*y(k,97) - mat(k,198) = rxt(k,299)*y(k,99) - mat(k,504) = rxt(k,290)*y(k,91) + rxt(k,294)*y(k,93) + rxt(k,302)*y(k,99) & - + rxt(k,306)*y(k,100) + mat(k,361) = -(rxt(k,288)*y(k,89) + rxt(k,296)*y(k,55) + rxt(k,298)*y(k,61)) + mat(k,326) = -rxt(k,288)*y(k,98) + mat(k,348) = -rxt(k,296)*y(k,98) + mat(k,739) = -rxt(k,298)*y(k,98) + mat(k,198) = rxt(k,299)*y(k,100) + mat(k,504) = rxt(k,290)*y(k,92) + rxt(k,294)*y(k,94) + rxt(k,302)*y(k,100) & + + rxt(k,306)*y(k,101) mat(k,224) = rxt(k,290)*y(k,70) mat(k,277) = rxt(k,294)*y(k,70) mat(k,377) = rxt(k,299)*y(k,32) + rxt(k,302)*y(k,70) mat(k,190) = rxt(k,306)*y(k,70) - mat(k,858) = -(rxt(k,120)*y(k,41) + rxt(k,121)*y(k,43) + rxt(k,122)*y(k,89) & + mat(k,858) = -(rxt(k,120)*y(k,41) + rxt(k,121)*y(k,43) + rxt(k,122)*y(k,90) & + rxt(k,123)*y(k,69) + rxt(k,124)*y(k,71) + (4._r8*rxt(k,125) & - + 4._r8*rxt(k,126)) * y(k,98) + rxt(k,128)*y(k,52) + rxt(k,142) & + + 4._r8*rxt(k,126)) * y(k,99) + rxt(k,128)*y(k,52) + rxt(k,142) & *y(k,63) + rxt(k,143)*y(k,55) + rxt(k,151)*y(k,62) + rxt(k,152) & *y(k,51) + rxt(k,171)*y(k,29) + (rxt(k,173) + rxt(k,174) & ) * y(k,28) + rxt(k,176)*y(k,49) + rxt(k,179)*y(k,54) + rxt(k,203) & @@ -878,66 +878,66 @@ subroutine nlnmat04( avec_len, mat, y, rxt ) *y(k,24) + rxt(k,227)*y(k,46) + rxt(k,228)*y(k,47) + rxt(k,229) & *y(k,48) + rxt(k,237)*y(k,17) + rxt(k,240)*y(k,22) + rxt(k,241) & *y(k,23) + rxt(k,245)*y(k,31) + (rxt(k,247) + rxt(k,261) & - ) * y(k,35) + rxt(k,249)*y(k,73) + rxt(k,251)*y(k,79) + rxt(k,255) & - *y(k,76) + rxt(k,260)*y(k,78)) - mat(k,881) = -rxt(k,120)*y(k,98) - mat(k,233) = -rxt(k,121)*y(k,98) - mat(k,564) = -rxt(k,122)*y(k,98) - mat(k,688) = -rxt(k,123)*y(k,98) - mat(k,539) = -rxt(k,124)*y(k,98) - mat(k,172) = -rxt(k,128)*y(k,98) - mat(k,589) = -rxt(k,142)*y(k,98) - mat(k,356) = -rxt(k,143)*y(k,98) - mat(k,646) = -rxt(k,151)*y(k,98) - mat(k,904) = -rxt(k,152)*y(k,98) - mat(k,315) = -rxt(k,171)*y(k,98) - mat(k,617) = -(rxt(k,173) + rxt(k,174)) * y(k,98) - mat(k,464) = -rxt(k,176)*y(k,98) - mat(k,270) = -rxt(k,179)*y(k,98) - mat(k,928) = -rxt(k,203)*y(k,98) - mat(k,261) = -rxt(k,205)*y(k,98) - mat(k,179) = -rxt(k,219)*y(k,98) - mat(k,217) = -rxt(k,221)*y(k,98) - mat(k,50) = -rxt(k,222)*y(k,98) - mat(k,153) = -rxt(k,224)*y(k,98) - mat(k,166) = -rxt(k,226)*y(k,98) - mat(k,89) = -rxt(k,227)*y(k,98) - mat(k,99) = -rxt(k,228)*y(k,98) - mat(k,117) = -rxt(k,229)*y(k,98) - mat(k,487) = -rxt(k,237)*y(k,98) - mat(k,159) = -rxt(k,240)*y(k,98) - mat(k,406) = -rxt(k,241)*y(k,98) - mat(k,288) = -rxt(k,245)*y(k,98) - mat(k,132) = -(rxt(k,247) + rxt(k,261)) * y(k,98) - mat(k,146) = -rxt(k,249)*y(k,98) - mat(k,304) = -rxt(k,251)*y(k,98) - mat(k,241) = -rxt(k,255)*y(k,98) - mat(k,436) = -rxt(k,260)*y(k,98) + ) * y(k,35) + rxt(k,249)*y(k,74) + rxt(k,251)*y(k,80) + rxt(k,255) & + *y(k,77) + rxt(k,260)*y(k,79)) + mat(k,881) = -rxt(k,120)*y(k,99) + mat(k,233) = -rxt(k,121)*y(k,99) + mat(k,564) = -rxt(k,122)*y(k,99) + mat(k,688) = -rxt(k,123)*y(k,99) + mat(k,539) = -rxt(k,124)*y(k,99) + mat(k,172) = -rxt(k,128)*y(k,99) + mat(k,589) = -rxt(k,142)*y(k,99) + mat(k,356) = -rxt(k,143)*y(k,99) + mat(k,646) = -rxt(k,151)*y(k,99) + mat(k,904) = -rxt(k,152)*y(k,99) + mat(k,315) = -rxt(k,171)*y(k,99) + mat(k,617) = -(rxt(k,173) + rxt(k,174)) * y(k,99) + mat(k,464) = -rxt(k,176)*y(k,99) + mat(k,270) = -rxt(k,179)*y(k,99) + mat(k,928) = -rxt(k,203)*y(k,99) + mat(k,261) = -rxt(k,205)*y(k,99) + mat(k,179) = -rxt(k,219)*y(k,99) + mat(k,217) = -rxt(k,221)*y(k,99) + mat(k,50) = -rxt(k,222)*y(k,99) + mat(k,153) = -rxt(k,224)*y(k,99) + mat(k,166) = -rxt(k,226)*y(k,99) + mat(k,89) = -rxt(k,227)*y(k,99) + mat(k,99) = -rxt(k,228)*y(k,99) + mat(k,117) = -rxt(k,229)*y(k,99) + mat(k,487) = -rxt(k,237)*y(k,99) + mat(k,159) = -rxt(k,240)*y(k,99) + mat(k,406) = -rxt(k,241)*y(k,99) + mat(k,288) = -rxt(k,245)*y(k,99) + mat(k,132) = -(rxt(k,247) + rxt(k,261)) * y(k,99) + mat(k,146) = -rxt(k,249)*y(k,99) + mat(k,304) = -rxt(k,251)*y(k,99) + mat(k,241) = -rxt(k,255)*y(k,99) + mat(k,436) = -rxt(k,260)*y(k,99) mat(k,487) = mat(k,487) + rxt(k,236)*y(k,69) - mat(k,159) = mat(k,159) + .300_r8*rxt(k,240)*y(k,98) - mat(k,406) = mat(k,406) + rxt(k,242)*y(k,94) - mat(k,787) = rxt(k,160)*y(k,89) - mat(k,295) = rxt(k,214)*y(k,102) - mat(k,444) = rxt(k,119)*y(k,71) + 2.000_r8*rxt(k,114)*y(k,89) - mat(k,881) = mat(k,881) + rxt(k,111)*y(k,69) + rxt(k,94)*y(k,94) + mat(k,159) = mat(k,159) + .300_r8*rxt(k,240)*y(k,99) + mat(k,406) = mat(k,406) + rxt(k,242)*y(k,95) + mat(k,787) = rxt(k,160)*y(k,90) + mat(k,295) = rxt(k,214)*y(k,103) + mat(k,444) = rxt(k,119)*y(k,71) + 2.000_r8*rxt(k,114)*y(k,90) + mat(k,881) = mat(k,881) + rxt(k,111)*y(k,69) + rxt(k,94)*y(k,95) mat(k,233) = mat(k,233) + rxt(k,112)*y(k,69) - mat(k,261) = mat(k,261) + rxt(k,204)*y(k,69) + rxt(k,210)*y(k,94) - mat(k,464) = mat(k,464) + rxt(k,175)*y(k,69) + rxt(k,187)*y(k,94) + mat(k,261) = mat(k,261) + rxt(k,204)*y(k,69) + rxt(k,210)*y(k,95) + mat(k,464) = mat(k,464) + rxt(k,175)*y(k,69) + rxt(k,187)*y(k,95) mat(k,253) = rxt(k,206)*y(k,69) mat(k,270) = mat(k,270) + rxt(k,178)*y(k,69) - mat(k,755) = rxt(k,144)*y(k,89) - mat(k,589) = mat(k,589) + rxt(k,139)*y(k,89) + mat(k,755) = rxt(k,144)*y(k,90) + mat(k,589) = mat(k,589) + rxt(k,139)*y(k,90) mat(k,688) = mat(k,688) + rxt(k,236)*y(k,17) + rxt(k,111)*y(k,41) & + rxt(k,112)*y(k,43) + rxt(k,204)*y(k,45) + rxt(k,175)*y(k,49) & - + rxt(k,206)*y(k,53) + rxt(k,178)*y(k,54) + rxt(k,117)*y(k,89) - mat(k,539) = mat(k,539) + rxt(k,119)*y(k,40) + rxt(k,118)*y(k,89) + + rxt(k,206)*y(k,53) + rxt(k,178)*y(k,54) + rxt(k,117)*y(k,90) + mat(k,539) = mat(k,539) + rxt(k,119)*y(k,40) + rxt(k,118)*y(k,90) mat(k,564) = mat(k,564) + rxt(k,160)*y(k,25) + 2.000_r8*rxt(k,114)*y(k,40) & + rxt(k,144)*y(k,61) + rxt(k,139)*y(k,63) + rxt(k,117)*y(k,69) & + rxt(k,118)*y(k,71) mat(k,730) = rxt(k,242)*y(k,23) + rxt(k,94)*y(k,41) + rxt(k,210)*y(k,45) & - + rxt(k,187)*y(k,49) + 2.000_r8*rxt(k,95)*y(k,102) + + rxt(k,187)*y(k,49) + 2.000_r8*rxt(k,95)*y(k,103) mat(k,858) = mat(k,858) + .300_r8*rxt(k,240)*y(k,22) - mat(k,955) = rxt(k,214)*y(k,39) + 2.000_r8*rxt(k,95)*y(k,94) + mat(k,955) = rxt(k,214)*y(k,39) + 2.000_r8*rxt(k,95)*y(k,95) end do end subroutine nlnmat04 subroutine nlnmat05( avec_len, mat, y, rxt ) @@ -958,55 +958,55 @@ subroutine nlnmat05( avec_len, mat, y, rxt ) ! ... complete matrix entries implicit species !---------------------------------------------- do k = 1,avec_len - mat(k,378) = -(rxt(k,299)*y(k,32) + rxt(k,301)*y(k,90) + rxt(k,302)*y(k,70)) - mat(k,199) = -rxt(k,299)*y(k,99) - mat(k,337) = -rxt(k,301)*y(k,99) - mat(k,505) = -rxt(k,302)*y(k,99) - mat(k,672) = rxt(k,292)*y(k,91) + rxt(k,293)*y(k,93) + rxt(k,305)*y(k,100) & - + rxt(k,311)*y(k,101) - mat(k,327) = rxt(k,303)*y(k,100) + rxt(k,308)*y(k,101) + mat(k,378) = -(rxt(k,299)*y(k,32) + rxt(k,301)*y(k,91) + rxt(k,302)*y(k,70)) + mat(k,199) = -rxt(k,299)*y(k,100) + mat(k,337) = -rxt(k,301)*y(k,100) + mat(k,505) = -rxt(k,302)*y(k,100) + mat(k,672) = rxt(k,292)*y(k,92) + rxt(k,293)*y(k,94) + rxt(k,305)*y(k,101) & + + rxt(k,311)*y(k,102) + mat(k,327) = rxt(k,303)*y(k,101) + rxt(k,308)*y(k,102) mat(k,225) = rxt(k,292)*y(k,69) mat(k,278) = rxt(k,293)*y(k,69) - mat(k,191) = rxt(k,305)*y(k,69) + rxt(k,303)*y(k,88) - mat(k,185) = rxt(k,311)*y(k,69) + rxt(k,308)*y(k,88) - mat(k,188) = -(rxt(k,303)*y(k,88) + rxt(k,305)*y(k,69) + rxt(k,306)*y(k,70)) - mat(k,319) = -rxt(k,303)*y(k,100) - mat(k,655) = -rxt(k,305)*y(k,100) - mat(k,495) = -rxt(k,306)*y(k,100) - mat(k,319) = mat(k,319) + rxt(k,307)*y(k,101) - mat(k,182) = rxt(k,307)*y(k,88) - mat(k,181) = -((rxt(k,307) + rxt(k,308)) * y(k,88) + rxt(k,311)*y(k,69)) - mat(k,318) = -(rxt(k,307) + rxt(k,308)) * y(k,101) - mat(k,654) = -rxt(k,311)*y(k,101) - mat(k,959) = -(rxt(k,95)*y(k,94) + rxt(k,214)*y(k,39) + rxt(k,262)*y(k,80)) - mat(k,734) = -rxt(k,95)*y(k,102) - mat(k,298) = -rxt(k,214)*y(k,102) - mat(k,111) = -rxt(k,262)*y(k,102) - mat(k,180) = rxt(k,219)*y(k,98) - mat(k,491) = rxt(k,237)*y(k,98) - mat(k,218) = rxt(k,221)*y(k,98) - mat(k,51) = rxt(k,222)*y(k,98) - mat(k,154) = rxt(k,224)*y(k,98) - mat(k,160) = rxt(k,240)*y(k,98) - mat(k,409) = rxt(k,241)*y(k,98) - mat(k,446) = rxt(k,115)*y(k,89) - mat(k,885) = rxt(k,120)*y(k,98) - mat(k,234) = rxt(k,121)*y(k,98) - mat(k,263) = rxt(k,205)*y(k,98) - mat(k,118) = rxt(k,229)*y(k,98) + mat(k,191) = rxt(k,305)*y(k,69) + rxt(k,303)*y(k,89) + mat(k,185) = rxt(k,311)*y(k,69) + rxt(k,308)*y(k,89) + mat(k,188) = -(rxt(k,303)*y(k,89) + rxt(k,305)*y(k,69) + rxt(k,306)*y(k,70)) + mat(k,319) = -rxt(k,303)*y(k,101) + mat(k,655) = -rxt(k,305)*y(k,101) + mat(k,495) = -rxt(k,306)*y(k,101) + mat(k,319) = mat(k,319) + rxt(k,307)*y(k,102) + mat(k,182) = rxt(k,307)*y(k,89) + mat(k,181) = -((rxt(k,307) + rxt(k,308)) * y(k,89) + rxt(k,311)*y(k,69)) + mat(k,318) = -(rxt(k,307) + rxt(k,308)) * y(k,102) + mat(k,654) = -rxt(k,311)*y(k,102) + mat(k,959) = -(rxt(k,95)*y(k,95) + rxt(k,214)*y(k,39) + rxt(k,262)*y(k,81)) + mat(k,734) = -rxt(k,95)*y(k,103) + mat(k,298) = -rxt(k,214)*y(k,103) + mat(k,111) = -rxt(k,262)*y(k,103) + mat(k,180) = rxt(k,219)*y(k,99) + mat(k,491) = rxt(k,237)*y(k,99) + mat(k,218) = rxt(k,221)*y(k,99) + mat(k,51) = rxt(k,222)*y(k,99) + mat(k,154) = rxt(k,224)*y(k,99) + mat(k,160) = rxt(k,240)*y(k,99) + mat(k,409) = rxt(k,241)*y(k,99) + mat(k,446) = rxt(k,115)*y(k,90) + mat(k,885) = rxt(k,120)*y(k,99) + mat(k,234) = rxt(k,121)*y(k,99) + mat(k,263) = rxt(k,205)*y(k,99) + mat(k,118) = rxt(k,229)*y(k,99) mat(k,468) = (rxt(k,275)+rxt(k,280))*y(k,53) + (rxt(k,268)+rxt(k,274) & - +rxt(k,279))*y(k,54) + rxt(k,176)*y(k,98) - mat(k,908) = rxt(k,152)*y(k,98) - mat(k,173) = rxt(k,128)*y(k,98) + +rxt(k,279))*y(k,54) + rxt(k,176)*y(k,99) + mat(k,908) = rxt(k,152)*y(k,99) + mat(k,173) = rxt(k,128)*y(k,99) mat(k,255) = (rxt(k,275)+rxt(k,280))*y(k,49) - mat(k,271) = (rxt(k,268)+rxt(k,274)+rxt(k,279))*y(k,49) + rxt(k,179)*y(k,98) - mat(k,568) = rxt(k,115)*y(k,40) + rxt(k,122)*y(k,98) + mat(k,271) = (rxt(k,268)+rxt(k,274)+rxt(k,279))*y(k,49) + rxt(k,179)*y(k,99) + mat(k,568) = rxt(k,115)*y(k,40) + rxt(k,122)*y(k,99) mat(k,862) = rxt(k,219)*y(k,16) + rxt(k,237)*y(k,17) + rxt(k,221)*y(k,18) & + rxt(k,222)*y(k,19) + rxt(k,224)*y(k,20) + rxt(k,240)*y(k,22) & + rxt(k,241)*y(k,23) + rxt(k,120)*y(k,41) + rxt(k,121)*y(k,43) & + rxt(k,205)*y(k,45) + rxt(k,229)*y(k,48) + rxt(k,176)*y(k,49) & + rxt(k,152)*y(k,51) + rxt(k,128)*y(k,52) + rxt(k,179)*y(k,54) & - + rxt(k,122)*y(k,89) + 2.000_r8*rxt(k,125)*y(k,98) + + rxt(k,122)*y(k,90) + 2.000_r8*rxt(k,125)*y(k,99) end do end subroutine nlnmat05 subroutine nlnmat_finit( avec_len, mat, lmat, dti ) diff --git a/src/chemistry/pp_waccm_ma_mam5/mo_prod_loss.F90 b/src/chemistry/pp_waccm_ma_mam5/mo_prod_loss.F90 index 10c37c4a5d..4b90d14e1f 100644 --- a/src/chemistry/pp_waccm_ma_mam5/mo_prod_loss.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/mo_prod_loss.F90 @@ -19,6 +19,17 @@ subroutine exp_prod_loss( ofl, ofu, prod, loss, y, & real(r8), intent(in) :: y(chnkpnts,gas_pcnst) real(r8), intent(in) :: rxt(chnkpnts,rxntot) real(r8), intent(in) :: het_rates(chnkpnts,gas_pcnst) +!-------------------------------------------------------------------- +! ... local variables +!-------------------------------------------------------------------- + integer :: k +!-------------------------------------------------------------------- +! ... loss and production for Explicit method +!-------------------------------------------------------------------- + do k = ofl,ofu + loss(k,1) = ( + het_rates(k,72))* y(k,72) + prod(k,1) = 0._r8 + end do end subroutine exp_prod_loss subroutine imp_prod_loss( avec_len, prod, loss, y, & rxt, het_rates ) @@ -46,16 +57,16 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & prod(k,1) = 0._r8 loss(k,2) = ( + het_rates(k,2))* y(k,2) prod(k,2) = 0._r8 - loss(k,97) = (rxt(k,191)* y(k,17) +rxt(k,193)* y(k,71) +rxt(k,192)* y(k,89) & + loss(k,97) = (rxt(k,191)* y(k,17) +rxt(k,193)* y(k,71) +rxt(k,192)* y(k,90) & + het_rates(k,3))* y(k,3) prod(k,97) = (rxt(k,27) +2.000_r8*rxt(k,194)*y(k,5) +rxt(k,195)*y(k,28) + & rxt(k,196)*y(k,28) +rxt(k,199)*y(k,61) +rxt(k,202)*y(k,69) + & - rxt(k,203)*y(k,98) +rxt(k,253)*y(k,78))*y(k,5) + (rxt(k,181)*y(k,9) + & + rxt(k,203)*y(k,99) +rxt(k,253)*y(k,79))*y(k,5) + (rxt(k,181)*y(k,9) + & rxt(k,207)*y(k,10) +3.000_r8*rxt(k,208)*y(k,24) + & 2.000_r8*rxt(k,209)*y(k,42) +rxt(k,210)*y(k,45) + & - 2.000_r8*rxt(k,230)*y(k,16) +rxt(k,231)*y(k,18))*y(k,94) & + 2.000_r8*rxt(k,230)*y(k,16) +rxt(k,231)*y(k,18))*y(k,95) & + (rxt(k,205)*y(k,45) +2.000_r8*rxt(k,219)*y(k,16) + & - rxt(k,221)*y(k,18) +3.000_r8*rxt(k,226)*y(k,24))*y(k,98) & + rxt(k,221)*y(k,18) +3.000_r8*rxt(k,226)*y(k,24))*y(k,99) & + (2.000_r8*rxt(k,218)*y(k,16) +rxt(k,220)*y(k,18) + & 3.000_r8*rxt(k,225)*y(k,24))*y(k,25) + (rxt(k,51) + & rxt(k,204)*y(k,69))*y(k,45) +rxt(k,26)*y(k,4) +rxt(k,29)*y(k,6) & @@ -67,78 +78,78 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & +rxt(k,197)*y(k,28)*y(k,5) loss(k,101) = (2._r8*rxt(k,194)* y(k,5) + (rxt(k,195) +rxt(k,196) + & rxt(k,197))* y(k,28) +rxt(k,199)* y(k,61) +rxt(k,200)* y(k,62) & - +rxt(k,202)* y(k,69) +rxt(k,253)* y(k,78) +rxt(k,198)* y(k,89) & - +rxt(k,203)* y(k,98) + rxt(k,27) + het_rates(k,5))* y(k,5) + +rxt(k,202)* y(k,69) +rxt(k,253)* y(k,79) +rxt(k,198)* y(k,90) & + +rxt(k,203)* y(k,99) + rxt(k,27) + het_rates(k,5))* y(k,5) prod(k,101) = (rxt(k,28) +rxt(k,201)*y(k,69))*y(k,6) +rxt(k,193)*y(k,71) & - *y(k,3) +rxt(k,211)*y(k,94)*y(k,45) +rxt(k,206)*y(k,69)*y(k,53) + *y(k,3) +rxt(k,211)*y(k,95)*y(k,45) +rxt(k,206)*y(k,69)*y(k,53) loss(k,62) = (rxt(k,201)* y(k,69) + rxt(k,28) + rxt(k,29) + rxt(k,269) & + rxt(k,272) + rxt(k,277) + het_rates(k,6))* y(k,6) prod(k,62) =rxt(k,200)*y(k,62)*y(k,5) loss(k,3) = ( + het_rates(k,7))* y(k,7) prod(k,3) = 0._r8 - loss(k,27) = (rxt(k,180)* y(k,94) + rxt(k,30) + het_rates(k,8))* y(k,8) + loss(k,27) = (rxt(k,180)* y(k,95) + rxt(k,30) + het_rates(k,8))* y(k,8) prod(k,27) = 0._r8 - loss(k,34) = (rxt(k,181)* y(k,94) + rxt(k,31) + het_rates(k,9))* y(k,9) + loss(k,34) = (rxt(k,181)* y(k,95) + rxt(k,31) + het_rates(k,9))* y(k,9) prod(k,34) = 0._r8 - loss(k,35) = (rxt(k,207)* y(k,94) + rxt(k,32) + het_rates(k,10))* y(k,10) + loss(k,35) = (rxt(k,207)* y(k,95) + rxt(k,32) + het_rates(k,10))* y(k,10) prod(k,35) = 0._r8 - loss(k,29) = (rxt(k,182)* y(k,94) + rxt(k,33) + het_rates(k,11))* y(k,11) + loss(k,29) = (rxt(k,182)* y(k,95) + rxt(k,33) + het_rates(k,11))* y(k,11) prod(k,29) = 0._r8 - loss(k,36) = (rxt(k,183)* y(k,94) + rxt(k,34) + het_rates(k,12))* y(k,12) + loss(k,36) = (rxt(k,183)* y(k,95) + rxt(k,34) + het_rates(k,12))* y(k,12) prod(k,36) = 0._r8 - loss(k,30) = (rxt(k,184)* y(k,94) + rxt(k,35) + het_rates(k,13))* y(k,13) + loss(k,30) = (rxt(k,184)* y(k,95) + rxt(k,35) + het_rates(k,13))* y(k,13) prod(k,30) = 0._r8 - loss(k,37) = (rxt(k,185)* y(k,94) + rxt(k,36) + het_rates(k,14))* y(k,14) + loss(k,37) = (rxt(k,185)* y(k,95) + rxt(k,36) + het_rates(k,14))* y(k,14) prod(k,37) = 0._r8 - loss(k,31) = (rxt(k,186)* y(k,94) + rxt(k,37) + het_rates(k,15))* y(k,15) + loss(k,31) = (rxt(k,186)* y(k,95) + rxt(k,37) + het_rates(k,15))* y(k,15) prod(k,31) = 0._r8 - loss(k,58) = (rxt(k,218)* y(k,25) +rxt(k,230)* y(k,94) +rxt(k,219)* y(k,98) & + loss(k,58) = (rxt(k,218)* y(k,25) +rxt(k,230)* y(k,95) +rxt(k,219)* y(k,99) & + rxt(k,38) + het_rates(k,16))* y(k,16) prod(k,58) = 0._r8 loss(k,86) = (rxt(k,191)* y(k,3) +rxt(k,155)* y(k,25) +rxt(k,235)* y(k,63) & - +rxt(k,236)* y(k,69) +rxt(k,237)* y(k,98) + rxt(k,20) + rxt(k,21) & + +rxt(k,236)* y(k,69) +rxt(k,237)* y(k,99) + rxt(k,20) + rxt(k,21) & + het_rates(k,17))* y(k,17) - prod(k,86) = (.180_r8*rxt(k,24) +rxt(k,243)*y(k,94) +rxt(k,244)*y(k,94)) & + prod(k,86) = (.180_r8*rxt(k,24) +rxt(k,243)*y(k,95) +rxt(k,244)*y(k,95)) & *y(k,23) + (rxt(k,162)*y(k,28) +rxt(k,239)*y(k,61))*y(k,21) & - + (rxt(k,22) +.300_r8*rxt(k,240)*y(k,98))*y(k,22) - loss(k,63) = (rxt(k,220)* y(k,25) +rxt(k,231)* y(k,94) +rxt(k,221)* y(k,98) & + + (rxt(k,22) +.300_r8*rxt(k,240)*y(k,99))*y(k,22) + loss(k,63) = (rxt(k,220)* y(k,25) +rxt(k,231)* y(k,95) +rxt(k,221)* y(k,99) & + rxt(k,39) + het_rates(k,18))* y(k,18) prod(k,63) = 0._r8 - loss(k,32) = (rxt(k,222)* y(k,98) + rxt(k,40) + het_rates(k,19))* y(k,19) + loss(k,32) = (rxt(k,222)* y(k,99) + rxt(k,40) + het_rates(k,19))* y(k,19) prod(k,32) = 0._r8 - loss(k,54) = (rxt(k,223)* y(k,25) +rxt(k,224)* y(k,98) + rxt(k,41) & + loss(k,54) = (rxt(k,223)* y(k,25) +rxt(k,224)* y(k,99) + rxt(k,41) & + het_rates(k,20))* y(k,20) prod(k,54) = 0._r8 - loss(k,82) = (rxt(k,162)* y(k,28) +rxt(k,239)* y(k,61) +rxt(k,238)* y(k,89) & + loss(k,82) = (rxt(k,162)* y(k,28) +rxt(k,239)* y(k,61) +rxt(k,238)* y(k,90) & + het_rates(k,21))* y(k,21) prod(k,82) = (rxt(k,23) +rxt(k,156)*y(k,25) +rxt(k,212)*y(k,39) + & - rxt(k,241)*y(k,98) +rxt(k,242)*y(k,94))*y(k,23) +rxt(k,39)*y(k,18) & - +rxt(k,41)*y(k,20) +.700_r8*rxt(k,240)*y(k,98)*y(k,22) - loss(k,55) = (rxt(k,240)* y(k,98) + rxt(k,22) + het_rates(k,22))* y(k,22) - prod(k,55) =rxt(k,238)*y(k,89)*y(k,21) + rxt(k,241)*y(k,99) +rxt(k,242)*y(k,95))*y(k,23) +rxt(k,39)*y(k,18) & + +rxt(k,41)*y(k,20) +.700_r8*rxt(k,240)*y(k,99)*y(k,22) + loss(k,55) = (rxt(k,240)* y(k,99) + rxt(k,22) + het_rates(k,22))* y(k,22) + prod(k,55) =rxt(k,238)*y(k,90)*y(k,21) loss(k,81) = (rxt(k,156)* y(k,25) +rxt(k,212)* y(k,39) + (rxt(k,242) + & - rxt(k,243) +rxt(k,244))* y(k,94) +rxt(k,241)* y(k,98) + rxt(k,23) & + rxt(k,243) +rxt(k,244))* y(k,95) +rxt(k,241)* y(k,99) + rxt(k,23) & + rxt(k,24) + het_rates(k,23))* y(k,23) prod(k,81) = 0._r8 - loss(k,56) = (rxt(k,225)* y(k,25) +rxt(k,208)* y(k,94) +rxt(k,226)* y(k,98) & + loss(k,56) = (rxt(k,225)* y(k,25) +rxt(k,208)* y(k,95) +rxt(k,226)* y(k,99) & + rxt(k,42) + het_rates(k,24))* y(k,24) prod(k,56) = 0._r8 loss(k,96) = (rxt(k,218)* y(k,16) +rxt(k,155)* y(k,17) +rxt(k,220)* y(k,18) & +rxt(k,223)* y(k,20) +rxt(k,156)* y(k,23) +rxt(k,225)* y(k,24) & +rxt(k,168)* y(k,29) +rxt(k,157)* y(k,41) +rxt(k,158)* y(k,43) & +rxt(k,177)* y(k,54) +rxt(k,161)* y(k,71) + (rxt(k,159) +rxt(k,160)) & - * y(k,89) + het_rates(k,25))* y(k,25) + * y(k,90) + het_rates(k,25))* y(k,25) prod(k,96) = (4.000_r8*rxt(k,180)*y(k,8) +rxt(k,181)*y(k,9) + & 2.000_r8*rxt(k,182)*y(k,11) +2.000_r8*rxt(k,183)*y(k,12) + & 2.000_r8*rxt(k,184)*y(k,13) +rxt(k,185)*y(k,14) + & 2.000_r8*rxt(k,186)*y(k,15) +rxt(k,187)*y(k,49) +rxt(k,217)*y(k,34) + & - rxt(k,232)*y(k,46) +rxt(k,233)*y(k,47) +rxt(k,234)*y(k,48))*y(k,94) & + rxt(k,232)*y(k,46) +rxt(k,233)*y(k,47) +rxt(k,234)*y(k,48))*y(k,95) & + (rxt(k,45) +rxt(k,162)*y(k,21) +2.000_r8*rxt(k,163)*y(k,28) + & rxt(k,165)*y(k,28) +rxt(k,167)*y(k,61) +rxt(k,172)*y(k,69) + & - rxt(k,173)*y(k,98) +rxt(k,196)*y(k,5) +rxt(k,254)*y(k,78))*y(k,28) & + rxt(k,173)*y(k,99) +rxt(k,196)*y(k,5) +rxt(k,254)*y(k,79))*y(k,28) & + (rxt(k,176)*y(k,49) +3.000_r8*rxt(k,222)*y(k,19) + & rxt(k,224)*y(k,20) +rxt(k,227)*y(k,46) +rxt(k,228)*y(k,47) + & - rxt(k,229)*y(k,48))*y(k,98) + (rxt(k,55) +rxt(k,175)*y(k,69))*y(k,49) & + rxt(k,229)*y(k,48))*y(k,99) + (rxt(k,55) +rxt(k,175)*y(k,69))*y(k,49) & +rxt(k,26)*y(k,4) +4.000_r8*rxt(k,30)*y(k,8) +rxt(k,31)*y(k,9) & +2.000_r8*rxt(k,33)*y(k,11) +2.000_r8*rxt(k,34)*y(k,12) & +2.000_r8*rxt(k,35)*y(k,13) +rxt(k,36)*y(k,14) +2.000_r8*rxt(k,37) & @@ -155,43 +166,43 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & loss(k,91) = ((rxt(k,195) +rxt(k,196) +rxt(k,197))* y(k,5) +rxt(k,162) & * y(k,21) + 2._r8*(rxt(k,163) +rxt(k,164) +rxt(k,165) +rxt(k,189)) & * y(k,28) +rxt(k,167)* y(k,61) +rxt(k,169)* y(k,62) +rxt(k,172) & - * y(k,69) +rxt(k,254)* y(k,78) +rxt(k,166)* y(k,89) + (rxt(k,173) + & - rxt(k,174))* y(k,98) + rxt(k,45) + het_rates(k,28))* y(k,28) - prod(k,91) = (rxt(k,160)*y(k,89) +rxt(k,161)*y(k,71) +rxt(k,177)*y(k,54)) & + * y(k,69) +rxt(k,254)* y(k,79) +rxt(k,166)* y(k,90) + (rxt(k,173) + & + rxt(k,174))* y(k,99) + rxt(k,45) + het_rates(k,28))* y(k,28) + prod(k,91) = (rxt(k,160)*y(k,90) +rxt(k,161)*y(k,71) +rxt(k,177)*y(k,54)) & *y(k,25) + (rxt(k,47) +rxt(k,170)*y(k,69))*y(k,29) & - + (rxt(k,178)*y(k,69) +rxt(k,179)*y(k,98))*y(k,54) + (rxt(k,59) + & - rxt(k,259)*y(k,78))*y(k,72) +2.000_r8*rxt(k,190)*y(k,27) & - +rxt(k,188)*y(k,94)*y(k,49) + + (rxt(k,178)*y(k,69) +rxt(k,179)*y(k,99))*y(k,54) + (rxt(k,59) + & + rxt(k,259)*y(k,79))*y(k,73) +2.000_r8*rxt(k,190)*y(k,27) & + +rxt(k,188)*y(k,95)*y(k,49) loss(k,75) = (rxt(k,168)* y(k,25) + (rxt(k,273) +rxt(k,278) +rxt(k,283)) & - * y(k,49) +rxt(k,170)* y(k,69) +rxt(k,171)* y(k,98) + rxt(k,46) & + * y(k,49) +rxt(k,170)* y(k,69) +rxt(k,171)* y(k,99) + rxt(k,46) & + rxt(k,47) + rxt(k,271) + rxt(k,276) + rxt(k,282) & + het_rates(k,29))* y(k,29) prod(k,75) =rxt(k,169)*y(k,62)*y(k,28) loss(k,4) = ( + het_rates(k,30))* y(k,30) prod(k,4) = 0._r8 - loss(k,72) = (rxt(k,245)* y(k,98) + het_rates(k,31))* y(k,31) + loss(k,72) = (rxt(k,245)* y(k,99) + het_rates(k,31))* y(k,31) prod(k,72) = (rxt(k,20) +rxt(k,21) +rxt(k,155)*y(k,25) +rxt(k,191)*y(k,3) + & - rxt(k,235)*y(k,63) +rxt(k,236)*y(k,69) +rxt(k,237)*y(k,98))*y(k,17) & - + (rxt(k,25) +rxt(k,61) +rxt(k,299)*y(k,99))*y(k,32) + (rxt(k,88) + & - rxt(k,248)*y(k,69) +rxt(k,249)*y(k,98))*y(k,73) +rxt(k,223)*y(k,25) & + rxt(k,235)*y(k,63) +rxt(k,236)*y(k,69) +rxt(k,237)*y(k,99))*y(k,17) & + + (rxt(k,25) +rxt(k,61) +rxt(k,299)*y(k,100))*y(k,32) + (rxt(k,88) + & + rxt(k,248)*y(k,69) +rxt(k,249)*y(k,99))*y(k,74) +rxt(k,223)*y(k,25) & *y(k,20) +.380_r8*rxt(k,24)*y(k,23) - loss(k,61) = (rxt(k,299)* y(k,99) + rxt(k,25) + rxt(k,61) + het_rates(k,32)) & + loss(k,61) = (rxt(k,299)* y(k,100) + rxt(k,25) + rxt(k,61) + het_rates(k,32)) & * y(k,32) - prod(k,61) =.440_r8*rxt(k,24)*y(k,23) +rxt(k,245)*y(k,98)*y(k,31) - loss(k,41) = (rxt(k,216)* y(k,94) + rxt(k,48) + het_rates(k,33))* y(k,33) + prod(k,61) =.440_r8*rxt(k,24)*y(k,23) +rxt(k,245)*y(k,99)*y(k,31) + loss(k,41) = (rxt(k,216)* y(k,95) + rxt(k,48) + het_rates(k,33))* y(k,33) prod(k,41) = (rxt(k,181)*y(k,9) +rxt(k,183)*y(k,12) + & 2.000_r8*rxt(k,184)*y(k,13) +2.000_r8*rxt(k,185)*y(k,14) + & rxt(k,186)*y(k,15) +rxt(k,207)*y(k,10) +2.000_r8*rxt(k,209)*y(k,42) + & - rxt(k,233)*y(k,47) +rxt(k,234)*y(k,48))*y(k,94) + (rxt(k,53) + & - rxt(k,228)*y(k,98))*y(k,47) + (rxt(k,54) +rxt(k,229)*y(k,98))*y(k,48) & + rxt(k,233)*y(k,47) +rxt(k,234)*y(k,48))*y(k,95) + (rxt(k,53) + & + rxt(k,228)*y(k,99))*y(k,47) + (rxt(k,54) +rxt(k,229)*y(k,99))*y(k,48) & +rxt(k,31)*y(k,9) +rxt(k,32)*y(k,10) +rxt(k,34)*y(k,12) & +2.000_r8*rxt(k,35)*y(k,13) +2.000_r8*rxt(k,36)*y(k,14) +rxt(k,37) & *y(k,15) +2.000_r8*rxt(k,50)*y(k,42) - loss(k,43) = (rxt(k,217)* y(k,94) + rxt(k,49) + het_rates(k,34))* y(k,34) - prod(k,43) = (rxt(k,52) +rxt(k,227)*y(k,98) +rxt(k,232)*y(k,94))*y(k,46) & - + (rxt(k,33) +rxt(k,182)*y(k,94))*y(k,11) + (rxt(k,34) + & - rxt(k,183)*y(k,94))*y(k,12) - loss(k,51) = (rxt(k,246)* y(k,63) + (rxt(k,247) +rxt(k,261))* y(k,98) & + loss(k,43) = (rxt(k,217)* y(k,95) + rxt(k,49) + het_rates(k,34))* y(k,34) + prod(k,43) = (rxt(k,52) +rxt(k,227)*y(k,99) +rxt(k,232)*y(k,95))*y(k,46) & + + (rxt(k,33) +rxt(k,182)*y(k,95))*y(k,11) + (rxt(k,34) + & + rxt(k,183)*y(k,95))*y(k,12) + loss(k,51) = (rxt(k,246)* y(k,63) + (rxt(k,247) +rxt(k,261))* y(k,99) & + het_rates(k,35))* y(k,35) prod(k,51) = 0._r8 loss(k,5) = ( + het_rates(k,36))* y(k,36) @@ -201,83 +212,83 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & loss(k,7) = ( + het_rates(k,38))* y(k,38) prod(k,7) = 0._r8 loss(k,73) = (rxt(k,212)* y(k,23) +rxt(k,213)* y(k,41) +rxt(k,215)* y(k,51) & - +rxt(k,214)* y(k,102) + het_rates(k,39))* y(k,39) + +rxt(k,214)* y(k,103) + het_rates(k,39))* y(k,39) prod(k,73) = (rxt(k,185)*y(k,14) +rxt(k,207)*y(k,10) + & - 2.000_r8*rxt(k,216)*y(k,33) +rxt(k,217)*y(k,34))*y(k,94) +rxt(k,32) & + 2.000_r8*rxt(k,216)*y(k,33) +rxt(k,217)*y(k,34))*y(k,95) +rxt(k,32) & *y(k,10) +rxt(k,36)*y(k,14) +2.000_r8*rxt(k,48)*y(k,33) +rxt(k,49) & *y(k,34) +rxt(k,56)*y(k,50) loss(k,84) = (rxt(k,116)* y(k,70) +rxt(k,119)* y(k,71) + (rxt(k,113) + & - rxt(k,114) +rxt(k,115))* y(k,89) + het_rates(k,40))* y(k,40) + rxt(k,114) +rxt(k,115))* y(k,90) + het_rates(k,40))* y(k,40) prod(k,84) = (rxt(k,120)*y(k,41) +rxt(k,123)*y(k,69) +rxt(k,143)*y(k,55) + & - rxt(k,237)*y(k,17) +rxt(k,249)*y(k,73) +rxt(k,255)*y(k,76) + & - rxt(k,260)*y(k,78))*y(k,98) + (rxt(k,94)*y(k,94) + & + rxt(k,237)*y(k,17) +rxt(k,249)*y(k,74) +rxt(k,255)*y(k,77) + & + rxt(k,260)*y(k,79))*y(k,99) + (rxt(k,94)*y(k,95) + & rxt(k,111)*y(k,69) +rxt(k,157)*y(k,25) +rxt(k,213)*y(k,39))*y(k,41) & - + (rxt(k,23) +.330_r8*rxt(k,24) +rxt(k,243)*y(k,94))*y(k,23) & - + (rxt(k,51) +rxt(k,211)*y(k,94))*y(k,45) + (rxt(k,55) + & - rxt(k,188)*y(k,94))*y(k,49) + (2.000_r8*rxt(k,2) +rxt(k,3))*y(k,102) & + + (rxt(k,23) +.330_r8*rxt(k,24) +rxt(k,243)*y(k,95))*y(k,23) & + + (rxt(k,51) +rxt(k,211)*y(k,95))*y(k,45) + (rxt(k,55) + & + rxt(k,188)*y(k,95))*y(k,49) + (2.000_r8*rxt(k,2) +rxt(k,3))*y(k,103) & +2.000_r8*rxt(k,20)*y(k,17) +rxt(k,22)*y(k,22) +rxt(k,56)*y(k,50) loss(k,99) = (rxt(k,157)* y(k,25) +rxt(k,213)* y(k,39) +rxt(k,111)* y(k,69) & - +rxt(k,94)* y(k,94) +rxt(k,120)* y(k,98) + het_rates(k,41))* y(k,41) - prod(k,99) = (1.440_r8*rxt(k,24) +rxt(k,244)*y(k,94))*y(k,23) +rxt(k,21) & - *y(k,17) +rxt(k,113)*y(k,89)*y(k,40) +rxt(k,1)*y(k,102) - loss(k,28) = (rxt(k,209)* y(k,94) + rxt(k,50) + het_rates(k,42))* y(k,42) + +rxt(k,94)* y(k,95) +rxt(k,120)* y(k,99) + het_rates(k,41))* y(k,41) + prod(k,99) = (1.440_r8*rxt(k,24) +rxt(k,244)*y(k,95))*y(k,23) +rxt(k,21) & + *y(k,17) +rxt(k,113)*y(k,90)*y(k,40) +rxt(k,1)*y(k,103) + loss(k,28) = (rxt(k,209)* y(k,95) + rxt(k,50) + het_rates(k,42))* y(k,42) prod(k,28) = 0._r8 - loss(k,65) = (rxt(k,158)* y(k,25) +rxt(k,112)* y(k,69) +rxt(k,121)* y(k,98) & + loss(k,65) = (rxt(k,158)* y(k,25) +rxt(k,112)* y(k,69) +rxt(k,121)* y(k,99) & + rxt(k,4) + het_rates(k,43))* y(k,43) - prod(k,65) = (.500_r8*rxt(k,263) +rxt(k,127)*y(k,89))*y(k,89) & - +rxt(k,126)*y(k,98)*y(k,98) + prod(k,65) = (.500_r8*rxt(k,263) +rxt(k,127)*y(k,90))*y(k,90) & + +rxt(k,126)*y(k,99)*y(k,99) loss(k,33) = ( + rxt(k,87) + het_rates(k,44))* y(k,44) - prod(k,33) =rxt(k,262)*y(k,102)*y(k,80) - loss(k,69) = (rxt(k,204)* y(k,69) + (rxt(k,210) +rxt(k,211))* y(k,94) & - +rxt(k,205)* y(k,98) + rxt(k,51) + het_rates(k,45))* y(k,45) - prod(k,69) = (rxt(k,191)*y(k,17) +rxt(k,192)*y(k,89))*y(k,3) - loss(k,42) = (rxt(k,232)* y(k,94) +rxt(k,227)* y(k,98) + rxt(k,52) & + prod(k,33) =rxt(k,262)*y(k,103)*y(k,81) + loss(k,69) = (rxt(k,204)* y(k,69) + (rxt(k,210) +rxt(k,211))* y(k,95) & + +rxt(k,205)* y(k,99) + rxt(k,51) + het_rates(k,45))* y(k,45) + prod(k,69) = (rxt(k,191)*y(k,17) +rxt(k,192)*y(k,90))*y(k,3) + loss(k,42) = (rxt(k,232)* y(k,95) +rxt(k,227)* y(k,99) + rxt(k,52) & + het_rates(k,46))* y(k,46) prod(k,42) = 0._r8 - loss(k,44) = (rxt(k,233)* y(k,94) +rxt(k,228)* y(k,98) + rxt(k,53) & + loss(k,44) = (rxt(k,233)* y(k,95) +rxt(k,228)* y(k,99) + rxt(k,53) & + het_rates(k,47))* y(k,47) prod(k,44) = 0._r8 - loss(k,48) = (rxt(k,234)* y(k,94) +rxt(k,229)* y(k,98) + rxt(k,54) & + loss(k,48) = (rxt(k,234)* y(k,95) +rxt(k,229)* y(k,99) + rxt(k,54) & + het_rates(k,48))* y(k,48) prod(k,48) = 0._r8 loss(k,85) = ((rxt(k,273) +rxt(k,278) +rxt(k,283))* y(k,29) + (rxt(k,275) + & rxt(k,280))* y(k,53) + (rxt(k,268) +rxt(k,274) +rxt(k,279))* y(k,54) & - +rxt(k,175)* y(k,69) + (rxt(k,187) +rxt(k,188))* y(k,94) +rxt(k,176) & - * y(k,98) + rxt(k,55) + het_rates(k,49))* y(k,49) + +rxt(k,175)* y(k,69) + (rxt(k,187) +rxt(k,188))* y(k,95) +rxt(k,176) & + * y(k,99) + rxt(k,55) + het_rates(k,49))* y(k,49) prod(k,85) = (rxt(k,155)*y(k,17) +rxt(k,156)*y(k,23) +rxt(k,157)*y(k,41) + & - rxt(k,158)*y(k,43) +rxt(k,159)*y(k,89) +rxt(k,177)*y(k,54) + & + rxt(k,158)*y(k,43) +rxt(k,159)*y(k,90) +rxt(k,177)*y(k,54) + & rxt(k,218)*y(k,16) +rxt(k,220)*y(k,18) +2.000_r8*rxt(k,223)*y(k,20) + & - rxt(k,225)*y(k,24))*y(k,25) +rxt(k,174)*y(k,98)*y(k,28) + rxt(k,225)*y(k,24))*y(k,25) +rxt(k,174)*y(k,99)*y(k,28) loss(k,49) = ( + rxt(k,56) + het_rates(k,50))* y(k,50) - prod(k,49) = (rxt(k,212)*y(k,23) +rxt(k,213)*y(k,41) +rxt(k,214)*y(k,102) + & + prod(k,49) = (rxt(k,212)*y(k,23) +rxt(k,213)*y(k,41) +rxt(k,214)*y(k,103) + & rxt(k,215)*y(k,51))*y(k,39) - loss(k,100) = (rxt(k,215)* y(k,39) +rxt(k,152)* y(k,98) + rxt(k,9) & + loss(k,100) = (rxt(k,215)* y(k,39) +rxt(k,152)* y(k,99) + rxt(k,9) & + het_rates(k,51))* y(k,51) prod(k,100) = (rxt(k,271) +rxt(k,276) +rxt(k,282) +rxt(k,273)*y(k,49) + & rxt(k,278)*y(k,49) +rxt(k,283)*y(k,49))*y(k,29) & + (2.000_r8*rxt(k,264) +2.000_r8*rxt(k,267) +2.000_r8*rxt(k,270) + & 2.000_r8*rxt(k,281))*y(k,57) + (rxt(k,269) +rxt(k,272) +rxt(k,277)) & *y(k,6) + (rxt(k,266) +rxt(k,235)*y(k,17) +rxt(k,246)*y(k,35)) & - *y(k,63) + (.500_r8*rxt(k,265) +rxt(k,151)*y(k,98))*y(k,62) - loss(k,57) = (rxt(k,128)* y(k,98) + rxt(k,10) + rxt(k,11) + rxt(k,153) & + *y(k,63) + (.500_r8*rxt(k,265) +rxt(k,151)*y(k,99))*y(k,62) + loss(k,57) = (rxt(k,128)* y(k,99) + rxt(k,10) + rxt(k,11) + rxt(k,153) & + het_rates(k,52))* y(k,52) - prod(k,57) =rxt(k,149)*y(k,89)*y(k,62) + prod(k,57) =rxt(k,149)*y(k,90)*y(k,62) loss(k,68) = ((rxt(k,275) +rxt(k,280))* y(k,49) +rxt(k,206)* y(k,69) & + rxt(k,57) + het_rates(k,53))* y(k,53) - prod(k,68) = (rxt(k,269) +rxt(k,272) +rxt(k,277))*y(k,6) +rxt(k,198)*y(k,89) & + prod(k,68) = (rxt(k,269) +rxt(k,272) +rxt(k,277))*y(k,6) +rxt(k,198)*y(k,90) & *y(k,5) loss(k,70) = (rxt(k,177)* y(k,25) + (rxt(k,268) +rxt(k,274) +rxt(k,279)) & - * y(k,49) +rxt(k,178)* y(k,69) +rxt(k,179)* y(k,98) + rxt(k,58) & + * y(k,49) +rxt(k,178)* y(k,69) +rxt(k,179)* y(k,99) + rxt(k,58) & + het_rates(k,54))* y(k,54) - prod(k,70) = (rxt(k,271) +rxt(k,276) +rxt(k,282) +rxt(k,171)*y(k,98))*y(k,29) & - +rxt(k,166)*y(k,89)*y(k,28) + prod(k,70) = (rxt(k,271) +rxt(k,276) +rxt(k,282) +rxt(k,171)*y(k,99))*y(k,29) & + +rxt(k,166)*y(k,90)*y(k,28) loss(k,78) = (rxt(k,131)* y(k,61) + (rxt(k,132) +rxt(k,133) +rxt(k,134)) & - * y(k,62) +rxt(k,135)* y(k,70) +rxt(k,296)* y(k,97) +rxt(k,143) & - * y(k,98) + rxt(k,62) + het_rates(k,55))* y(k,55) - prod(k,78) = (rxt(k,129)*y(k,90) +rxt(k,293)*y(k,93))*y(k,69) & - + (.200_r8*rxt(k,287)*y(k,92) +1.100_r8*rxt(k,289)*y(k,91))*y(k,88) & - +rxt(k,15)*y(k,61) +rxt(k,294)*y(k,93)*y(k,70) +rxt(k,300)*y(k,99) - loss(k,46) = ((rxt(k,147) +rxt(k,148))* y(k,94) + rxt(k,12) & + * y(k,62) +rxt(k,135)* y(k,70) +rxt(k,296)* y(k,98) +rxt(k,143) & + * y(k,99) + rxt(k,62) + het_rates(k,55))* y(k,55) + prod(k,78) = (rxt(k,129)*y(k,91) +rxt(k,293)*y(k,94))*y(k,69) & + + (.200_r8*rxt(k,287)*y(k,93) +1.100_r8*rxt(k,289)*y(k,92))*y(k,89) & + +rxt(k,15)*y(k,61) +rxt(k,294)*y(k,94)*y(k,70) +rxt(k,300)*y(k,100) + loss(k,46) = ((rxt(k,147) +rxt(k,148))* y(k,95) + rxt(k,12) & + het_rates(k,56))* y(k,56) prod(k,46) =rxt(k,132)*y(k,62)*y(k,55) loss(k,50) = ( + rxt(k,13) + rxt(k,14) + rxt(k,154) + rxt(k,264) + rxt(k,267) & @@ -291,34 +302,34 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & prod(k,10) = 0._r8 loss(k,95) = (rxt(k,199)* y(k,5) +rxt(k,239)* y(k,21) +rxt(k,167)* y(k,28) & +rxt(k,131)* y(k,55) +rxt(k,140)* y(k,63) +rxt(k,146)* y(k,69) & - +rxt(k,145)* y(k,71) +rxt(k,144)* y(k,89) +rxt(k,298)* y(k,97) & + +rxt(k,145)* y(k,71) +rxt(k,144)* y(k,90) +rxt(k,298)* y(k,98) & + rxt(k,15) + rxt(k,16) + het_rates(k,61))* y(k,61) prod(k,95) = (rxt(k,17) +.500_r8*rxt(k,265) +2.000_r8*rxt(k,133)*y(k,55) + & - rxt(k,136)*y(k,69) +rxt(k,256)*y(k,78))*y(k,62) & - + (rxt(k,135)*y(k,70) +rxt(k,143)*y(k,98))*y(k,55) & - +2.000_r8*rxt(k,147)*y(k,94)*y(k,56) +rxt(k,14)*y(k,57) +rxt(k,19) & - *y(k,63) +rxt(k,130)*y(k,90)*y(k,70) +rxt(k,297)*y(k,97) +rxt(k,310) & - *y(k,101) + rxt(k,136)*y(k,69) +rxt(k,256)*y(k,79))*y(k,62) & + + (rxt(k,135)*y(k,70) +rxt(k,143)*y(k,99))*y(k,55) & + +2.000_r8*rxt(k,147)*y(k,95)*y(k,56) +rxt(k,14)*y(k,57) +rxt(k,19) & + *y(k,63) +rxt(k,130)*y(k,91)*y(k,70) +rxt(k,297)*y(k,98) +rxt(k,310) & + *y(k,102) loss(k,92) = (rxt(k,200)* y(k,5) +rxt(k,169)* y(k,28) + (rxt(k,132) + & rxt(k,133) +rxt(k,134))* y(k,55) +rxt(k,150)* y(k,63) + (rxt(k,136) + & - rxt(k,138))* y(k,69) +rxt(k,137)* y(k,71) +rxt(k,256)* y(k,78) & - +rxt(k,149)* y(k,89) +rxt(k,151)* y(k,98) + rxt(k,17) + rxt(k,265) & + rxt(k,138))* y(k,69) +rxt(k,137)* y(k,71) +rxt(k,256)* y(k,79) & + +rxt(k,149)* y(k,90) +rxt(k,151)* y(k,99) + rxt(k,17) + rxt(k,265) & + het_rates(k,62))* y(k,62) - prod(k,92) = (2.000_r8*rxt(k,140)*y(k,63) +rxt(k,144)*y(k,89) + & + prod(k,92) = (2.000_r8*rxt(k,140)*y(k,63) +rxt(k,144)*y(k,90) + & rxt(k,145)*y(k,71) +rxt(k,146)*y(k,69) +rxt(k,167)*y(k,28) + & rxt(k,199)*y(k,5) +rxt(k,239)*y(k,21))*y(k,61) + (rxt(k,18) + & - rxt(k,139)*y(k,89) +rxt(k,141)*y(k,69) +rxt(k,142)*y(k,98))*y(k,63) & - + (rxt(k,11) +rxt(k,153) +rxt(k,128)*y(k,98))*y(k,52) + (rxt(k,13) + & + rxt(k,139)*y(k,90) +rxt(k,141)*y(k,69) +rxt(k,142)*y(k,99))*y(k,63) & + + (rxt(k,11) +rxt(k,153) +rxt(k,128)*y(k,99))*y(k,52) + (rxt(k,13) + & rxt(k,154))*y(k,57) +rxt(k,28)*y(k,6) +rxt(k,47)*y(k,29) +rxt(k,9) & *y(k,51) loss(k,90) = (rxt(k,235)* y(k,17) +rxt(k,246)* y(k,35) +rxt(k,140)* y(k,61) & - +rxt(k,150)* y(k,62) +rxt(k,141)* y(k,69) +rxt(k,139)* y(k,89) & - +rxt(k,142)* y(k,98) + rxt(k,18) + rxt(k,19) + rxt(k,266) & + +rxt(k,150)* y(k,62) +rxt(k,141)* y(k,69) +rxt(k,139)* y(k,90) & + +rxt(k,142)* y(k,99) + rxt(k,18) + rxt(k,19) + rxt(k,266) & + het_rates(k,63))* y(k,63) prod(k,90) = (rxt(k,46) +rxt(k,168)*y(k,25) +rxt(k,170)*y(k,69) + & - rxt(k,171)*y(k,98))*y(k,29) + (rxt(k,13) +rxt(k,14) +rxt(k,154)) & + rxt(k,171)*y(k,99))*y(k,29) + (rxt(k,13) +rxt(k,14) +rxt(k,154)) & *y(k,57) + (rxt(k,29) +rxt(k,201)*y(k,69))*y(k,6) & - + (rxt(k,152)*y(k,98) +rxt(k,215)*y(k,39))*y(k,51) & + + (rxt(k,152)*y(k,99) +rxt(k,215)*y(k,39))*y(k,51) & + (rxt(k,137)*y(k,71) +rxt(k,138)*y(k,69))*y(k,62) +rxt(k,10) & *y(k,52) loss(k,11) = ( + het_rates(k,64))* y(k,64) @@ -337,97 +348,97 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & +rxt(k,206)* y(k,53) +rxt(k,178)* y(k,54) +rxt(k,146)* y(k,61) & + (rxt(k,136) +rxt(k,138))* y(k,62) +rxt(k,141)* y(k,63) & + 2._r8*rxt(k,109)* y(k,69) +rxt(k,110)* y(k,70) +rxt(k,108) & - * y(k,71) +rxt(k,248)* y(k,73) +rxt(k,117)* y(k,89) + (rxt(k,291) + & - rxt(k,292))* y(k,91) +rxt(k,293)* y(k,93) +rxt(k,123)* y(k,98) & + * y(k,71) +rxt(k,248)* y(k,74) +rxt(k,117)* y(k,90) + (rxt(k,291) + & + rxt(k,292))* y(k,92) +rxt(k,293)* y(k,94) +rxt(k,123)* y(k,99) & + rxt(k,71) + rxt(k,72) + rxt(k,73) + rxt(k,74) + rxt(k,75) & + rxt(k,76) + het_rates(k,69))* y(k,69) prod(k,93) = (2.000_r8*rxt(k,5) +rxt(k,6) +rxt(k,77) +rxt(k,79) +rxt(k,81) + & 2.000_r8*rxt(k,82) +2.000_r8*rxt(k,83) +rxt(k,84) +rxt(k,85) + & - rxt(k,86) +rxt(k,97)*y(k,94) +rxt(k,98)*y(k,94) +rxt(k,135)*y(k,55) + & - rxt(k,250)*y(k,76) +rxt(k,257)*y(k,78) +rxt(k,295)*y(k,93) + & - rxt(k,302)*y(k,99) +rxt(k,306)*y(k,100))*y(k,70) & - + (rxt(k,131)*y(k,61) +rxt(k,132)*y(k,62) +rxt(k,296)*y(k,97)) & - *y(k,55) + (rxt(k,25) +rxt(k,61))*y(k,32) + (rxt(k,287)*y(k,92) + & - 1.150_r8*rxt(k,288)*y(k,97))*y(k,88) +rxt(k,27)*y(k,5) & - +.180_r8*rxt(k,24)*y(k,23) +rxt(k,45)*y(k,28) +rxt(k,115)*y(k,89) & + rxt(k,86) +rxt(k,97)*y(k,95) +rxt(k,98)*y(k,95) +rxt(k,135)*y(k,55) + & + rxt(k,250)*y(k,77) +rxt(k,257)*y(k,79) +rxt(k,295)*y(k,94) + & + rxt(k,302)*y(k,100) +rxt(k,306)*y(k,101))*y(k,70) & + + (rxt(k,131)*y(k,61) +rxt(k,132)*y(k,62) +rxt(k,296)*y(k,98)) & + *y(k,55) + (rxt(k,25) +rxt(k,61))*y(k,32) + (rxt(k,287)*y(k,93) + & + 1.150_r8*rxt(k,288)*y(k,98))*y(k,89) +rxt(k,27)*y(k,5) & + +.180_r8*rxt(k,24)*y(k,23) +rxt(k,45)*y(k,28) +rxt(k,115)*y(k,90) & *y(k,40) +rxt(k,14)*y(k,57) +rxt(k,15)*y(k,61) +rxt(k,17)*y(k,62) & - +rxt(k,18)*y(k,63) +rxt(k,8)*y(k,71) +rxt(k,59)*y(k,72) +rxt(k,89) & - *y(k,78) +rxt(k,90)*y(k,79) +rxt(k,91)*y(k,80) +rxt(k,301)*y(k,99) & - *y(k,90) +rxt(k,96)*y(k,94) +rxt(k,125)*y(k,98)*y(k,98) +rxt(k,304) & - *y(k,100) +rxt(k,309)*y(k,101) +rxt(k,2)*y(k,102) + +rxt(k,18)*y(k,63) +rxt(k,8)*y(k,71) +rxt(k,59)*y(k,73) +rxt(k,89) & + *y(k,79) +rxt(k,90)*y(k,80) +rxt(k,91)*y(k,81) +rxt(k,301)*y(k,100) & + *y(k,91) +rxt(k,96)*y(k,95) +rxt(k,125)*y(k,99)*y(k,99) +rxt(k,304) & + *y(k,101) +rxt(k,309)*y(k,102) +rxt(k,2)*y(k,103) loss(k,87) = (rxt(k,116)* y(k,40) +rxt(k,135)* y(k,55) +rxt(k,110)* y(k,69) & - +rxt(k,250)* y(k,76) +rxt(k,257)* y(k,78) +rxt(k,130)* y(k,90) & - +rxt(k,290)* y(k,91) + (rxt(k,294) +rxt(k,295))* y(k,93) +rxt(k,97) & - * y(k,94) +rxt(k,102)* y(k,95) +rxt(k,302)* y(k,99) +rxt(k,306) & - * y(k,100) + rxt(k,5) + rxt(k,6) + rxt(k,77) + rxt(k,78) + rxt(k,79) & + +rxt(k,250)* y(k,77) +rxt(k,257)* y(k,79) +rxt(k,130)* y(k,91) & + +rxt(k,290)* y(k,92) + (rxt(k,294) +rxt(k,295))* y(k,94) +rxt(k,97) & + * y(k,95) +rxt(k,102)* y(k,96) +rxt(k,302)* y(k,100) +rxt(k,306) & + * y(k,101) + rxt(k,5) + rxt(k,6) + rxt(k,77) + rxt(k,78) + rxt(k,79) & + rxt(k,80) + rxt(k,81) + rxt(k,82) + rxt(k,83) + rxt(k,84) & + rxt(k,85) + rxt(k,86) + het_rates(k,70))* y(k,70) - prod(k,87) = (rxt(k,8) +2.000_r8*rxt(k,99)*y(k,94) + & - 2.000_r8*rxt(k,108)*y(k,69) +2.000_r8*rxt(k,118)*y(k,89) + & - rxt(k,119)*y(k,40) +rxt(k,124)*y(k,98) +rxt(k,137)*y(k,62) + & + prod(k,87) = (rxt(k,8) +2.000_r8*rxt(k,99)*y(k,95) + & + 2.000_r8*rxt(k,108)*y(k,69) +2.000_r8*rxt(k,118)*y(k,90) + & + rxt(k,119)*y(k,40) +rxt(k,124)*y(k,99) +rxt(k,137)*y(k,62) + & rxt(k,145)*y(k,61) +rxt(k,161)*y(k,25) +rxt(k,193)*y(k,3) + & - rxt(k,252)*y(k,76) +rxt(k,258)*y(k,78))*y(k,71) & - + (rxt(k,113)*y(k,40) +rxt(k,117)*y(k,69) +rxt(k,122)*y(k,98) + & - rxt(k,127)*y(k,89) +rxt(k,139)*y(k,63) +rxt(k,159)*y(k,25) + & + rxt(k,252)*y(k,77) +rxt(k,258)*y(k,79))*y(k,71) & + + (rxt(k,113)*y(k,40) +rxt(k,117)*y(k,69) +rxt(k,122)*y(k,99) + & + rxt(k,127)*y(k,90) +rxt(k,139)*y(k,63) +rxt(k,159)*y(k,25) + & rxt(k,166)*y(k,28) +rxt(k,192)*y(k,3) +rxt(k,198)*y(k,5) + & - rxt(k,238)*y(k,21))*y(k,89) + (rxt(k,101)*y(k,95) + & - rxt(k,109)*y(k,69) +rxt(k,123)*y(k,98) +rxt(k,136)*y(k,62) + & + rxt(k,238)*y(k,21))*y(k,90) + (rxt(k,101)*y(k,96) + & + rxt(k,109)*y(k,69) +rxt(k,123)*y(k,99) +rxt(k,136)*y(k,62) + & rxt(k,141)*y(k,63) +rxt(k,172)*y(k,28) +rxt(k,202)*y(k,5))*y(k,69) & - + (rxt(k,163)*y(k,28) +rxt(k,164)*y(k,28) +rxt(k,174)*y(k,98) + & + + (rxt(k,163)*y(k,28) +rxt(k,164)*y(k,28) +rxt(k,174)*y(k,99) + & rxt(k,196)*y(k,5) +rxt(k,197)*y(k,5))*y(k,28) + (rxt(k,92) + & - rxt(k,100) +2.000_r8*rxt(k,102)*y(k,70))*y(k,95) +rxt(k,194)*y(k,5) & - *y(k,5) +rxt(k,128)*y(k,98)*y(k,52) +rxt(k,134)*y(k,62)*y(k,55) & - +rxt(k,148)*y(k,94)*y(k,56) +rxt(k,298)*y(k,97)*y(k,61) +rxt(k,19) & - *y(k,63) +rxt(k,93)*y(k,96) + rxt(k,100) +2.000_r8*rxt(k,102)*y(k,70))*y(k,96) +rxt(k,194)*y(k,5) & + *y(k,5) +rxt(k,128)*y(k,99)*y(k,52) +rxt(k,134)*y(k,62)*y(k,55) & + +rxt(k,148)*y(k,95)*y(k,56) +rxt(k,298)*y(k,98)*y(k,61) +rxt(k,19) & + *y(k,63) +rxt(k,93)*y(k,97) loss(k,88) = (rxt(k,193)* y(k,3) +rxt(k,161)* y(k,25) +rxt(k,119)* y(k,40) & +rxt(k,145)* y(k,61) +rxt(k,137)* y(k,62) +rxt(k,108)* y(k,69) & - +rxt(k,252)* y(k,76) +rxt(k,258)* y(k,78) +rxt(k,118)* y(k,89) & - +rxt(k,99)* y(k,94) +rxt(k,124)* y(k,98) + rxt(k,7) + rxt(k,8) & + +rxt(k,252)* y(k,77) +rxt(k,258)* y(k,79) +rxt(k,118)* y(k,90) & + +rxt(k,99)* y(k,95) +rxt(k,124)* y(k,99) + rxt(k,7) + rxt(k,8) & + het_rates(k,71))* y(k,71) prod(k,88) =rxt(k,110)*y(k,70)*y(k,69) - loss(k,52) = (rxt(k,259)* y(k,78) + rxt(k,59) + het_rates(k,72))* y(k,72) + loss(k,52) = (rxt(k,259)* y(k,79) + rxt(k,59) + het_rates(k,73))* y(k,73) prod(k,52) = (rxt(k,165)*y(k,28) +rxt(k,195)*y(k,5))*y(k,28) - loss(k,53) = (rxt(k,248)* y(k,69) +rxt(k,249)* y(k,98) + rxt(k,88) & - + het_rates(k,73))* y(k,73) + loss(k,53) = (rxt(k,248)* y(k,69) +rxt(k,249)* y(k,99) + rxt(k,88) & + + het_rates(k,74))* y(k,74) prod(k,53) = 0._r8 - loss(k,16) = ( + het_rates(k,74))* y(k,74) + loss(k,16) = ( + het_rates(k,75))* y(k,75) prod(k,16) = 0._r8 - loss(k,17) = ( + het_rates(k,75))* y(k,75) + loss(k,17) = ( + het_rates(k,76))* y(k,76) prod(k,17) = 0._r8 - loss(k,66) = (rxt(k,250)* y(k,70) +rxt(k,252)* y(k,71) +rxt(k,255)* y(k,98) & - + het_rates(k,76))* y(k,76) - prod(k,66) =rxt(k,88)*y(k,73) +rxt(k,89)*y(k,78) - loss(k,18) = ( + rxt(k,60) + het_rates(k,77))* y(k,77) + loss(k,66) = (rxt(k,250)* y(k,70) +rxt(k,252)* y(k,71) +rxt(k,255)* y(k,99) & + + het_rates(k,77))* y(k,77) + prod(k,66) =rxt(k,88)*y(k,74) +rxt(k,89)*y(k,79) + loss(k,18) = ( + rxt(k,60) + het_rates(k,78))* y(k,78) prod(k,18) = 0._r8 loss(k,83) = (rxt(k,253)* y(k,5) +rxt(k,254)* y(k,28) +rxt(k,256)* y(k,62) & - +rxt(k,257)* y(k,70) +rxt(k,258)* y(k,71) +rxt(k,259)* y(k,72) & - +rxt(k,260)* y(k,98) + rxt(k,89) + het_rates(k,78))* y(k,78) - prod(k,83) = (rxt(k,250)*y(k,70) +rxt(k,252)*y(k,71) +rxt(k,255)*y(k,98)) & - *y(k,76) +rxt(k,248)*y(k,73)*y(k,69) +rxt(k,90)*y(k,79) - loss(k,74) = (rxt(k,251)* y(k,98) + rxt(k,90) + het_rates(k,79))* y(k,79) + +rxt(k,257)* y(k,70) +rxt(k,258)* y(k,71) +rxt(k,259)* y(k,73) & + +rxt(k,260)* y(k,99) + rxt(k,89) + het_rates(k,79))* y(k,79) + prod(k,83) = (rxt(k,250)*y(k,70) +rxt(k,252)*y(k,71) +rxt(k,255)*y(k,99)) & + *y(k,77) +rxt(k,248)*y(k,74)*y(k,69) +rxt(k,90)*y(k,80) + loss(k,74) = (rxt(k,251)* y(k,99) + rxt(k,90) + het_rates(k,80))* y(k,80) prod(k,74) = (rxt(k,253)*y(k,5) +rxt(k,254)*y(k,28) +rxt(k,256)*y(k,62) + & - rxt(k,257)*y(k,70) +rxt(k,258)*y(k,71) +rxt(k,259)*y(k,72) + & - rxt(k,260)*y(k,98))*y(k,78) + (rxt(k,246)*y(k,63) + & - rxt(k,247)*y(k,98) +.500_r8*rxt(k,261)*y(k,98))*y(k,35) & - +rxt(k,249)*y(k,98)*y(k,73) +rxt(k,91)*y(k,80) - loss(k,47) = (rxt(k,262)* y(k,102) + rxt(k,91) + het_rates(k,80))* y(k,80) - prod(k,47) =rxt(k,87)*y(k,44) +rxt(k,251)*y(k,98)*y(k,79) - loss(k,19) = ( + het_rates(k,81))* y(k,81) + rxt(k,257)*y(k,70) +rxt(k,258)*y(k,71) +rxt(k,259)*y(k,73) + & + rxt(k,260)*y(k,99))*y(k,79) + (rxt(k,246)*y(k,63) + & + rxt(k,247)*y(k,99) +.500_r8*rxt(k,261)*y(k,99))*y(k,35) & + +rxt(k,249)*y(k,99)*y(k,74) +rxt(k,91)*y(k,81) + loss(k,47) = (rxt(k,262)* y(k,103) + rxt(k,91) + het_rates(k,81))* y(k,81) + prod(k,47) =rxt(k,87)*y(k,44) +rxt(k,251)*y(k,99)*y(k,80) + loss(k,19) = ( + het_rates(k,82))* y(k,82) prod(k,19) = 0._r8 - loss(k,20) = ( + het_rates(k,82))* y(k,82) + loss(k,20) = ( + het_rates(k,83))* y(k,83) prod(k,20) = 0._r8 - loss(k,21) = ( + het_rates(k,83))* y(k,83) + loss(k,21) = ( + het_rates(k,84))* y(k,84) prod(k,21) = 0._r8 - loss(k,22) = ( + het_rates(k,84))* y(k,84) + loss(k,22) = ( + het_rates(k,85))* y(k,85) prod(k,22) = 0._r8 - loss(k,23) = ( + het_rates(k,85))* y(k,85) + loss(k,23) = ( + het_rates(k,86))* y(k,86) prod(k,23) = 0._r8 - loss(k,24) = ( + het_rates(k,86))* y(k,86) + loss(k,24) = ( + het_rates(k,87))* y(k,87) prod(k,24) = 0._r8 - loss(k,25) = ( + het_rates(k,87))* y(k,87) + loss(k,25) = ( + het_rates(k,88))* y(k,88) prod(k,25) = 0._r8 - loss(k,76) = (rxt(k,289)* y(k,91) +rxt(k,287)* y(k,92) +rxt(k,288)* y(k,97) & - + het_rates(k,88))* y(k,88) + loss(k,76) = (rxt(k,289)* y(k,92) +rxt(k,287)* y(k,93) +rxt(k,288)* y(k,98) & + + het_rates(k,89))* y(k,89) prod(k,76) = (rxt(k,77) +rxt(k,78) +rxt(k,79) +rxt(k,80) +rxt(k,81) + & rxt(k,84) +rxt(k,85) +rxt(k,86))*y(k,70) + (rxt(k,71) +rxt(k,72) + & rxt(k,73) +rxt(k,74) +rxt(k,75) +rxt(k,76))*y(k,69) +rxt(k,62) & @@ -436,32 +447,32 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & + (rxt(k,159) +rxt(k,160))* y(k,25) +rxt(k,166)* y(k,28) & + (rxt(k,113) +rxt(k,114) +rxt(k,115))* y(k,40) +rxt(k,144)* y(k,61) & +rxt(k,149)* y(k,62) +rxt(k,139)* y(k,63) +rxt(k,117)* y(k,69) & - +rxt(k,118)* y(k,71) + 2._r8*rxt(k,127)* y(k,89) +rxt(k,122) & - * y(k,98) + rxt(k,263) + het_rates(k,89))* y(k,89) + +rxt(k,118)* y(k,71) + 2._r8*rxt(k,127)* y(k,90) +rxt(k,122) & + * y(k,99) + rxt(k,263) + het_rates(k,90))* y(k,90) prod(k,89) = (rxt(k,121)*y(k,43) +rxt(k,124)*y(k,71) +rxt(k,142)*y(k,63) + & rxt(k,173)*y(k,28) +rxt(k,203)*y(k,5) +rxt(k,221)*y(k,18) + & - rxt(k,224)*y(k,20) +rxt(k,245)*y(k,31) +rxt(k,251)*y(k,79) + & - .500_r8*rxt(k,261)*y(k,35))*y(k,98) + (rxt(k,155)*y(k,25) + & + rxt(k,224)*y(k,20) +rxt(k,245)*y(k,31) +rxt(k,251)*y(k,80) + & + .500_r8*rxt(k,261)*y(k,35))*y(k,99) + (rxt(k,155)*y(k,25) + & rxt(k,191)*y(k,3) +rxt(k,235)*y(k,63) +rxt(k,236)*y(k,69))*y(k,17) & + (rxt(k,158)*y(k,43) +rxt(k,220)*y(k,18) +rxt(k,223)*y(k,20)) & *y(k,25) + (rxt(k,162)*y(k,28) +rxt(k,239)*y(k,61))*y(k,21) & - + (rxt(k,11) +rxt(k,153))*y(k,52) +rxt(k,243)*y(k,94)*y(k,23) & + + (rxt(k,11) +rxt(k,153))*y(k,52) +rxt(k,243)*y(k,95)*y(k,23) & +rxt(k,116)*y(k,70)*y(k,40) +rxt(k,112)*y(k,69)*y(k,43) - loss(k,77) = (rxt(k,129)* y(k,69) +rxt(k,130)* y(k,70) +rxt(k,301)* y(k,99) & - + het_rates(k,90))* y(k,90) - prod(k,77) = (.800_r8*rxt(k,287)*y(k,92) +.900_r8*rxt(k,289)*y(k,91))*y(k,88) & - +rxt(k,291)*y(k,91)*y(k,69) + loss(k,77) = (rxt(k,129)* y(k,69) +rxt(k,130)* y(k,70) +rxt(k,301)* y(k,100) & + + het_rates(k,91))* y(k,91) + prod(k,77) = (.800_r8*rxt(k,287)*y(k,93) +.900_r8*rxt(k,289)*y(k,92))*y(k,89) & + +rxt(k,291)*y(k,92)*y(k,69) loss(k,64) = ((rxt(k,291) +rxt(k,292))* y(k,69) +rxt(k,290)* y(k,70) & - +rxt(k,289)* y(k,88) + het_rates(k,91))* y(k,91) - prod(k,64) =rxt(k,304)*y(k,100) +rxt(k,309)*y(k,101) - loss(k,67) = (rxt(k,287)* y(k,88) + het_rates(k,92))* y(k,92) - prod(k,67) = (rxt(k,297) +rxt(k,296)*y(k,55) +rxt(k,298)*y(k,61))*y(k,97) & - +rxt(k,16)*y(k,61) +rxt(k,291)*y(k,91)*y(k,69) +rxt(k,295)*y(k,93) & - *y(k,70) +rxt(k,300)*y(k,99) + +rxt(k,289)* y(k,89) + het_rates(k,92))* y(k,92) + prod(k,64) =rxt(k,304)*y(k,101) +rxt(k,309)*y(k,102) + loss(k,67) = (rxt(k,287)* y(k,89) + het_rates(k,93))* y(k,93) + prod(k,67) = (rxt(k,297) +rxt(k,296)*y(k,55) +rxt(k,298)*y(k,61))*y(k,98) & + +rxt(k,16)*y(k,61) +rxt(k,291)*y(k,92)*y(k,69) +rxt(k,295)*y(k,94) & + *y(k,70) +rxt(k,300)*y(k,100) loss(k,71) = (rxt(k,293)* y(k,69) + (rxt(k,294) +rxt(k,295))* y(k,70) & - + het_rates(k,93))* y(k,93) - prod(k,71) =rxt(k,62)*y(k,55) +rxt(k,301)*y(k,99)*y(k,90) +rxt(k,310) & - *y(k,101) + + het_rates(k,94))* y(k,94) + prod(k,71) =rxt(k,62)*y(k,55) +rxt(k,301)*y(k,100)*y(k,91) +rxt(k,310) & + *y(k,102) loss(k,94) = (rxt(k,180)* y(k,8) +rxt(k,181)* y(k,9) +rxt(k,207)* y(k,10) & +rxt(k,182)* y(k,11) +rxt(k,183)* y(k,12) +rxt(k,184)* y(k,13) & +rxt(k,185)* y(k,14) +rxt(k,186)* y(k,15) +rxt(k,230)* y(k,16) & @@ -471,24 +482,24 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & * y(k,45) +rxt(k,232)* y(k,46) +rxt(k,233)* y(k,47) +rxt(k,234) & * y(k,48) + (rxt(k,187) +rxt(k,188))* y(k,49) + (rxt(k,147) + & rxt(k,148))* y(k,56) + (rxt(k,97) +rxt(k,98))* y(k,70) +rxt(k,99) & - * y(k,71) +rxt(k,95)* y(k,102) + rxt(k,96) + het_rates(k,94)) & - * y(k,94) - prod(k,94) = (rxt(k,6) +rxt(k,130)*y(k,90))*y(k,70) +rxt(k,12)*y(k,56) & - +rxt(k,7)*y(k,71) +.850_r8*rxt(k,288)*y(k,97)*y(k,88) +rxt(k,1) & - *y(k,102) + * y(k,71) +rxt(k,95)* y(k,103) + rxt(k,96) + het_rates(k,95)) & + * y(k,95) + prod(k,94) = (rxt(k,6) +rxt(k,130)*y(k,91))*y(k,70) +rxt(k,12)*y(k,56) & + +rxt(k,7)*y(k,71) +.850_r8*rxt(k,288)*y(k,98)*y(k,89) +rxt(k,1) & + *y(k,103) loss(k,39) = (rxt(k,101)* y(k,69) +rxt(k,102)* y(k,70) + rxt(k,92) & - + rxt(k,100) + het_rates(k,95))* y(k,95) + + rxt(k,100) + het_rates(k,96))* y(k,96) prod(k,39) = (rxt(k,104) +rxt(k,103)*y(k,32) +rxt(k,105)*y(k,69) + & - rxt(k,106)*y(k,70) +rxt(k,107)*y(k,71))*y(k,96) +rxt(k,7)*y(k,71) + rxt(k,106)*y(k,70) +rxt(k,107)*y(k,71))*y(k,97) +rxt(k,7)*y(k,71) loss(k,40) = (rxt(k,103)* y(k,32) +rxt(k,105)* y(k,69) +rxt(k,106)* y(k,70) & - +rxt(k,107)* y(k,71) + rxt(k,93) + rxt(k,104) + het_rates(k,96)) & - * y(k,96) - prod(k,40) =rxt(k,97)*y(k,94)*y(k,70) - loss(k,79) = (rxt(k,296)* y(k,55) +rxt(k,298)* y(k,61) +rxt(k,288)* y(k,88) & - + rxt(k,297) + het_rates(k,97))* y(k,97) - prod(k,79) = (rxt(k,78) +rxt(k,80) +rxt(k,290)*y(k,91) +rxt(k,294)*y(k,93) + & - rxt(k,302)*y(k,99) +rxt(k,306)*y(k,100))*y(k,70) +rxt(k,299)*y(k,99) & - *y(k,32) + +rxt(k,107)* y(k,71) + rxt(k,93) + rxt(k,104) + het_rates(k,97)) & + * y(k,97) + prod(k,40) =rxt(k,97)*y(k,95)*y(k,70) + loss(k,79) = (rxt(k,296)* y(k,55) +rxt(k,298)* y(k,61) +rxt(k,288)* y(k,89) & + + rxt(k,297) + het_rates(k,98))* y(k,98) + prod(k,79) = (rxt(k,78) +rxt(k,80) +rxt(k,290)*y(k,92) +rxt(k,294)*y(k,94) + & + rxt(k,302)*y(k,100) +rxt(k,306)*y(k,101))*y(k,70) & + +rxt(k,299)*y(k,100)*y(k,32) loss(k,98) = (rxt(k,203)* y(k,5) +rxt(k,219)* y(k,16) +rxt(k,237)* y(k,17) & +rxt(k,221)* y(k,18) +rxt(k,222)* y(k,19) +rxt(k,224)* y(k,20) & +rxt(k,240)* y(k,22) +rxt(k,241)* y(k,23) +rxt(k,226)* y(k,24) & @@ -498,47 +509,47 @@ subroutine imp_prod_loss( avec_len, prod, loss, y, & +rxt(k,228)* y(k,47) +rxt(k,229)* y(k,48) +rxt(k,176)* y(k,49) & +rxt(k,152)* y(k,51) +rxt(k,128)* y(k,52) +rxt(k,179)* y(k,54) & +rxt(k,143)* y(k,55) +rxt(k,151)* y(k,62) +rxt(k,142)* y(k,63) & - +rxt(k,123)* y(k,69) +rxt(k,124)* y(k,71) +rxt(k,249)* y(k,73) & - +rxt(k,255)* y(k,76) +rxt(k,260)* y(k,78) +rxt(k,251)* y(k,79) & - +rxt(k,122)* y(k,89) + 2._r8*(rxt(k,125) +rxt(k,126))* y(k,98) & - + het_rates(k,98))* y(k,98) - prod(k,98) = (rxt(k,111)*y(k,41) +rxt(k,112)*y(k,43) +rxt(k,117)*y(k,89) + & + +rxt(k,123)* y(k,69) +rxt(k,124)* y(k,71) +rxt(k,249)* y(k,74) & + +rxt(k,255)* y(k,77) +rxt(k,260)* y(k,79) +rxt(k,251)* y(k,80) & + +rxt(k,122)* y(k,90) + 2._r8*(rxt(k,125) +rxt(k,126))* y(k,99) & + + het_rates(k,99))* y(k,99) + prod(k,98) = (rxt(k,111)*y(k,41) +rxt(k,112)*y(k,43) +rxt(k,117)*y(k,90) + & rxt(k,175)*y(k,49) +rxt(k,178)*y(k,54) +rxt(k,204)*y(k,45) + & rxt(k,206)*y(k,53) +rxt(k,236)*y(k,17))*y(k,69) & + (2.000_r8*rxt(k,114)*y(k,40) +rxt(k,118)*y(k,71) + & - rxt(k,139)*y(k,63) +rxt(k,144)*y(k,61) +rxt(k,160)*y(k,25))*y(k,89) & - + (rxt(k,94)*y(k,41) +2.000_r8*rxt(k,95)*y(k,102) + & - rxt(k,187)*y(k,49) +rxt(k,210)*y(k,45) +rxt(k,242)*y(k,23))*y(k,94) & - + (rxt(k,22) +.300_r8*rxt(k,240)*y(k,98))*y(k,22) + (rxt(k,3) + & - rxt(k,214)*y(k,39))*y(k,102) +.330_r8*rxt(k,24)*y(k,23) & + rxt(k,139)*y(k,63) +rxt(k,144)*y(k,61) +rxt(k,160)*y(k,25))*y(k,90) & + + (rxt(k,94)*y(k,41) +2.000_r8*rxt(k,95)*y(k,103) + & + rxt(k,187)*y(k,49) +rxt(k,210)*y(k,45) +rxt(k,242)*y(k,23))*y(k,95) & + + (rxt(k,22) +.300_r8*rxt(k,240)*y(k,99))*y(k,22) + (rxt(k,3) + & + rxt(k,214)*y(k,39))*y(k,103) +.330_r8*rxt(k,24)*y(k,23) & +rxt(k,119)*y(k,71)*y(k,40) +2.000_r8*rxt(k,4)*y(k,43) +rxt(k,9) & *y(k,51) +rxt(k,10)*y(k,52) +rxt(k,57)*y(k,53) +rxt(k,58)*y(k,54) & +.500_r8*rxt(k,265)*y(k,62) - loss(k,80) = (rxt(k,299)* y(k,32) +rxt(k,302)* y(k,70) +rxt(k,301)* y(k,90) & - + rxt(k,300) + het_rates(k,99))* y(k,99) - prod(k,80) = (rxt(k,73) +rxt(k,74) +rxt(k,292)*y(k,91) +rxt(k,293)*y(k,93) + & - rxt(k,305)*y(k,100) +rxt(k,311)*y(k,101))*y(k,69) + (rxt(k,79) + & - rxt(k,81))*y(k,70) + (rxt(k,303)*y(k,100) +rxt(k,308)*y(k,101)) & - *y(k,88) +rxt(k,285)*y(k,100) +rxt(k,284)*y(k,101) - loss(k,60) = (rxt(k,305)* y(k,69) +rxt(k,306)* y(k,70) +rxt(k,303)* y(k,88) & - + rxt(k,285) + rxt(k,304) + het_rates(k,100))* y(k,100) + loss(k,80) = (rxt(k,299)* y(k,32) +rxt(k,302)* y(k,70) +rxt(k,301)* y(k,91) & + + rxt(k,300) + het_rates(k,100))* y(k,100) + prod(k,80) = (rxt(k,73) +rxt(k,74) +rxt(k,292)*y(k,92) +rxt(k,293)*y(k,94) + & + rxt(k,305)*y(k,101) +rxt(k,311)*y(k,102))*y(k,69) + (rxt(k,79) + & + rxt(k,81))*y(k,70) + (rxt(k,303)*y(k,101) +rxt(k,308)*y(k,102)) & + *y(k,89) +rxt(k,285)*y(k,101) +rxt(k,284)*y(k,102) + loss(k,60) = (rxt(k,305)* y(k,69) +rxt(k,306)* y(k,70) +rxt(k,303)* y(k,89) & + + rxt(k,285) + rxt(k,304) + het_rates(k,101))* y(k,101) prod(k,60) = (rxt(k,75) +rxt(k,76))*y(k,69) + (rxt(k,85) +rxt(k,86))*y(k,70) & - + (rxt(k,286) +rxt(k,307)*y(k,88))*y(k,101) - loss(k,59) = (rxt(k,311)* y(k,69) + (rxt(k,307) +rxt(k,308))* y(k,88) & + + (rxt(k,286) +rxt(k,307)*y(k,89))*y(k,102) + loss(k,59) = (rxt(k,311)* y(k,69) + (rxt(k,307) +rxt(k,308))* y(k,89) & + rxt(k,284) + rxt(k,286) + rxt(k,309) + rxt(k,310) & - + het_rates(k,101))* y(k,101) + + het_rates(k,102))* y(k,102) prod(k,59) = (rxt(k,71) +rxt(k,72))*y(k,69) + (rxt(k,77) +rxt(k,84))*y(k,70) - loss(k,102) = (rxt(k,214)* y(k,39) +rxt(k,262)* y(k,80) +rxt(k,95)* y(k,94) & - + rxt(k,1) + rxt(k,2) + rxt(k,3) + het_rates(k,102))* y(k,102) - prod(k,102) = (rxt(k,120)*y(k,41) +rxt(k,121)*y(k,43) +rxt(k,122)*y(k,89) + & - rxt(k,125)*y(k,98) +rxt(k,128)*y(k,52) +rxt(k,152)*y(k,51) + & + loss(k,102) = (rxt(k,214)* y(k,39) +rxt(k,262)* y(k,81) +rxt(k,95)* y(k,95) & + + rxt(k,1) + rxt(k,2) + rxt(k,3) + het_rates(k,103))* y(k,103) + prod(k,102) = (rxt(k,120)*y(k,41) +rxt(k,121)*y(k,43) +rxt(k,122)*y(k,90) + & + rxt(k,125)*y(k,99) +rxt(k,128)*y(k,52) +rxt(k,152)*y(k,51) + & rxt(k,176)*y(k,49) +rxt(k,179)*y(k,54) +rxt(k,205)*y(k,45) + & rxt(k,219)*y(k,16) +rxt(k,221)*y(k,18) +rxt(k,222)*y(k,19) + & rxt(k,224)*y(k,20) +rxt(k,229)*y(k,48) +rxt(k,237)*y(k,17) + & - rxt(k,240)*y(k,22) +rxt(k,241)*y(k,23))*y(k,98) & + rxt(k,240)*y(k,22) +rxt(k,241)*y(k,23))*y(k,99) & + (rxt(k,268)*y(k,54) +rxt(k,274)*y(k,54) +rxt(k,275)*y(k,53) + & rxt(k,279)*y(k,54) +rxt(k,280)*y(k,53))*y(k,49) +.050_r8*rxt(k,24) & - *y(k,23) +rxt(k,115)*y(k,89)*y(k,40) +rxt(k,87)*y(k,44) + *y(k,23) +rxt(k,115)*y(k,90)*y(k,40) +rxt(k,87)*y(k,44) end do end subroutine imp_prod_loss end module mo_prod_loss diff --git a/src/chemistry/pp_waccm_ma_mam5/mo_rxt_rates_conv.F90 b/src/chemistry/pp_waccm_ma_mam5/mo_rxt_rates_conv.F90 index d8f52c4676..bbe9d4d986 100644 --- a/src/chemistry/pp_waccm_ma_mam5/mo_rxt_rates_conv.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/mo_rxt_rates_conv.F90 @@ -8,9 +8,9 @@ subroutine set_rates( rxt_rates, sol, ncol ) real(r8), intent(inout) :: rxt_rates(:,:,:) real(r8), intent(in) :: sol(:,:,:) integer, intent(in) :: ncol - rxt_rates(:ncol,:, 1) = rxt_rates(:ncol,:, 1)*sol(:ncol,:, 102) ! rate_const*H2O - rxt_rates(:ncol,:, 2) = rxt_rates(:ncol,:, 2)*sol(:ncol,:, 102) ! rate_const*H2O - rxt_rates(:ncol,:, 3) = rxt_rates(:ncol,:, 3)*sol(:ncol,:, 102) ! rate_const*H2O + rxt_rates(:ncol,:, 1) = rxt_rates(:ncol,:, 1)*sol(:ncol,:, 103) ! rate_const*H2O + rxt_rates(:ncol,:, 2) = rxt_rates(:ncol,:, 2)*sol(:ncol,:, 103) ! rate_const*H2O + rxt_rates(:ncol,:, 3) = rxt_rates(:ncol,:, 3)*sol(:ncol,:, 103) ! rate_const*H2O rxt_rates(:ncol,:, 4) = rxt_rates(:ncol,:, 4)*sol(:ncol,:, 43) ! rate_const*H2O2 rxt_rates(:ncol,:, 5) = rxt_rates(:ncol,:, 5)*sol(:ncol,:, 70) ! rate_const*O2 rxt_rates(:ncol,:, 6) = rxt_rates(:ncol,:, 6)*sol(:ncol,:, 70) ! rate_const*O2 @@ -66,8 +66,8 @@ subroutine set_rates( rxt_rates, sol, ncol ) rxt_rates(:ncol,:, 56) = rxt_rates(:ncol,:, 56)*sol(:ncol,:, 50) ! rate_const*HF rxt_rates(:ncol,:, 57) = rxt_rates(:ncol,:, 57)*sol(:ncol,:, 53) ! rate_const*HOBR rxt_rates(:ncol,:, 58) = rxt_rates(:ncol,:, 58)*sol(:ncol,:, 54) ! rate_const*HOCL - rxt_rates(:ncol,:, 59) = rxt_rates(:ncol,:, 59)*sol(:ncol,:, 72) ! rate_const*OCLO - rxt_rates(:ncol,:, 60) = rxt_rates(:ncol,:, 60)*sol(:ncol,:, 77) ! rate_const*SF6 + rxt_rates(:ncol,:, 59) = rxt_rates(:ncol,:, 59)*sol(:ncol,:, 73) ! rate_const*OCLO + rxt_rates(:ncol,:, 60) = rxt_rates(:ncol,:, 60)*sol(:ncol,:, 78) ! rate_const*SF6 rxt_rates(:ncol,:, 61) = rxt_rates(:ncol,:, 61)*sol(:ncol,:, 32) ! rate_const*CO2 rxt_rates(:ncol,:, 62) = rxt_rates(:ncol,:, 62)*sol(:ncol,:, 55) ! rate_const*N ! rate_const*N2 @@ -95,49 +95,49 @@ subroutine set_rates( rxt_rates, sol, ncol ) rxt_rates(:ncol,:, 85) = rxt_rates(:ncol,:, 85)*sol(:ncol,:, 70) ! rate_const*O2 rxt_rates(:ncol,:, 86) = rxt_rates(:ncol,:, 86)*sol(:ncol,:, 70) ! rate_const*O2 rxt_rates(:ncol,:, 87) = rxt_rates(:ncol,:, 87)*sol(:ncol,:, 44) ! rate_const*H2SO4 - rxt_rates(:ncol,:, 88) = rxt_rates(:ncol,:, 88)*sol(:ncol,:, 73) ! rate_const*OCS - rxt_rates(:ncol,:, 89) = rxt_rates(:ncol,:, 89)*sol(:ncol,:, 78) ! rate_const*SO - rxt_rates(:ncol,:, 90) = rxt_rates(:ncol,:, 90)*sol(:ncol,:, 79) ! rate_const*SO2 - rxt_rates(:ncol,:, 91) = rxt_rates(:ncol,:, 91)*sol(:ncol,:, 80) ! rate_const*SO3 - rxt_rates(:ncol,:, 92) = rxt_rates(:ncol,:, 92)*sol(:ncol,:, 95) ! rate_const*O2_1D - rxt_rates(:ncol,:, 93) = rxt_rates(:ncol,:, 93)*sol(:ncol,:, 96) ! rate_const*O2_1S - rxt_rates(:ncol,:, 94) = rxt_rates(:ncol,:, 94)*sol(:ncol,:, 94)*sol(:ncol,:, 41) ! rate_const*O1D*H2 - rxt_rates(:ncol,:, 95) = rxt_rates(:ncol,:, 95)*sol(:ncol,:, 94)*sol(:ncol,:, 102) ! rate_const*O1D*H2O - rxt_rates(:ncol,:, 96) = rxt_rates(:ncol,:, 96)*sol(:ncol,:, 94) ! rate_const*N2*O1D - rxt_rates(:ncol,:, 97) = rxt_rates(:ncol,:, 97)*sol(:ncol,:, 94)*sol(:ncol,:, 70) ! rate_const*O1D*O2 - rxt_rates(:ncol,:, 98) = rxt_rates(:ncol,:, 98)*sol(:ncol,:, 94)*sol(:ncol,:, 70) ! rate_const*O1D*O2 - rxt_rates(:ncol,:, 99) = rxt_rates(:ncol,:, 99)*sol(:ncol,:, 94)*sol(:ncol,:, 71) ! rate_const*O1D*O3 - rxt_rates(:ncol,:, 100) = rxt_rates(:ncol,:, 100)*sol(:ncol,:, 95) ! rate_const*N2*O2_1D - rxt_rates(:ncol,:, 101) = rxt_rates(:ncol,:, 101)*sol(:ncol,:, 95)*sol(:ncol,:, 69) ! rate_const*O2_1D*O - rxt_rates(:ncol,:, 102) = rxt_rates(:ncol,:, 102)*sol(:ncol,:, 95)*sol(:ncol,:, 70) ! rate_const*O2_1D*O2 - rxt_rates(:ncol,:, 103) = rxt_rates(:ncol,:, 103)*sol(:ncol,:, 96)*sol(:ncol,:, 32) ! rate_const*O2_1S*CO2 - rxt_rates(:ncol,:, 104) = rxt_rates(:ncol,:, 104)*sol(:ncol,:, 96) ! rate_const*N2*O2_1S - rxt_rates(:ncol,:, 105) = rxt_rates(:ncol,:, 105)*sol(:ncol,:, 96)*sol(:ncol,:, 69) ! rate_const*O2_1S*O - rxt_rates(:ncol,:, 106) = rxt_rates(:ncol,:, 106)*sol(:ncol,:, 96)*sol(:ncol,:, 70) ! rate_const*O2_1S*O2 - rxt_rates(:ncol,:, 107) = rxt_rates(:ncol,:, 107)*sol(:ncol,:, 96)*sol(:ncol,:, 71) ! rate_const*O2_1S*O3 + rxt_rates(:ncol,:, 88) = rxt_rates(:ncol,:, 88)*sol(:ncol,:, 74) ! rate_const*OCS + rxt_rates(:ncol,:, 89) = rxt_rates(:ncol,:, 89)*sol(:ncol,:, 79) ! rate_const*SO + rxt_rates(:ncol,:, 90) = rxt_rates(:ncol,:, 90)*sol(:ncol,:, 80) ! rate_const*SO2 + rxt_rates(:ncol,:, 91) = rxt_rates(:ncol,:, 91)*sol(:ncol,:, 81) ! rate_const*SO3 + rxt_rates(:ncol,:, 92) = rxt_rates(:ncol,:, 92)*sol(:ncol,:, 96) ! rate_const*O2_1D + rxt_rates(:ncol,:, 93) = rxt_rates(:ncol,:, 93)*sol(:ncol,:, 97) ! rate_const*O2_1S + rxt_rates(:ncol,:, 94) = rxt_rates(:ncol,:, 94)*sol(:ncol,:, 95)*sol(:ncol,:, 41) ! rate_const*O1D*H2 + rxt_rates(:ncol,:, 95) = rxt_rates(:ncol,:, 95)*sol(:ncol,:, 95)*sol(:ncol,:, 103) ! rate_const*O1D*H2O + rxt_rates(:ncol,:, 96) = rxt_rates(:ncol,:, 96)*sol(:ncol,:, 95) ! rate_const*N2*O1D + rxt_rates(:ncol,:, 97) = rxt_rates(:ncol,:, 97)*sol(:ncol,:, 95)*sol(:ncol,:, 70) ! rate_const*O1D*O2 + rxt_rates(:ncol,:, 98) = rxt_rates(:ncol,:, 98)*sol(:ncol,:, 95)*sol(:ncol,:, 70) ! rate_const*O1D*O2 + rxt_rates(:ncol,:, 99) = rxt_rates(:ncol,:, 99)*sol(:ncol,:, 95)*sol(:ncol,:, 71) ! rate_const*O1D*O3 + rxt_rates(:ncol,:, 100) = rxt_rates(:ncol,:, 100)*sol(:ncol,:, 96) ! rate_const*N2*O2_1D + rxt_rates(:ncol,:, 101) = rxt_rates(:ncol,:, 101)*sol(:ncol,:, 96)*sol(:ncol,:, 69) ! rate_const*O2_1D*O + rxt_rates(:ncol,:, 102) = rxt_rates(:ncol,:, 102)*sol(:ncol,:, 96)*sol(:ncol,:, 70) ! rate_const*O2_1D*O2 + rxt_rates(:ncol,:, 103) = rxt_rates(:ncol,:, 103)*sol(:ncol,:, 97)*sol(:ncol,:, 32) ! rate_const*O2_1S*CO2 + rxt_rates(:ncol,:, 104) = rxt_rates(:ncol,:, 104)*sol(:ncol,:, 97) ! rate_const*N2*O2_1S + rxt_rates(:ncol,:, 105) = rxt_rates(:ncol,:, 105)*sol(:ncol,:, 97)*sol(:ncol,:, 69) ! rate_const*O2_1S*O + rxt_rates(:ncol,:, 106) = rxt_rates(:ncol,:, 106)*sol(:ncol,:, 97)*sol(:ncol,:, 70) ! rate_const*O2_1S*O2 + rxt_rates(:ncol,:, 107) = rxt_rates(:ncol,:, 107)*sol(:ncol,:, 97)*sol(:ncol,:, 71) ! rate_const*O2_1S*O3 rxt_rates(:ncol,:, 108) = rxt_rates(:ncol,:, 108)*sol(:ncol,:, 69)*sol(:ncol,:, 71) ! rate_const*O*O3 rxt_rates(:ncol,:, 109) = rxt_rates(:ncol,:, 109)*sol(:ncol,:, 69)*sol(:ncol,:, 69) ! rate_const*M*O*O rxt_rates(:ncol,:, 110) = rxt_rates(:ncol,:, 110)*sol(:ncol,:, 69)*sol(:ncol,:, 70) ! rate_const*M*O*O2 rxt_rates(:ncol,:, 111) = rxt_rates(:ncol,:, 111)*sol(:ncol,:, 41)*sol(:ncol,:, 69) ! rate_const*H2*O rxt_rates(:ncol,:, 112) = rxt_rates(:ncol,:, 112)*sol(:ncol,:, 43)*sol(:ncol,:, 69) ! rate_const*H2O2*O - rxt_rates(:ncol,:, 113) = rxt_rates(:ncol,:, 113)*sol(:ncol,:, 40)*sol(:ncol,:, 89) ! rate_const*H*HO2 - rxt_rates(:ncol,:, 114) = rxt_rates(:ncol,:, 114)*sol(:ncol,:, 40)*sol(:ncol,:, 89) ! rate_const*H*HO2 - rxt_rates(:ncol,:, 115) = rxt_rates(:ncol,:, 115)*sol(:ncol,:, 40)*sol(:ncol,:, 89) ! rate_const*H*HO2 + rxt_rates(:ncol,:, 113) = rxt_rates(:ncol,:, 113)*sol(:ncol,:, 40)*sol(:ncol,:, 90) ! rate_const*H*HO2 + rxt_rates(:ncol,:, 114) = rxt_rates(:ncol,:, 114)*sol(:ncol,:, 40)*sol(:ncol,:, 90) ! rate_const*H*HO2 + rxt_rates(:ncol,:, 115) = rxt_rates(:ncol,:, 115)*sol(:ncol,:, 40)*sol(:ncol,:, 90) ! rate_const*H*HO2 rxt_rates(:ncol,:, 116) = rxt_rates(:ncol,:, 116)*sol(:ncol,:, 40)*sol(:ncol,:, 70) ! rate_const*M*H*O2 - rxt_rates(:ncol,:, 117) = rxt_rates(:ncol,:, 117)*sol(:ncol,:, 89)*sol(:ncol,:, 69) ! rate_const*HO2*O - rxt_rates(:ncol,:, 118) = rxt_rates(:ncol,:, 118)*sol(:ncol,:, 89)*sol(:ncol,:, 71) ! rate_const*HO2*O3 + rxt_rates(:ncol,:, 117) = rxt_rates(:ncol,:, 117)*sol(:ncol,:, 90)*sol(:ncol,:, 69) ! rate_const*HO2*O + rxt_rates(:ncol,:, 118) = rxt_rates(:ncol,:, 118)*sol(:ncol,:, 90)*sol(:ncol,:, 71) ! rate_const*HO2*O3 rxt_rates(:ncol,:, 119) = rxt_rates(:ncol,:, 119)*sol(:ncol,:, 40)*sol(:ncol,:, 71) ! rate_const*H*O3 - rxt_rates(:ncol,:, 120) = rxt_rates(:ncol,:, 120)*sol(:ncol,:, 98)*sol(:ncol,:, 41) ! rate_const*OH*H2 - rxt_rates(:ncol,:, 121) = rxt_rates(:ncol,:, 121)*sol(:ncol,:, 98)*sol(:ncol,:, 43) ! rate_const*OH*H2O2 - rxt_rates(:ncol,:, 122) = rxt_rates(:ncol,:, 122)*sol(:ncol,:, 98)*sol(:ncol,:, 89) ! rate_const*OH*HO2 - rxt_rates(:ncol,:, 123) = rxt_rates(:ncol,:, 123)*sol(:ncol,:, 98)*sol(:ncol,:, 69) ! rate_const*OH*O - rxt_rates(:ncol,:, 124) = rxt_rates(:ncol,:, 124)*sol(:ncol,:, 98)*sol(:ncol,:, 71) ! rate_const*OH*O3 - rxt_rates(:ncol,:, 125) = rxt_rates(:ncol,:, 125)*sol(:ncol,:, 98)*sol(:ncol,:, 98) ! rate_const*OH*OH - rxt_rates(:ncol,:, 126) = rxt_rates(:ncol,:, 126)*sol(:ncol,:, 98)*sol(:ncol,:, 98) ! rate_const*M*OH*OH - rxt_rates(:ncol,:, 127) = rxt_rates(:ncol,:, 127)*sol(:ncol,:, 89)*sol(:ncol,:, 89) ! rate_const*HO2*HO2 - rxt_rates(:ncol,:, 128) = rxt_rates(:ncol,:, 128)*sol(:ncol,:, 52)*sol(:ncol,:, 98) ! rate_const*HO2NO2*OH - rxt_rates(:ncol,:, 129) = rxt_rates(:ncol,:, 129)*sol(:ncol,:, 90)*sol(:ncol,:, 69) ! rate_const*N2D*O - rxt_rates(:ncol,:, 130) = rxt_rates(:ncol,:, 130)*sol(:ncol,:, 90)*sol(:ncol,:, 70) ! rate_const*N2D*O2 + rxt_rates(:ncol,:, 120) = rxt_rates(:ncol,:, 120)*sol(:ncol,:, 99)*sol(:ncol,:, 41) ! rate_const*OH*H2 + rxt_rates(:ncol,:, 121) = rxt_rates(:ncol,:, 121)*sol(:ncol,:, 99)*sol(:ncol,:, 43) ! rate_const*OH*H2O2 + rxt_rates(:ncol,:, 122) = rxt_rates(:ncol,:, 122)*sol(:ncol,:, 99)*sol(:ncol,:, 90) ! rate_const*OH*HO2 + rxt_rates(:ncol,:, 123) = rxt_rates(:ncol,:, 123)*sol(:ncol,:, 99)*sol(:ncol,:, 69) ! rate_const*OH*O + rxt_rates(:ncol,:, 124) = rxt_rates(:ncol,:, 124)*sol(:ncol,:, 99)*sol(:ncol,:, 71) ! rate_const*OH*O3 + rxt_rates(:ncol,:, 125) = rxt_rates(:ncol,:, 125)*sol(:ncol,:, 99)*sol(:ncol,:, 99) ! rate_const*OH*OH + rxt_rates(:ncol,:, 126) = rxt_rates(:ncol,:, 126)*sol(:ncol,:, 99)*sol(:ncol,:, 99) ! rate_const*M*OH*OH + rxt_rates(:ncol,:, 127) = rxt_rates(:ncol,:, 127)*sol(:ncol,:, 90)*sol(:ncol,:, 90) ! rate_const*HO2*HO2 + rxt_rates(:ncol,:, 128) = rxt_rates(:ncol,:, 128)*sol(:ncol,:, 52)*sol(:ncol,:, 99) ! rate_const*HO2NO2*OH + rxt_rates(:ncol,:, 129) = rxt_rates(:ncol,:, 129)*sol(:ncol,:, 91)*sol(:ncol,:, 69) ! rate_const*N2D*O + rxt_rates(:ncol,:, 130) = rxt_rates(:ncol,:, 130)*sol(:ncol,:, 91)*sol(:ncol,:, 70) ! rate_const*N2D*O2 rxt_rates(:ncol,:, 131) = rxt_rates(:ncol,:, 131)*sol(:ncol,:, 55)*sol(:ncol,:, 61) ! rate_const*N*NO rxt_rates(:ncol,:, 132) = rxt_rates(:ncol,:, 132)*sol(:ncol,:, 55)*sol(:ncol,:, 62) ! rate_const*N*NO2 rxt_rates(:ncol,:, 133) = rxt_rates(:ncol,:, 133)*sol(:ncol,:, 55)*sol(:ncol,:, 62) ! rate_const*N*NO2 @@ -146,131 +146,131 @@ subroutine set_rates( rxt_rates, sol, ncol ) rxt_rates(:ncol,:, 136) = rxt_rates(:ncol,:, 136)*sol(:ncol,:, 62)*sol(:ncol,:, 69) ! rate_const*NO2*O rxt_rates(:ncol,:, 137) = rxt_rates(:ncol,:, 137)*sol(:ncol,:, 62)*sol(:ncol,:, 71) ! rate_const*NO2*O3 rxt_rates(:ncol,:, 138) = rxt_rates(:ncol,:, 138)*sol(:ncol,:, 62)*sol(:ncol,:, 69) ! rate_const*M*NO2*O - rxt_rates(:ncol,:, 139) = rxt_rates(:ncol,:, 139)*sol(:ncol,:, 63)*sol(:ncol,:, 89) ! rate_const*NO3*HO2 + rxt_rates(:ncol,:, 139) = rxt_rates(:ncol,:, 139)*sol(:ncol,:, 63)*sol(:ncol,:, 90) ! rate_const*NO3*HO2 rxt_rates(:ncol,:, 140) = rxt_rates(:ncol,:, 140)*sol(:ncol,:, 63)*sol(:ncol,:, 61) ! rate_const*NO3*NO rxt_rates(:ncol,:, 141) = rxt_rates(:ncol,:, 141)*sol(:ncol,:, 63)*sol(:ncol,:, 69) ! rate_const*NO3*O - rxt_rates(:ncol,:, 142) = rxt_rates(:ncol,:, 142)*sol(:ncol,:, 63)*sol(:ncol,:, 98) ! rate_const*NO3*OH - rxt_rates(:ncol,:, 143) = rxt_rates(:ncol,:, 143)*sol(:ncol,:, 55)*sol(:ncol,:, 98) ! rate_const*N*OH - rxt_rates(:ncol,:, 144) = rxt_rates(:ncol,:, 144)*sol(:ncol,:, 61)*sol(:ncol,:, 89) ! rate_const*NO*HO2 + rxt_rates(:ncol,:, 142) = rxt_rates(:ncol,:, 142)*sol(:ncol,:, 63)*sol(:ncol,:, 99) ! rate_const*NO3*OH + rxt_rates(:ncol,:, 143) = rxt_rates(:ncol,:, 143)*sol(:ncol,:, 55)*sol(:ncol,:, 99) ! rate_const*N*OH + rxt_rates(:ncol,:, 144) = rxt_rates(:ncol,:, 144)*sol(:ncol,:, 61)*sol(:ncol,:, 90) ! rate_const*NO*HO2 rxt_rates(:ncol,:, 145) = rxt_rates(:ncol,:, 145)*sol(:ncol,:, 61)*sol(:ncol,:, 71) ! rate_const*NO*O3 rxt_rates(:ncol,:, 146) = rxt_rates(:ncol,:, 146)*sol(:ncol,:, 61)*sol(:ncol,:, 69) ! rate_const*M*NO*O - rxt_rates(:ncol,:, 147) = rxt_rates(:ncol,:, 147)*sol(:ncol,:, 94)*sol(:ncol,:, 56) ! rate_const*O1D*N2O - rxt_rates(:ncol,:, 148) = rxt_rates(:ncol,:, 148)*sol(:ncol,:, 94)*sol(:ncol,:, 56) ! rate_const*O1D*N2O - rxt_rates(:ncol,:, 149) = rxt_rates(:ncol,:, 149)*sol(:ncol,:, 62)*sol(:ncol,:, 89) ! rate_const*M*NO2*HO2 + rxt_rates(:ncol,:, 147) = rxt_rates(:ncol,:, 147)*sol(:ncol,:, 95)*sol(:ncol,:, 56) ! rate_const*O1D*N2O + rxt_rates(:ncol,:, 148) = rxt_rates(:ncol,:, 148)*sol(:ncol,:, 95)*sol(:ncol,:, 56) ! rate_const*O1D*N2O + rxt_rates(:ncol,:, 149) = rxt_rates(:ncol,:, 149)*sol(:ncol,:, 62)*sol(:ncol,:, 90) ! rate_const*M*NO2*HO2 rxt_rates(:ncol,:, 150) = rxt_rates(:ncol,:, 150)*sol(:ncol,:, 62)*sol(:ncol,:, 63) ! rate_const*M*NO2*NO3 - rxt_rates(:ncol,:, 151) = rxt_rates(:ncol,:, 151)*sol(:ncol,:, 62)*sol(:ncol,:, 98) ! rate_const*M*NO2*OH - rxt_rates(:ncol,:, 152) = rxt_rates(:ncol,:, 152)*sol(:ncol,:, 51)*sol(:ncol,:, 98) ! rate_const*HNO3*OH + rxt_rates(:ncol,:, 151) = rxt_rates(:ncol,:, 151)*sol(:ncol,:, 62)*sol(:ncol,:, 99) ! rate_const*M*NO2*OH + rxt_rates(:ncol,:, 152) = rxt_rates(:ncol,:, 152)*sol(:ncol,:, 51)*sol(:ncol,:, 99) ! rate_const*HNO3*OH rxt_rates(:ncol,:, 153) = rxt_rates(:ncol,:, 153)*sol(:ncol,:, 52) ! rate_const*M*HO2NO2 rxt_rates(:ncol,:, 154) = rxt_rates(:ncol,:, 154)*sol(:ncol,:, 57) ! rate_const*M*N2O5 rxt_rates(:ncol,:, 155) = rxt_rates(:ncol,:, 155)*sol(:ncol,:, 25)*sol(:ncol,:, 17) ! rate_const*CL*CH2O rxt_rates(:ncol,:, 156) = rxt_rates(:ncol,:, 156)*sol(:ncol,:, 25)*sol(:ncol,:, 23) ! rate_const*CL*CH4 rxt_rates(:ncol,:, 157) = rxt_rates(:ncol,:, 157)*sol(:ncol,:, 25)*sol(:ncol,:, 41) ! rate_const*CL*H2 rxt_rates(:ncol,:, 158) = rxt_rates(:ncol,:, 158)*sol(:ncol,:, 25)*sol(:ncol,:, 43) ! rate_const*CL*H2O2 - rxt_rates(:ncol,:, 159) = rxt_rates(:ncol,:, 159)*sol(:ncol,:, 25)*sol(:ncol,:, 89) ! rate_const*CL*HO2 - rxt_rates(:ncol,:, 160) = rxt_rates(:ncol,:, 160)*sol(:ncol,:, 25)*sol(:ncol,:, 89) ! rate_const*CL*HO2 + rxt_rates(:ncol,:, 159) = rxt_rates(:ncol,:, 159)*sol(:ncol,:, 25)*sol(:ncol,:, 90) ! rate_const*CL*HO2 + rxt_rates(:ncol,:, 160) = rxt_rates(:ncol,:, 160)*sol(:ncol,:, 25)*sol(:ncol,:, 90) ! rate_const*CL*HO2 rxt_rates(:ncol,:, 161) = rxt_rates(:ncol,:, 161)*sol(:ncol,:, 25)*sol(:ncol,:, 71) ! rate_const*CL*O3 rxt_rates(:ncol,:, 162) = rxt_rates(:ncol,:, 162)*sol(:ncol,:, 28)*sol(:ncol,:, 21) ! rate_const*CLO*CH3O2 rxt_rates(:ncol,:, 163) = rxt_rates(:ncol,:, 163)*sol(:ncol,:, 28)*sol(:ncol,:, 28) ! rate_const*CLO*CLO rxt_rates(:ncol,:, 164) = rxt_rates(:ncol,:, 164)*sol(:ncol,:, 28)*sol(:ncol,:, 28) ! rate_const*CLO*CLO rxt_rates(:ncol,:, 165) = rxt_rates(:ncol,:, 165)*sol(:ncol,:, 28)*sol(:ncol,:, 28) ! rate_const*CLO*CLO - rxt_rates(:ncol,:, 166) = rxt_rates(:ncol,:, 166)*sol(:ncol,:, 28)*sol(:ncol,:, 89) ! rate_const*CLO*HO2 + rxt_rates(:ncol,:, 166) = rxt_rates(:ncol,:, 166)*sol(:ncol,:, 28)*sol(:ncol,:, 90) ! rate_const*CLO*HO2 rxt_rates(:ncol,:, 167) = rxt_rates(:ncol,:, 167)*sol(:ncol,:, 28)*sol(:ncol,:, 61) ! rate_const*CLO*NO rxt_rates(:ncol,:, 168) = rxt_rates(:ncol,:, 168)*sol(:ncol,:, 29)*sol(:ncol,:, 25) ! rate_const*CLONO2*CL rxt_rates(:ncol,:, 169) = rxt_rates(:ncol,:, 169)*sol(:ncol,:, 28)*sol(:ncol,:, 62) ! rate_const*M*CLO*NO2 rxt_rates(:ncol,:, 170) = rxt_rates(:ncol,:, 170)*sol(:ncol,:, 29)*sol(:ncol,:, 69) ! rate_const*CLONO2*O - rxt_rates(:ncol,:, 171) = rxt_rates(:ncol,:, 171)*sol(:ncol,:, 29)*sol(:ncol,:, 98) ! rate_const*CLONO2*OH + rxt_rates(:ncol,:, 171) = rxt_rates(:ncol,:, 171)*sol(:ncol,:, 29)*sol(:ncol,:, 99) ! rate_const*CLONO2*OH rxt_rates(:ncol,:, 172) = rxt_rates(:ncol,:, 172)*sol(:ncol,:, 28)*sol(:ncol,:, 69) ! rate_const*CLO*O - rxt_rates(:ncol,:, 173) = rxt_rates(:ncol,:, 173)*sol(:ncol,:, 28)*sol(:ncol,:, 98) ! rate_const*CLO*OH - rxt_rates(:ncol,:, 174) = rxt_rates(:ncol,:, 174)*sol(:ncol,:, 28)*sol(:ncol,:, 98) ! rate_const*CLO*OH + rxt_rates(:ncol,:, 173) = rxt_rates(:ncol,:, 173)*sol(:ncol,:, 28)*sol(:ncol,:, 99) ! rate_const*CLO*OH + rxt_rates(:ncol,:, 174) = rxt_rates(:ncol,:, 174)*sol(:ncol,:, 28)*sol(:ncol,:, 99) ! rate_const*CLO*OH rxt_rates(:ncol,:, 175) = rxt_rates(:ncol,:, 175)*sol(:ncol,:, 49)*sol(:ncol,:, 69) ! rate_const*HCL*O - rxt_rates(:ncol,:, 176) = rxt_rates(:ncol,:, 176)*sol(:ncol,:, 49)*sol(:ncol,:, 98) ! rate_const*HCL*OH + rxt_rates(:ncol,:, 176) = rxt_rates(:ncol,:, 176)*sol(:ncol,:, 49)*sol(:ncol,:, 99) ! rate_const*HCL*OH rxt_rates(:ncol,:, 177) = rxt_rates(:ncol,:, 177)*sol(:ncol,:, 54)*sol(:ncol,:, 25) ! rate_const*HOCL*CL rxt_rates(:ncol,:, 178) = rxt_rates(:ncol,:, 178)*sol(:ncol,:, 54)*sol(:ncol,:, 69) ! rate_const*HOCL*O - rxt_rates(:ncol,:, 179) = rxt_rates(:ncol,:, 179)*sol(:ncol,:, 54)*sol(:ncol,:, 98) ! rate_const*HOCL*OH - rxt_rates(:ncol,:, 180) = rxt_rates(:ncol,:, 180)*sol(:ncol,:, 94)*sol(:ncol,:, 8) ! rate_const*O1D*CCL4 - rxt_rates(:ncol,:, 181) = rxt_rates(:ncol,:, 181)*sol(:ncol,:, 94)*sol(:ncol,:, 9) ! rate_const*O1D*CF2CLBR - rxt_rates(:ncol,:, 182) = rxt_rates(:ncol,:, 182)*sol(:ncol,:, 94)*sol(:ncol,:, 11) ! rate_const*O1D*CFC11 - rxt_rates(:ncol,:, 183) = rxt_rates(:ncol,:, 183)*sol(:ncol,:, 94)*sol(:ncol,:, 12) ! rate_const*O1D*CFC113 - rxt_rates(:ncol,:, 184) = rxt_rates(:ncol,:, 184)*sol(:ncol,:, 94)*sol(:ncol,:, 13) ! rate_const*O1D*CFC114 - rxt_rates(:ncol,:, 185) = rxt_rates(:ncol,:, 185)*sol(:ncol,:, 94)*sol(:ncol,:, 14) ! rate_const*O1D*CFC115 - rxt_rates(:ncol,:, 186) = rxt_rates(:ncol,:, 186)*sol(:ncol,:, 94)*sol(:ncol,:, 15) ! rate_const*O1D*CFC12 - rxt_rates(:ncol,:, 187) = rxt_rates(:ncol,:, 187)*sol(:ncol,:, 94)*sol(:ncol,:, 49) ! rate_const*O1D*HCL - rxt_rates(:ncol,:, 188) = rxt_rates(:ncol,:, 188)*sol(:ncol,:, 94)*sol(:ncol,:, 49) ! rate_const*O1D*HCL + rxt_rates(:ncol,:, 179) = rxt_rates(:ncol,:, 179)*sol(:ncol,:, 54)*sol(:ncol,:, 99) ! rate_const*HOCL*OH + rxt_rates(:ncol,:, 180) = rxt_rates(:ncol,:, 180)*sol(:ncol,:, 95)*sol(:ncol,:, 8) ! rate_const*O1D*CCL4 + rxt_rates(:ncol,:, 181) = rxt_rates(:ncol,:, 181)*sol(:ncol,:, 95)*sol(:ncol,:, 9) ! rate_const*O1D*CF2CLBR + rxt_rates(:ncol,:, 182) = rxt_rates(:ncol,:, 182)*sol(:ncol,:, 95)*sol(:ncol,:, 11) ! rate_const*O1D*CFC11 + rxt_rates(:ncol,:, 183) = rxt_rates(:ncol,:, 183)*sol(:ncol,:, 95)*sol(:ncol,:, 12) ! rate_const*O1D*CFC113 + rxt_rates(:ncol,:, 184) = rxt_rates(:ncol,:, 184)*sol(:ncol,:, 95)*sol(:ncol,:, 13) ! rate_const*O1D*CFC114 + rxt_rates(:ncol,:, 185) = rxt_rates(:ncol,:, 185)*sol(:ncol,:, 95)*sol(:ncol,:, 14) ! rate_const*O1D*CFC115 + rxt_rates(:ncol,:, 186) = rxt_rates(:ncol,:, 186)*sol(:ncol,:, 95)*sol(:ncol,:, 15) ! rate_const*O1D*CFC12 + rxt_rates(:ncol,:, 187) = rxt_rates(:ncol,:, 187)*sol(:ncol,:, 95)*sol(:ncol,:, 49) ! rate_const*O1D*HCL + rxt_rates(:ncol,:, 188) = rxt_rates(:ncol,:, 188)*sol(:ncol,:, 95)*sol(:ncol,:, 49) ! rate_const*O1D*HCL rxt_rates(:ncol,:, 189) = rxt_rates(:ncol,:, 189)*sol(:ncol,:, 28)*sol(:ncol,:, 28) ! rate_const*M*CLO*CLO rxt_rates(:ncol,:, 190) = rxt_rates(:ncol,:, 190)*sol(:ncol,:, 27) ! rate_const*M*CL2O2 rxt_rates(:ncol,:, 191) = rxt_rates(:ncol,:, 191)*sol(:ncol,:, 3)*sol(:ncol,:, 17) ! rate_const*BR*CH2O - rxt_rates(:ncol,:, 192) = rxt_rates(:ncol,:, 192)*sol(:ncol,:, 3)*sol(:ncol,:, 89) ! rate_const*BR*HO2 + rxt_rates(:ncol,:, 192) = rxt_rates(:ncol,:, 192)*sol(:ncol,:, 3)*sol(:ncol,:, 90) ! rate_const*BR*HO2 rxt_rates(:ncol,:, 193) = rxt_rates(:ncol,:, 193)*sol(:ncol,:, 3)*sol(:ncol,:, 71) ! rate_const*BR*O3 rxt_rates(:ncol,:, 194) = rxt_rates(:ncol,:, 194)*sol(:ncol,:, 5)*sol(:ncol,:, 5) ! rate_const*BRO*BRO rxt_rates(:ncol,:, 195) = rxt_rates(:ncol,:, 195)*sol(:ncol,:, 5)*sol(:ncol,:, 28) ! rate_const*BRO*CLO rxt_rates(:ncol,:, 196) = rxt_rates(:ncol,:, 196)*sol(:ncol,:, 5)*sol(:ncol,:, 28) ! rate_const*BRO*CLO rxt_rates(:ncol,:, 197) = rxt_rates(:ncol,:, 197)*sol(:ncol,:, 5)*sol(:ncol,:, 28) ! rate_const*BRO*CLO - rxt_rates(:ncol,:, 198) = rxt_rates(:ncol,:, 198)*sol(:ncol,:, 5)*sol(:ncol,:, 89) ! rate_const*BRO*HO2 + rxt_rates(:ncol,:, 198) = rxt_rates(:ncol,:, 198)*sol(:ncol,:, 5)*sol(:ncol,:, 90) ! rate_const*BRO*HO2 rxt_rates(:ncol,:, 199) = rxt_rates(:ncol,:, 199)*sol(:ncol,:, 5)*sol(:ncol,:, 61) ! rate_const*BRO*NO rxt_rates(:ncol,:, 200) = rxt_rates(:ncol,:, 200)*sol(:ncol,:, 5)*sol(:ncol,:, 62) ! rate_const*M*BRO*NO2 rxt_rates(:ncol,:, 201) = rxt_rates(:ncol,:, 201)*sol(:ncol,:, 6)*sol(:ncol,:, 69) ! rate_const*BRONO2*O rxt_rates(:ncol,:, 202) = rxt_rates(:ncol,:, 202)*sol(:ncol,:, 5)*sol(:ncol,:, 69) ! rate_const*BRO*O - rxt_rates(:ncol,:, 203) = rxt_rates(:ncol,:, 203)*sol(:ncol,:, 5)*sol(:ncol,:, 98) ! rate_const*BRO*OH + rxt_rates(:ncol,:, 203) = rxt_rates(:ncol,:, 203)*sol(:ncol,:, 5)*sol(:ncol,:, 99) ! rate_const*BRO*OH rxt_rates(:ncol,:, 204) = rxt_rates(:ncol,:, 204)*sol(:ncol,:, 45)*sol(:ncol,:, 69) ! rate_const*HBR*O - rxt_rates(:ncol,:, 205) = rxt_rates(:ncol,:, 205)*sol(:ncol,:, 45)*sol(:ncol,:, 98) ! rate_const*HBR*OH + rxt_rates(:ncol,:, 205) = rxt_rates(:ncol,:, 205)*sol(:ncol,:, 45)*sol(:ncol,:, 99) ! rate_const*HBR*OH rxt_rates(:ncol,:, 206) = rxt_rates(:ncol,:, 206)*sol(:ncol,:, 53)*sol(:ncol,:, 69) ! rate_const*HOBR*O - rxt_rates(:ncol,:, 207) = rxt_rates(:ncol,:, 207)*sol(:ncol,:, 94)*sol(:ncol,:, 10) ! rate_const*O1D*CF3BR - rxt_rates(:ncol,:, 208) = rxt_rates(:ncol,:, 208)*sol(:ncol,:, 94)*sol(:ncol,:, 24) ! rate_const*O1D*CHBR3 - rxt_rates(:ncol,:, 209) = rxt_rates(:ncol,:, 209)*sol(:ncol,:, 94)*sol(:ncol,:, 42) ! rate_const*O1D*H2402 - rxt_rates(:ncol,:, 210) = rxt_rates(:ncol,:, 210)*sol(:ncol,:, 94)*sol(:ncol,:, 45) ! rate_const*O1D*HBR - rxt_rates(:ncol,:, 211) = rxt_rates(:ncol,:, 211)*sol(:ncol,:, 94)*sol(:ncol,:, 45) ! rate_const*O1D*HBR + rxt_rates(:ncol,:, 207) = rxt_rates(:ncol,:, 207)*sol(:ncol,:, 95)*sol(:ncol,:, 10) ! rate_const*O1D*CF3BR + rxt_rates(:ncol,:, 208) = rxt_rates(:ncol,:, 208)*sol(:ncol,:, 95)*sol(:ncol,:, 24) ! rate_const*O1D*CHBR3 + rxt_rates(:ncol,:, 209) = rxt_rates(:ncol,:, 209)*sol(:ncol,:, 95)*sol(:ncol,:, 42) ! rate_const*O1D*H2402 + rxt_rates(:ncol,:, 210) = rxt_rates(:ncol,:, 210)*sol(:ncol,:, 95)*sol(:ncol,:, 45) ! rate_const*O1D*HBR + rxt_rates(:ncol,:, 211) = rxt_rates(:ncol,:, 211)*sol(:ncol,:, 95)*sol(:ncol,:, 45) ! rate_const*O1D*HBR rxt_rates(:ncol,:, 212) = rxt_rates(:ncol,:, 212)*sol(:ncol,:, 39)*sol(:ncol,:, 23) ! rate_const*F*CH4 rxt_rates(:ncol,:, 213) = rxt_rates(:ncol,:, 213)*sol(:ncol,:, 39)*sol(:ncol,:, 41) ! rate_const*F*H2 - rxt_rates(:ncol,:, 214) = rxt_rates(:ncol,:, 214)*sol(:ncol,:, 39)*sol(:ncol,:, 102) ! rate_const*F*H2O + rxt_rates(:ncol,:, 214) = rxt_rates(:ncol,:, 214)*sol(:ncol,:, 39)*sol(:ncol,:, 103) ! rate_const*F*H2O rxt_rates(:ncol,:, 215) = rxt_rates(:ncol,:, 215)*sol(:ncol,:, 39)*sol(:ncol,:, 51) ! rate_const*F*HNO3 - rxt_rates(:ncol,:, 216) = rxt_rates(:ncol,:, 216)*sol(:ncol,:, 94)*sol(:ncol,:, 33) ! rate_const*O1D*COF2 - rxt_rates(:ncol,:, 217) = rxt_rates(:ncol,:, 217)*sol(:ncol,:, 94)*sol(:ncol,:, 34) ! rate_const*O1D*COFCL + rxt_rates(:ncol,:, 216) = rxt_rates(:ncol,:, 216)*sol(:ncol,:, 95)*sol(:ncol,:, 33) ! rate_const*O1D*COF2 + rxt_rates(:ncol,:, 217) = rxt_rates(:ncol,:, 217)*sol(:ncol,:, 95)*sol(:ncol,:, 34) ! rate_const*O1D*COFCL rxt_rates(:ncol,:, 218) = rxt_rates(:ncol,:, 218)*sol(:ncol,:, 16)*sol(:ncol,:, 25) ! rate_const*CH2BR2*CL - rxt_rates(:ncol,:, 219) = rxt_rates(:ncol,:, 219)*sol(:ncol,:, 16)*sol(:ncol,:, 98) ! rate_const*CH2BR2*OH + rxt_rates(:ncol,:, 219) = rxt_rates(:ncol,:, 219)*sol(:ncol,:, 16)*sol(:ncol,:, 99) ! rate_const*CH2BR2*OH rxt_rates(:ncol,:, 220) = rxt_rates(:ncol,:, 220)*sol(:ncol,:, 18)*sol(:ncol,:, 25) ! rate_const*CH3BR*CL - rxt_rates(:ncol,:, 221) = rxt_rates(:ncol,:, 221)*sol(:ncol,:, 18)*sol(:ncol,:, 98) ! rate_const*CH3BR*OH - rxt_rates(:ncol,:, 222) = rxt_rates(:ncol,:, 222)*sol(:ncol,:, 19)*sol(:ncol,:, 98) ! rate_const*CH3CCL3*OH + rxt_rates(:ncol,:, 221) = rxt_rates(:ncol,:, 221)*sol(:ncol,:, 18)*sol(:ncol,:, 99) ! rate_const*CH3BR*OH + rxt_rates(:ncol,:, 222) = rxt_rates(:ncol,:, 222)*sol(:ncol,:, 19)*sol(:ncol,:, 99) ! rate_const*CH3CCL3*OH rxt_rates(:ncol,:, 223) = rxt_rates(:ncol,:, 223)*sol(:ncol,:, 20)*sol(:ncol,:, 25) ! rate_const*CH3CL*CL - rxt_rates(:ncol,:, 224) = rxt_rates(:ncol,:, 224)*sol(:ncol,:, 20)*sol(:ncol,:, 98) ! rate_const*CH3CL*OH + rxt_rates(:ncol,:, 224) = rxt_rates(:ncol,:, 224)*sol(:ncol,:, 20)*sol(:ncol,:, 99) ! rate_const*CH3CL*OH rxt_rates(:ncol,:, 225) = rxt_rates(:ncol,:, 225)*sol(:ncol,:, 24)*sol(:ncol,:, 25) ! rate_const*CHBR3*CL - rxt_rates(:ncol,:, 226) = rxt_rates(:ncol,:, 226)*sol(:ncol,:, 24)*sol(:ncol,:, 98) ! rate_const*CHBR3*OH - rxt_rates(:ncol,:, 227) = rxt_rates(:ncol,:, 227)*sol(:ncol,:, 46)*sol(:ncol,:, 98) ! rate_const*HCFC141B*OH - rxt_rates(:ncol,:, 228) = rxt_rates(:ncol,:, 228)*sol(:ncol,:, 47)*sol(:ncol,:, 98) ! rate_const*HCFC142B*OH - rxt_rates(:ncol,:, 229) = rxt_rates(:ncol,:, 229)*sol(:ncol,:, 48)*sol(:ncol,:, 98) ! rate_const*HCFC22*OH - rxt_rates(:ncol,:, 230) = rxt_rates(:ncol,:, 230)*sol(:ncol,:, 94)*sol(:ncol,:, 16) ! rate_const*O1D*CH2BR2 - rxt_rates(:ncol,:, 231) = rxt_rates(:ncol,:, 231)*sol(:ncol,:, 94)*sol(:ncol,:, 18) ! rate_const*O1D*CH3BR - rxt_rates(:ncol,:, 232) = rxt_rates(:ncol,:, 232)*sol(:ncol,:, 94)*sol(:ncol,:, 46) ! rate_const*O1D*HCFC141B - rxt_rates(:ncol,:, 233) = rxt_rates(:ncol,:, 233)*sol(:ncol,:, 94)*sol(:ncol,:, 47) ! rate_const*O1D*HCFC142B - rxt_rates(:ncol,:, 234) = rxt_rates(:ncol,:, 234)*sol(:ncol,:, 94)*sol(:ncol,:, 48) ! rate_const*O1D*HCFC22 + rxt_rates(:ncol,:, 226) = rxt_rates(:ncol,:, 226)*sol(:ncol,:, 24)*sol(:ncol,:, 99) ! rate_const*CHBR3*OH + rxt_rates(:ncol,:, 227) = rxt_rates(:ncol,:, 227)*sol(:ncol,:, 46)*sol(:ncol,:, 99) ! rate_const*HCFC141B*OH + rxt_rates(:ncol,:, 228) = rxt_rates(:ncol,:, 228)*sol(:ncol,:, 47)*sol(:ncol,:, 99) ! rate_const*HCFC142B*OH + rxt_rates(:ncol,:, 229) = rxt_rates(:ncol,:, 229)*sol(:ncol,:, 48)*sol(:ncol,:, 99) ! rate_const*HCFC22*OH + rxt_rates(:ncol,:, 230) = rxt_rates(:ncol,:, 230)*sol(:ncol,:, 95)*sol(:ncol,:, 16) ! rate_const*O1D*CH2BR2 + rxt_rates(:ncol,:, 231) = rxt_rates(:ncol,:, 231)*sol(:ncol,:, 95)*sol(:ncol,:, 18) ! rate_const*O1D*CH3BR + rxt_rates(:ncol,:, 232) = rxt_rates(:ncol,:, 232)*sol(:ncol,:, 95)*sol(:ncol,:, 46) ! rate_const*O1D*HCFC141B + rxt_rates(:ncol,:, 233) = rxt_rates(:ncol,:, 233)*sol(:ncol,:, 95)*sol(:ncol,:, 47) ! rate_const*O1D*HCFC142B + rxt_rates(:ncol,:, 234) = rxt_rates(:ncol,:, 234)*sol(:ncol,:, 95)*sol(:ncol,:, 48) ! rate_const*O1D*HCFC22 rxt_rates(:ncol,:, 235) = rxt_rates(:ncol,:, 235)*sol(:ncol,:, 17)*sol(:ncol,:, 63) ! rate_const*CH2O*NO3 rxt_rates(:ncol,:, 236) = rxt_rates(:ncol,:, 236)*sol(:ncol,:, 17)*sol(:ncol,:, 69) ! rate_const*CH2O*O - rxt_rates(:ncol,:, 237) = rxt_rates(:ncol,:, 237)*sol(:ncol,:, 17)*sol(:ncol,:, 98) ! rate_const*CH2O*OH - rxt_rates(:ncol,:, 238) = rxt_rates(:ncol,:, 238)*sol(:ncol,:, 21)*sol(:ncol,:, 89) ! rate_const*CH3O2*HO2 + rxt_rates(:ncol,:, 237) = rxt_rates(:ncol,:, 237)*sol(:ncol,:, 17)*sol(:ncol,:, 99) ! rate_const*CH2O*OH + rxt_rates(:ncol,:, 238) = rxt_rates(:ncol,:, 238)*sol(:ncol,:, 21)*sol(:ncol,:, 90) ! rate_const*CH3O2*HO2 rxt_rates(:ncol,:, 239) = rxt_rates(:ncol,:, 239)*sol(:ncol,:, 21)*sol(:ncol,:, 61) ! rate_const*CH3O2*NO - rxt_rates(:ncol,:, 240) = rxt_rates(:ncol,:, 240)*sol(:ncol,:, 22)*sol(:ncol,:, 98) ! rate_const*CH3OOH*OH - rxt_rates(:ncol,:, 241) = rxt_rates(:ncol,:, 241)*sol(:ncol,:, 23)*sol(:ncol,:, 98) ! rate_const*CH4*OH - rxt_rates(:ncol,:, 242) = rxt_rates(:ncol,:, 242)*sol(:ncol,:, 94)*sol(:ncol,:, 23) ! rate_const*O1D*CH4 - rxt_rates(:ncol,:, 243) = rxt_rates(:ncol,:, 243)*sol(:ncol,:, 94)*sol(:ncol,:, 23) ! rate_const*O1D*CH4 - rxt_rates(:ncol,:, 244) = rxt_rates(:ncol,:, 244)*sol(:ncol,:, 94)*sol(:ncol,:, 23) ! rate_const*O1D*CH4 - rxt_rates(:ncol,:, 245) = rxt_rates(:ncol,:, 245)*sol(:ncol,:, 31)*sol(:ncol,:, 98) ! rate_const*CO*OH + rxt_rates(:ncol,:, 240) = rxt_rates(:ncol,:, 240)*sol(:ncol,:, 22)*sol(:ncol,:, 99) ! rate_const*CH3OOH*OH + rxt_rates(:ncol,:, 241) = rxt_rates(:ncol,:, 241)*sol(:ncol,:, 23)*sol(:ncol,:, 99) ! rate_const*CH4*OH + rxt_rates(:ncol,:, 242) = rxt_rates(:ncol,:, 242)*sol(:ncol,:, 95)*sol(:ncol,:, 23) ! rate_const*O1D*CH4 + rxt_rates(:ncol,:, 243) = rxt_rates(:ncol,:, 243)*sol(:ncol,:, 95)*sol(:ncol,:, 23) ! rate_const*O1D*CH4 + rxt_rates(:ncol,:, 244) = rxt_rates(:ncol,:, 244)*sol(:ncol,:, 95)*sol(:ncol,:, 23) ! rate_const*O1D*CH4 + rxt_rates(:ncol,:, 245) = rxt_rates(:ncol,:, 245)*sol(:ncol,:, 31)*sol(:ncol,:, 99) ! rate_const*CO*OH rxt_rates(:ncol,:, 246) = rxt_rates(:ncol,:, 246)*sol(:ncol,:, 35)*sol(:ncol,:, 63) ! rate_const*DMS*NO3 - rxt_rates(:ncol,:, 247) = rxt_rates(:ncol,:, 247)*sol(:ncol,:, 35)*sol(:ncol,:, 98) ! rate_const*DMS*OH - rxt_rates(:ncol,:, 248) = rxt_rates(:ncol,:, 248)*sol(:ncol,:, 73)*sol(:ncol,:, 69) ! rate_const*OCS*O - rxt_rates(:ncol,:, 249) = rxt_rates(:ncol,:, 249)*sol(:ncol,:, 73)*sol(:ncol,:, 98) ! rate_const*OCS*OH - rxt_rates(:ncol,:, 250) = rxt_rates(:ncol,:, 250)*sol(:ncol,:, 76)*sol(:ncol,:, 70) ! rate_const*S*O2 - rxt_rates(:ncol,:, 251) = rxt_rates(:ncol,:, 251)*sol(:ncol,:, 79)*sol(:ncol,:, 98) ! rate_const*M*SO2*OH - rxt_rates(:ncol,:, 252) = rxt_rates(:ncol,:, 252)*sol(:ncol,:, 76)*sol(:ncol,:, 71) ! rate_const*S*O3 - rxt_rates(:ncol,:, 253) = rxt_rates(:ncol,:, 253)*sol(:ncol,:, 78)*sol(:ncol,:, 5) ! rate_const*SO*BRO - rxt_rates(:ncol,:, 254) = rxt_rates(:ncol,:, 254)*sol(:ncol,:, 78)*sol(:ncol,:, 28) ! rate_const*SO*CLO - rxt_rates(:ncol,:, 255) = rxt_rates(:ncol,:, 255)*sol(:ncol,:, 76)*sol(:ncol,:, 98) ! rate_const*S*OH - rxt_rates(:ncol,:, 256) = rxt_rates(:ncol,:, 256)*sol(:ncol,:, 78)*sol(:ncol,:, 62) ! rate_const*SO*NO2 - rxt_rates(:ncol,:, 257) = rxt_rates(:ncol,:, 257)*sol(:ncol,:, 78)*sol(:ncol,:, 70) ! rate_const*SO*O2 - rxt_rates(:ncol,:, 258) = rxt_rates(:ncol,:, 258)*sol(:ncol,:, 78)*sol(:ncol,:, 71) ! rate_const*SO*O3 - rxt_rates(:ncol,:, 259) = rxt_rates(:ncol,:, 259)*sol(:ncol,:, 78)*sol(:ncol,:, 72) ! rate_const*SO*OCLO - rxt_rates(:ncol,:, 260) = rxt_rates(:ncol,:, 260)*sol(:ncol,:, 78)*sol(:ncol,:, 98) ! rate_const*SO*OH - rxt_rates(:ncol,:, 261) = rxt_rates(:ncol,:, 261)*sol(:ncol,:, 35)*sol(:ncol,:, 98) ! rate_const*DMS*OH - rxt_rates(:ncol,:, 262) = rxt_rates(:ncol,:, 262)*sol(:ncol,:, 80)*sol(:ncol,:, 102) ! rate_const*SO3*H2O - rxt_rates(:ncol,:, 263) = rxt_rates(:ncol,:, 263)*sol(:ncol,:, 89) ! rate_const*HO2 + rxt_rates(:ncol,:, 247) = rxt_rates(:ncol,:, 247)*sol(:ncol,:, 35)*sol(:ncol,:, 99) ! rate_const*DMS*OH + rxt_rates(:ncol,:, 248) = rxt_rates(:ncol,:, 248)*sol(:ncol,:, 74)*sol(:ncol,:, 69) ! rate_const*OCS*O + rxt_rates(:ncol,:, 249) = rxt_rates(:ncol,:, 249)*sol(:ncol,:, 74)*sol(:ncol,:, 99) ! rate_const*OCS*OH + rxt_rates(:ncol,:, 250) = rxt_rates(:ncol,:, 250)*sol(:ncol,:, 77)*sol(:ncol,:, 70) ! rate_const*S*O2 + rxt_rates(:ncol,:, 251) = rxt_rates(:ncol,:, 251)*sol(:ncol,:, 80)*sol(:ncol,:, 99) ! rate_const*M*SO2*OH + rxt_rates(:ncol,:, 252) = rxt_rates(:ncol,:, 252)*sol(:ncol,:, 77)*sol(:ncol,:, 71) ! rate_const*S*O3 + rxt_rates(:ncol,:, 253) = rxt_rates(:ncol,:, 253)*sol(:ncol,:, 79)*sol(:ncol,:, 5) ! rate_const*SO*BRO + rxt_rates(:ncol,:, 254) = rxt_rates(:ncol,:, 254)*sol(:ncol,:, 79)*sol(:ncol,:, 28) ! rate_const*SO*CLO + rxt_rates(:ncol,:, 255) = rxt_rates(:ncol,:, 255)*sol(:ncol,:, 77)*sol(:ncol,:, 99) ! rate_const*S*OH + rxt_rates(:ncol,:, 256) = rxt_rates(:ncol,:, 256)*sol(:ncol,:, 79)*sol(:ncol,:, 62) ! rate_const*SO*NO2 + rxt_rates(:ncol,:, 257) = rxt_rates(:ncol,:, 257)*sol(:ncol,:, 79)*sol(:ncol,:, 70) ! rate_const*SO*O2 + rxt_rates(:ncol,:, 258) = rxt_rates(:ncol,:, 258)*sol(:ncol,:, 79)*sol(:ncol,:, 71) ! rate_const*SO*O3 + rxt_rates(:ncol,:, 259) = rxt_rates(:ncol,:, 259)*sol(:ncol,:, 79)*sol(:ncol,:, 73) ! rate_const*SO*OCLO + rxt_rates(:ncol,:, 260) = rxt_rates(:ncol,:, 260)*sol(:ncol,:, 79)*sol(:ncol,:, 99) ! rate_const*SO*OH + rxt_rates(:ncol,:, 261) = rxt_rates(:ncol,:, 261)*sol(:ncol,:, 35)*sol(:ncol,:, 99) ! rate_const*DMS*OH + rxt_rates(:ncol,:, 262) = rxt_rates(:ncol,:, 262)*sol(:ncol,:, 81)*sol(:ncol,:, 103) ! rate_const*SO3*H2O + rxt_rates(:ncol,:, 263) = rxt_rates(:ncol,:, 263)*sol(:ncol,:, 90) ! rate_const*HO2 rxt_rates(:ncol,:, 264) = rxt_rates(:ncol,:, 264)*sol(:ncol,:, 57) ! rate_const*N2O5 rxt_rates(:ncol,:, 265) = rxt_rates(:ncol,:, 265)*sol(:ncol,:, 62) ! rate_const*NO2 rxt_rates(:ncol,:, 266) = rxt_rates(:ncol,:, 266)*sol(:ncol,:, 63) ! rate_const*NO3 @@ -291,33 +291,33 @@ subroutine set_rates( rxt_rates, sol, ncol ) rxt_rates(:ncol,:, 281) = rxt_rates(:ncol,:, 281)*sol(:ncol,:, 57) ! rate_const*N2O5 rxt_rates(:ncol,:, 282) = rxt_rates(:ncol,:, 282)*sol(:ncol,:, 29) ! rate_const*CLONO2 rxt_rates(:ncol,:, 283) = rxt_rates(:ncol,:, 283)*sol(:ncol,:, 29)*sol(:ncol,:, 49) ! rate_const*CLONO2*HCL - rxt_rates(:ncol,:, 284) = rxt_rates(:ncol,:, 284)*sol(:ncol,:, 101) ! rate_const*Op2P - rxt_rates(:ncol,:, 285) = rxt_rates(:ncol,:, 285)*sol(:ncol,:, 100) ! rate_const*Op2D - rxt_rates(:ncol,:, 286) = rxt_rates(:ncol,:, 286)*sol(:ncol,:, 101) ! rate_const*Op2P - rxt_rates(:ncol,:, 287) = rxt_rates(:ncol,:, 287)*sol(:ncol,:, 92)*sol(:ncol,:, 88) ! rate_const*NOp*e - rxt_rates(:ncol,:, 288) = rxt_rates(:ncol,:, 288)*sol(:ncol,:, 97)*sol(:ncol,:, 88) ! rate_const*O2p*e - rxt_rates(:ncol,:, 289) = rxt_rates(:ncol,:, 289)*sol(:ncol,:, 91)*sol(:ncol,:, 88) ! rate_const*N2p*e - rxt_rates(:ncol,:, 290) = rxt_rates(:ncol,:, 290)*sol(:ncol,:, 91)*sol(:ncol,:, 70) ! rate_const*N2p*O2 - rxt_rates(:ncol,:, 291) = rxt_rates(:ncol,:, 291)*sol(:ncol,:, 91)*sol(:ncol,:, 69) ! rate_const*N2p*O - rxt_rates(:ncol,:, 292) = rxt_rates(:ncol,:, 292)*sol(:ncol,:, 91)*sol(:ncol,:, 69) ! rate_const*N2p*O - rxt_rates(:ncol,:, 293) = rxt_rates(:ncol,:, 293)*sol(:ncol,:, 93)*sol(:ncol,:, 69) ! rate_const*Np*O - rxt_rates(:ncol,:, 294) = rxt_rates(:ncol,:, 294)*sol(:ncol,:, 93)*sol(:ncol,:, 70) ! rate_const*Np*O2 - rxt_rates(:ncol,:, 295) = rxt_rates(:ncol,:, 295)*sol(:ncol,:, 93)*sol(:ncol,:, 70) ! rate_const*Np*O2 - rxt_rates(:ncol,:, 296) = rxt_rates(:ncol,:, 296)*sol(:ncol,:, 97)*sol(:ncol,:, 55) ! rate_const*O2p*N - rxt_rates(:ncol,:, 297) = rxt_rates(:ncol,:, 297)*sol(:ncol,:, 97) ! rate_const*N2*O2p - rxt_rates(:ncol,:, 298) = rxt_rates(:ncol,:, 298)*sol(:ncol,:, 97)*sol(:ncol,:, 61) ! rate_const*O2p*NO - rxt_rates(:ncol,:, 299) = rxt_rates(:ncol,:, 299)*sol(:ncol,:, 99)*sol(:ncol,:, 32) ! rate_const*Op*CO2 - rxt_rates(:ncol,:, 300) = rxt_rates(:ncol,:, 300)*sol(:ncol,:, 99) ! rate_const*N2*Op - rxt_rates(:ncol,:, 301) = rxt_rates(:ncol,:, 301)*sol(:ncol,:, 99)*sol(:ncol,:, 90) ! rate_const*Op*N2D - rxt_rates(:ncol,:, 302) = rxt_rates(:ncol,:, 302)*sol(:ncol,:, 99)*sol(:ncol,:, 70) ! rate_const*Op*O2 - rxt_rates(:ncol,:, 303) = rxt_rates(:ncol,:, 303)*sol(:ncol,:, 100)*sol(:ncol,:, 88) ! rate_const*Op2D*e - rxt_rates(:ncol,:, 304) = rxt_rates(:ncol,:, 304)*sol(:ncol,:, 100) ! rate_const*N2*Op2D - rxt_rates(:ncol,:, 305) = rxt_rates(:ncol,:, 305)*sol(:ncol,:, 100)*sol(:ncol,:, 69) ! rate_const*Op2D*O - rxt_rates(:ncol,:, 306) = rxt_rates(:ncol,:, 306)*sol(:ncol,:, 100)*sol(:ncol,:, 70) ! rate_const*Op2D*O2 - rxt_rates(:ncol,:, 307) = rxt_rates(:ncol,:, 307)*sol(:ncol,:, 101)*sol(:ncol,:, 88) ! rate_const*Op2P*e - rxt_rates(:ncol,:, 308) = rxt_rates(:ncol,:, 308)*sol(:ncol,:, 101)*sol(:ncol,:, 88) ! rate_const*Op2P*e - rxt_rates(:ncol,:, 309) = rxt_rates(:ncol,:, 309)*sol(:ncol,:, 101) ! rate_const*N2*Op2P - rxt_rates(:ncol,:, 310) = rxt_rates(:ncol,:, 310)*sol(:ncol,:, 101) ! rate_const*N2*Op2P - rxt_rates(:ncol,:, 311) = rxt_rates(:ncol,:, 311)*sol(:ncol,:, 101)*sol(:ncol,:, 69) ! rate_const*Op2P*O + rxt_rates(:ncol,:, 284) = rxt_rates(:ncol,:, 284)*sol(:ncol,:, 102) ! rate_const*Op2P + rxt_rates(:ncol,:, 285) = rxt_rates(:ncol,:, 285)*sol(:ncol,:, 101) ! rate_const*Op2D + rxt_rates(:ncol,:, 286) = rxt_rates(:ncol,:, 286)*sol(:ncol,:, 102) ! rate_const*Op2P + rxt_rates(:ncol,:, 287) = rxt_rates(:ncol,:, 287)*sol(:ncol,:, 93)*sol(:ncol,:, 89) ! rate_const*NOp*e + rxt_rates(:ncol,:, 288) = rxt_rates(:ncol,:, 288)*sol(:ncol,:, 98)*sol(:ncol,:, 89) ! rate_const*O2p*e + rxt_rates(:ncol,:, 289) = rxt_rates(:ncol,:, 289)*sol(:ncol,:, 92)*sol(:ncol,:, 89) ! rate_const*N2p*e + rxt_rates(:ncol,:, 290) = rxt_rates(:ncol,:, 290)*sol(:ncol,:, 92)*sol(:ncol,:, 70) ! rate_const*N2p*O2 + rxt_rates(:ncol,:, 291) = rxt_rates(:ncol,:, 291)*sol(:ncol,:, 92)*sol(:ncol,:, 69) ! rate_const*N2p*O + rxt_rates(:ncol,:, 292) = rxt_rates(:ncol,:, 292)*sol(:ncol,:, 92)*sol(:ncol,:, 69) ! rate_const*N2p*O + rxt_rates(:ncol,:, 293) = rxt_rates(:ncol,:, 293)*sol(:ncol,:, 94)*sol(:ncol,:, 69) ! rate_const*Np*O + rxt_rates(:ncol,:, 294) = rxt_rates(:ncol,:, 294)*sol(:ncol,:, 94)*sol(:ncol,:, 70) ! rate_const*Np*O2 + rxt_rates(:ncol,:, 295) = rxt_rates(:ncol,:, 295)*sol(:ncol,:, 94)*sol(:ncol,:, 70) ! rate_const*Np*O2 + rxt_rates(:ncol,:, 296) = rxt_rates(:ncol,:, 296)*sol(:ncol,:, 98)*sol(:ncol,:, 55) ! rate_const*O2p*N + rxt_rates(:ncol,:, 297) = rxt_rates(:ncol,:, 297)*sol(:ncol,:, 98) ! rate_const*N2*O2p + rxt_rates(:ncol,:, 298) = rxt_rates(:ncol,:, 298)*sol(:ncol,:, 98)*sol(:ncol,:, 61) ! rate_const*O2p*NO + rxt_rates(:ncol,:, 299) = rxt_rates(:ncol,:, 299)*sol(:ncol,:, 100)*sol(:ncol,:, 32) ! rate_const*Op*CO2 + rxt_rates(:ncol,:, 300) = rxt_rates(:ncol,:, 300)*sol(:ncol,:, 100) ! rate_const*N2*Op + rxt_rates(:ncol,:, 301) = rxt_rates(:ncol,:, 301)*sol(:ncol,:, 100)*sol(:ncol,:, 91) ! rate_const*Op*N2D + rxt_rates(:ncol,:, 302) = rxt_rates(:ncol,:, 302)*sol(:ncol,:, 100)*sol(:ncol,:, 70) ! rate_const*Op*O2 + rxt_rates(:ncol,:, 303) = rxt_rates(:ncol,:, 303)*sol(:ncol,:, 101)*sol(:ncol,:, 89) ! rate_const*Op2D*e + rxt_rates(:ncol,:, 304) = rxt_rates(:ncol,:, 304)*sol(:ncol,:, 101) ! rate_const*N2*Op2D + rxt_rates(:ncol,:, 305) = rxt_rates(:ncol,:, 305)*sol(:ncol,:, 101)*sol(:ncol,:, 69) ! rate_const*Op2D*O + rxt_rates(:ncol,:, 306) = rxt_rates(:ncol,:, 306)*sol(:ncol,:, 101)*sol(:ncol,:, 70) ! rate_const*Op2D*O2 + rxt_rates(:ncol,:, 307) = rxt_rates(:ncol,:, 307)*sol(:ncol,:, 102)*sol(:ncol,:, 89) ! rate_const*Op2P*e + rxt_rates(:ncol,:, 308) = rxt_rates(:ncol,:, 308)*sol(:ncol,:, 102)*sol(:ncol,:, 89) ! rate_const*Op2P*e + rxt_rates(:ncol,:, 309) = rxt_rates(:ncol,:, 309)*sol(:ncol,:, 102) ! rate_const*N2*Op2P + rxt_rates(:ncol,:, 310) = rxt_rates(:ncol,:, 310)*sol(:ncol,:, 102) ! rate_const*N2*Op2P + rxt_rates(:ncol,:, 311) = rxt_rates(:ncol,:, 311)*sol(:ncol,:, 102)*sol(:ncol,:, 69) ! rate_const*Op2P*O end subroutine set_rates end module mo_rxt_rates_conv diff --git a/src/chemistry/pp_waccm_ma_mam5/mo_sim_dat.F90 b/src/chemistry/pp_waccm_ma_mam5/mo_sim_dat.F90 index 4b884922d5..adb157e52e 100644 --- a/src/chemistry/pp_waccm_ma_mam5/mo_sim_dat.F90 +++ b/src/chemistry/pp_waccm_ma_mam5/mo_sim_dat.F90 @@ -31,11 +31,12 @@ subroutine set_sim_dat is_scalar = .false. is_vector = .true. - clscnt(:) = (/ 0, 0, 0, 102, 0 /) + clscnt(:) = (/ 1, 0, 0, 102, 0 /) + cls_rxt_cnt(:,1) = (/ 0, 0, 0, 1 /) cls_rxt_cnt(:,4) = (/ 8, 112, 191, 102 /) - solsym(:102) = (/ 'bc_a1 ','bc_a4 ','BR ','BRCL ','BRO ', & + solsym(:103) = (/ 'bc_a1 ','bc_a4 ','BR ','BRCL ','BRO ', & 'BRONO2 ','BRY ','CCL4 ','CF2CLBR ','CF3BR ', & 'CFC11 ','CFC113 ','CFC114 ','CFC115 ','CFC12 ', & 'CH2BR2 ','CH2O ','CH3BR ','CH3CCL3 ','CH3CL ', & @@ -49,15 +50,15 @@ subroutine set_sim_dat 'N2O ','N2O5 ','ncl_a1 ','ncl_a2 ','ncl_a3 ', & 'NO ','NO2 ','NO3 ','num_a1 ','num_a2 ', & 'num_a3 ','num_a4 ','num_a5 ','O ','O2 ', & - 'O3 ','OCLO ','OCS ','pom_a1 ','pom_a4 ', & - 'S ','SF6 ','SO ','SO2 ','SO3 ', & - 'so4_a1 ','so4_a2 ','so4_a3 ','so4_a5 ','soa_a1 ', & - 'soa_a2 ','SOAG ','e ','HO2 ','N2D ', & - 'N2p ','NOp ','Np ','O1D ','O2_1D ', & - 'O2_1S ','O2p ','OH ','Op ','Op2D ', & - 'Op2P ','H2O ' /) + 'O3 ','O3S ','OCLO ','OCS ','pom_a1 ', & + 'pom_a4 ','S ','SF6 ','SO ','SO2 ', & + 'SO3 ','so4_a1 ','so4_a2 ','so4_a3 ','so4_a5 ', & + 'soa_a1 ','soa_a2 ','SOAG ','e ','HO2 ', & + 'N2D ','N2p ','NOp ','Np ','O1D ', & + 'O2_1D ','O2_1S ','O2p ','OH ','Op ', & + 'Op2D ','Op2P ','H2O ' /) - adv_mass(:102) = (/ 12.011000_r8, 12.011000_r8, 79.904000_r8, 115.356700_r8, 95.903400_r8, & + adv_mass(:103) = (/ 12.011000_r8, 12.011000_r8, 79.904000_r8, 115.356700_r8, 95.903400_r8, & 141.908940_r8, 99.716850_r8, 153.821800_r8, 165.364506_r8, 148.910210_r8, & 137.367503_r8, 187.375310_r8, 170.921013_r8, 154.466716_r8, 120.913206_r8, & 173.833800_r8, 30.025200_r8, 94.937200_r8, 133.402300_r8, 50.485900_r8, & @@ -71,15 +72,15 @@ subroutine set_sim_dat 44.012880_r8, 108.010480_r8, 58.442468_r8, 58.442468_r8, 58.442468_r8, & 30.006140_r8, 46.005540_r8, 62.004940_r8, 1.007400_r8, 1.007400_r8, & 1.007400_r8, 1.007400_r8, 1.007400_r8, 15.999400_r8, 31.998800_r8, & - 47.998200_r8, 67.451500_r8, 60.076400_r8, 12.011000_r8, 12.011000_r8, & - 32.066000_r8, 146.056419_r8, 48.065400_r8, 64.064800_r8, 80.064200_r8, & - 115.107340_r8, 115.107340_r8, 115.107340_r8, 115.107340_r8, 12.011000_r8, & - 12.011000_r8, 12.011000_r8, 0.548567E-03_r8, 33.006200_r8, 14.006740_r8, & - 28.013480_r8, 30.006140_r8, 14.006740_r8, 15.999400_r8, 31.998800_r8, & - 31.998800_r8, 31.998800_r8, 17.006800_r8, 15.999400_r8, 15.999400_r8, & - 15.999400_r8, 18.014200_r8 /) + 47.998200_r8, 47.998200_r8, 67.451500_r8, 60.076400_r8, 12.011000_r8, & + 12.011000_r8, 32.066000_r8, 146.056419_r8, 48.065400_r8, 64.064800_r8, & + 80.064200_r8, 115.107340_r8, 115.107340_r8, 115.107340_r8, 115.107340_r8, & + 12.011000_r8, 12.011000_r8, 12.011000_r8, 0.548567E-03_r8, 33.006200_r8, & + 14.006740_r8, 28.013480_r8, 30.006140_r8, 14.006740_r8, 15.999400_r8, & + 31.998800_r8, 31.998800_r8, 31.998800_r8, 17.006800_r8, 15.999400_r8, & + 15.999400_r8, 15.999400_r8, 18.014200_r8 /) - crb_mass(:102) = (/ 12.011000_r8, 12.011000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & + crb_mass(:103) = (/ 12.011000_r8, 12.011000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & 0.000000_r8, 0.000000_r8, 12.011000_r8, 12.011000_r8, 12.011000_r8, & 12.011000_r8, 24.022000_r8, 24.022000_r8, 24.022000_r8, 12.011000_r8, & 12.011000_r8, 12.011000_r8, 12.011000_r8, 24.022000_r8, 12.011000_r8, & @@ -93,16 +94,17 @@ subroutine set_sim_dat 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & - 0.000000_r8, 0.000000_r8, 12.011000_r8, 12.011000_r8, 12.011000_r8, & + 0.000000_r8, 0.000000_r8, 0.000000_r8, 12.011000_r8, 12.011000_r8, & + 12.011000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & - 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 12.011000_r8, & - 12.011000_r8, 12.011000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & + 12.011000_r8, 12.011000_r8, 12.011000_r8, 0.000000_r8, 0.000000_r8, & 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, & - 0.000000_r8, 0.000000_r8 /) + 0.000000_r8, 0.000000_r8, 0.000000_r8 /) fix_mass(: 2) = (/ 0.00000000_r8, 28.0134800_r8 /) + clsmap(: 1,1) = (/ 72 /) clsmap(:102,4) = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, & 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, & 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, & @@ -110,10 +112,10 @@ subroutine set_sim_dat 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, & 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, & 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, & - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, & - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, & - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, & - 101, 102 /) + 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, & + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, & + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, & + 102, 103 /) permute(:102,4) = (/ 1, 2, 97, 45, 101, 62, 3, 27, 34, 35, & 29, 36, 30, 37, 31, 58, 86, 63, 32, 54, & diff --git a/src/physics/cam/gw_drag.F90 b/src/physics/cam/gw_drag.F90 index 9788ef79ab..0f48e661af 100644 --- a/src/physics/cam/gw_drag.F90 +++ b/src/physics/cam/gw_drag.F90 @@ -72,7 +72,7 @@ module gw_drag ! Factor for SH orographic waves. real(r8) :: gw_oro_south_fac = 1._r8 - + ! Frontogenesis function critical threshold. real(r8) :: frontgfc = unset_r8 @@ -136,9 +136,6 @@ module gw_drag type(BeresSourceDesc) :: beres_dp_desc type(BeresSourceDesc) :: beres_sh_desc - ! Width of gaussian used to create frontogenesis tau profile [m/s]. - real(r8), parameter :: front_gaussian_width = 30._r8 - ! Frontogenesis wave settings. type(CMSourceDesc) :: cm_desc type(CMSourceDesc) :: cm_igw_desc @@ -183,12 +180,15 @@ module gw_drag character(len=1), parameter :: beres_dp_pf = "B" character(len=1), parameter :: beres_sh_pf = "S" - ! namelist + ! namelist logical :: history_amwg ! output the variables used by the AMWG diag package logical :: gw_lndscl_sgh = .true. ! scale SGH by land frac real(r8) :: gw_prndl = 0.25_r8 real(r8) :: gw_qbo_hdepth_scaling = 1._r8 ! heating depth scaling factor + ! Width of gaussian used to create frontogenesis tau profile [m/s]. + real(r8) :: front_gaussian_width = -huge(1._r8) + logical :: gw_top_taper=.false. real(r8), pointer :: vramp(:)=>null() @@ -232,7 +232,7 @@ subroutine gw_drag_readnl(nlfile) rdg_gamma_cd_llb, trpd_leewv_rdg_gamma, bnd_rdggm, & gw_oro_south_fac, gw_limit_tau_without_eff, & gw_lndscl_sgh, gw_prndl, gw_apply_tndmax, gw_qbo_hdepth_scaling, & - gw_top_taper + gw_top_taper, front_gaussian_width !---------------------------------------------------------------------- if (use_simple_phys) return @@ -333,6 +333,8 @@ subroutine gw_drag_readnl(nlfile) call mpi_bcast(gw_drag_file_sh, len(gw_drag_file_sh), mpi_character, mstrid, mpicom, ierr) if (ierr /= 0) call endrun(sub//": FATAL: mpi_bcast: gw_drag_file_sh") + call mpi_bcast(front_gaussian_width, 1, mpi_real8, mstrid, mpicom, ierr) + if (ierr /= 0) call endrun(sub//": FATAL: mpi_bcast: front_gaussian_width") ! Check if fcrit2 was set. call shr_assert(fcrit2 /= unset_r8, & @@ -379,7 +381,7 @@ subroutine gw_init() ! temporary for restart with ridge scheme use cam_initfiles, only: bnd_topo - + use cam_pio_utils, only: cam_pio_openfile use cam_grid_support, only: cam_grid_check, cam_grid_id use cam_grid_support, only: cam_grid_get_dim_names @@ -539,7 +541,7 @@ subroutine gw_init() ! Initialize subordinate modules. call gw_common_init(pver,& - tau_0_ubc, ktop, gravit, rair, alpha, gw_prndl, & + tau_0_ubc, ktop, gravit, rair, alpha, gw_prndl, & gw_qbo_hdepth_scaling, errstring ) call shr_assert(trim(errstring) == "", "gw_common_init: "//errstring// & errMsg(__FILE__, __LINE__)) @@ -551,7 +553,7 @@ subroutine gw_init() &but effgw_oro was not set.") end if end if - + if (use_gw_oro .or. use_gw_rdg_beta .or. use_gw_rdg_gamma) then sgh_idx = pbuf_get_index('SGH') @@ -611,7 +613,7 @@ subroutine gw_init() ! Try to open topo file here. This workaround will not be needed ! once the refactored initialization sequence is on trunk. - + allocate(fh_topo) ! Error exit is from getfil if file not found. call getfil(bnd_topo, bnd_topo_loc) @@ -627,12 +629,12 @@ subroutine gw_init() rdg_mxdis(pcols,prdg,begchunk:endchunk), & rdg_anixy(pcols,prdg,begchunk:endchunk), & rdg_angll(pcols,prdg,begchunk:endchunk) ) - + call infld('GBXAR', fh_topo, dim1name, dim2name, 1, pcols, & begchunk, endchunk, rdg_gbxar, found, gridname='physgrid') if (.not. found) call endrun(sub//': ERROR: GBXAR not found on topo file') rdg_gbxar = rdg_gbxar * (rearth/1000._r8)*(rearth/1000._r8) ! transform to km^2 - + call infld('HWDTH', fh_topo, dim1name, 'nrdg', dim2name, 1, pcols, & 1, prdg, begchunk, endchunk, rdg_hwdth, found, gridname='physgrid') if (.not. found) call endrun(sub//': ERROR: HWDTH not found on topo file') @@ -707,7 +709,7 @@ subroutine gw_init() 'interface geopotential heights in GW code ' ) call addfld('ZMGW', (/ 'lev' /) , 'A' ,'m' , & 'midlayer geopotential heights in GW code ' ) - + call addfld('TAUM1_DIAG' , (/ 'ilev' /) , 'I' ,'N/m2' , & 'Ridge based momentum flux profile') call addfld('TAU1RDGBETAM' , (/ 'ilev' /) , 'I' ,'N/m2' , & @@ -749,7 +751,7 @@ subroutine gw_init() if (effgw_rdg_gamma == unset_r8) then call endrun(sub//": ERROR: Anisotropic OGW enabled, but effgw_rdg_gamma was not set.") end if - + call getfil(bnd_rdggm, bnd_rdggm_loc, iflag=1, lexist=found) if (found) then call cam_pio_openfile(fh_rdggm, bnd_rdggm_loc, PIO_NOWRITE) @@ -793,7 +795,7 @@ subroutine gw_init() call infld('ANGLL', fh_rdggm, dim1name, 'nrdg', dim2name, 1, pcols, & 1, prdg, begchunk, endchunk, rdg_angllg, found, gridname='physgrid') if (.not. found) call endrun(sub//': ERROR: ANGLL not found on bnd_rdggm') - + call pio_closefile(fh_rdggm) call addfld ('TAU1RDGGAMMAM' , (/ 'ilev' /) , 'I' ,'N/m2' , & @@ -1365,7 +1367,7 @@ subroutine gw_tend(state, pbuf, dt, ptend, cam_in, flx_heat) real(r8), parameter :: degree2radian = pi/180._r8 real(r8), parameter :: al0 = 82.5_r8 * degree2radian real(r8), parameter :: dlat0 = 5.0_r8 * degree2radian - + ! effective gw diffusivity at interfaces needed for output real(r8) :: egwdffi(state%ncol,pver+1) ! sum from the two types of spectral GW @@ -1451,7 +1453,7 @@ subroutine gw_tend(state, pbuf, dt, ptend, cam_in, flx_heat) ! Totals that accumulate over different sources. egwdffi_tot = 0._r8 flx_heat = 0._r8 - + if (use_gw_convect_dp) then !------------------------------------------------------------------ ! Convective gravity waves (Beres scheme, deep). @@ -1802,7 +1804,7 @@ subroutine gw_tend(state, pbuf, dt, ptend, cam_in, flx_heat) ! Efficiency of gravity wave momentum transfer. ! Take into account that wave sources are only over land. call pbuf_get_field(pbuf, sgh_idx, sgh) - + if (gw_lndscl_sgh) then where (cam_in%landfrac(:ncol) >= epsilon(1._r8)) effgw = effgw_oro * cam_in%landfrac(:ncol) @@ -1969,7 +1971,7 @@ subroutine gw_tend(state, pbuf, dt, ptend, cam_in, flx_heat) ! Write totals to history file. call outfld('EKGW', egwdffi_tot , ncol, lchnk) call outfld('TTGW', ptend%s/cpairv(:,:,lchnk), pcols, lchnk) - + call outfld('UTGW_TOTAL', ptend%u, pcols, lchnk) call outfld('VTGW_TOTAL', ptend%v, pcols, lchnk) @@ -2143,7 +2145,7 @@ subroutine gw_rdg_calc( & ! initialize accumulated momentum fluxes and tendencies taurx = 0._r8 - taury = 0._r8 + taury = 0._r8 ttrdg = 0._r8 utrdg = 0._r8 vtrdg = 0._r8 @@ -2151,36 +2153,36 @@ subroutine gw_rdg_calc( & do nn = 1, n_rdg kwvrdg = 0.001_r8 / ( hwdth(:,nn) + 0.001_r8 ) ! this cant be done every time step !!! - isoflag = 0 + isoflag = 0 effgw = effgw_rdg * ( hwdth(1:ncol,nn)* clngt(1:ncol,nn) ) / gbxar(1:ncol) effgw = min( effgw_rdg_max , effgw ) call gw_rdg_src(ncol, band_oro, p, & u, v, t, mxdis(:,nn), angll(:,nn), anixy(:,nn), kwvrdg, isoflag, zi, nm, & - src_level, tend_level, bwv_level, tlb_level, tau, ubm, ubi, xv, yv, & + src_level, tend_level, bwv_level, tlb_level, tau, ubm, ubi, xv, yv, & ubmsrc, usrc, vsrc, nsrc, rsrc, m2src, tlb, bwv, Fr1, Fr2, Frx, c) call gw_rdg_belowpeak(ncol, band_oro, rdg_cd_llb, & - t, mxdis(:,nn), anixy(:,nn), kwvrdg, & + t, mxdis(:,nn), anixy(:,nn), kwvrdg, & zi, nm, ni, rhoi, & - src_level, tau, & - ubmsrc, nsrc, rsrc, m2src, tlb, bwv, Fr1, Fr2, Frx, & + src_level, tau, & + ubmsrc, nsrc, rsrc, m2src, tlb, bwv, Fr1, Fr2, Frx, & tauoro, taudsw, hdspwv, hdspdw) call gw_rdg_break_trap(ncol, band_oro, & - zi, nm, ni, ubm, ubi, rhoi, kwvrdg , bwv, tlb, wbr, & - src_level, tlb_level, hdspwv, hdspdw, mxdis(:,nn), & - tauoro, taudsw, tau, & + zi, nm, ni, ubm, ubi, rhoi, kwvrdg , bwv, tlb, wbr, & + src_level, tlb_level, hdspwv, hdspdw, mxdis(:,nn), & + tauoro, taudsw, tau, & ldo_trapped_waves=trpd_leewv) - + call gw_drag_prof(ncol, band_oro, p, src_level, tend_level, dt, & t, vramp, & piln, rhoi, nm, ni, ubm, ubi, xv, yv, & effgw, c, kvtt, q, dse, tau, utgw, vtgw, & ttgw, qtgw, egwdffi, gwut, dttdf, dttke, & - kwvrdg=kwvrdg, & + kwvrdg=kwvrdg, & satfac_in = 1._r8, lapply_vdiff=gw_rdg_do_vdiff , tau_diag=tau_diag ) ! Add the tendencies from each ridge to the totals.