Changeset 2196 for LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/aeropt_spl.F
- Timestamp:
- Feb 6, 2015, 6:53:57 PM (10 years ago)
- File:
-
- 1 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
Note: See TracChangeset
for help on using the changeset viewer.