Changeset 2196 for LMDZ5/branches/LMDZ5_SPLA
- Timestamp:
- Feb 6, 2015, 6:53:57 PM (10 years ago)
- Location:
- LMDZ5/branches/LMDZ5_SPLA/libf/phylmd
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/aeropt_spl.F
r2175 r2196 1 1 SUBROUTINE aeropt_spl(zdz, tr_seri, RHcl, 2 2 . id_prec, id_fine, id_coss, id_codu, id_scdu, 3 . ok_chimeredust, 3 4 . ztaue550,ztaue670,ztaue865, 4 5 . taue550_tr2,taue670_tr2,taue865_tr2, … … 23 24 REAL RHcl(klon,klev) ! humidite relativen ciel clair 24 25 INTEGER id_prec, id_fine, id_coss, id_codu, id_scdu 26 LOGICAL ok_chimeredust 25 27 c============================== OUTPUT ================================= 26 28 REAL ztaue550(klon) ! epaisseur optique aerosol 550 nm … … 47 49 INTEGER rh_int 48 50 PARAMETER (rh_int=12) 51 REAL auxreal 49 52 c REAL ss_a(nb_lambda,rh_int,nbtr-1) 50 53 c DATA ss_a/72*1./ … … 72 75 !JE20140915 DATA ss_dust/0.3188754,0.3430106,0.3829019/ !for bin 0.5-5um radius 73 76 !JE20140915 DATA ss_dustsco/8.0582686E-02,8.1255026E-02,8.1861295E-02/ !for bin 5-15um radius 74 DATA ss_dust/0.5167768,0.5684330,0.6531643/ !for bin 0.5-3um radius 75 DATA ss_dustsco/0.1003391,0.1012288,0.1024651/ !for bin 3-15um radius 77 78 ! DATA ss_dust/0.5167768,0.5684330,0.6531643/ !for bin 0.5-3um radius 79 ! DATA ss_dustsco/0.1003391,0.1012288,0.1024651/ !for bin 3-15um radius 76 80 77 81 … … 85 89 DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./ 86 90 c 91 IF (ok_chimeredust) THEN 92 ss_dust=(/0.5167768,0.5684330,0.6531643/) 93 ss_dustsco=(/0.1003391,0.1012288,0.1024651/) 94 ELSE 95 ss_dust=(/0.564, 0.614, 0.700/) 96 ss_dustsco=(/0.,0.,0./) 97 ENDIF 98 87 99 DO i=1, klon 88 100 ztaue550(i)=0.0 … … 106 118 DO k=1, klev 107 119 DO i=1, klon 108 c 120 c 109 121 rh=MIN(RHcl(i,k)*100.,RH_MAX) 110 122 RH_num = INT( rh/10. + 1.) … … 124 136 . ss_acc550(RH_num)) !--m2/g 125 137 cnhl_test TOTAL AOD 126 ztaue550(i)=ztaue550(i)+(alpha_acc*tr_seri(i,k,id_fine)+ 127 . ss_ssalt550(RH_num)*tr_seri(i,k,id_coss)+ 128 . ss_dust(1)*tr_seri(i,k,id_codu)+ 129 . ss_dustsco(1)*tr_seri(i,k,id_scdu) )*zdz(i,k)*1.e6 138 auxreal=0. 139 IF(id_fine>0) auxreal=auxreal+alpha_acc*tr_seri(i,k,id_fine) 140 IF(id_coss>0) auxreal=auxreal+ss_ssalt550(RH_num)* 141 . tr_seri(i,k,id_coss) 142 IF(id_codu>0) auxreal=auxreal+ss_dust(1)*tr_seri(i,k,id_codu) 143 IF(id_scdu>0) auxreal=auxreal+ss_dustsco(1)*tr_seri(i,k,id_scdu) 144 ztaue550(i)=ztaue550(i)+auxreal*zdz(i,k)*1.e6 145 146 !JE20150128 ztaue550(i)=ztaue550(i)+(alpha_acc*tr_seri(i,k,id_fine)+ 147 ! . ss_ssalt550(RH_num)*tr_seri(i,k,id_coss)+ 148 ! . ss_dust(1)*tr_seri(i,k,id_codu)+ 149 ! . ss_dustsco(1)*tr_seri(i,k,id_scdu) )*zdz(i,k)*1.e6 150 130 151 cnhl_test TOTAL AOD IS NOW AOD COARSE MODE ONLY 131 152 cnhl_test ztaue550(i)=ztaue550(i)+( … … 133 154 cnhl_test . ss_dust(1)*tr_seri(i,k,4))*zdz(i,k)*1.e6 134 155 135 taue550_tr2(i)=taue550_tr2(i)+alpha_acc*tr_seri(i,k,id_fine)*136 . 137 taue550_ss(i)=taue550_ss(i)+156 IF(id_fine>0) taue550_tr2(i)=taue550_tr2(i) 157 . + alpha_acc*tr_seri(i,k,id_fine)*zdz(i,k)*1.e6 158 IF(id_coss>0) taue550_ss(i)=taue550_ss(i)+ 138 159 . ss_ssalt550(RH_num)*tr_seri(i,k,id_coss)* 139 160 . zdz(i,k)*1.e6 140 taue550_dust(i)=taue550_dust(i)+ss_dust(1)*tr_seri(i,k,id_codu)* 141 . zdz(i,k)*1.e6 142 taue550_dustsco(i)=taue550_dustsco(i)+ 161 IF(id_codu>0) taue550_dust(i)=taue550_dust(i)+ 162 . ss_dust(1)*tr_seri(i,k,id_codu)* 163 . zdz(i,k)*1.e6 164 IF(id_scdu>0) taue550_dustsco(i)=taue550_dustsco(i)+ 143 165 . ss_dustsco(1)*tr_seri(i,k,id_scdu)* 144 166 . zdz(i,k)*1.e6 … … 151 173 alpha_acc=ss_acc670(RH_num) + DELTA*(ss_acc670(RH_num+1)- 152 174 . ss_acc670(RH_num)) !--m2/g 153 ztaue670(i)=ztaue670(i)+(alpha_acc*tr_seri(i,k,id_fine)+ 154 . ss_ssalt670(RH_num)*tr_seri(i,k,id_coss)+ 155 . ss_dust(2)*tr_seri(i,k,id_codu)+ 156 . ss_dustsco(2)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6 157 taue670_tr2(i)=taue670_tr2(i)+alpha_acc*tr_seri(i,k,id_fine)* 175 auxreal=0. 176 IF(id_fine>0) auxreal=auxreal+alpha_acc*tr_seri(i,k,id_fine) 177 IF(id_coss>0) auxreal=auxreal+ss_ssalt670(RH_num) 178 . *tr_seri(i,k,id_coss) 179 IF(id_codu>0) auxreal=auxreal+ss_dust(2)*tr_seri(i,k,id_codu) 180 IF(id_scdu>0) auxreal=auxreal+ss_dustsco(2)*tr_seri(i,k,id_scdu) 181 ztaue670(i)=ztaue670(i)+auxreal*zdz(i,k)*1.e6 182 183 !JE20150128 ztaue670(i)=ztaue670(i)+(alpha_acc*tr_seri(i,k,id_fine)+ 184 ! . ss_ssalt670(RH_num)*tr_seri(i,k,id_coss)+ 185 ! . ss_dust(2)*tr_seri(i,k,id_codu)+ 186 ! . ss_dustsco(2)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6 187 188 IF(id_fine>0) taue670_tr2(i)=taue670_tr2(i)+ 189 . alpha_acc*tr_seri(i,k,id_fine)* 158 190 . zdz(i,k)*1.e6 159 taue670_ss(i)=taue670_ss(i)+191 IF(id_coss>0) taue670_ss(i)=taue670_ss(i)+ 160 192 . ss_ssalt670(RH_num)*tr_seri(i,k,id_coss)* 161 193 . zdz(i,k)*1.e6 162 taue670_dust(i)=taue670_dust(i)+ss_dust(2)*tr_seri(i,k,id_codu)* 163 . zdz(i,k)*1.e6 164 taue670_dustsco(i)=taue550_dustsco(i)+ 194 IF(id_codu>0) taue670_dust(i)=taue670_dust(i) 195 . +ss_dust(2)*tr_seri(i,k,id_codu)* 196 . zdz(i,k)*1.e6 197 IF(id_scdu>0) taue670_dustsco(i)=taue550_dustsco(i)+ 165 198 . ss_dustsco(2)*tr_seri(i,k,id_scdu)* 166 199 . zdz(i,k)*1.e6 … … 171 204 alpha_acc=ss_acc865(RH_num) + DELTA*(ss_acc865(RH_num+1)- 172 205 . ss_acc865(RH_num)) !--m2/g 173 ztaue865(i)=ztaue865(i)+(alpha_acc*tr_seri(i,k,id_fine)+ 174 . ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)+ 175 . ss_dust(3)*tr_seri(i,k,id_codu)+ 176 . ss_dustsco(3)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6 177 taue865_tr2(i)=taue865_tr2(i)+alpha_acc*tr_seri(i,k,id_fine)* 206 auxreal=0. 207 IF(id_fine>0) auxreal=auxreal+alpha_acc*tr_seri(i,k,id_fine) 208 IF(id_coss>0) auxreal=auxreal 209 . +ss_ssalt865(RH_num)*tr_seri(i,k,id_coss) 210 IF(id_codu>0) auxreal=auxreal+ss_dust(3)*tr_seri(i,k,id_codu) 211 IF(id_scdu>0) auxreal=auxreal+ss_dustsco(3)*tr_seri(i,k,id_scdu) 212 ztaue865(i)=ztaue865(i)+auxreal*zdz(i,k)*1.e6 213 !JE20150128 ztaue865(i)=ztaue865(i)+(alpha_acc*tr_seri(i,k,id_fine)+ 214 ! . ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)+ 215 ! . ss_dust(3)*tr_seri(i,k,id_codu)+ 216 ! . ss_dustsco(3)*tr_seri(i,k,id_scdu))*zdz(i,k)*1.e6 217 IF(id_fine>0) taue865_tr2(i)=taue865_tr2(i) 218 . +alpha_acc*tr_seri(i,k,id_fine)* 178 219 . zdz(i,k)*1.e6 179 220 IF(id_coss>0) taue865_ss(i)=taue865_ss(i)+ 180 221 . ss_ssalt865(RH_num)*tr_seri(i,k,id_coss)* 181 222 . zdz(i,k)*1.e6 182 taue865_dust(i)=taue865_dust(i)+ss_dust(3)*tr_seri(i,k,id_codu)* 183 . zdz(i,k)*1.e6 184 taue865_dustsco(i)=taue550_dustsco(i)+ 223 IF(id_codu>0) taue865_dust(i)=taue865_dust(i) 224 . +ss_dust(3)*tr_seri(i,k,id_codu)* 225 . zdz(i,k)*1.e6 226 IF(id_scdu>0) taue865_dustsco(i)=taue550_dustsco(i)+ 185 227 . ss_dustsco(3)*tr_seri(i,k,id_scdu)* 186 228 . zdz(i,k)*1.e6 … … 188 230 189 231 c 190 burden_ss(i)=burden_ss(i)+tr_seri(i,k,id_coss)*1.e6*1.e3*zdz(i,k) 232 IF(id_coss>0) burden_ss(i)=burden_ss(i) 233 . +tr_seri(i,k,id_coss)*1.e6*1.e3*zdz(i,k) 191 234 ENDDO !-loop on klev 192 235 ENDDO !-loop on klon -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/coarsemission.F
r2175 r2196 18 18 . flux_sparam_ssfine,flux_sparam_sscoa, 19 19 . id_prec,id_fine,id_coss,id_codu,id_scdu, 20 . ok_chimeredust, 20 21 . source_tr,flux_tr) 21 22 ! . wth,cly,zprecipinsoil,lmt_sea_salt, … … 41 42 c============================== INPUT ================================== 42 43 INTEGER nbjour 44 LOGICAL ok_chimeredust 43 45 REAL pdtphys ! pas d'integration pour la physique (seconde) 44 46 REAL t_seri(klon,klev) ! temperature … … 133 135 134 136 c 137 IF (.NOT. ok_chimeredust) THEN 135 138 DO i=1, klon 136 139 !! IF (cly(i).GE.9990..OR.wth(i).GE.9990..OR. … … 154 157 ! flux_sparam_ddcoa(i)=scale_param_dustcoa(iregion_dust(i)) * 155 158 ! . dust_ec(i)*1.e3*0.905*1.e3 156 source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))* 157 . dust_ec(i)*1.e3*0.114 ! g/m2/s 158 source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))* 159 . dust_ec(i)*1.e3*0.108 ! g/m2/s bin 0.5-3um 160 source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))* 161 . dust_ec(i)*1.e3*0.778 ! g/m2/s bin 3-15um 162 ! Original line (4 tracers) 163 flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))* 164 . dust_ec(i)*1.e3*0.114*1.e3 !mg/m2/s 165 flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))* 166 . dust_ec(i)*1.e3*0.108*1.e3 !mg/m2/s bin 0.5-3um 167 flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))* 168 . dust_ec(i)*1.e3*0.778*1.e3 !mg/m2/s bin 0.5-3um 159 IF(id_fine>0) source_tr(i,id_fine)= 160 . scale_param_dustacc(iregion_dust(i))* 161 . dust_ec(i)*1.e3*0.093 ! g/m2/s 162 IF(id_codu>0) source_tr(i,id_codu)= 163 . scale_param_dustcoa(iregion_dust(i))* 164 . dust_ec(i)*1.e3*0.905 ! g/m2/s bin 0.5-10um 165 IF(id_scdu>0) source_tr(i,id_scdu)=0. ! no supercoarse 166 ! Original line (4 tracers) 167 IF(id_fine>0) flux_tr(i,id_fine)= 168 . scale_param_dustacc(iregion_dust(i))* 169 . dust_ec(i)*1.e3*0.093*1.e3 !mg/m2/s 170 IF(id_codu>0) flux_tr(i,id_codu)= 171 . scale_param_dustcoa(iregion_dust(i))* 172 . dust_ec(i)*1.e3*0.905*1.e3 !mg/m2/s bin 0.5-10um 173 IF(id_scdu>0) flux_tr(i,id_scdu)=0. 169 174 170 175 flux_sparam_ddfine(i)=scale_param_dustacc(iregion_dust(i)) * 171 . dust_ec(i)*1.e3*0. 114*1.e3176 . dust_ec(i)*1.e3*0.093*1.e3 172 177 flux_sparam_ddcoa(i)=scale_param_dustcoa(iregion_dust(i)) * 173 . dust_ec(i)*1.e3*0.108*1.e3 174 flux_sparam_ddsco(i)=scale_param_dustsco(iregion_dust(i)) * 175 . dust_ec(i)*1.e3*0.778*1.e3 176 ENDDO 177 178 . dust_ec(i)*1.e3*0.905*1.e3 179 flux_sparam_ddsco(i)=0. 180 ENDDO 181 ENDIF 178 182 !*****************NEW CHIMERE DUST EMISSION Sahara***** 179 183 ! je 20140522 180 IF( .TRUE.) THEN184 IF(ok_chimeredust) THEN 181 185 print *,'MIX- NEW SAHARA DUST SOURCE SCHEME...' 182 186 … … 195 199 DO i=1,klon 196 200 if (maskd(i).gt.0) then 197 source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))* 201 IF(id_fine>0) source_tr(i,id_fine)= 202 . scale_param_dustacc(iregion_dust(i))* 198 203 . dustsourceacc(i)*1.e3 ! g/m2/s bin 0.03-0.5 199 source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))* 204 IF(id_codu>0) source_tr(i,id_codu)= 205 . scale_param_dustcoa(iregion_dust(i))* 200 206 . dustsourcecoa(i)*1.e3 ! g/m2/s bin 0.5-3um 201 source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))* 207 IF(id_scdu>0) source_tr(i,id_scdu)= 208 . scale_param_dustsco(iregion_dust(i))* 202 209 . dustsourcesco(i)*1.e3 ! g/m2/s bin 3-15um 203 210 ! Original line (4 tracers) 204 flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))* 211 IF(id_fine>0) flux_tr(i,id_fine)= 212 . scale_param_dustacc(iregion_dust(i))* 205 213 . dustsourceacc(i)*1.e3*1.e3 !mg/m2/s 206 flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))* 214 IF(id_codu>0) flux_tr(i,id_codu)= 215 . scale_param_dustcoa(iregion_dust(i))* 207 216 . dustsourcecoa(i)*1.e3*1.e3 !mg/m2/s bin 0.5-3um 208 flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))* 217 IF(id_scdu>0) flux_tr(i,id_scdu)= 218 . scale_param_dustsco(iregion_dust(i))* 209 219 . dustsourcesco(i)*1.e3*1.e3 !mg/m2/s bin 3-15um 210 220 flux_sparam_ddfine(i)=scale_param_dustacc(iregion_dust(i)) * … … 215 225 . dustsourcesco(i)*1.e3*1.e3 216 226 else 217 source_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))* 227 IF(id_fine>0) source_tr(i,id_fine)= 228 . scale_param_dustacc(iregion_dust(i))* 218 229 . dust_ec(i)*1.e3*0.114 ! g/m2/s 219 source_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))* 230 IF(id_codu>0) source_tr(i,id_codu)= 231 . scale_param_dustcoa(iregion_dust(i))* 220 232 . dust_ec(i)*1.e3*0.108 ! g/m2/s bin 0.5-3um 221 source_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))* 233 IF(id_scdu>0) source_tr(i,id_scdu)= 234 . scale_param_dustsco(iregion_dust(i))* 222 235 . dust_ec(i)*1.e3*0.778 ! g/m2/s bin 3-15um 223 236 ! Original line (4 tracers) 224 flux_tr(i,id_fine)=scale_param_dustacc(iregion_dust(i))* 237 IF(id_fine>0) flux_tr(i,id_fine)= 238 . scale_param_dustacc(iregion_dust(i))* 225 239 . dust_ec(i)*1.e3*0.114*1.e3 !mg/m2/s 226 flux_tr(i,id_codu)=scale_param_dustcoa(iregion_dust(i))* 240 IF(id_codu>0) flux_tr(i,id_codu)= 241 . scale_param_dustcoa(iregion_dust(i))* 227 242 . dust_ec(i)*1.e3*0.108*1.e3 !mg/m2/s bin 0.5-3um 228 flux_tr(i,id_scdu)=scale_param_dustsco(iregion_dust(i))* 243 IF(id_scdu>0) flux_tr(i,id_scdu)= 244 . scale_param_dustsco(iregion_dust(i))* 229 245 . dust_ec(i)*1.e3*0.778*1.e3 !mg/m2/s bin 0.5-3um 230 246 … … 257 273 ENDDO 258 274 CALL minmaxsource(tmp_var2,qmin,qmax,'src: before SS emiss') 275 IF(id_coss>0) then 259 276 print *,'Source = ',SUM(source_tr(:,id_coss)), 260 277 . MINVAL(source_tr(:,id_coss)), MAXVAL(source_tr(:,id_coss)) 261 !ENDIF278 ENDIF 262 279 ! 263 280 DO i=1,klon 264 281 ! Original line (4 tracers) 265 source_tr(i,id_fine)=source_tr(i,id_fine)+scale_param_ssacc* 282 IF(id_fine>0) source_tr(i,id_fine)= 283 . source_tr(i,id_fine)+scale_param_ssacc* 266 284 . lmt_sea_salt(i,1)*1.e4 !g/m2/s 267 285 268 286 ! Original line (4 tracers) 269 flux_tr(i,id_fine)=flux_tr(i,id_fine)+scale_param_ssacc 287 IF(id_fine>0) flux_tr(i,id_fine)= 288 . flux_tr(i,id_fine)+scale_param_ssacc 270 289 . *lmt_sea_salt(i,1)*1.e4*1.e3 !mg/m2/s 271 290 ! 272 source_tr(i,id_coss)=scale_param_sscoa*lmt_sea_salt(i,2)*1.e4 !g/m2/s 273 flux_tr(i,id_coss)=scale_param_sscoa*lmt_sea_salt(i,2)*1.e4*1.e3 !mg/m2/s 291 IF(id_coss>0) source_tr(i,id_coss)= 292 . scale_param_sscoa*lmt_sea_salt(i,2)*1.e4 !g/m2/s 293 IF(id_coss>0) flux_tr(i,id_coss)= 294 . scale_param_sscoa*lmt_sea_salt(i,2)*1.e4*1.e3 !mg/m2/s 274 295 c 275 296 flux_sparam_ssfine(i)=scale_param_ssacc * … … 285 306 ENDDO 286 307 CALL minmaxsource(tmp_var2,qmin,qmax,'src: after SS emiss') 308 IF(id_coss>0) then 287 309 print *,'Source = ',SUM(source_tr(:,id_coss)), 288 310 . MINVAL(source_tr(:,id_coss)), MAXVAL(source_tr(:,id_coss)) 289 !ENDIF311 ENDIF 290 312 c 291 313 -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/dustemission_mod.F90
r2176 r2196 21 21 real , parameter :: dmax=0.2 22 22 integer, parameter :: nspe=nmode*3+1 23 real ,parameter :: vkarm=0.41 24 !JE20150202 : updating scheme to chimere13b <<< 25 ! original values 26 ! integer, parameter :: div1=3. 27 ! integer, parameter :: div2=3. 28 ! integer, parameter :: div3=3. 29 ! real , parameter :: e1=3.61/div1 30 ! real , parameter :: e2=3.52/div2 31 ! real , parameter :: e3=3.46/div3 32 ! real , parameter :: factorflux=10. 33 ! real , parameter :: rop=2.65 ! particle density g/m3 34 ! real , parameter :: roa=0.001227 ! air density g/m3 35 ! real , parameter :: pi=3.14159 !! 36 ! real , parameter :: gravity=981. !! cm!! 37 ! real , parameter :: cd=1.*roa/gravity 38 ! new values 39 ! logical, parameter :: ok_splatunning=.true. 40 ! Div=3 from S. Alfaro (Sow et al ACPD 2011) 41 !JE 20150206 23 42 integer, parameter :: div1=3. 24 43 integer, parameter :: div2=3. 25 44 integer, parameter :: div3=3. 26 27 real ,parameter :: vkarm=0.4128 45 real , parameter :: e1=3.61/div1 29 46 real , parameter :: e2=3.52/div2 30 47 real , parameter :: e3=3.46/div3 48 real , parameter :: factorflux=1. 31 49 real , parameter :: rop=2.65 ! particle density g/m3 32 50 real , parameter :: roa=0.001227 ! air density g/m3 33 51 real , parameter :: pi=3.14159 !! 34 52 real , parameter :: gravity=981. !! cm!! 35 real , parameter :: cd=1.*roa/gravity 53 ! C=2.61 from Marticorena and Bergametti 1995 instead of Gillete and Chen 2001 54 ! (recommended C=1.1 in supply-limited dust source area.. ) 55 real , parameter :: cd=2.61*roa/gravity 56 !JE20150202>>>> 36 57 real,parameter :: beta=16300. 37 58 real, parameter, dimension(3) :: diam=(/1.5,6.7,14.2/) … … 69 90 !!! INTEGER,DIMENSION(:),ALLOCATABLE,SAVE :: maskdust 70 91 REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: feff 92 REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: feffdbg 71 93 72 94 REAL,DIMENSION(:), ALLOCATABLE,SAVE :: sizeclass … … 110 132 !!!!$OMP THREADPRIVATE(maskdust) 111 133 !$OMP THREADPRIVATE(feff) 134 !$OMP THREADPRIVATE(feffdbg) 112 135 !$OMP THREADPRIVATE(sizeclass) 113 136 !$OMP THREADPRIVATE(sizeclass2) … … 536 559 ALLOCATE( solspe(nats,nspe) ) 537 560 ALLOCATE( feff(klon,ntyp) ) 561 ALLOCATE( feffdbg(klon,ntyp) ) 538 562 ALLOCATE( sizeclass(nclass) ) 539 563 ALLOCATE( sizeclass2(nclass) ) … … 768 792 ! endif 769 793 feff(i,k)=0. 794 feffdbg(i,k)=0. 770 795 ! print*,'IKKK A ',i,klon,k,ntyp 771 796 else … … 776 801 bb=log(aeff*(xeff/zos(i,k))**0.8) 777 802 cc=1.-aa/bb 803 feffdbg(i,k)=cc 778 804 ! print*,'IKKK B1 ',i,klon,k,ntyp 779 805 ! drag partition between zo1 and zo2 … … 789 815 endif 790 816 if (feff(i,k).lt.0.)feff(i,k)=0. 817 if (feffdbg(i,k).lt.0.)feffdbg(i,k)=0. 791 818 if (feff(i,k).gt.1.)feff(i,k)=1. 819 if (feffdbg(i,k).gt.1.)feffdbg(i,k)=1. 792 820 ! print*,'IKKK E ',i,klon,k,ntyp 793 821 endif … … 798 826 ! 799 827 CALL writefield_phy("REPART5",feff(1:klon,1:5),5) 828 CALL writefield_phy("REPART5dbg",feffdbg(1:klon,1:5),5) 800 829 endif 801 830 … … 1033 1062 REAL :: pdfcum,U10mMOD,pdfu,weilambda 1034 1063 REAL :: z0salt,ceff,cerod,cpcent 1035 REAL :: cdnms,ustarns,modwm,utmin 1064 !JE20150202 !REAL :: cdnms,ustarns,modwm,utmin 1065 REAL :: cdnms,ustarns,modwm 1036 1066 REAL :: fdp1,fdp2,ad1,ad2,ad3,flux_diam 1037 1067 REAL :: dfec1,dfec2,dfec3,t1,t2,t3,p1,p2,p3,dec,ec … … 1120 1150 ft2=0. 1121 1151 ft3=0. 1122 1152 !JE20150129<<<< 1153 1154 IF(.FALSE.) THEN 1123 1155 ! nat=int(sol(i,n)) 1124 1156 ! print *,i,n … … 1136 1168 ! if(n.eq.1) print*,'nat1=',nat,'sol1=',sol(i,n) 1137 1169 IF(n.eq.1.and.nat.eq.99)GOTO 80 1170 1171 ENDIF 1172 IF(.TRUE.) THEN 1173 nat=int(sol(i,n)) 1174 if(n == 1 .and. nat >= 14 .or. nat < 1 .or. nat > 19) GOTO 80 1175 ENDIF 1176 !JE20150129>>>> 1177 1138 1178 z0salt=z02(i,n) 1139 1179 ceff=feff(i,n) … … 1149 1189 cdnms=vkarm/(log(z10m/z0salt)) 1150 1190 modwm=sqrt((wind10ms(kwb)**2)+(1.2*zwstar(i))**2) 1151 ! modwm=sqrt((wind10ms(kwb)**2)+(1.2*sqrt(ale_wake(i))1152 ! )**2)1153 ! modwm=sqrt((wind10ms(kwb)**2)+(1.2*sqrt(Ale_bl(i)) )**2)1154 ! modwm=sqrt((wind10ms(kwb)**2))1155 1191 ustarns=cdnms*modwm*100. 1156 utmin=umin/(cdnms*ceff) 1157 IF(wind10cm(kwb).ge.utmin)THEN 1158 ustarsalt=ustarns+ & 1159 (0.3*(wind10cm(kwb)/100.-utmin/100.)**2.) 1160 ELSE 1161 ustarsalt=ustarns 1162 ENDIF 1192 !JE20150202 << 1193 ! Do not have too much sense.. and is not anymore in the chimere14b version. 1194 ! 1195 ! utmin=umin/(cdnms*ceff) 1196 ! IF(wind10cm(kwb).ge.utmin)THEN 1197 ! ustarsalt=ustarns+ & 1198 ! (0.3*(wind10cm(kwb)/100.-utmin/100.)**2.) 1199 ! ELSE 1200 ! ustarsalt=ustarns 1201 ! ENDIF 1202 ! ustarsalt should be : 1203 ustarsalt=ustarns 1204 !JE20150202 >> 1205 1206 1163 1207 IF(ustarsalt.lt.umin/ceff)GOTO 80 1164 1208 ! print*,'ustarsalt = ',ustarsalt … … 1215 1259 ENDDO !n=1,ntyp 1216 1260 70 CONTINUE 1261 !factorflux 1217 1262 fluxdust(i,1)=fluxdust(i,1)+flux1*probu(kwb) 1218 1263 fluxdust(i,2)=fluxdust(i,2)+flux2*probu(kwb) 1219 1264 fluxdust(i,3)=fluxdust(i,3)+flux3*probu(kwb) 1220 1265 ENDDO !kwb=1,nwb 1221 m1dflux(i)=10.*fluxdust(i,1) 1222 m2dflux(i)=10.*fluxdust(i,2) ! tous en Kg/m2/s 1223 m3dflux(i)=10.*fluxdust(i,3) 1266 !JE20150202 << 1267 ! m1dflux(i)=10.*fluxdust(i,1) 1268 ! m2dflux(i)=10.*fluxdust(i,2) ! tous en Kg/m2/s 1269 ! m3dflux(i)=10.*fluxdust(i,3) 1270 m1dflux(i)=factorflux*10.*fluxdust(i,1) 1271 m2dflux(i)=factorflux*10.*fluxdust(i,2) ! tous en Kg/m2/s 1272 m3dflux(i)=factorflux*10.*fluxdust(i,3) 1273 !JE20150202 >> 1224 1274 1225 1275 … … 1234 1284 DO i=1,ndistb 1235 1285 DO j=1,nbins 1236 emisbin(k,j) = emisbin(k,j)+10*fluxdust(k,i)*massfrac(i,j) 1286 !JE20150202 << 1287 ! emisbin(k,j) = emisbin(k,j)+10*fluxdust(k,i)*massfrac(i,j) 1288 emisbin(k,j) = emisbin(k,j)+factorflux*fluxdust(k,i)*massfrac(i,j) 1289 !JE20150202 >> 1237 1290 ENDDO !j, nbind 1238 1291 ENDDO !i, nmode -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/finemission.F
r2175 r2196 68 68 DO i=1,klon 69 69 IF (iregion_ind(i).GT.0) THEN 70 source_tr(i,id_fine)=source_tr(i,id_fine)+70 IF(id_fine>0) source_tr(i,id_fine)=source_tr(i,id_fine)+ 71 71 . (scale_param_ff(iregion_ind(i))*lmt_bcff(i)+ !g/m2/s 72 72 . scale_param_ff(iregion_ind(i))*lmt_omff(i) 73 73 . ) * 1.e4 !g/m2/s 74 74 c 75 flux_tr(i,id_fine)=flux_tr(i,id_fine)+75 IF(id_fine>0) flux_tr(i,id_fine)=flux_tr(i,id_fine)+ 76 76 . (scale_param_ff(iregion_ind(i))*lmt_bcff(i)+ !mg/m2/s 77 77 . scale_param_ff(iregion_ind(i))*lmt_omff(i) … … 84 84 ENDIF 85 85 IF (iregion_bb(i).GT.0) THEN 86 source_tr(i,id_fine)=source_tr(i,id_fine)+86 IF(id_fine>0) source_tr(i,id_fine)=source_tr(i,id_fine)+ 87 87 . (scale_param_bb(iregion_bb(i))*lmt_bcbb_l(i)+ !g/m2/s 88 88 . scale_param_bb(iregion_bb(i))*lmt_ombb_l(i) !g/m2/s 89 89 . ) * 1.e4 !g/m2/s 90 90 c 91 flux_tr(i,id_fine)=flux_tr(i,id_fine)+91 IF(id_fine>0) flux_tr(i,id_fine)=flux_tr(i,id_fine)+ 92 92 . (scale_param_bb(iregion_bb(i))*lmt_bcbb_l(i)+ !mg/m2/s 93 93 . scale_param_bb(iregion_bb(i))*lmt_ombb_l(i)+ !mg/m2/s … … 101 101 . *1.e4*1.e3 102 102 ENDIF 103 source_tr(i,id_fine)=source_tr(i,id_fine)+103 IF(id_fine>0) source_tr(i,id_fine)=source_tr(i,id_fine)+ 104 104 . (lmt_bcnff(i)+lmt_bcba(i)+lmt_omnff(i)+ 105 105 . lmt_omnat(i)+lmt_omba(i)) * 1.e4 !g/m2/s 106 106 c 107 flux_tr(i,id_fine)=flux_tr(i,id_fine)+107 IF(id_fine>0) flux_tr(i,id_fine)=flux_tr(i,id_fine)+ 108 108 . (lmt_bcnff(i)+lmt_omnff(i)+lmt_omnat(i)+ 109 109 . lmt_omba(i)+lmt_bcba(i)) * 1.e4 *1.e3 !mg/m2/s … … 135 135 c 136 136 IF (iregion_bb(i) .GT.0) THEN 137 tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+137 IF(id_fine>0) tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+ 138 138 . (scale_param_bb(iregion_bb(i))*lmt_bcbb_h(i)+ 139 139 . scale_param_bb(iregion_bb(i))*lmt_ombb_h(i)) -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/gastoparticle.F
r2175 r2196 48 48 pi=atan(1.)*4. 49 49 c 50 IF (id_prec>0 .AND. id_fine>0) THEN 50 51 DO k = 1, klev 51 52 DO i = 1, klon … … 85 86 ENDDO 86 87 ENDDO 87 88 ENDIF 88 89 89 90 c -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/phys_output_write_mod.F90
r2176 r2196 13 13 !!JE20140507>> 14 14 15 USE phytracr_spl_mod, ONLY : d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, & 15 USE phytracr_spl_mod, ONLY : ok_chimeredust, id_prec, id_fine, id_coss, & 16 id_codu, id_scdu , & 17 d_tr_cl, d_tr_th, d_tr_cv, d_tr_lessi_impa, & 16 18 d_tr_lessi_nucl, d_tr_insc, d_tr_bcscav, d_tr_evapls, d_tr_ls, & 17 19 d_tr_trsp, d_tr_sscav, d_tr_sat, d_tr_uscav ,& -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/physiq.F90
r2176 r2196 3675 3675 scale_param_dustcoa(:)=1. 3676 3676 scale_param_dustsco(:)=1. 3677 param_wstarBLperregion(:)= 1.3678 param_wstarWAKEperregion(:)=0. 253677 param_wstarBLperregion(:)=0. 3678 param_wstarWAKEperregion(:)=0. 3679 3679 3680 3680 ! filescaleparamsind='modind.bin' -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/phytracr_spl_mod.F90
r2176 r2196 232 232 !$OMP THREADPRIVATE(flux_sparam_sscoa,u10m_ss,v10m_ss) 233 233 234 ! Select dust emission scheme ver the Sahara: 235 ! LOGICAL,PARAMETER,SAVE :: ok_chimeredust=.FALSE. 236 LOGICAL,PARAMETER :: ok_chimeredust=.TRUE. 237 !$OMP THREADPRIVATE(ok_chimeredust) 234 238 ! JE20141224 >> 235 239 … … 664 668 !JE2014124 PARAMETER (ok_histrac=.true.) 665 669 PARAMETER (ok_histrac=.false.) 670 ! PARAMETER (ok_chimeredust=.false.) 671 ! PARAMETER (ok_chimeredust=.true.) 666 672 INTEGER ndex2d(iim*(jjm+1)), ndex3d(iim*(jjm+1)*klev) 667 673 INTEGER nhori1, nhori2, nhori3, nhori4, nhori5, nvert … … 836 842 837 843 IF (debutphy) THEN 844 id_prec=-1 845 id_fine=-1 846 id_coss=-1 847 id_codu=-1 848 id_scdu=-1 838 849 !print *,nbtr 839 850 do it=1,nbtr … … 855 866 endif 856 867 enddo 868 ! check consistency with dust emission scheme: 869 if (ok_chimeredust) then 870 if (.not.( id_scdu>0 .and. id_codu>0 .and. id_fine>0)) then 871 call abort_gcm('phytracr_mod', 'pb in ok_chimdust 0',1) 872 endif 873 else 874 if (id_scdu>0) then 875 call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1 SCDU',1) 876 endif 877 if ( (id_codu .le. 0) .or. ( id_fine.le.0) ) then 878 call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1',1) 879 endif 880 endif 881 882 857 883 !print *,id_prec,id_fine,id_coss,id_codu,id_scdu 858 884 ENDIF … … 864 890 865 891 !---fraction of tracer that is convected (Tiedke) 866 xconv(id_prec)=0.8 867 xconv(id_fine)=0.5 868 xconv(id_coss)=0.5 869 xconv(id_codu)=0.6 870 xconv(id_scdu)=0.6 !!JE fix 871 872 masse(id_prec)=32. 873 masse(id_fine)=6.02e23 874 masse(id_coss)=6.02e23 875 masse(id_codu)=6.02e23 876 masse(id_scdu)=6.02e23 877 878 henry(id_prec)=1.4 879 henry(id_fine)=0.0 880 henry(id_coss)=0.0 881 henry(id_codu)=0.0 882 henry(id_scdu)=0.0 892 xconv(:)=0. 893 if(id_prec>0) xconv(id_prec)=0.8 894 if(id_fine>0) xconv(id_fine)=0.5 895 if(id_coss>0) xconv(id_coss)=0.5 896 if(id_codu>0) xconv(id_codu)=0.6 897 if(id_scdu>0) xconv(id_scdu)=0.6 !!JE fix 898 899 masse(:)=1. 900 if(id_prec>0) masse(id_prec)=32. 901 if(id_fine>0) masse(id_fine)=6.02e23 902 if(id_coss>0) masse(id_coss)=6.02e23 903 if(id_codu>0) masse(id_codu)=6.02e23 904 if(id_scdu>0) masse(id_scdu)=6.02e23 905 906 henry(:)=0. 907 if(id_prec>0) henry(id_prec)=1.4 908 if(id_fine>0) henry(id_fine)=0.0 909 if(id_coss>0) henry(id_coss)=0.0 910 if(id_codu>0) henry(id_codu)=0.0 911 if(id_scdu>0) henry(id_scdu)=0.0 883 912 !henry= (/1.4, 0.0, 0.0, 0.0/) 884 kk(id_prec)=2900. 885 kk(id_fine)=0.0 886 kk(id_coss)=0.0 887 kk(id_codu)=0.0 888 kk(id_scdu)=0.0 913 kk(:)=0. 914 if(id_prec>0) kk(id_prec)=2900. 915 if(id_fine>0) kk(id_fine)=0.0 916 if(id_coss>0) kk(id_coss)=0.0 917 if(id_codu>0) kk(id_codu)=0.0 918 if(id_scdu>0) kk(id_scdu)=0.0 889 919 !kk = (/2900., 0., 0., 0./) 890 alpha_r(id_prec)=0.0 891 alpha_r(id_fine)=0.001 892 alpha_r(id_coss)=0.001 893 alpha_r(id_codu)=0.001 894 alpha_r(id_scdu)=0.001 !JE fix 895 896 alpha_s(id_prec)=0.0 897 alpha_s(id_fine)=0.01 898 alpha_s(id_coss)=0.01 899 alpha_s(id_codu)=0.01 900 alpha_s(id_scdu)=0.01 !JE fix 920 alpha_r(:)=0. 921 if(id_prec>0) alpha_r(id_prec)=0.0 922 if(id_fine>0) alpha_r(id_fine)=0.001 923 if(id_coss>0) alpha_r(id_coss)=0.001 924 if(id_codu>0) alpha_r(id_codu)=0.001 925 if(id_scdu>0) alpha_r(id_scdu)=0.001 !JE fix 926 alpha_s(:)=0. 927 if(id_prec>0) alpha_s(id_prec)=0.0 928 if(id_fine>0) alpha_s(id_fine)=0.01 929 if(id_coss>0) alpha_s(id_coss)=0.01 930 if(id_codu>0) alpha_s(id_codu)=0.01 931 if(id_scdu>0) alpha_s(id_scdu)=0.01 !JE fix 901 932 902 933 ! alpha_r = (/0., 0.001, 0.001, 0.001/) … … 906 937 ! nhl vdep_oce for tr1 is a weighted average of dms and so2 dep velocities 907 938 !vdep_oce = (/0.28, 0.28, 1.2, 1.2/) 908 vdep_oce(id_prec) = 0.28 909 vdep_oce(id_fine) = 0.28 910 vdep_oce(id_coss) = 1.2 911 vdep_oce(id_codu) = 1.2 912 vdep_oce(id_scdu) = 1.2 913 914 vdep_sic(id_prec) = 0.2 915 vdep_sic(id_fine) = 0.17 916 vdep_sic(id_coss) = 1.2 917 vdep_sic(id_codu) = 1.2 918 vdep_sic(id_scdu) = 1.2 939 vdep_oce(:)=0. 940 if(id_prec>0) vdep_oce(id_prec) = 0.28 941 if(id_fine>0) vdep_oce(id_fine) = 0.28 942 if(id_coss>0) vdep_oce(id_coss) = 1.2 943 if(id_codu>0) vdep_oce(id_codu) = 1.2 944 if(id_scdu>0) vdep_oce(id_scdu) = 1.2 945 vdep_sic(:)=0. 946 if(id_prec>0) vdep_sic(id_prec) = 0.2 947 if(id_fine>0) vdep_sic(id_fine) = 0.17 948 if(id_coss>0) vdep_sic(id_coss) = 1.2 949 if(id_codu>0) vdep_sic(id_codu) = 1.2 950 if(id_scdu>0) vdep_sic(id_scdu) = 1.2 919 951 920 952 !vdep_sic = (/0.2, 0.17, 1.2, 1.2/) 921 953 !vdep_ter = (/0.3, 0.14, 1.2, 1.2/) 922 923 vdep_ter(id_prec) = 0.3 924 vdep_ter(id_fine) = 0.14 925 vdep_ter(id_coss) = 1.2 926 vdep_ter(id_codu) = 1.2 927 vdep_ter(id_scdu) = 1.2 928 929 vdep_lic(id_prec) = 0.2 930 vdep_lic(id_fine) = 0.17 931 vdep_lic(id_coss) = 1.2 932 vdep_lic(id_codu) = 1.2 933 vdep_lic(id_scdu) = 1.2 954 vdep_ter(:)=0. 955 if(id_prec>0) vdep_ter(id_prec) = 0.3 956 if(id_fine>0) vdep_ter(id_fine) = 0.14 957 if(id_coss>0) vdep_ter(id_coss) = 1.2 958 if(id_codu>0) vdep_ter(id_codu) = 1.2 959 if(id_scdu>0) vdep_ter(id_scdu) = 1.2 960 961 vdep_lic(:)=0. 962 if(id_prec>0) vdep_lic(id_prec) = 0.2 963 if(id_fine>0) vdep_lic(id_fine) = 0.17 964 if(id_coss>0) vdep_lic(id_coss) = 1.2 965 if(id_codu>0) vdep_lic(id_codu) = 1.2 966 if(id_scdu>0) vdep_lic(id_scdu) = 1.2 934 967 935 968 936 969 ! convective KE lessivage aer params: 937 ccntrAA_spla(id_prec)=-9999. 938 ccntrAA_spla(id_fine)=0.7 939 ccntrAA_spla(id_coss)=1.0 940 ccntrAA_spla(id_codu)=0.7 941 ccntrAA_spla(id_scdu)=0.7 942 943 ccntrENV_spla(id_prec)=-9999. 944 ccntrENV_spla(id_fine)=0.7 945 ccntrENV_spla(id_coss)=1.0 946 ccntrENV_spla(id_codu)=0.7 947 ccntrENV_spla(id_scdu)=0.7 948 949 coefcoli_spla(id_prec)=-9999. 950 coefcoli_spla(id_fine)=0.001 951 coefcoli_spla(id_coss)=0.001 952 coefcoli_spla(id_codu)=0.001 953 coefcoli_spla(id_scdu)=0.001 970 ccntrAA_spla(:)=0. 971 if(id_prec>0) ccntrAA_spla(id_prec)=-9999. 972 if(id_fine>0) ccntrAA_spla(id_fine)=0.7 973 if(id_coss>0) ccntrAA_spla(id_coss)=1.0 974 if(id_codu>0) ccntrAA_spla(id_codu)=0.7 975 if(id_scdu>0) ccntrAA_spla(id_scdu)=0.7 976 977 ccntrENV_spla(:)=0. 978 if(id_prec>0) ccntrENV_spla(id_prec)=-9999. 979 if(id_fine>0) ccntrENV_spla(id_fine)=0.7 980 if(id_coss>0) ccntrENV_spla(id_coss)=1.0 981 if(id_codu>0) ccntrENV_spla(id_codu)=0.7 982 if(id_scdu>0) ccntrENV_spla(id_scdu)=0.7 983 984 coefcoli_spla(:)=0. 985 if(id_prec>0) coefcoli_spla(id_prec)=-9999. 986 if(id_fine>0) coefcoli_spla(id_fine)=0.001 987 if(id_coss>0) coefcoli_spla(id_coss)=0.001 988 if(id_codu>0) coefcoli_spla(id_codu)=0.001 989 if(id_scdu>0) coefcoli_spla(id_scdu)=0.001 954 990 955 991 !vdep_lic = (/0.2, 0.17, 1.2, 1.2/) … … 1001 1037 print *, 'let s check nbtr=', nbtr 1002 1038 print *, 'xlat and xlon' 1039 ! JE before put in zero 1040 IF (lminmax) THEN 1041 DO it=1,nbtr 1042 CALL checknanqfi(tr_seri(:,:,it),qmin,qmax,'init phytracr') 1043 ENDDO 1044 DO it=1,nbtr 1045 CALL minmaxqfi2(tr_seri(:,:,it),qmin,qmax,'init phytracr') 1046 ENDDO 1047 CALL minmaxsource(source_tr,qmin,qmax,'init phytracr') 1048 ENDIF 1003 1049 ! JE initializon to cero the tracers 1004 DO it=1, nbtr1005 tr_seri(:,:,it)=0.01006 ENDDO1050 ! DO it=1, nbtr 1051 ! tr_seri(:,:,it)=0.0 1052 ! ENDDO 1007 1053 ! JE end 1008 1054 ! Initializing to zero tr_seri for comparison purposes … … 1740 1786 !$OMP BARRIER 1741 1787 1788 lmt_dms(:)=0.0 1789 aux_var2(:)=0.0 1790 aux_var3(:,:)=0.0 1791 source_tr(:,:)=0.0 1792 flux_tr(:,:)=0.0 1793 flux_sparam_bb(:)=0.0 1794 flux_sparam_ff(:)=0.0 1795 flux_sparam_ind(:)=0.0 1796 flux_sparam_ddfine(:)=0.0 1797 flux_sparam_ddcoa(:)=0.0 1798 flux_sparam_ddsco(:)=0.0 1799 flux_sparam_ssfine(:)=0.0 1800 flux_sparam_sscoa(:)=0.0 1742 1801 ENDIF ! debutphy 1743 1802 … … 2266 2325 flux_sparam_ssfine,flux_sparam_sscoa, & 2267 2326 id_prec,id_fine,id_coss,id_codu,id_scdu, & 2327 ok_chimeredust, & 2268 2328 source_tr,flux_tr) 2269 2329 … … 2657 2717 CALL sediment_mod(t_seri,pplay,zrho,paprs,pdtphys,RHcl, & !xlon,xlat, 2658 2718 id_coss,id_codu,id_scdu, & 2719 ok_chimeredust, & 2659 2720 sed_ss,sed_dust,sed_dustsco,tr_seri) 2660 2721 ! … … 3228 3289 CALL aeropt_spl(zdz, tr_seri, RHcl, & 3229 3290 id_prec, id_fine, id_coss, id_codu, id_scdu, & 3291 ok_chimeredust, & 3230 3292 diff_aod550_tot,diag_aod670_tot,diag_aod865_tot, & 3231 3293 diff_aod550_tr2,diag_aod670_tr2,diag_aod865_tr2, & … … 4456 4518 ! saving variables for output 4457 4519 ! 2D outputs 4458 4459 4520 DO i=1, klon 4460 trm01(i)=trm(i,id_prec) 4461 trm02(i)=trm(i,id_fine) 4462 trm03(i)=trm(i,id_coss) 4463 trm04(i)=trm(i,id_codu) 4464 trm05(i)=trm(i,id_scdu) 4465 sconc01(i)=sconc_seri(i,id_prec) 4466 sconc02(i)=sconc_seri(i,id_fine) 4467 sconc03(i)=sconc_seri(i,id_coss) 4468 sconc04(i)=sconc_seri(i,id_codu) 4469 sconc05(i)=sconc_seri(i,id_scdu) 4470 flux01(i)=flux_tr(i,id_prec) 4471 flux02(i)=flux_tr(i,id_fine) 4472 flux03(i)=flux_tr(i,id_coss) 4473 flux04(i)=flux_tr(i,id_codu) 4474 flux05(i)=flux_tr(i,id_scdu) 4475 ds01(i)=his_ds(i,id_prec) 4476 ds02(i)=his_ds(i,id_fine) 4477 ds03(i)=his_ds(i,id_coss) 4478 ds04(i)=his_ds(i,id_codu) 4479 ds05(i)=his_ds(i,id_scdu) 4480 dh01(i)=his_dh(i,id_prec) 4481 dh02(i)=his_dh(i,id_fine) 4482 dh03(i)=his_dh(i,id_coss) 4483 dh04(i)=his_dh(i,id_codu) 4484 dh05(i)=his_dh(i,id_scdu) 4485 dtrconv01(i)=dtrconv(i,id_prec) 4486 dtrconv02(i)=dtrconv(i,id_fine) 4487 dtrconv03(i)=dtrconv(i,id_coss) 4488 dtrconv04(i)=dtrconv(i,id_codu) 4489 dtrconv05(i)=dtrconv(i,id_scdu) 4490 dtherm01(i)=his_th(i,id_prec) 4491 dtherm02(i)=his_th(i,id_fine) 4492 dtherm03(i)=his_th(i,id_coss) 4493 dtherm04(i)=his_th(i,id_codu) 4494 dtherm05(i)=his_th(i,id_scdu) 4495 dhkecv01(i)=his_dhkecv(i,id_prec) 4496 dhkecv02(i)=his_dhkecv(i,id_fine) 4497 dhkecv03(i)=his_dhkecv(i,id_coss) 4498 dhkecv04(i)=his_dhkecv(i,id_codu) 4499 dhkecv05(i)=his_dhkecv(i,id_scdu) 4500 dhkelsc01(i)=his_dhkelsc(i,id_prec) 4501 dhkelsc02(i)=his_dhkelsc(i,id_fine) 4502 dhkelsc03(i)=his_dhkelsc(i,id_coss) 4503 dhkelsc04(i)=his_dhkelsc(i,id_codu) 4504 dhkelsc05(i)=his_dhkelsc(i,id_scdu) 4521 trm01(i)=0. 4522 trm02(i)=0. 4523 trm03(i)=0. 4524 trm04(i)=0. 4525 trm05(i)=0. 4526 sconc01(i)=0. 4527 sconc02(i)=0. 4528 sconc03(i)=0. 4529 sconc04(i)=0. 4530 sconc05(i)=0. 4531 flux01(i)=0. 4532 flux02(i)=0. 4533 flux03(i)=0. 4534 flux04(i)=0. 4535 flux05(i)=0. 4536 ds01(i)=0. 4537 ds02(i)=0. 4538 ds03(i)=0. 4539 ds04(i)=0. 4540 ds05(i)=0. 4541 dh01(i)=0. 4542 dh02(i)=0. 4543 dh03(i)=0. 4544 dh04(i)=0. 4545 dh05(i)=0. 4546 dtrconv01(i)=0. 4547 dtrconv02(i)=0. 4548 dtrconv03(i)=0. 4549 dtrconv04(i)=0. 4550 dtrconv05(i)=0. 4551 dtherm01(i)=0. 4552 dtherm02(i)=0. 4553 dtherm03(i)=0. 4554 dtherm04(i)=0. 4555 dtherm05(i)=0. 4556 dhkecv01(i)=0. 4557 dhkecv02(i)=0. 4558 dhkecv03(i)=0. 4559 dhkecv04(i)=0. 4560 dhkecv05(i)=0. 4561 dhkelsc01(i)=0. 4562 dhkelsc02(i)=0. 4563 dhkelsc03(i)=0. 4564 dhkelsc04(i)=0. 4565 dhkelsc05(i)=0. 4566 ! u10m_ss(i)=u10m_ec(i) 4567 ! v10m_ss(i)=v10m_ec(i) 4568 !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 4569 4570 if(id_prec>0) trm01(i)=trm(i,id_prec) 4571 if(id_fine>0) trm02(i)=trm(i,id_fine) 4572 if(id_coss>0) trm03(i)=trm(i,id_coss) 4573 if(id_codu>0) trm04(i)=trm(i,id_codu) 4574 if(id_scdu>0) trm05(i)=trm(i,id_scdu) 4575 if(id_prec>0) sconc01(i)=sconc_seri(i,id_prec) 4576 if(id_fine>0) sconc02(i)=sconc_seri(i,id_fine) 4577 if(id_coss>0) sconc03(i)=sconc_seri(i,id_coss) 4578 if(id_codu>0) sconc04(i)=sconc_seri(i,id_codu) 4579 if(id_scdu>0) sconc05(i)=sconc_seri(i,id_scdu) 4580 if(id_prec>0) flux01(i)=flux_tr(i,id_prec) 4581 if(id_fine>0) flux02(i)=flux_tr(i,id_fine) 4582 if(id_coss>0) flux03(i)=flux_tr(i,id_coss) 4583 if(id_codu>0) flux04(i)=flux_tr(i,id_codu) 4584 if(id_scdu>0) flux05(i)=flux_tr(i,id_scdu) 4585 if(id_prec>0) ds01(i)=his_ds(i,id_prec) 4586 if(id_fine>0) ds02(i)=his_ds(i,id_fine) 4587 if(id_coss>0) ds03(i)=his_ds(i,id_coss) 4588 if(id_codu>0) ds04(i)=his_ds(i,id_codu) 4589 if(id_scdu>0) ds05(i)=his_ds(i,id_scdu) 4590 if(id_prec>0) dh01(i)=his_dh(i,id_prec) 4591 if(id_fine>0) dh02(i)=his_dh(i,id_fine) 4592 if(id_coss>0) dh03(i)=his_dh(i,id_coss) 4593 if(id_codu>0) dh04(i)=his_dh(i,id_codu) 4594 if(id_scdu>0) dh05(i)=his_dh(i,id_scdu) 4595 if(id_prec>0) dtrconv01(i)=dtrconv(i,id_prec) 4596 if(id_fine>0) dtrconv02(i)=dtrconv(i,id_fine) 4597 if(id_coss>0) dtrconv03(i)=dtrconv(i,id_coss) 4598 if(id_codu>0) dtrconv04(i)=dtrconv(i,id_codu) 4599 if(id_scdu>0) dtrconv05(i)=dtrconv(i,id_scdu) 4600 if(id_prec>0) dtherm01(i)=his_th(i,id_prec) 4601 if(id_fine>0) dtherm02(i)=his_th(i,id_fine) 4602 if(id_coss>0) dtherm03(i)=his_th(i,id_coss) 4603 if(id_codu>0) dtherm04(i)=his_th(i,id_codu) 4604 if(id_scdu>0) dtherm05(i)=his_th(i,id_scdu) 4605 if(id_prec>0) dhkecv01(i)=his_dhkecv(i,id_prec) 4606 if(id_fine>0) dhkecv02(i)=his_dhkecv(i,id_fine) 4607 if(id_coss>0) dhkecv03(i)=his_dhkecv(i,id_coss) 4608 if(id_codu>0) dhkecv04(i)=his_dhkecv(i,id_codu) 4609 if(id_scdu>0) dhkecv05(i)=his_dhkecv(i,id_scdu) 4610 if(id_prec>0) dhkelsc01(i)=his_dhkelsc(i,id_prec) 4611 if(id_fine>0) dhkelsc02(i)=his_dhkelsc(i,id_fine) 4612 if(id_coss>0) dhkelsc03(i)=his_dhkelsc(i,id_coss) 4613 if(id_codu>0) dhkelsc04(i)=his_dhkelsc(i,id_codu) 4614 if(id_scdu>0) dhkelsc05(i)=his_dhkelsc(i,id_scdu) 4505 4615 u10m_ss(i)=u10m_ec(i) 4506 4616 v10m_ss(i)=v10m_ec(i) … … 4509 4619 DO i=1, klon 4510 4620 DO k=1,klev 4511 d_tr_cv01(i,k)=d_tr_cv_o(i,k,id_prec) 4512 d_tr_cv02(i,k)=d_tr_cv_o(i,k,id_fine) 4513 d_tr_cv03(i,k)=d_tr_cv_o(i,k,id_coss) 4514 d_tr_cv04(i,k)=d_tr_cv_o(i,k,id_codu) 4515 d_tr_cv05(i,k)=d_tr_cv_o(i,k,id_scdu) 4516 d_tr_trsp01(i,k)=d_tr_trsp_o(i,k,id_prec) 4517 d_tr_trsp02(i,k)=d_tr_trsp_o(i,k,id_fine) 4518 d_tr_trsp03(i,k)=d_tr_trsp_o(i,k,id_coss) 4519 d_tr_trsp04(i,k)=d_tr_trsp_o(i,k,id_codu) 4520 d_tr_trsp05(i,k)=d_tr_trsp_o(i,k,id_scdu) 4521 d_tr_sscav01(i,k)=d_tr_sscav_o(i,k,id_prec) 4522 d_tr_sscav02(i,k)=d_tr_sscav_o(i,k,id_fine) 4523 d_tr_sscav03(i,k)=d_tr_sscav_o(i,k,id_coss) 4524 d_tr_sscav04(i,k)=d_tr_sscav_o(i,k,id_codu) 4525 d_tr_sscav05(i,k)=d_tr_sscav_o(i,k,id_scdu) 4526 d_tr_sat01(i,k)=d_tr_sat_o(i,k,id_prec) 4527 d_tr_sat02(i,k)=d_tr_sat_o(i,k,id_fine) 4528 d_tr_sat03(i,k)=d_tr_sat_o(i,k,id_coss) 4529 d_tr_sat04(i,k)=d_tr_sat_o(i,k,id_codu) 4530 d_tr_sat05(i,k)=d_tr_sat_o(i,k,id_scdu) 4531 d_tr_uscav01(i,k)=d_tr_uscav_o(i,k,id_prec) 4532 d_tr_uscav02(i,k)=d_tr_uscav_o(i,k,id_fine) 4533 d_tr_uscav03(i,k)=d_tr_uscav_o(i,k,id_coss) 4534 d_tr_uscav04(i,k)=d_tr_uscav_o(i,k,id_codu) 4535 d_tr_uscav05(i,k)=d_tr_uscav_o(i,k,id_scdu) 4621 d_tr_cv01(i,k) =0. 4622 d_tr_cv02(i,k) =0. 4623 d_tr_cv03(i,k) =0. 4624 d_tr_cv04(i,k) =0. 4625 d_tr_cv05(i,k) =0. 4626 d_tr_trsp01(i,k) =0. 4627 d_tr_trsp02(i,k) =0. 4628 d_tr_trsp03(i,k) =0. 4629 d_tr_trsp04(i,k) =0. 4630 d_tr_trsp05(i,k) =0. 4631 d_tr_sscav01(i,k)=0. 4632 d_tr_sscav02(i,k)=0. 4633 d_tr_sscav03(i,k)=0. 4634 d_tr_sscav04(i,k)=0. 4635 d_tr_sscav05(i,k)=0. 4636 d_tr_sat01(i,k) =0. 4637 d_tr_sat02(i,k) =0. 4638 d_tr_sat03(i,k) =0. 4639 d_tr_sat04(i,k) =0. 4640 d_tr_sat05(i,k) =0. 4641 d_tr_uscav01(i,k)=0. 4642 d_tr_uscav02(i,k)=0. 4643 d_tr_uscav03(i,k)=0. 4644 d_tr_uscav04(i,k)=0. 4645 d_tr_uscav05(i,k)=0. 4646 if(id_prec>0) d_tr_cv01(i,k) =d_tr_cv_o(i,k,id_prec) 4647 if(id_fine>0) d_tr_cv02(i,k) =d_tr_cv_o(i,k,id_fine) 4648 if(id_coss>0) d_tr_cv03(i,k) =d_tr_cv_o(i,k,id_coss) 4649 if(id_codu>0) d_tr_cv04(i,k) =d_tr_cv_o(i,k,id_codu) 4650 if(id_scdu>0) d_tr_cv05(i,k) =d_tr_cv_o(i,k,id_scdu) 4651 if(id_prec>0) d_tr_trsp01(i,k) =d_tr_trsp_o(i,k,id_prec) 4652 if(id_fine>0) d_tr_trsp02(i,k) =d_tr_trsp_o(i,k,id_fine) 4653 if(id_coss>0) d_tr_trsp03(i,k) =d_tr_trsp_o(i,k,id_coss) 4654 if(id_codu>0) d_tr_trsp04(i,k) =d_tr_trsp_o(i,k,id_codu) 4655 if(id_scdu>0) d_tr_trsp05(i,k) =d_tr_trsp_o(i,k,id_scdu) 4656 if(id_prec>0) d_tr_sscav01(i,k)=d_tr_sscav_o(i,k,id_prec) 4657 if(id_fine>0) d_tr_sscav02(i,k)=d_tr_sscav_o(i,k,id_fine) 4658 if(id_coss>0) d_tr_sscav03(i,k)=d_tr_sscav_o(i,k,id_coss) 4659 if(id_codu>0) d_tr_sscav04(i,k)=d_tr_sscav_o(i,k,id_codu) 4660 if(id_scdu>0) d_tr_sscav05(i,k)=d_tr_sscav_o(i,k,id_scdu) 4661 if(id_prec>0) d_tr_sat01(i,k) =d_tr_sat_o(i,k,id_prec) 4662 if(id_fine>0) d_tr_sat02(i,k) =d_tr_sat_o(i,k,id_fine) 4663 if(id_coss>0) d_tr_sat03(i,k) =d_tr_sat_o(i,k,id_coss) 4664 if(id_codu>0) d_tr_sat04(i,k) =d_tr_sat_o(i,k,id_codu) 4665 if(id_scdu>0) d_tr_sat05(i,k) =d_tr_sat_o(i,k,id_scdu) 4666 if(id_prec>0) d_tr_uscav01(i,k)=d_tr_uscav_o(i,k,id_prec) 4667 if(id_fine>0) d_tr_uscav02(i,k)=d_tr_uscav_o(i,k,id_fine) 4668 if(id_coss>0) d_tr_uscav03(i,k)=d_tr_uscav_o(i,k,id_coss) 4669 if(id_codu>0) d_tr_uscav04(i,k)=d_tr_uscav_o(i,k,id_codu) 4670 if(id_scdu>0) d_tr_uscav05(i,k)=d_tr_uscav_o(i,k,id_scdu) 4536 4671 ENDDO 4537 4672 ENDDO 4538 4673 4539 4540 4541 4542 4674 4543 4675 IF (logitime) THEN -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/precuremission.F
r2175 r2196 107 107 DO i=1, klon 108 108 IF (iregion_ind(i).GT.0) THEN 109 source_tr(i,id_prec)=source_tr(i,id_prec) + fracso2emis 109 IF(id_prec>0) source_tr(i,id_prec)=source_tr(i,id_prec) 110 . + fracso2emis 110 111 . *scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)*1.e4 111 112 . +scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i)*1.e4 112 113 . *frach2sofso2 ! molec/m2/s 113 114 c 114 source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis) 115 IF(id_fine>0) source_tr(i,id_fine)= 116 . source_tr(i,id_fine)+(1-fracso2emis) 115 117 . *scale_param_ind(iregion_ind(i))*lmt_so2ff_l(i) 116 118 . *1.e4*masse_ammsulfate/RNAVO ! g/m2/s 117 119 c 118 120 IF(id_prec>0) flux_tr(i,id_prec)=flux_tr(i,id_prec) + ( 119 121 . scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+ 120 122 . lmt_so2ff_h(i)) … … 125 127 . )*1.e4/RNAVO*masse_s*1.e3 ! mgS/m2/s 126 128 c 127 flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis) 129 IF(id_fine>0) flux_tr(i,id_fine)= 130 . flux_tr(i,id_fine)+(1-fracso2emis) 128 131 . *scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+ 129 132 . lmt_so2ff_h(i)) 130 133 . *1.e4/RNAVO*masse_ammsulfate*1.e3 ! mgS/m2/s 131 134 c 132 135 flux_sparam_ind(i)=flux_sparam_ind(i)+ (1-fracso2emis) 133 136 . *scale_param_ind(iregion_ind(i))*(lmt_so2ff_l(i)+ 134 137 . lmt_so2ff_h(i)) … … 136 139 ENDIF 137 140 IF (iregion_bb(i).GT.0) THEN 138 source_tr(i,id_prec)= source_tr(i,id_prec) + fracso2emis 141 IF(id_prec>0) source_tr(i,id_prec)= 142 . source_tr(i,id_prec) + fracso2emis 139 143 . *scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i) 140 144 . *(1.-pctsrf(i,is_oce))*1.e4 141 145 c 142 source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis) 146 IF(id_fine>0) source_tr(i,id_fine)= 147 . source_tr(i,id_fine)+(1-fracso2emis) 143 148 . *scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i)* 144 149 . (1.-pctsrf(i,is_oce))*1.e4* 145 150 . masse_ammsulfate/RNAVO ! g/m2/s 146 151 c 147 flux_tr(i,id_prec)=flux_tr(i,id_prec) +152 IF(id_prec>0) flux_tr(i,id_prec)=flux_tr(i,id_prec) + 148 153 . (scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i) 149 154 . +scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i)) … … 151 156 . *1.e4/RNAVO*masse_s*1.e3 ! mgS/m2/s 152 157 c 153 flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis) 158 IF(id_fine>0) flux_tr(i,id_fine)= 159 . flux_tr(i,id_fine)+(1-fracso2emis) 154 160 . *(scale_param_bb(iregion_bb(i))*lmt_so2bb_l(i) 155 161 . +scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i)) … … 168 174 . *1.e4/RNAVO*masse_ammsulfate*1.e3 ! mgS/m2/s 169 175 ENDIF 170 source_tr(i,id_prec)=source_tr(i,id_prec) + fracso2emis 176 IF(id_prec>0) source_tr(i,id_prec)=source_tr(i,id_prec) 177 . + fracso2emis 171 178 . *(lmt_so2ba(i)+lmt_so2nff(i))*1.e4 172 179 . +(lmt_h2sbio(i) 173 180 . +lmt_dms(i)+lmt_dmsbio(i))*1.e4 ! molec/m2/s 174 181 c 175 source_tr(i,id_fine)=source_tr(i,id_fine)+(1-fracso2emis) 182 IF(id_fine>0) source_tr(i,id_fine)=source_tr(i,id_fine) 183 . +(1-fracso2emis) 176 184 . *(lmt_so2ba(i)+lmt_so2nff(i))*1.e4* 177 185 . masse_ammsulfate/RNAVO ! g/m2/s 178 186 c 179 flux_tr(i,id_prec)=flux_tr(i,id_prec) + (lmt_h2sbio(i) 187 IF(id_prec>0) flux_tr(i,id_prec)=flux_tr(i,id_prec) 188 . + (lmt_h2sbio(i) 180 189 . +lmt_so2volc_cont(i)+lmt_so2volc_expl(i) 181 190 . +(lmt_so2ba(i)+lmt_so2nff(i))*fracso2emis … … 183 192 . *1.e4/RNAVO*masse_s*1.e3 ! mgS/m2/s 184 193 c 185 flux_tr(i,id_fine)=flux_tr(i,id_fine)+(1-fracso2emis) 194 IF(id_fine>0) flux_tr(i,id_fine)=flux_tr(i,id_fine) 195 . +(1-fracso2emis) 186 196 . *(lmt_so2ba(i) + lmt_so2nff(i)) 187 197 . *1.e4/RNAVO*masse_ammsulfate*1.e3 ! mgS/m2/s … … 208 218 ENDDO 209 219 ENDDO 210 220 IF(id_prec>0) THEN 211 221 DO i = 1, klon 212 222 tr_seri(i,kkk_cont(i),id_prec)=tr_seri(i,kkk_cont(i),id_prec) + … … 215 225 . lmt_so2volc_expl(i)/zdz(i,kkk_expl(i))/100.*pdtphys 216 226 ENDDO 217 227 ENDIF 218 228 c Sources hautes de SO2 219 229 … … 226 236 c 227 237 IF (iregion_bb(i).GT.0) THEN 228 tr_seri(i,k,id_prec)=tr_seri(i,k,id_prec) + fracso2emis 238 IF(id_prec>0) tr_seri(i,k,id_prec)= 239 . tr_seri(i,k,id_prec) + fracso2emis 229 240 . *scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i) 230 241 . /zdz(i,k)/100.*pdtphys 231 242 c 232 tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) + (1.-fracso2emis) 243 IF(id_fine>0) tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) 244 . + (1.-fracso2emis) 233 245 . *scale_param_bb(iregion_bb(i))*lmt_so2bb_h(i) 234 246 . *masse_ammsulfate/RNAVO/zdz(i,k)/100.*pdtphys !g/cm3 235 247 ENDIF 236 248 IF (iregion_ind(i).GT.0) THEN 237 tr_seri(i,k,id_prec)=tr_seri(i,k,id_prec) + (fracso2emis 249 IF(id_prec>0) tr_seri(i,k,id_prec)= 250 . tr_seri(i,k,id_prec) + (fracso2emis 238 251 . *scale_param_ind(iregion_ind(i))*lmt_so2ff_h(i) 239 252 . + frach2sofso2 … … 241 254 . /zdz(i,k)/100.*pdtphys 242 255 c 243 tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) + (1.-fracso2emis) 256 IF(id_fine>0) tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine) 257 . + (1.-fracso2emis) 244 258 . *scale_param_ind(iregion_ind(i))*lmt_so2ff_h(i) 245 259 . *masse_ammsulfate/RNAVO/zdz(i,k)/100.*pdtphys !g/cm3 -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/sediment_mod.F
r2175 r2196 3 3 SUBROUTINE sediment_mod(t_seri,pplay,zrho,paprs,time_step,RHcl, 4 4 . id_coss,id_codu,id_scdu, 5 . ok_chimeredust, 5 6 . sed_ss,sed_dust,sed_dustsco,tr_seri) 6 7 cnhl . xlon,xlat, … … 29 30 REAL paprs(klon, klev+1) !pressure at interface of layers Z (Pa) 30 31 REAL time_step !time step (sec) 31 32 LOGICAL ok_chimeredust 32 33 REAL xlat(klon) ! latitudes pour chaque point 33 34 REAL xlon(klon) ! longitudes pour chaque point … … 74 75 !JE20140911 mmd_dust=5.156346 !micrometer for bin 0.5-20 and 0.5-10 um 75 76 !JE20140911 mmd_dustsco=15.56554 !micrometer for bin 0.5-20 and 0.5-10 um 77 IF (ok_chimeredust) THEN 76 78 mmd_dust=3.761212 !micrometer for bin 0.5-3 and 0.5-10 um 77 79 mmd_dustsco=15.06167 !micrometer for bin 3-20 and 0.5-10 um 78 80 ELSE 81 mmd_dust=11.0 !micrometer for bin 0.5-20 and 0.5-10 um 82 mmd_dustsco=100. ! absurd value, bin not used in this scheme 83 ENDIF 79 84 80 85 … … 103 108 c 104 109 c 110 IF(id_coss>0) THEN 105 111 DO k=1, klev 106 112 DO i=1,klon … … 159 165 sed_ss(i)=sed_flux(i,1)*1.e6*1.e3 !--unit mg/m2/s 160 166 ENDDO !klon 167 ELSE 168 DO i=1, klon 169 sed_ss(i)=0. 170 ENDDO 171 ENDIF 161 172 c 162 173 c … … 165 176 c 166 177 c 178 IF(id_codu>0) THEN 167 179 DO k=1, klev 168 180 DO i=1,klon … … 206 218 sed_dust(i)=sed_flux(i,1)*1.e6*1.e3 !--unit mg/m2/s 207 219 ENDDO !klon 220 ELSE 221 DO i=1, klon 222 sed_dust(i)=0. 223 ENDDO 224 ENDIF 225 c 226 208 227 209 228 c--------- For scoarse dust ------------------ 210 229 c 211 230 c 231 IF(id_scdu>0) THEN 212 232 DO k=1, klev 213 233 DO i=1,klon … … 252 272 sed_dustsco(i)=sed_flux(i,1)*1.e6*1.e3 !--unit mg/m2/s 253 273 ENDDO !klon 274 ELSE 275 DO i=1, klon 276 sed_dustsco(i)=0. 277 ENDDO 278 ENDIF 279 c 254 280 255 281 -
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/spla_output_write.h
r2176 r2196 1 1 !! Output SPLA 2 2 ! JE20141223 3 CALL histwrite_phy(o_m1dflux,m1dflux)4 CALL histwrite_phy(o_m2dflux,m2dflux)5 CALL histwrite_phy(o_m3dflux,m3dflux)3 IF(ok_chimeredust) CALL histwrite_phy(o_m1dflux,m1dflux) 4 IF(ok_chimeredust) CALL histwrite_phy(o_m2dflux,m2dflux) 5 IF(ok_chimeredust) CALL histwrite_phy(o_m3dflux,m3dflux) 6 6 ! traceur 7 7 … … 9 9 CALL histwrite_phy( o_taue670 , diag_aod670_tot ) 10 10 CALL histwrite_phy( o_taue865 , diag_aod865_tot ) 11 CALL histwrite_phy( o_taue550_tr2 , diff_aod550_tr2 )12 CALL histwrite_phy( o_taue670_tr2 , diag_aod670_tr2 )13 CALL histwrite_phy( o_taue865_tr2 , diag_aod865_tr2 )14 CALL histwrite_phy( o_taue550_ss , diag_aod550_ss )15 CALL histwrite_phy( o_taue670_ss , diag_aod670_ss )16 CALL histwrite_phy( o_taue865_ss , diag_aod865_ss )17 CALL histwrite_phy( o_taue550_dust , diag_aod550_dust )18 CALL histwrite_phy( o_taue670_dust , diag_aod670_dust )19 CALL histwrite_phy( o_taue865_dust , diag_aod865_dust )20 CALL histwrite_phy( o_taue550_dustsco , diag_aod550_dustsco )21 CALL histwrite_phy( o_taue670_dustsco , diag_aod670_dustsco )22 CALL histwrite_phy( o_taue865_dustsco , diag_aod865_dustsco )11 IF(id_fine>0) CALL histwrite_phy( o_taue550_tr2 , diff_aod550_tr2 ) 12 IF(id_fine>0) CALL histwrite_phy( o_taue670_tr2 , diag_aod670_tr2 ) 13 IF(id_fine>0) CALL histwrite_phy( o_taue865_tr2 , diag_aod865_tr2 ) 14 IF(id_coss>0) CALL histwrite_phy( o_taue550_ss , diag_aod550_ss ) 15 IF(id_coss>0) CALL histwrite_phy( o_taue670_ss , diag_aod670_ss ) 16 IF(id_coss>0) CALL histwrite_phy( o_taue865_ss , diag_aod865_ss ) 17 IF(id_codu>0) CALL histwrite_phy( o_taue550_dust , diag_aod550_dust ) 18 IF(id_codu>0) CALL histwrite_phy( o_taue670_dust , diag_aod670_dust ) 19 IF(id_codu>0) CALL histwrite_phy( o_taue865_dust , diag_aod865_dust ) 20 IF(id_scdu>0) CALL histwrite_phy( o_taue550_dustsco , diag_aod550_dustsco ) 21 IF(id_scdu>0) CALL histwrite_phy( o_taue670_dustsco , diag_aod670_dustsco ) 22 IF(id_scdu>0) CALL histwrite_phy( o_taue865_dustsco , diag_aod865_dustsco ) 23 23 CALL histwrite_phy( o_taue550_aqua , aod550_aqua ) 24 24 CALL histwrite_phy( o_taue550_terra , aod550_terra ) … … 27 27 CALL histwrite_phy( o_taue865_aqua , aod865_aqua ) 28 28 CALL histwrite_phy( o_taue865_terra , aod865_terra ) 29 CALL histwrite_phy( o_trm01 , trm01 )30 CALL histwrite_phy( o_trm02 , trm02 )31 CALL histwrite_phy( o_trm03 , trm03 )32 CALL histwrite_phy( o_trm04 , trm04 )33 CALL histwrite_phy( o_trm05 , trm05 )34 CALL histwrite_phy( o_sconc01 , sconc01 )35 CALL histwrite_phy( o_sconc02 , sconc02 )36 CALL histwrite_phy( o_sconc03 , sconc03 )37 CALL histwrite_phy( o_sconc04 , sconc04 )38 CALL histwrite_phy( o_sconc05 , sconc05 )29 IF(id_prec>0) CALL histwrite_phy( o_trm01 , trm01 ) 30 IF(id_fine>0) CALL histwrite_phy( o_trm02 , trm02 ) 31 IF(id_coss>0) CALL histwrite_phy( o_trm03 , trm03 ) 32 IF(id_codu>0) CALL histwrite_phy( o_trm04 , trm04 ) 33 IF(id_scdu>0) CALL histwrite_phy( o_trm05 , trm05 ) 34 IF(id_prec>0) CALL histwrite_phy( o_sconc01 , sconc01 ) 35 IF(id_fine>0) CALL histwrite_phy( o_sconc02 , sconc02 ) 36 IF(id_coss>0) CALL histwrite_phy( o_sconc03 , sconc03 ) 37 IF(id_codu>0) CALL histwrite_phy( o_sconc04 , sconc04 ) 38 IF(id_scdu>0) CALL histwrite_phy( o_sconc05 , sconc05 ) 39 39 40 40 ! Lessivage 41 41 42 CALL histwrite_phy( o_flux01 , flux01 )43 CALL histwrite_phy( o_flux02 , flux02 )44 CALL histwrite_phy( o_flux03 , flux03 )45 CALL histwrite_phy( o_flux04 , flux04 )46 CALL histwrite_phy( o_flux05 , flux05 )47 CALL histwrite_phy( o_ds01 , ds01 )48 CALL histwrite_phy( o_ds02 , ds02 )49 CALL histwrite_phy( o_ds03 , ds03 )50 CALL histwrite_phy( o_ds04 , ds04 )51 CALL histwrite_phy( o_ds05 , ds05 )52 CALL histwrite_phy( o_dh01 , dh01 )53 CALL histwrite_phy( o_dh02 , dh02 )54 CALL histwrite_phy( o_dh03 , dh03 )55 CALL histwrite_phy( o_dh04 , dh04 )56 CALL histwrite_phy( o_dh05 , dh05 )57 CALL histwrite_phy( o_dtrconv01 , dtrconv01 )58 CALL histwrite_phy( o_dtrconv02 , dtrconv02 )59 CALL histwrite_phy( o_dtrconv03 , dtrconv03 )60 CALL histwrite_phy( o_dtrconv04 , dtrconv04 )61 CALL histwrite_phy( o_dtrconv05 , dtrconv05 )62 CALL histwrite_phy( o_dtherm01 , dtherm01 )63 CALL histwrite_phy( o_dtherm02 , dtherm02 )64 CALL histwrite_phy( o_dtherm03 , dtherm03 )65 CALL histwrite_phy( o_dtherm04 , dtherm04 )66 CALL histwrite_phy( o_dtherm05 , dtherm05 )67 CALL histwrite_phy( o_dhkecv01 , dhkecv01 )68 CALL histwrite_phy( o_dhkecv02 , dhkecv02 )69 CALL histwrite_phy( o_dhkecv03 , dhkecv03 )70 CALL histwrite_phy( o_dhkecv04 , dhkecv04 )71 CALL histwrite_phy( o_dhkecv05 , dhkecv05 )72 CALL histwrite_phy( o_dhkelsc01 , dhkelsc01 )73 CALL histwrite_phy( o_dhkelsc02 , dhkelsc02 )74 CALL histwrite_phy( o_dhkelsc03 , dhkelsc03 )75 CALL histwrite_phy( o_dhkelsc04 , dhkelsc04 )76 CALL histwrite_phy( o_dhkelsc05 , dhkelsc05 )77 CALL histwrite_phy( o_d_tr_cv01 , d_tr_cv01 )78 CALL histwrite_phy( o_d_tr_cv02 , d_tr_cv02 )79 CALL histwrite_phy( o_d_tr_cv03 , d_tr_cv03 )80 CALL histwrite_phy( o_d_tr_cv04 , d_tr_cv04 )81 CALL histwrite_phy( o_d_tr_cv05 , d_tr_cv05 )82 CALL histwrite_phy( o_d_tr_trsp01 , d_tr_trsp01 )83 CALL histwrite_phy( o_d_tr_trsp02 , d_tr_trsp02 )84 CALL histwrite_phy( o_d_tr_trsp03 , d_tr_trsp03 )85 CALL histwrite_phy( o_d_tr_trsp04 , d_tr_trsp04 )86 CALL histwrite_phy( o_d_tr_trsp05 , d_tr_trsp05 )87 CALL histwrite_phy( o_d_tr_sscav01 , d_tr_sscav01 )88 CALL histwrite_phy( o_d_tr_sscav02 , d_tr_sscav02 )89 CALL histwrite_phy( o_d_tr_sscav03 , d_tr_sscav03 )90 CALL histwrite_phy( o_d_tr_sscav04 , d_tr_sscav04 )91 CALL histwrite_phy( o_d_tr_sscav05 , d_tr_sscav05 )92 CALL histwrite_phy( o_d_tr_sat01 , d_tr_sat01 )93 CALL histwrite_phy( o_d_tr_sat02 , d_tr_sat02 )94 CALL histwrite_phy( o_d_tr_sat03 , d_tr_sat03 )95 CALL histwrite_phy( o_d_tr_sat04 , d_tr_sat04 )96 CALL histwrite_phy( o_d_tr_sat05 , d_tr_sat05 )97 CALL histwrite_phy( o_d_tr_uscav01 , d_tr_uscav01 )98 CALL histwrite_phy( o_d_tr_uscav02 , d_tr_uscav02 )99 CALL histwrite_phy( o_d_tr_uscav03 , d_tr_uscav03 )100 CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 )101 CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 )42 IF(id_prec>0) CALL histwrite_phy( o_flux01 , flux01 ) 43 IF(id_fine>0) CALL histwrite_phy( o_flux02 , flux02 ) 44 IF(id_coss>0) CALL histwrite_phy( o_flux03 , flux03 ) 45 IF(id_codu>0) CALL histwrite_phy( o_flux04 , flux04 ) 46 IF(id_scdu>0) CALL histwrite_phy( o_flux05 , flux05 ) 47 IF(id_prec>0) CALL histwrite_phy( o_ds01 , ds01 ) 48 IF(id_fine>0) CALL histwrite_phy( o_ds02 , ds02 ) 49 IF(id_coss>0) CALL histwrite_phy( o_ds03 , ds03 ) 50 IF(id_codu>0) CALL histwrite_phy( o_ds04 , ds04 ) 51 IF(id_scdu>0) CALL histwrite_phy( o_ds05 , ds05 ) 52 IF(id_prec>0) CALL histwrite_phy( o_dh01 , dh01 ) 53 IF(id_fine>0) CALL histwrite_phy( o_dh02 , dh02 ) 54 IF(id_coss>0) CALL histwrite_phy( o_dh03 , dh03 ) 55 IF(id_codu>0) CALL histwrite_phy( o_dh04 , dh04 ) 56 IF(id_scdu>0) CALL histwrite_phy( o_dh05 , dh05 ) 57 IF(id_prec>0) CALL histwrite_phy( o_dtrconv01 , dtrconv01 ) 58 IF(id_fine>0) CALL histwrite_phy( o_dtrconv02 , dtrconv02 ) 59 IF(id_coss>0) CALL histwrite_phy( o_dtrconv03 , dtrconv03 ) 60 IF(id_codu>0) CALL histwrite_phy( o_dtrconv04 , dtrconv04 ) 61 IF(id_scdu>0) CALL histwrite_phy( o_dtrconv05 , dtrconv05 ) 62 IF(id_prec>0) CALL histwrite_phy( o_dtherm01 , dtherm01 ) 63 IF(id_fine>0) CALL histwrite_phy( o_dtherm02 , dtherm02 ) 64 IF(id_coss>0) CALL histwrite_phy( o_dtherm03 , dtherm03 ) 65 IF(id_codu>0) CALL histwrite_phy( o_dtherm04 , dtherm04 ) 66 IF(id_scdu>0) CALL histwrite_phy( o_dtherm05 , dtherm05 ) 67 IF(id_prec>0) CALL histwrite_phy( o_dhkecv01 , dhkecv01 ) 68 IF(id_fine>0) CALL histwrite_phy( o_dhkecv02 , dhkecv02 ) 69 IF(id_coss>0) CALL histwrite_phy( o_dhkecv03 , dhkecv03 ) 70 IF(id_codu>0) CALL histwrite_phy( o_dhkecv04 , dhkecv04 ) 71 IF(id_scdu>0) CALL histwrite_phy( o_dhkecv05 , dhkecv05 ) 72 IF(id_prec>0) CALL histwrite_phy( o_dhkelsc01 , dhkelsc01 ) 73 IF(id_fine>0) CALL histwrite_phy( o_dhkelsc02 , dhkelsc02 ) 74 IF(id_coss>0) CALL histwrite_phy( o_dhkelsc03 , dhkelsc03 ) 75 IF(id_codu>0) CALL histwrite_phy( o_dhkelsc04 , dhkelsc04 ) 76 IF(id_scdu>0) CALL histwrite_phy( o_dhkelsc05 , dhkelsc05 ) 77 IF(id_prec>0) CALL histwrite_phy( o_d_tr_cv01 , d_tr_cv01 ) 78 IF(id_fine>0) CALL histwrite_phy( o_d_tr_cv02 , d_tr_cv02 ) 79 IF(id_coss>0) CALL histwrite_phy( o_d_tr_cv03 , d_tr_cv03 ) 80 IF(id_codu>0) CALL histwrite_phy( o_d_tr_cv04 , d_tr_cv04 ) 81 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_cv05 , d_tr_cv05 ) 82 IF(id_prec>0) CALL histwrite_phy( o_d_tr_trsp01 , d_tr_trsp01 ) 83 IF(id_fine>0) CALL histwrite_phy( o_d_tr_trsp02 , d_tr_trsp02 ) 84 IF(id_coss>0) CALL histwrite_phy( o_d_tr_trsp03 , d_tr_trsp03 ) 85 IF(id_codu>0) CALL histwrite_phy( o_d_tr_trsp04 , d_tr_trsp04 ) 86 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_trsp05 , d_tr_trsp05 ) 87 IF(id_prec>0) CALL histwrite_phy( o_d_tr_sscav01 , d_tr_sscav01 ) 88 IF(id_fine>0) CALL histwrite_phy( o_d_tr_sscav02 , d_tr_sscav02 ) 89 IF(id_coss>0) CALL histwrite_phy( o_d_tr_sscav03 , d_tr_sscav03 ) 90 IF(id_codu>0) CALL histwrite_phy( o_d_tr_sscav04 , d_tr_sscav04 ) 91 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_sscav05 , d_tr_sscav05 ) 92 IF(id_prec>0) CALL histwrite_phy( o_d_tr_sat01 , d_tr_sat01 ) 93 IF(id_fine>0) CALL histwrite_phy( o_d_tr_sat02 , d_tr_sat02 ) 94 IF(id_coss>0) CALL histwrite_phy( o_d_tr_sat03 , d_tr_sat03 ) 95 IF(id_codu>0) CALL histwrite_phy( o_d_tr_sat04 , d_tr_sat04 ) 96 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_sat05 , d_tr_sat05 ) 97 IF(id_prec>0) CALL histwrite_phy( o_d_tr_uscav01 , d_tr_uscav01 ) 98 IF(id_fine>0) CALL histwrite_phy( o_d_tr_uscav02 , d_tr_uscav02 ) 99 IF(id_coss>0) CALL histwrite_phy( o_d_tr_uscav03 , d_tr_uscav03 ) 100 IF(id_codu>0) CALL histwrite_phy( o_d_tr_uscav04 , d_tr_uscav04 ) 101 IF(id_scdu>0) CALL histwrite_phy( o_d_tr_uscav05 , d_tr_uscav05 ) 102 102 103 103 104 CALL histwrite_phy( o_sed_ss , sed_ss)105 CALL histwrite_phy( o_sed_dust , sed_dust)106 CALL histwrite_phy( o_sed_dustsco , sed_dustsco)107 CALL histwrite_phy( o_g2p_gas , his_g2pgas )108 CALL histwrite_phy( o_g2p_aer , his_g2paer)104 IF(id_coss>0) CALL histwrite_phy( o_sed_ss , sed_ss) 105 IF(id_codu>0) CALL histwrite_phy( o_sed_dust , sed_dust) 106 IF(id_scdu>0) CALL histwrite_phy( o_sed_dustsco , sed_dustsco) 107 IF(id_prec>0) CALL histwrite_phy( o_g2p_gas , his_g2pgas ) 108 IF(id_fine>0) CALL histwrite_phy( o_g2p_aer , his_g2paer) 109 109 110 110 ! histrac_spl 111 111 ! 112 113 112 CALL histwrite_phy( o_fluxbb , fluxbb ) 114 113 CALL histwrite_phy( o_fluxff , fluxff ) … … 140 139 CALL histwrite_phy( o_fluxh2sbio , fluxh2sbio ) 141 140 CALL histwrite_phy( o_fluxdustec , fluxdustec ) 142 CALL histwrite_phy( o_fluxddfine , fluxddfine )143 CALL histwrite_phy( o_fluxddcoa , fluxddcoa )144 CALL histwrite_phy( o_fluxddsco , fluxddsco )145 CALL histwrite_phy( o_fluxdd , fluxdd )141 CALL histwrite_phy( o_fluxddfine , fluxddfine ) 142 CALL histwrite_phy( o_fluxddcoa , fluxddcoa ) 143 CALL histwrite_phy( o_fluxddsco , fluxddsco ) 144 CALL histwrite_phy( o_fluxdd , fluxdd ) 146 145 CALL histwrite_phy( o_fluxssfine , fluxssfine ) 147 146 CALL histwrite_phy( o_fluxsscoa , fluxsscoa ) … … 158 157 CALL histwrite_phy( o_v10m_ss , v10m_ss ) 159 158 160 161 159 ! CALL histwrite_phy( ,) 162 160 !
Note: See TracChangeset
for help on using the changeset viewer.