Changeset 2580
- Timestamp:
- Nov 4, 2021, 4:09:12 PM (3 years ago)
- Location:
- trunk/LMDZ.VENUS
- Files:
-
- 1 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/deftank/context_lmdz_physics-78niv.xml
r2560 r2580 79 79 long_name="IR rad. at surface" 80 80 unit="W/m2" /> 81 <field id="col_co2" 82 long_name="Column density of CO2" 83 unit="kg/m2" /> 84 <field id="col_co" 85 long_name="Column density of CO" 86 unit="kg/m2" /> 87 <field id="col_h2" 88 long_name="Column density of H2" 89 unit="kg/m2" /> 90 <field id="col_h2o" 91 long_name="Column density of H2O" 92 unit="kg/m2" /> 93 <field id="col_o1d" 94 long_name="Column density of O(1D)" 95 unit="kg/m2" /> 96 <field id="col_o" 97 long_name="Column density of O" 98 unit="kg/m2" /> 99 <field id="col_o2" 100 long_name="Column density of O2" 101 unit="kg/m2" /> 102 <field id="col_o2dg" 103 long_name="Column density of O2(DG)" 104 unit="kg/m2" /> 105 <field id="col_o3" 106 long_name="Column density of O3" 107 unit="kg/m2" /> 108 <field id="col_h" 109 long_name="Column density of H" 110 unit="kg/m2" /> 111 <field id="col_oh" 112 long_name="Column density of OH" 113 unit="kg/m2" /> 114 <field id="col_ho2" 115 long_name="Column density of HO2" 116 unit="kg/m2" /> 117 <field id="col_h2o2" 118 long_name="Column density of H2O2" 119 unit="kg/m2" /> 120 <field id="col_cl" 121 long_name="Column density of Cl" 122 unit="kg/m2" /> 123 <field id="col_clo" 124 long_name="Column density of ClO" 125 unit="kg/m2" /> 126 <field id="col_cl2" 127 long_name="Column density of Cl2" 128 unit="kg/m2" /> 129 <field id="col_hcl" 130 long_name="Column density of HCl" 131 unit="kg/m2" /> 132 <field id="col_hocl" 133 long_name="Column density of HOCl" 134 unit="kg/m2" /> 135 <field id="col_clco" 136 long_name="Column density of ClCO" 137 unit="kg/m2" /> 138 <field id="col_clco3" 139 long_name="Column density of ClCO3" 140 unit="kg/m2" /> 141 <field id="col_cocl2" 142 long_name="Column density of COCl2" 143 unit="kg/m2" /> 144 <field id="col_s" 145 long_name="Column density of S" 146 unit="kg/m2" /> 147 <field id="col_so" 148 long_name="Column density of SO" 149 unit="kg/m2" /> 150 <field id="col_so2" 151 long_name="Column density of SO2" 152 unit="kg/m2" /> 153 <field id="col_so3" 154 long_name="Column density of SO3" 155 unit="kg/m2" /> 156 <field id="col_s2o2" 157 long_name="Column density of S2O2" 158 unit="kg/m2" /> 159 <field id="col_ocs" 160 long_name="Column density of OCS" 161 unit="kg/m2" /> 162 <field id="col_hso3" 163 long_name="Column density of HSO3" 164 unit="kg/m2" /> 165 <field id="col_h2so4" 166 long_name="Column density of H2SO4" 167 unit="kg/m2" /> 168 <field id="col_s2" 169 long_name="Column density of S2" 170 unit="kg/m2" /> 171 <field id="col_clso2" 172 long_name="Column density of ClSO2" 173 unit="kg/m2" /> 174 <field id="col_oscl" 175 long_name="Column density of OSCl" 176 unit="kg/m2" /> 177 <field id="col_n2" 178 long_name="Column density of N2" 179 unit="kg/m2" /> 180 <field id="col_he" 181 long_name="Column density of He" 182 unit="kg/m2" /> 81 183 </field_group> 82 184 … … 101 203 long_name="Vertical wind" 102 204 unit="Pa/s" /> 103 <field id="vitwz"205 <field id="vitwz" 104 206 long_name="Vertical wind (m/s)" 105 207 unit="m/s" /> -
trunk/LMDZ.VENUS/deftank/context_lmdz_physics-notrac.xml
r2560 r2580 79 79 long_name="IR rad. at surface" 80 80 unit="W/m2" /> 81 <field id="col_co2" 82 long_name="Column density of CO2" 83 unit="kg/m2" /> 84 <field id="col_co" 85 long_name="Column density of CO" 86 unit="kg/m2" /> 87 <field id="col_h2" 88 long_name="Column density of H2" 89 unit="kg/m2" /> 90 <field id="col_h2o" 91 long_name="Column density of H2O" 92 unit="kg/m2" /> 93 <field id="col_o1d" 94 long_name="Column density of O(1D)" 95 unit="kg/m2" /> 96 <field id="col_o" 97 long_name="Column density of O" 98 unit="kg/m2" /> 99 <field id="col_o2" 100 long_name="Column density of O2" 101 unit="kg/m2" /> 102 <field id="col_o2dg" 103 long_name="Column density of O2(DG)" 104 unit="kg/m2" /> 105 <field id="col_o3" 106 long_name="Column density of O3" 107 unit="kg/m2" /> 108 <field id="col_h" 109 long_name="Column density of H" 110 unit="kg/m2" /> 111 <field id="col_oh" 112 long_name="Column density of OH" 113 unit="kg/m2" /> 114 <field id="col_ho2" 115 long_name="Column density of HO2" 116 unit="kg/m2" /> 117 <field id="col_h2o2" 118 long_name="Column density of H2O2" 119 unit="kg/m2" /> 120 <field id="col_cl" 121 long_name="Column density of Cl" 122 unit="kg/m2" /> 123 <field id="col_clo" 124 long_name="Column density of ClO" 125 unit="kg/m2" /> 126 <field id="col_cl2" 127 long_name="Column density of Cl2" 128 unit="kg/m2" /> 129 <field id="col_hcl" 130 long_name="Column density of HCl" 131 unit="kg/m2" /> 132 <field id="col_hocl" 133 long_name="Column density of HOCl" 134 unit="kg/m2" /> 135 <field id="col_clco" 136 long_name="Column density of ClCO" 137 unit="kg/m2" /> 138 <field id="col_clco3" 139 long_name="Column density of ClCO3" 140 unit="kg/m2" /> 141 <field id="col_cocl2" 142 long_name="Column density of COCl2" 143 unit="kg/m2" /> 144 <field id="col_s" 145 long_name="Column density of S" 146 unit="kg/m2" /> 147 <field id="col_so" 148 long_name="Column density of SO" 149 unit="kg/m2" /> 150 <field id="col_so2" 151 long_name="Column density of SO2" 152 unit="kg/m2" /> 153 <field id="col_so3" 154 long_name="Column density of SO3" 155 unit="kg/m2" /> 156 <field id="col_s2o2" 157 long_name="Column density of S2O2" 158 unit="kg/m2" /> 159 <field id="col_ocs" 160 long_name="Column density of OCS" 161 unit="kg/m2" /> 162 <field id="col_hso3" 163 long_name="Column density of HSO3" 164 unit="kg/m2" /> 165 <field id="col_h2so4" 166 long_name="Column density of H2SO4" 167 unit="kg/m2" /> 168 <field id="col_s2" 169 long_name="Column density of S2" 170 unit="kg/m2" /> 171 <field id="col_clso2" 172 long_name="Column density of ClSO2" 173 unit="kg/m2" /> 174 <field id="col_oscl" 175 long_name="Column density of OSCl" 176 unit="kg/m2" /> 177 <field id="col_n2" 178 long_name="Column density of N2" 179 unit="kg/m2" /> 180 <field id="col_he" 181 long_name="Column density of He" 182 unit="kg/m2" /> 81 183 </field_group> 82 184 … … 101 203 long_name="Vertical wind" 102 204 unit="Pa/s" /> 103 <field id="vitwz"205 <field id="vitwz" 104 206 long_name="Vertical wind (m/s)" 105 207 unit="m/s" /> -
trunk/LMDZ.VENUS/deftank/context_lmdz_physics.xml
r2560 r2580 79 79 long_name="IR rad. at surface" 80 80 unit="W/m2" /> 81 <field id="col_co2" 82 long_name="Column density of CO2" 83 unit="kg/m2" /> 84 <field id="col_co" 85 long_name="Column density of CO" 86 unit="kg/m2" /> 87 <field id="col_h2" 88 long_name="Column density of H2" 89 unit="kg/m2" /> 90 <field id="col_h2o" 91 long_name="Column density of H2O" 92 unit="kg/m2" /> 93 <field id="col_o1d" 94 long_name="Column density of O(1D)" 95 unit="kg/m2" /> 96 <field id="col_o" 97 long_name="Column density of O" 98 unit="kg/m2" /> 99 <field id="col_o2" 100 long_name="Column density of O2" 101 unit="kg/m2" /> 102 <field id="col_o2dg" 103 long_name="Column density of O2(DG)" 104 unit="kg/m2" /> 105 <field id="col_o3" 106 long_name="Column density of O3" 107 unit="kg/m2" /> 108 <field id="col_h" 109 long_name="Column density of H" 110 unit="kg/m2" /> 111 <field id="col_oh" 112 long_name="Column density of OH" 113 unit="kg/m2" /> 114 <field id="col_ho2" 115 long_name="Column density of HO2" 116 unit="kg/m2" /> 117 <field id="col_h2o2" 118 long_name="Column density of H2O2" 119 unit="kg/m2" /> 120 <field id="col_cl" 121 long_name="Column density of Cl" 122 unit="kg/m2" /> 123 <field id="col_clo" 124 long_name="Column density of ClO" 125 unit="kg/m2" /> 126 <field id="col_cl2" 127 long_name="Column density of Cl2" 128 unit="kg/m2" /> 129 <field id="col_hcl" 130 long_name="Column density of HCl" 131 unit="kg/m2" /> 132 <field id="col_hocl" 133 long_name="Column density of HOCl" 134 unit="kg/m2" /> 135 <field id="col_clco" 136 long_name="Column density of ClCO" 137 unit="kg/m2" /> 138 <field id="col_clco3" 139 long_name="Column density of ClCO3" 140 unit="kg/m2" /> 141 <field id="col_cocl2" 142 long_name="Column density of COCl2" 143 unit="kg/m2" /> 144 <field id="col_s" 145 long_name="Column density of S" 146 unit="kg/m2" /> 147 <field id="col_so" 148 long_name="Column density of SO" 149 unit="kg/m2" /> 150 <field id="col_so2" 151 long_name="Column density of SO2" 152 unit="kg/m2" /> 153 <field id="col_so3" 154 long_name="Column density of SO3" 155 unit="kg/m2" /> 156 <field id="col_s2o2" 157 long_name="Column density of S2O2" 158 unit="kg/m2" /> 159 <field id="col_ocs" 160 long_name="Column density of OCS" 161 unit="kg/m2" /> 162 <field id="col_hso3" 163 long_name="Column density of HSO3" 164 unit="kg/m2" /> 165 <field id="col_h2so4" 166 long_name="Column density of H2SO4" 167 unit="kg/m2" /> 168 <field id="col_s2" 169 long_name="Column density of S2" 170 unit="kg/m2" /> 171 <field id="col_clso2" 172 long_name="Column density of ClSO2" 173 unit="kg/m2" /> 174 <field id="col_oscl" 175 long_name="Column density of OSCl" 176 unit="kg/m2" /> 177 <field id="col_n2" 178 long_name="Column density of N2" 179 unit="kg/m2" /> 180 <field id="col_he" 181 long_name="Column density of He" 182 unit="kg/m2" /> 81 183 </field_group> 82 184 … … 101 203 long_name="Vertical wind" 102 204 unit="Pa/s" /> 103 <field id="vitwz"205 <field id="vitwz" 104 206 long_name="Vertical wind (m/s)" 105 207 unit="m/s" /> -
trunk/LMDZ.VENUS/deftank/physiq-96x96x50-chemistry.def
r2560 r2580 97 97 ## Thermospheric options 98 98 ##~~~~~~~~~~~~~~~~~~~~~~ 99 ## Tuning of photochemistry for oxygen production ? 100 tuneupperatm = n 101 99 102 #Method to include solar variability? 100 103 #0-> Old method 1-> Variability with E10.7 as observed 101 104 solvarmod=0 102 105 103 ## (Solar min= 1996.4 ave=1993.4 max=1990.6) ; Only used if solvarmod=0104 solarcondate = 1993.4 106 ## (Solar min=70 ave=140 max=300) 107 fixed_euv_value = 140. 105 108 106 109 # value for the UV heating efficiency 107 110 ##(experimental values between 0.19 and 0.23, lower values may 108 111 ## be used to compensate for low 15 um cooling) 109 euveff = 0.2 1112 euveff = 0.20 110 113 # 111 114 # -
trunk/LMDZ.VENUS/deftank/physiq-96x96x50-notrac.def
r2560 r2580 97 97 ## Thermospheric options 98 98 ##~~~~~~~~~~~~~~~~~~~~~~ 99 ## Tuning of photochemistry for oxygen production ? 100 tuneupperatm = n 101 99 102 #Method to include solar variability? 100 103 #0-> Old method 1-> Variability with E10.7 as observed 101 104 solvarmod=0 102 105 103 ## (Solar min= 1996.4 ave=1993.4 max=1990.6) ; Only used if solvarmod=0104 solarcondate = 1993.4 106 ## (Solar min=70 ave=140 max=300) 107 fixed_euv_value = 140. 105 108 106 109 # value for the UV heating efficiency 107 110 ##(experimental values between 0.19 and 0.23, lower values may 108 111 ## be used to compensate for low 15 um cooling) 109 euveff = 0.2 1112 euveff = 0.20 110 113 # 111 114 # -
trunk/LMDZ.VENUS/deftank/physiq-96x96x78-chemistry.def
r2560 r2580 91 91 callnirco2=y 92 92 ##CO2 IR Absorption model 93 nircorr= 193 nircorr=0 94 94 ##include thermosphere or not 95 95 callthermos=y … … 97 97 ## Thermospheric options 98 98 ##~~~~~~~~~~~~~~~~~~~~~~ 99 ## Tuning of photochemistry for oxygen production ? 100 tuneupperatm = y 101 99 102 #Method to include solar variability? 100 103 #0-> Old method 1-> Variability with E10.7 as observed 101 104 solvarmod=0 102 105 103 ## (Solar min= 80 ave=140 max=300)106 ## (Solar min=70 ave=140 max=300) 104 107 fixed_euv_value = 140. 105 108 -
trunk/LMDZ.VENUS/deftank/physiq-96x96x90-chemistry.def
r2560 r2580 91 91 callnirco2=y 92 92 ##CO2 IR Absorption model 93 nircorr= 193 nircorr=0 94 94 ##include thermosphere or not 95 95 callthermos=y … … 97 97 ## Thermospheric options 98 98 ##~~~~~~~~~~~~~~~~~~~~~~ 99 ## Tuning of photochemistry for oxygen production ? 100 tuneupperatm = y 101 99 102 #Method to include solar variability? 100 103 #0-> Old method 1-> Variability with E10.7 as observed 101 104 solvarmod=0 102 105 103 ## (Solar min= 80 ave=140 max=300)106 ## (Solar min=70 ave=140 max=300) 104 107 fixed_euv_value = 140. 105 108 … … 107 110 ##(experimental values between 0.19 and 0.23, lower values may 108 111 ## be used to compensate for low 15 um cooling) 109 euveff = 0.2 1112 euveff = 0.20 110 113 # 111 114 # -
trunk/LMDZ.VENUS/deftank/physiq.def
r2560 r2580 97 97 ## Thermospheric options 98 98 ##~~~~~~~~~~~~~~~~~~~~~~ 99 ## Tuning of photochemistry for oxygen production ? 100 tuneupperatm = n 101 99 102 #Method to include solar variability? 100 103 #0-> Old method 1-> Variability with E10.7 as observed 101 104 solvarmod=0 102 105 103 ## (Solar min= 1996.4 ave=1993.4 max=1990.6) ; Only used if solvarmod=0104 solarcondate = 1993.4 106 ## (Solar min=70 ave=140 max=300) 107 fixed_euv_value = 140. 105 108 106 109 # value for the UV heating efficiency 107 110 ##(experimental values between 0.19 and 0.23, lower values may 108 111 ## be used to compensate for low 15 um cooling) 109 euveff = 0.2 1112 euveff = 0.20 110 113 # 111 114 # -
trunk/LMDZ.VENUS/libf/phyvenus/blendrad.F
r1530 r2580 36 36 integer l, ig 37 37 real alpha, alpha2 38 real, parameter :: p_lowup = 1 0.e238 real, parameter :: p_lowup = 1.e3 39 39 40 40 c -
trunk/LMDZ.VENUS/libf/phyvenus/clesphys.h
r2560 r2580 10 10 LOGICAL cycle_diurne,soil_model 11 11 LOGICAL ok_orodr,ok_orolf,ok_gw_nonoro 12 LOGICAL ok_kzmin 12 LOGICAL ok_kzmin,tuneupperatm 13 13 LOGICAL callnlte,callnirco2,callthermos 14 14 LOGICAL ok_cloud, ok_chem, reinit_trac, ok_sedim … … 27 27 COMMON/clesphys_l/ cycle_diurne, soil_model, & 28 28 & ok_orodr, ok_orolf, ok_gw_nonoro, ok_kzmin, & 29 & callnlte,callnirco2,callthermos,&29 & tuneupperatm,callnlte,callnirco2,callthermos, & 30 30 & ok_cloud, ok_chem, reinit_trac, ok_sedim, & 31 31 & ok_clmain, physideal, startphy_file -
trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90
r2560 r2580 472 472 !Config Key = euveff 473 473 !Config Desc = 474 !Config Def = 0.2 1475 !Config Help = 476 ! 477 euveff = 0.2 1474 !Config Def = 0.22 475 !Config Help = 476 ! 477 euveff = 0.22 478 478 call getin('euveff',euveff) 479 480 !Config Key = tuneupperatm 481 !Config Desc = 482 !Config Def = .false. 483 !Config Help = 484 ! 485 tuneupperatm = .false. 486 call getin('tuneupperatm',tuneupperatm) 479 487 480 488 ! … … 538 546 write(lunout,*)' fixed_euv_value = ',fixed_euv_value 539 547 write(lunout,*)' euveff = ',euveff 548 write(lunout,*)' tuneupperatm = ',tuneupperatm 540 549 541 550 end subroutine conf_phys -
trunk/LMDZ.VENUS/libf/phyvenus/nirco2abs.F
r2464 r2580 88 88 real ztim1,ztim2,ztim3,step 89 89 90 logical onepeak 91 parameter (onepeak=.false.) 92 c parameter (onepeak=.true.) 90 93 c 91 94 c local saved variables … … 95 98 integer,save :: io=0 ! index of "o" tracer 96 99 100 ccc================================================= 97 101 cccc parameters for CO2 heating fit 98 c 102 ccc================================================= 103 104 c-------------------------------------------------- 105 c One-peak martian-type fit => Gabriella (2014+) 106 c-------------------------------------------------- 99 107 c n_a = heating rate for Venusian day at p0, r0, mu =0 [K day-1] 100 108 c Here p0 = p_cloud top [Pa] … … 104 112 real n_a, n_p0, n_b, p_ctop 105 113 106 107 cc "Nominal" values used in Gilli+2'17 114 cc "Nominal" values used in Gilli+2017 108 115 c parameter (n_a = 18.13/86400.0) !c K/Eday ---> K/sec 109 116 c parameter (p_ctop=13.2e2) … … 111 118 112 119 cc "New" values used to improve SPICAV/SOIR Temperature comparision (D.Quirino) 120 cc Gilli+2021 113 121 parameter (n_a = 15.92/86400.0) !c K/Eday ---> K/sec 114 122 parameter (p_ctop=19.85e2) … … 119 127 C parameter (n_p0=0.01) 120 128 c parameter (n_b = 1.3) 121 129 130 c-------------------------------------------------- 131 c Multi-peaks Roldan-type fit => Laura (2013) 132 c New paramaters (Param9*0.5) => Enora (2021) 133 c-------------------------------------------------- 134 c ENORA FINE TUNING used for VCD 1.1 135 c (fit to fig 12 Roldan-2000) 136 real n_coFB, n_aFB, n_bFB, n_p0FB, n_eFB 137 real n_coISO, n_aISO, n_bISO, n_p0ISO, n_eISO 138 real n_coFH, n_aFH, n_bFH, n_p0FH, n_eFH 139 real n_co43, n_a43, n_b43, n_p043, n_e43 140 real n_co43b, n_a43b, n_b43b, n_p043b, n_e43b 141 real n_conir, n_anir, n_bnir, n_p0nir, n_enir 142 143 parameter (n_coFB=119./86400.0) !c K/Eday ---> K/sec 144 parameter (n_aFB=0.185) 145 parameter (n_bFB=3.7) 146 parameter (n_p0FB=2.9e-4) 147 parameter (n_eFB=0.76) 148 149 parameter (n_coISO=265./86400.0) !c K/Eday ---> K/sec 150 parameter (n_aISO=0.313) 151 parameter (n_bISO=1.65) 152 parameter (n_p0ISO=0.076) 153 parameter (n_eISO=0.99) 154 155 parameter (n_coFH=2.5/86400.0) !c K/Eday ---> K/sec 156 parameter (n_aFH=3.98) 157 parameter (n_bFH=2.9) 158 parameter (n_p0FH=0.17) 159 parameter (n_eFH=2.16) 160 161 parameter (n_co43=55./86400.0) !c K/Eday ---> K/sec 162 parameter (n_a43=0.625) 163 parameter (n_b43=2.6) 164 parameter (n_p043=0.043) 165 parameter (n_e43=1.654) 166 167 ! parameter (n_co43b=100./86400.0) !c K/Eday ---> K/sec 168 ! => fine tuning: not affected by the *0.5 below (see ENORA FINE TUNING) 169 parameter (n_co43b=200./86400.0) !c K/Eday ---> K/sec 170 parameter (n_a43b=5.5) 171 parameter (n_b43b=2.3) 172 parameter (n_p043b=1.) 173 parameter (n_e43b=0.4) 174 175 parameter (n_conir=6.5/86400.0) !c K/Eday ---> K/sec 176 parameter (n_anir=35.65) 177 parameter (n_bnir=2.1) 178 parameter (n_p0nir=0.046) 179 parameter (n_enir=0.9) 180 181 real :: picFB(nlon,nlev), picISO(nlon,nlev), picFH(nlon,nlev) 182 real :: pic43(nlon,nlev), pic43b(nlon,nlev), picnir(nlon,nlev) 183 184 ccc================================================= 122 185 123 186 c Variables added to implement NLTE correction factor (feb 2011) … … 126 189 real p2011,cociente1,merge 127 190 real cor0,oco2gcm 128 !!!! 129 c real :: pic27(nlon,nlev), pic27b(nlon,nlev) 130 c real :: pic43(nlon,nlev), picnir(nlon,nlev) 131 132 c co2heat is the heating by CO2 at p_ctop=13.2e2 for a zero zenithal angle. 133 134 co2heat0=n_a*(0.72/dist_sol)**2 135 136 CCCCCC TEST: reduce by X% nir Heating 137 c co2heat0 = co2heat0 * 0.8 138 139 c---------------------------------------------------------------------- 140 191 192 c---------------------------------------------------------------------- 141 193 c Initialisation 142 194 c -------------- … … 159 211 firstcall=.false. 160 212 endif 161 162 213 c -------------- 214 c co2heat0 is correction for dist_sol (is 1 for Venus) 215 co2heat0=(0.7233/dist_sol)**2 216 217 pdtnirco2(:,:)=0. 218 c---------------------------------------------------------------------- 219 163 220 c 164 221 c Simple calcul for a given sun incident angle (if cycle_diurne=T) … … 170 227 zmu(ig)=sqrt(1224.*mu0(ig)*mu0(ig)+1.)/35. 171 228 172 229 c--------------------------- 230 if (onepeak) then 231 c--------------------------- 173 232 if(nircorr.eq.1) then 174 233 do l=1,nlev 175 234 pyy(l)=nplay(ig,l) 176 235 enddo 177 178 236 call interpnir(cor1,pyy,nlev,corgcm,pres1d,npres) 179 237 call interpnir(oldoco2,pyy,nlev,oco21d,pres1d,npres) 180 238 call interpnir(alfa2,pyy,nlev,alfa,pres1d,npres) 181 182 239 endif 183 184 240 do l=1,nlev 185 186 241 c Calculations for the O/CO2 correction 187 242 if(nircorr.eq.1) then … … 213 268 214 269 if(fract(ig).gt.0.) pdtnirco2(ig,l)= 215 & co2heat0* sqrt((p_ctop*zmu(ig))/nplay(ig,l))270 & co2heat0*n_a*sqrt((p_ctop*zmu(ig))/nplay(ig,l)) 216 271 & /(1.+n_p0/nplay(ig,l))**n_b 217 272 c Corrections from tabulation 218 273 $ * cor1(l) * p2011 219 274 220 enddo 221 enddo 222 275 enddo !nlev 276 c--------------------------- 277 else ! multipeak 278 c--------------------------- 279 do l=1,nlev 280 if(fract(ig).gt.0.) then 281 picFB(ig,l)=n_coFB 282 & *((n_aFB/nplay(ig,l))**n_eFB) 283 & *zmu(ig)**0.82 284 & /(1.+n_p0FB/nplay(ig,l))**n_bFB 285 286 picISO(ig,l)=n_coISO 287 & *((n_aISO/nplay(ig,l))**n_eISO) 288 & *zmu(ig)**0.55 289 & /(1.+n_p0ISO/nplay(ig,l))**n_bISO 290 291 picFH(ig,l)=n_coFH 292 & *((n_aFH/nplay(ig,l))**n_eFH) 293 & *zmu(ig)**0.55 294 & /(1.+n_p0FH/nplay(ig,l))**n_bFH 295 296 pic43(ig,l)=n_co43 297 & *((n_a43/nplay(ig,l))**n_e43) 298 & *zmu(ig)**0.55 299 & /(1.+n_p043/nplay(ig,l))**n_b43 300 301 pic43b(ig,l)=n_co43b 302 & *((n_a43b/nplay(ig,l))**n_e43b) 303 & *zmu(ig)**0.55 304 & /(1.+n_p043b/nplay(ig,l))**n_b43b 305 306 picnir(ig,l)=n_conir 307 & *((n_anir/nplay(ig,l))**n_enir) 308 & *zmu(ig)**0.55 309 & /(1.+n_p0nir/nplay(ig,l))**n_bnir 310 311 pdtnirco2(ig,l)=co2heat0* 312 & (picFB(ig,l)+picISO(ig,l)+picFH(ig,l)+pic43(ig,l) 313 & +pic43b(ig,l)+picnir(ig,l))*0.5 ! *0.5 = ENORA FINE TUNING 314 315 endif 316 enddo !nlev 317 c--------------------------- 318 endif 319 c--------------------------- 320 enddo !nlon 321 322 223 323 c Averaging over diurnal cycle (if diurnal=F) 224 324 c ------------------------------------------- … … 237 337 & mu0_int,fract_int) 238 338 239 339 do ig=1,nlon 240 340 zmu(ig)=sqrt(1224.*mu0_int(ig)*mu0_int(ig)+1.)/35. 241 341 242 if(nircorr.eq.1) then 243 do l=1,nlev 244 pyy(l)=nplay(ig,l) 245 enddo 246 call interpnir(cor1,pyy,nlev,corgcm,pres1d,npres) 247 call interpnir(oldoco2,pyy,nlev,oco21d,pres1d,npres) 248 call interpnir(alfa2,pyy,nlev,alfa,pres1d,npres) 249 endif 250 c 251 342 c--------------------------- 343 if (onepeak) then 344 c--------------------------- 345 if(nircorr.eq.1) then 252 346 do l=1,nlev 347 pyy(l)=nplay(ig,l) 348 enddo 349 call interpnir(cor1,pyy,nlev,corgcm,pres1d,npres) 350 call interpnir(oldoco2,pyy,nlev,oco21d,pres1d,npres) 351 call interpnir(alfa2,pyy,nlev,alfa,pres1d,npres) 352 endif 353 do l=1,nlev 253 354 c Calculations for the O/CO2 correction 254 355 if(nircorr.eq.1) then 255 356 cor0=1./(1.+n_p0/nplay(ig,l))**n_b 256 oco2gcm=pq(ig,l,io)/pq(ig,l,ico2) 357 if(pq(ig,l,ico2) .gt. 1.e-6) then 358 oco2gcm=pq(ig,l,io)/pq(ig,l,ico2) 359 ! handle the rare cases when pq(ig,l,io)<0 360 if (pq(ig,l,io).lt.0) then 361 write(*,*) "nirco2abs: warning ig=",ig," l=",l, 362 & " pq(ig,l,io)=",pq(ig,l,io) 363 oco2gcm=1.e6 364 endif 365 else 366 oco2gcm=1.e6 367 endif 257 368 cociente1=oco2gcm/oldoco2(l) 369 370 c WRITE(*,*) "nirco2abs line 211", l, cociente1 371 258 372 merge=alog10(cociente1)*alfa2(l)+alog10(cor0)* 259 373 $ (1.-alfa2(l)) … … 266 380 endif 267 381 268 if(fract_int(ig).gt.0.) pdtnirco2(ig,l)=382 if(fract(ig).gt.0.) pdtnirco2(ig,l)= 269 383 & pdtnirco2(ig,l) + (1/float(nstep))* 270 & co2heat0*sqrt((p_ctop*zmu(ig))/nplay(ig,l)) 271 & /(1.+n_p0/nplay(ig,l))**n_b 272 ! Corrections from tabulation 273 $ * cor1(l) * p2011 274 275 enddo 276 enddo 277 end do 384 & co2heat0*n_a*sqrt((p_ctop*zmu(ig))/nplay(ig,l)) 385 & /(1.+n_p0/nplay(ig,l))**n_b 386 c Corrections from tabulation 387 $ * cor1(l) * p2011 388 389 enddo !nlev 390 c--------------------------- 391 else ! multipeak 392 c--------------------------- 393 do l=1,nlev 394 if(fract(ig).gt.0.) then 395 picFB(ig,l)=n_coFB 396 & *((n_aFB/nplay(ig,l))**n_eFB) 397 & *zmu(ig)**0.82 398 & /(1.+n_p0FB/nplay(ig,l))**n_bFB 399 400 picISO(ig,l)=n_coISO 401 & *((n_aISO/nplay(ig,l))**n_eISO) 402 & *zmu(ig)**0.55 403 & /(1.+n_p0ISO/nplay(ig,l))**n_bISO 404 405 picFH(ig,l)=n_coFH 406 & *((n_aFH/nplay(ig,l))**n_eFH) 407 & *zmu(ig)**0.55 408 & /(1.+n_p0FH/nplay(ig,l))**n_bFH 409 410 pic43(ig,l)=n_co43 411 & *((n_a43/nplay(ig,l))**n_e43) 412 & *zmu(ig)**0.55 413 & /(1.+n_p043/nplay(ig,l))**n_b43 414 415 pic43b(ig,l)=n_co43b 416 & *((n_a43b/nplay(ig,l))**n_e43b) 417 & *zmu(ig)**0.55 418 & /(1.+n_p043b/nplay(ig,l))**n_b43b 419 420 picnir(ig,l)=n_conir 421 & *((n_anir/nplay(ig,l))**n_enir) 422 & *zmu(ig)**0.55 423 & /(1.+n_p0nir/nplay(ig,l))**n_bnir 424 425 pdtnirco2(ig,l)= 426 & pdtnirco2(ig,l)+(1/float(nstep))*co2heat0* 427 & (picFB(ig,l)+picISO(ig,l)+picFH(ig,l)+pic43(ig,l) 428 & +pic43b(ig,l)+picnir(ig,l))*0.5 ! *0.5 = ENORA FINE TUNING 429 430 endif 431 enddo !nlev 432 c--------------------------- 433 endif 434 c--------------------------- 435 enddo !nlon 436 enddo !nstep 278 437 279 280 END IF 438 END IF ! diurnal cycle 281 439 282 440 return -
trunk/LMDZ.VENUS/libf/phyvenus/nlte_setup.F
r2464 r2580 177 177 !! k19 & k20 178 178 179 c 179 c k20x = 3.d-12 180 180 c TEST GG: double the values of Kvv as recently found by Sharma et al.2014 181 181 c k20x = 6.d-12 182 182 c TEST GG: use the minimum value of the experimental bracket's values [1-6] 183 183 c k20x = 1.d-12 184 c-------------------- 185 ccc VCD 1.1 tuning 186 k20x = 5.d-12 187 c-------------------- 184 188 k20xc = k20x * rf20 185 189 k20xb = 2.d0 * k20xc -
trunk/LMDZ.VENUS/libf/phyvenus/photochemistry_venus.F90
r2464 r2580 1 subroutine photochemistry_venus(nz, n_lon, ptimestep, p, t, tr, mumean, sza_input, lon, lat, nesp, iter )1 subroutine photochemistry_venus(nz, n_lon, ptimestep, p, t, tr, mumean, sza_input, lon, lat, nesp, iter, prod_tr, loss_tr) 2 2 3 3 use chemparam_mod … … 26 26 27 27 real, dimension(nz,nesp) :: tr ! tracer mixing ratio 28 real, dimension(nz,nesp) :: prod_tr ! production (cm-3.s-1) 29 real, dimension(nz,nesp) :: loss_tr ! loss (cm-3.s-1) 28 30 29 31 !=================================================================== … … 86 88 ! production and loss terms (for first-guess solution only) 87 89 88 real, dimension(nesp) :: prod, loss 90 real, dimension(nesp) :: prod, loss, lossconc 89 91 90 92 ! indexes … … 170 172 ! first-guess: fill matrix 171 173 172 call fill_matrix(iz, mat1, prod, loss, c, nesp, nz,&174 call fill_matrix(iz, mat1, prod, loss, lossconc, c, nesp, nz, & 173 175 nb_reaction_3_max, nb_reaction_4_max, nb_phot_max, & 174 176 v_phot, v_3, v_4) … … 223 225 224 226 tr(iz,:) = max(c(iz,:)/conc(iz), 1.e-30) 227 228 ! save prod and loss espece 229 230 prod_tr(iz,:) = prod(:) 231 loss_tr(iz,:) = lossconc(:) 225 232 226 233 end do ! end of loop over vertical levels … … 1381 1388 1382 1389 implicit none 1390 #include "clesphys.h" 1383 1391 1384 1392 integer, INTENT(IN) :: nz … … 1547 1555 v_phot(:,ij) = j(:,ij) 1548 1556 end do 1557 1558 !!! TEST: artificial increase of CO2 photodissociation 1559 if (tuneupperatm) then 1560 !-- TuneA 1561 ! v_phot(65:78,4) = v_phot(65:78,4)*10. 1562 ! v_phot(60:64,4) = v_phot(60:64,4)*3. 1563 ! v_phot(55:59,3) = v_phot(55:59,3)*2. 1564 !-- 1565 !-- TuneB 1566 ! v_phot(65:78,4) = v_phot(65:78,4)*10. 1567 ! v_phot(55:59,3) = v_phot(55:59,3)*5. 1568 !-- 1569 !-- TuneC 1570 ! VCD 1.1 tuning 1571 v_phot(65:78,4) = v_phot(65:78,4)*10. 1572 v_phot(52:59,3) = v_phot(52:59,3)*5. 1573 !-- 1574 !-- TuneE 1575 ! VCD 2.0 tuning 1576 ! v_phot(65:90,4) = v_phot(65:90,4)*10. 1577 !-- 1578 ! v_phot(:,4) = v_phot(:,4)*10. 1579 !do ij=3,4 1580 ! v_phot(:,ij) = v_phot(:,ij)*10. 1581 !end do 1582 endif 1583 !!!!!!!!!!!!!!! 1549 1584 1550 1585 !PRINT*,'sza_input: ',sza_input … … 2862 2897 !====================================================================== 2863 2898 2864 subroutine fill_matrix(ilev, mat, prod, loss, c, nesp, nlayer,&2899 subroutine fill_matrix(ilev, mat, prod, loss, lossconc, c, nesp, nlayer, & 2865 2900 nb_reaction_3_max, nb_reaction_4_max, nb_phot_max, & 2866 2901 v_phot, v_3, v_4) … … 2894 2929 2895 2930 real, dimension(nesp,nesp), intent(out) :: mat ! matrix 2896 real, dimension(nesp), intent(out) :: prod, loss 2931 real, dimension(nesp), intent(out) :: prod, loss, lossconc 2897 2932 2898 2933 ! local … … 2911 2946 prod(:) = 0. 2912 2947 loss(:) = 0. 2948 lossconc(:) = 0. 2913 2949 2914 2950 ! photodissociations … … 2926 2962 mat(ind_phot_6,ind_phot_2) = mat(ind_phot_6,ind_phot_2) - indice_phot(iphot)%z5*v_phot(ilev,iphot) 2927 2963 2928 loss(ind_phot_2) = loss(ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot) 2929 prod(ind_phot_4) = prod(ind_phot_4) + indice_phot(iphot)%z3*v_phot(ilev,iphot)*c(ilev,ind_phot_2) 2930 prod(ind_phot_6) = prod(ind_phot_6) + indice_phot(iphot)%z5*v_phot(ilev,iphot)*c(ilev,ind_phot_2) 2964 loss(ind_phot_2) = loss(ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot) 2965 lossconc(ind_phot_2) = lossconc(ind_phot_2) + indice_phot(iphot)%z1*v_phot(ilev,iphot)*c(ilev,ind_phot_2) 2966 2967 prod(ind_phot_4) = prod(ind_phot_4) + indice_phot(iphot)%z3*v_phot(ilev,iphot)*c(ilev,ind_phot_2) 2968 prod(ind_phot_6) = prod(ind_phot_6) + indice_phot(iphot)%z5*v_phot(ilev,iphot)*c(ilev,ind_phot_2) 2931 2969 2932 2970 end do … … 2944 2982 mat(ind_3_6,ind_3_2) = mat(ind_3_6,ind_3_2) - indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2) 2945 2983 2946 loss(ind_3_2) = loss(ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2) 2947 prod(ind_3_4) = prod(ind_3_4) + indice_3(i3)%z3*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2) 2948 prod(ind_3_6) = prod(ind_3_6) + indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2) 2984 loss(ind_3_2) = loss(ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2) 2985 lossconc(ind_3_2) = lossconc(ind_3_2) + indice_3(i3)%z1*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2) 2986 2987 prod(ind_3_4) = prod(ind_3_4) + indice_3(i3)%z3*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2) 2988 prod(ind_3_6) = prod(ind_3_6) + indice_3(i3)%z5*v_3(ilev,i3)*c(ilev,ind_3_2)*c(ilev,ind_3_2) 2949 2989 2950 2990 end do … … 2974 3014 2975 3015 2976 loss(ind_4_2) = loss(ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*c(ilev,ind_4_4) 2977 loss(ind_4_4) = loss(ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*c(ilev,ind_4_2) 2978 prod(ind_4_6) = prod(ind_4_6) + indice_4(i4)%z5*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4) 2979 prod(ind_4_8) = prod(ind_4_8) + indice_4(i4)%z7*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4) 3016 loss(ind_4_2) = loss(ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*c(ilev,ind_4_4) 3017 lossconc(ind_4_2) = lossconc(ind_4_2) + indice_4(i4)%z1*v_4(ilev,i4)*c(ilev,ind_4_4)*c(ilev,ind_4_2) 3018 loss(ind_4_4) = loss(ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*c(ilev,ind_4_2) 3019 lossconc(ind_4_4) = lossconc(ind_4_4) + indice_4(i4)%z3*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4) 3020 3021 prod(ind_4_6) = prod(ind_4_6) + indice_4(i4)%z5*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4) 3022 prod(ind_4_8) = prod(ind_4_8) + indice_4(i4)%z7*v_4(ilev,i4)*c(ilev,ind_4_2)*c(ilev,ind_4_4) 2980 3023 2981 3024 end do -
trunk/LMDZ.VENUS/libf/phyvenus/phyetat0.F90
r2534 r2580 15 15 USE time_phylmdz_mod, only: itau_phy, raz_date, pdtphys 16 16 USE ioipsl_getin_p_mod, only: getin_p 17 use nonoro_gwd_ran_mod, only: du_nonoro_gwd, dv_nonoro_gwd, & 18 east_gwstress, west_gwstress 17 19 18 20 implicit none … … 365 367 PRINT*,'Turbulent Kinetic Energy', minval(q2), maxval(q2) 366 368 369 ! Non-orographic gravity waves 370 if (startphy_file) then 371 call get_field("du_nonoro_gwd",du_nonoro_gwd,found) 372 if (.not.found) then 373 write(*,*) "phyetat0: <du_nonoro_gwd> not in file" 374 du_nonoro_gwd(:,:)=0. 375 endif 376 endif ! of if (startphy_file) 377 if (startphy_file) then 378 call get_field("dv_nonoro_gwd",dv_nonoro_gwd,found) 379 if (.not.found) then 380 write(*,*) "phyetat0: <dv_nonoro_gwd> not in file" 381 dv_nonoro_gwd(:,:)=0. 382 endif 383 endif ! of if (startphy_file) 384 if (startphy_file) then 385 call get_field("east_gwstress",east_gwstress,found) 386 if (.not.found) then 387 write(*,*) "phyetat0: <east_gwstress> not in file" 388 east_gwstress(:,:)=0. 389 endif 390 endif ! of if (startphy_file) 391 if (startphy_file) then 392 call get_field("west_gwstress",west_gwstress,found) 393 if (.not.found) then 394 write(*,*) "phyetat0: <west_gwstress> not in file" 395 west_gwstress(:,:)=0. 396 endif 397 endif ! of if (startphy_file) 398 367 399 ! close file 368 400 IF (startphy_file) call close_startphy -
trunk/LMDZ.VENUS/libf/phyvenus/phyredem.F90
r2534 r2580 13 13 use geometry_mod, only: longitude_deg, latitude_deg 14 14 USE time_phylmdz_mod, only: day_end, annee_ref, itau_phy, raz_date 15 use nonoro_gwd_ran_mod, only: du_nonoro_gwd, dv_nonoro_gwd, & 16 east_gwstress, west_gwstress 15 17 16 18 implicit none … … 99 101 CALL put_field("TANCIEN","T Previous iteration",t_ancien) 100 102 103 ! Non-orographic gavity waves 104 if (ok_gw_nonoro) then 105 call put_field("du_nonoro_gwd","Zonal wind tendency due to GW",du_nonoro_gwd) 106 call put_field("dv_nonoro_gwd","Meridional wind tendency due to GW",dv_nonoro_gwd) 107 call put_field("east_gwstress","Eastward stress profile due to GW",east_gwstress) 108 call put_field("west_gwstress","Westward stress profile due to GW",west_gwstress) 109 endif 110 101 111 ! close file 102 112 -
trunk/LMDZ.VENUS/libf/phyvenus/phys_state_var_mod.F90
r2534 r2580 11 11 USE dimphy 12 12 USE turb_mod 13 use nonoro_gwd_ran_mod, only: ini_nonoro_gwd_ran, end_nonoro_gwd_ran 13 14 ! INTEGER, SAVE :: radpas 14 15 !!$OMP THREADPRIVATE(radpas) … … 173 174 ! allocate turb_mod module variables 174 175 CALL ini_turb_mod(klon,klev) 176 ! allocate arrays in "nonoro_gwd_ran_mod" 177 call ini_nonoro_gwd_ran(klon,klev) 175 178 176 179 END SUBROUTINE phys_state_var_init … … 212 215 ! deallocate turb_mod module variables 213 216 CALL end_turb_mod 217 ! deallocate arrays in "nonoro_gwd_ran_mod" 218 call end_nonoro_gwd_ran 214 219 215 220 END SUBROUTINE phys_state_var_end -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r2535 r2580 78 78 use vertical_layers_mod, only: pseudoalt 79 79 use turb_mod, only : sens, turb_resolved 80 use nonoro_gwd_ran_mod, only: nonoro_gwd_ran 80 81 use sed_and_prod_mad, only: aer_sedimentation, drop_sedimentation 81 82 #ifdef CPP_XIOS … … 362 363 c pour sorties 363 364 REAL :: col_dens_tr(klon,nqmax) 365 REAL,allocatable,save :: prod_tr(:,:,:) 366 REAL,allocatable,save :: loss_tr(:,:,:) 364 367 365 368 c pour ioipsl … … 402 405 c-jld ec_conser 403 406 407 c ALBEDO VARIATIONS (VCD) 408 REAL factAlb 404 409 c TEST VENUS... 405 410 REAL mang(klon,klev) ! moment cinetique … … 448 453 IF (debut) THEN 449 454 allocate(source(klon,nqmax)) 455 allocate(prod_tr(klon,klev,nqmax)) 456 allocate(loss_tr(klon,klev,nqmax)) 450 457 451 458 #ifdef CPP_XIOS … … 1067 1074 $ tr_seri, 1068 1075 $ d_tr_chem, 1069 $ iter) 1076 $ iter, 1077 $ prod_tr, 1078 $ loss_tr) 1070 1079 1071 1080 if (ok_sedim) then … … 1514 1523 endif 1515 1524 1516 c albedo variations: test for Yeon Joo Lee1525 c ALBEDO VARIATIONS: test for Yeon Joo Lee 1517 1526 c increment to increase it for 20 Vd => +80% 1518 1527 c heat(:,:)=heat(:,:)*(1.+0.80*((rjourvrai-356)+gmtime)/20.) 1519 1528 c or to decrease it for 20 Vd => 1/1.8 1520 1529 c heat(:,:)=heat(:,:)/(1.+0.80*((rjourvrai-356)+gmtime)/20.) 1530 1531 c ------------ ALBEDO VARIATIONS: scenarios for VCD 1532 c shape of relative variation from Lee et al 2019 (Fig 13b) 1533 c between 57 km (4e4 Pa) and 72 km (2.5e3 Pa), peak at 67 km (6e3 Pa) 1534 c do j=1,klev 1535 c factAlb = 0. 1536 c if ((presnivs(j).gt.6.e3).and.(presnivs(j).lt.4.e4)) then 1537 c factAlb = (log(presnivs(j))-log(4.e4))/(log(6.e3)-log(4.e4)) 1538 c elseif ((presnivs(j).lt.6.e3).and.(presnivs(j).gt.2.5e3)) then 1539 c factAlb = (log(presnivs(j))-log(2.5e3))/(log(6.e3)-log(2.5e3)) 1540 c endif 1541 c Increase by 50% (Minimum albedo) 1542 c heat(:,j)=heat(:,j)*(1+factAlb*0.5) 1543 c Decrease by 30% (Maximum albedo) 1544 c heat(:,j)=heat(:,j)*(1-factAlb*0.3) 1545 c enddo 1546 c ------------ END ALBEDO VARIATIONS 1521 1547 1522 1548 cc--------------------------------------------- … … 1784 1810 IF(ok_gw_nonoro) then 1785 1811 1812 ! Obsolete 1813 ! but used for VCD 1.1 1786 1814 call flott_gwd_ran(klon,klev,dtime,pplay,zn2, 1787 1815 e t_seri, u_seri, v_seri, paprs(klon/2+1,:), 1788 1816 o zustrhi,zvstrhi, 1789 1817 o d_t_hin, d_u_hin, d_v_hin) 1818 1819 ! New routine based on Generic 1820 ! used after VCD 1.1 1821 ! call nonoro_gwd_ran(klon,klev,dtime,pplay,zn2,presnivs, 1822 ! e t_seri, u_seri, v_seri, 1823 ! o zustrhi,zvstrhi, 1824 ! o d_t_hin, d_u_hin, d_v_hin) 1790 1825 1791 1826 c ajout des tendances … … 2065 2100 2066 2101 if (iflag_trac == 1) then 2102 2103 ! production and destruction rate, cm-3.s-1 2104 ! Beware of the context*.xml file !! 2105 ! if ((tr_scheme == 3) .and. (ok_chem)) THEN 2106 ! do iq = 1,nqmax - nmicro 2107 ! !if ((iq == i_co) .or. (iq == i_o)) then 2108 ! ! call send_xios_field('prod_'+tname(iq), prod_tr(:,:,iq)) 2109 ! ! call send_xios_field('loss_'+tname(iq), loss_tr(:,:,iq)) 2110 ! !end if 2111 ! if (iq == i_o) then 2112 ! call send_xios_field('prod_o', prod_tr(:,:,iq)) 2113 ! call send_xios_field('loss_o', loss_tr(:,:,iq)) 2114 ! end if 2115 ! if (iq == i_co) then 2116 ! call send_xios_field('prod_co', prod_tr(:,:,iq)) 2117 ! call send_xios_field('loss_co', loss_tr(:,:,iq)) 2118 ! end if 2119 ! end do 2120 ! end if 2067 2121 2068 2122 ! tracers in gas phase, volume mixing ratio -
trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F
r2523 r2580 12 12 $ trac, 13 13 $ d_tr_chem, 14 $ iter) 14 $ iter, 15 $ prod_tr, 16 $ loss_tr) 15 17 16 18 use chemparam_mod 17 19 use conc, only: mmean,rnew 20 #ifdef CPP_XIOS 21 use xios_output_mod, only: send_xios_field 22 #endif 18 23 19 24 implicit none … … 43 48 real, dimension(nlon,nlev,nqmax) :: d_tr_chem ! chemical tendency for each tracer 44 49 integer, dimension(nlon,nlev) :: iter ! chemical iterations 50 real, dimension(nlon,nlev,nqmax) :: prod_tr, loss_tr ! produc and loss tracer 45 51 46 52 !=================================================================== … … 61 67 real, dimension(nlon,nlev) :: trac_sum 62 68 real, dimension(nlon,nlev,nqmax) :: ztrac ! local tracer mixing ratio 63 69 64 70 !=================================================================== 65 71 ! first call : initialisations … … 271 277 $ ztrac(ilon,:,:), 272 278 $ mmean(ilon,:), 273 $ sza_local, 279 $ sza_local, 274 280 $ lon(ilon), lat(ilon), 275 $ nqmax, iter(ilon,:)) 276 277 end do 278 281 $ nqmax, iter(ilon,:), 282 $ prod_tr(ilon,:,:), 283 $ loss_tr(ilon,:,:)) 284 285 end do 279 286 end if ! ok_chem 280 287
Note: See TracChangeset
for help on using the changeset viewer.