Changeset 2738 for LMDZ5/trunk
- Timestamp:
- Jan 2, 2017, 11:24:30 PM (8 years ago)
- Location:
- LMDZ5/trunk/libf
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90
r2665 r2738 109 109 INTEGER :: iflag_radia, iflag_cldcon, iflag_ratqs 110 110 REAL :: ratqsbas, ratqshaut, tau_ratqs 111 LOGICAL :: ok_ade, ok_aie, ok_ cdnc, aerosol_couple111 LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple 112 112 INTEGER :: flag_aerosol 113 113 INTEGER :: flag_aerosol_strat … … 131 131 iflag_cldcon, & 132 132 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 133 ok_ade, ok_aie, ok_ cdnc, aerosol_couple,&133 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 134 134 flag_aerosol, flag_aerosol_strat, new_aod, & 135 135 flag_bc_internal_mixture, bl95_b0, bl95_b1, & -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r2730 r2738 17 17 iflag_cld_th, & 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 ok_ade, ok_aie, ok_ cdnc, aerosol_couple, &19 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 20 20 flag_aerosol, flag_aerosol_strat, new_aod, & 21 21 flag_bc_internal_mixture, bl95_b0, bl95_b1,& … … 61 61 ! ok_instan: sorties instantanees 62 62 ! ok_ade, ok_aie: apply or not aerosol direct and indirect effects 63 ! ok_alw: activate aerosol LW effect 63 64 ! ok_cdnc, ok cloud droplet number concentration 64 65 ! flag_aerosol_strat : flag pour les aerosols stratos … … 74 75 LOGICAL :: ok_LES 75 76 LOGICAL :: callstats 76 LOGICAL :: ok_ade, ok_aie, ok_ cdnc, aerosol_couple77 LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple 77 78 INTEGER :: flag_aerosol 78 79 INTEGER :: flag_aerosol_strat … … 93 94 LOGICAL, SAVE :: ok_LES_omp 94 95 LOGICAL, SAVE :: callstats_omp 95 LOGICAL, SAVE :: ok_ade_omp, ok_aie_omp, ok_ cdnc_omp, aerosol_couple_omp96 LOGICAL, SAVE :: ok_ade_omp, ok_aie_omp, ok_alw_omp, ok_cdnc_omp, aerosol_couple_omp 96 97 INTEGER, SAVE :: flag_aerosol_omp 97 98 INTEGER, SAVE :: flag_aerosol_strat_omp … … 347 348 ok_ade_omp = .FALSE. 348 349 CALL getin('ok_ade', ok_ade_omp) 350 351 !Config Key = ok_alw 352 !Config Desc = Aerosol longwave effect or not? 353 !Config Def = .FALSE. 354 !Config Help = Used in radlwsw.F 355 ! 356 ok_alw_omp = .FALSE. 357 CALL getin('ok_alw', ok_alw_omp) 349 358 350 359 ! … … 2161 2170 ok_ade = ok_ade_omp 2162 2171 ok_aie = ok_aie_omp 2172 ok_alw = ok_alw_omp 2163 2173 ok_cdnc = ok_cdnc_omp 2164 2174 aerosol_couple = aerosol_couple_omp … … 2468 2478 write(lunout,*)' ok_ade = ',ok_ade 2469 2479 write(lunout,*)' ok_aie = ',ok_aie 2480 write(lunout,*)' ok_alw = ',ok_alw 2470 2481 write(lunout,*)' aerosol_couple = ', aerosol_couple 2471 2482 write(lunout,*)' flag_aerosol = ', flag_aerosol -
LMDZ5/trunk/libf/phylmd/physiq_mod.F90
r2731 r2738 980 980 ! Parameters 981 981 LOGICAL ok_ade, ok_aie ! Apply aerosol (in)direct effects or not 982 LOGICAL ok_alw ! Apply aerosol LW effect or not 982 983 LOGICAL ok_cdnc ! ok cloud droplet number concentration (O. Boucher 01-2013) 983 984 REAL bl95_b0, bl95_b1 ! Parameter in Boucher and Lohmann (1995) 984 SAVE ok_ade, ok_aie, ok_ cdnc, bl95_b0, bl95_b1985 !$OMP THREADPRIVATE(ok_ade, ok_aie, ok_ cdnc, bl95_b0, bl95_b1)985 SAVE ok_ade, ok_aie, ok_alw, ok_cdnc, bl95_b0, bl95_b1 986 !$OMP THREADPRIVATE(ok_ade, ok_aie, ok_alw, ok_cdnc, bl95_b0, bl95_b1) 986 987 LOGICAL, SAVE :: aerosol_couple ! true : calcul des aerosols dans INCA 987 988 ! false : lecture des aerosol dans un fichier … … 1142 1143 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1143 1144 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1144 ok_ade, ok_aie, ok_ cdnc, aerosol_couple, &1145 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 1145 1146 flag_aerosol, flag_aerosol_strat, new_aod, & 1146 1147 flag_bc_internal_mixture, bl95_b0, bl95_b1, & … … 1587 1588 jjmp1,nlevSTD,clevSTD,rlevSTD, dtime,ok_veget, & 1588 1589 type_ocean,iflag_pbl,iflag_pbl_split,ok_mensuel,ok_journe, & 1589 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, 1590 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, & 1590 1591 read_climoz, phys_out_filestations, & 1591 1592 new_aod, aerosol_couple, & … … 3293 3294 !jq - introduce the aerosol direct and first indirect radiative forcings 3294 3295 !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 3295 IF (flag_aerosol . gt. 0) THEN3296 IF (flag_aerosol .GT. 0) THEN 3296 3297 IF (iflag_rrtm .EQ. 0) THEN !--old radiation 3297 3298 IF (.NOT. aerosol_couple) THEN … … 3312 3313 #ifdef CPP_RRTM 3313 3314 IF (NSW.EQ.6) THEN 3314 !--new aerosol properties 3315 !--new aerosol properties SW and LW 3315 3316 ! 3316 CALL readaerosol_optic_rrtm( debut, aerosol_couple, &3317 CALL readaerosol_optic_rrtm( debut, aerosol_couple, ok_alw, & 3317 3318 new_aod, flag_aerosol, flag_bc_internal_mixture, itap, jD_cur-jD_ref, & 3318 3319 pdtphys, pplay, paprs, t_seri, rhcl, presnivs, & … … 3320 3321 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & 3321 3322 tausum_aero, tau3d_aero) 3322 3323 ! 3323 3324 ELSE IF (NSW.EQ.2) THEN 3324 3325 !--for now we use the old aerosol properties … … 3339 3340 piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:) 3340 3341 cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:) 3342 ! 3343 !--no LW optics 3344 tau_aero_lw_rrtm(:,:,:,:) = 1.e-15 3345 ! 3341 3346 ELSE 3342 3347 abort_message='Only NSW=2 or 6 are possible with ' & … … 3344 3349 CALL abort_physic(modname,abort_message,1) 3345 3350 ENDIF 3346 3347 !--call LW optical properties for tropospheric aerosols3348 !--only works for INCA aerosol (aerosol_couple = TRUE)3349 CALL aeropt_lw_rrtm(aerosol_couple,paprs,tr_seri)3350 !3351 3351 #else 3352 3352 abort_message='You should compile with -rrtm if running ' & … … 3357 3357 ENDIF 3358 3358 ENDIF 3359 ELSE 3359 ELSE !--flag_aerosol = 0 3360 3360 tausum_aero(:,:,:) = 0. 3361 3361 mass_solu_aero(:,:) = 0. -
LMDZ5/trunk/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90
r2737 r2738 83 83 INTEGER, PARAMETER :: la865 = 5 84 84 INTEGER, PARAMETER :: nbre_RH=12 85 INTEGER, PARAMETER :: naero_soluble=7 ! 1- BC soluble; 2- POM soluble; 3- SO4 acc. 86 ! 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc. 87 INTEGER, PARAMETER :: naero_insoluble=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 85 INTEGER, PARAMETER :: naero_soluble=9 ! 1- BC soluble; 2- POM soluble; 3- SO4 coarse 86 ! 4- SO4 acc; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc. 87 ! 8- NO3 coarse; 9- NO3 accumulation 88 INTEGER, PARAMETER :: naero_insoluble=4 ! 1- Dust; 2- BC insoluble; 3- POM insoluble; 4- NO3 insoluble 88 89 89 90 REAL :: zrho … … 101 102 REAL :: zdh(klon,klev) 102 103 103 ! Soluble components 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-coarse; 6 seasalt coarse; 7 seasalt acc.104 104 REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble) ! Ext. coeff. ** m2/g 105 ! Insoluble components 1- Dust: 2- BC; 3- POM106 105 REAL :: alpha_aeri_5wv(las,naero_insoluble) ! Ext. coeff. ** m2/g 107 106 … … 110 109 ! 111 110 INTEGER, PARAMETER :: nbclassbc = 5 ! Added by Rong Wang/OB for the 5 fractions 112 ! of BC in the soluble mode:113 ! bc_content/0.001, 0.01, 0.02, 0.05, !0.1/111 ! of BC in the soluble mode: 112 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/ 114 113 ! for Maxwell-Garnet internal mixture 115 114 ! Detailed theory can be found in R. Wang Estimation of global black carbon ! direct … … 124 123 INTEGER :: n, classbc 125 124 126 ! From here on we look at the optical parameters at 5 wavelengths: 127 ! 443nm, 550, 670, 765 and 865 nm 128 ! le 12 AVRIL 2006 129 ! 125 ! From here on we look at the optical parameters at 5 wavelengths 443, 550, 670, 765 and 865 nm 126 130 127 DATA alpha_aers_5wv/ & 131 128 ! bc soluble … … 170 167 2.340, 3.358, 3.803, 4.303, 4.928, 4.696, 5.629, 7.198,10.308,13.342,19.120,34.296, & 171 168 1.789, 2.626, 2.999, 3.422, 3.955, 3.730, 4.519, 5.864, 8.593,11.319,16.653,31.331, & 172 1.359, 2.037, 2.343, 2.693, 3.139, 2.940, 3.596, 4.729, 7.076, 9.469,14.266,28.043 / 169 1.359, 2.037, 2.343, 2.693, 3.139, 2.940, 3.596, 4.729, 7.076, 9.469,14.266,28.043, & 170 ! NO3 coarse (CS) 171 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 172 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 173 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 174 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 175 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 176 ! NO3 accumulation (AS) 177 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 178 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 179 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 180 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 181 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 173 182 174 183 DATA alpha_aeri_5wv/ & 175 184 ! dust insoluble 176 0.759, 0.770, 0.775, 0.775, 0.772, &185 0.759, 0.770, 0.775, 0.775, 0.772, & 177 186 !!jb bc insoluble 178 187 11.536,10.033, 8.422, 7.234, 6.270, & 179 188 ! pom insoluble 180 5.042, 3.101, 1.890, 1.294, 0.934/ 189 5.042, 3.101, 1.890, 1.294, 0.934, & 190 ! NO3 insoluble 191 0.0, 0.0, 0.0, 0.0, 0.0 / 181 192 182 193 ! internal mixture … … 252 263 aerosol_name(1) = id_CIDUSTM_phy 253 264 ELSEIF (flag_aerosol .EQ. 6) THEN 254 nb_aer = 1 0265 nb_aer = 13 255 266 ALLOCATE (aerosol_name(nb_aer)) 256 267 aerosol_name(1) = id_ASSO4M_phy … … 264 275 aerosol_name(9) = id_CIDUSTM_phy 265 276 aerosol_name(10)= id_CSSO4M_phy 277 aerosol_name(11)= id_CSNO3M_phy 278 aerosol_name(12)= id_ASNO3M_phy 279 aerosol_name(13)= id_CINO3M_phy 266 280 ENDIF 267 281 … … 315 329 soluble=.TRUE. 316 330 spsol=7 331 ELSEIF (aerosol_name(m).EQ.id_CSNO3M_phy) THEN 332 soluble=.TRUE. 333 spsol=8 334 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 335 ELSEIF (aerosol_name(m).EQ.id_ASNO3M_phy) THEN 336 soluble=.TRUE. 337 spsol=9 338 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 317 339 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN 318 340 soluble=.FALSE. … … 324 346 soluble=.FALSE. 325 347 spinsol=3 348 ELSEIF (aerosol_name(m).EQ.id_CINO3M_phy) THEN 349 soluble=.FALSE. 350 spinsol=4 351 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 326 352 ELSE 327 353 CYCLE -
LMDZ5/trunk/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
r2737 r2738 53 53 INTEGER, PARAMETER :: nb_level=19 ! number of vertical levels in DATA 54 54 55 INTEGER, PARAMETER :: naero_soluble=7 ! 1- BC soluble; 2- POM soluble; 3- SO4. acc. 4- SO4 coarse 56 ! 5- seasalt super coarse 6- seasalt coarse 7- seasalt acc. 57 INTEGER, PARAMETER :: naero_insoluble=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 55 INTEGER, PARAMETER :: naero_soluble=9 ! 1- BC soluble; 2- POM soluble; 3- SO4. acc. 4- SO4 coarse 56 ! 5- seasalt super coarse 6- seasalt 57 ! coarse 7- seasalt acc. 58 ! 8- NO3 coarse 9- NO3 acc. 59 INTEGER, PARAMETER :: naero_insoluble=4 ! 1- Dust; 2- BC insoluble; 3- POM insoluble; 4- NO3 insoluble 58 60 59 61 INTEGER, PARAMETER :: nbre_RH=12 … … 80 82 ! Proprietes optiques 81 83 ! 82 REAL:: alpha_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unit m2/g SO483 REAL:: alpha_aeri_6bands(nbands_sw_rrtm,naero_insoluble) 84 REAL:: cg_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unit 85 REAL:: cg_aeri_6bands(nbands_sw_rrtm,naero_insoluble) 86 REAL:: piz_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !-- unit87 REAL:: piz_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !-- unit84 REAL:: alpha_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unit m2/g 85 REAL:: alpha_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !--unit m2/g 86 REAL:: cg_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unitless 87 REAL:: cg_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !--unitless 88 REAL:: piz_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !--unitless 89 REAL:: piz_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !--unitless 88 90 ! 89 91 ! BC internal mixture 90 92 ! 91 93 INTEGER, PARAMETER :: nbclassbc = 5 ! Added by Rong Wang/OB for the 5 fractions 92 ! of BC in the soluble mode:93 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/94 ! of BC in the soluble mode: 95 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/ 94 96 ! for Maxwell-Garnet internal mixture 95 97 ! Detailed theory can be found in R. Wang Estimation of global black carbon direct … … 100 102 REAL :: piz_MG_6bands(nbre_RH,nbands_sw_rrtm,nbclassbc) 101 103 ! 102 INTEGER :: id, classbc, classbc_pi104 INTEGER :: aerindex, classbc, classbc_pi 103 105 REAL :: tmp_var, tmp_var_pi, BC_massfra, BC_massfra_pi 104 106 … … 126 128 0.377, 0.377, 0.377, 0.377, 0.377, 0.415, 0.456, 0.542, 0.627, 0.636, 0.646, 0.738, & 127 129 0.052, 0.052, 0.052, 0.052, 0.052, 0.057, 0.063, 0.075, 0.087, 0.088, 0.089, 0.102, & 130 ! sulfate coarse CS 131 0.693, 0.693, 0.693, 0.764, 0.839, 0.917, 0.999, 1.136, 1.510, 1.879, 1.879, 3.356, & 132 0.693, 0.693, 0.693, 0.764, 0.839, 0.917, 0.999, 1.136, 1.510, 1.879, 1.879, 3.356, & 133 0.715, 0.715, 0.715, 0.788, 0.865, 0.945, 1.029, 1.171, 1.557, 1.936, 1.936, 3.459, & 134 0.736, 0.736, 0.736, 0.811, 0.891, 0.973, 1.060, 1.206, 1.603, 1.994, 1.994, 3.563, & 135 0.711, 0.711, 0.711, 0.783, 0.860, 0.939, 1.023, 1.164, 1.548, 1.925, 1.925, 3.439, & 136 0.602, 0.602, 0.602, 0.664, 0.729, 0.796, 0.867, 0.986, 1.312, 1.631, 1.631, 2.915, & 128 137 ! sulfate AS 129 138 6.554, 6.554, 6.554, 7.223, 7.931, 8.665, 9.438,10.736,14.275,17.755,17.755,31.722, & … … 133 142 0.312, 0.312, 0.312, 0.344, 0.378, 0.413, 0.450, 0.511, 0.680, 0.846, 0.846, 1.511, & 134 143 0.121, 0.121, 0.121, 0.134, 0.147, 0.161, 0.175, 0.199, 0.264, 0.329, 0.329, 0.588, & 135 ! sulfate coarse CS136 0.693, 0.693, 0.693, 0.764, 0.839, 0.917, 0.999, 1.136, 1.510, 1.879, 1.879, 3.356, &137 0.693, 0.693, 0.693, 0.764, 0.839, 0.917, 0.999, 1.136, 1.510, 1.879, 1.879, 3.356, &138 0.715, 0.715, 0.715, 0.788, 0.865, 0.945, 1.029, 1.171, 1.557, 1.936, 1.936, 3.459, &139 0.736, 0.736, 0.736, 0.811, 0.891, 0.973, 1.060, 1.206, 1.603, 1.994, 1.994, 3.563, &140 0.711, 0.711, 0.711, 0.783, 0.860, 0.939, 1.023, 1.164, 1.548, 1.925, 1.925, 3.439, &141 0.602, 0.602, 0.602, 0.664, 0.729, 0.796, 0.867, 0.986, 1.312, 1.631, 1.631, 2.915, &142 144 ! seasalt seasalt Super Coarse Soluble (SS) 143 145 0.214, 0.267, 0.287, 0.310, 0.337, 0.373, 0.421, 0.494, 0.625, 0.742, 0.956, 1.480, & … … 160 162 1.389, 2.066, 2.371, 2.719, 3.161, 2.970, 3.623, 4.747, 7.064, 9.419,14.120,27.565, & 161 163 0.309, 0.497, 0.587, 0.693, 0.832, 0.777, 0.986, 1.364, 2.207, 3.136, 5.174,12.065, & 162 0.021, 0.037, 0.045, 0.054, 0.067, 0.065, 0.087, 0.129, 0.230, 0.353, 0.654, 1.885 / 164 0.021, 0.037, 0.045, 0.054, 0.067, 0.065, 0.087, 0.129, 0.230, 0.353, 0.654, 1.885, & 165 ! NO3 coarse (CS) 166 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 167 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 168 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 169 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 170 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 171 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 172 ! NO3 accumulation (AS) 173 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 174 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 175 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 176 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 177 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 178 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 163 179 164 180 DATA alpha_aeri_6bands/ & … … 168 184 6.497, 6.497, 5.900, 4.284, 2.163, 0.966, & 169 185 ! pom insoluble AI 170 6.443, 6.443, 4.381, 1.846, 0.377, 0.052 / 186 6.443, 6.443, 4.381, 1.846, 0.377, 0.052, & 187 ! NO3 insoluble CI 188 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 171 189 172 190 DATA cg_aers_6bands/ & … … 185 203 0.363, 0.363, 0.363, 0.363, 0.363, 0.360, 0.357, 0.352, 0.350, 0.349, 0.349, 0.347, & 186 204 0.142, 0.142, 0.142, 0.142, 0.142, 0.139, 0.137, 0.133, 0.131, 0.131, 0.130, 0.129, & 205 ! sulfate coarse CS 206 0.803, 0.803, 0.803, 0.792, 0.783, 0.776, 0.769, 0.758, 0.747, 0.742, 0.738, 0.730, & 207 0.803, 0.803, 0.803, 0.792, 0.783, 0.776, 0.769, 0.758, 0.747, 0.742, 0.738, 0.730, & 208 0.799, 0.799, 0.799, 0.787, 0.777, 0.768, 0.760, 0.747, 0.736, 0.729, 0.725, 0.716, & 209 0.797, 0.797, 0.797, 0.782, 0.770, 0.760, 0.750, 0.735, 0.722, 0.714, 0.709, 0.698, & 210 0.810, 0.810, 0.810, 0.794, 0.781, 0.770, 0.759, 0.743, 0.728, 0.719, 0.714, 0.702, & 211 0.803, 0.803, 0.803, 0.790, 0.779, 0.770, 0.762, 0.748, 0.736, 0.729, 0.725, 0.715, & 187 212 ! sulfate AS 188 213 0.675, 0.675, 0.675, 0.689, 0.701, 0.711, 0.720, 0.735, 0.748, 0.756, 0.760, 0.771, & … … 192 217 0.362, 0.362, 0.362, 0.359, 0.356, 0.354, 0.352, 0.348, 0.345, 0.343, 0.342, 0.340, & 193 218 0.137, 0.137, 0.137, 0.135, 0.133, 0.132, 0.130, 0.128, 0.126, 0.125, 0.124, 0.122, & 194 ! sulfate coarse CS195 0.803, 0.803, 0.803, 0.792, 0.783, 0.776, 0.769, 0.758, 0.747, 0.742, 0.738, 0.730, &196 0.803, 0.803, 0.803, 0.792, 0.783, 0.776, 0.769, 0.758, 0.747, 0.742, 0.738, 0.730, &197 0.799, 0.799, 0.799, 0.787, 0.777, 0.768, 0.760, 0.747, 0.736, 0.729, 0.725, 0.716, &198 0.797, 0.797, 0.797, 0.782, 0.770, 0.760, 0.750, 0.735, 0.722, 0.714, 0.709, 0.698, &199 0.810, 0.810, 0.810, 0.794, 0.781, 0.770, 0.759, 0.743, 0.728, 0.719, 0.714, 0.702, &200 0.803, 0.803, 0.803, 0.790, 0.779, 0.770, 0.762, 0.748, 0.736, 0.729, 0.725, 0.715, &201 219 ! seasalt seasalt Super Coarse Soluble (SS) 202 220 0.797, 0.800, 0.801, 0.802, 0.804, 0.822, 0.825, 0.828, 0.832, 0.835, 0.838, 0.843, & … … 219 237 0.561, 0.585, 0.593, 0.601, 0.609, 0.637, 0.651, 0.669, 0.691, 0.705, 0.723, 0.745, & 220 238 0.392, 0.427, 0.439, 0.451, 0.464, 0.480, 0.500, 0.526, 0.563, 0.588, 0.621, 0.671, & 221 0.144, 0.170, 0.179, 0.189, 0.201, 0.207, 0.224, 0.248, 0.285, 0.315, 0.359, 0.439 / 239 0.144, 0.170, 0.179, 0.189, 0.201, 0.207, 0.224, 0.248, 0.285, 0.315, 0.359, 0.439, & 240 ! NO3 coarse (CS) 241 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 242 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 243 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 244 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 245 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 246 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 247 ! NO3 accumulation (AS) 248 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 249 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 250 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 251 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 252 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 253 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 222 254 223 255 DATA cg_aeri_6bands/ & … … 227 259 0.721, 0.721, 0.643, 0.513, 0.321, 0.153, & 228 260 ! pom insoluble AI 229 0.687, 0.687, 0.658, 0.564, 0.363, 0.142 / 261 0.687, 0.687, 0.658, 0.564, 0.363, 0.142, & 262 ! NO3 insoluble CI 263 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 230 264 231 265 DATA piz_aers_6bands/& … … 244 278 0.816, 0.816, 0.816, 0.816, 0.816, 0.839, 0.859, 0.888, 0.908, 0.910, 0.911, 0.925, & 245 279 0.663, 0.663, 0.663, 0.663, 0.663, 0.607, 0.562, 0.492, 0.446, 0.441, 0.437, 0.404, & 280 ! sulfate coarse CS 281 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 282 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 283 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 284 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 285 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, & 286 0.877, 0.877, 0.877, 0.873, 0.870, 0.867, 0.864, 0.860, 0.856, 0.854, 0.852, 0.849, & 246 287 ! sulfate AS 247 288 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & … … 251 292 0.988, 0.988, 0.988, 0.989, 0.990, 0.990, 0.991, 0.992, 0.993, 0.993, 0.994, 0.994, & 252 293 0.256, 0.256, 0.256, 0.263, 0.268, 0.273, 0.277, 0.284, 0.290, 0.294, 0.296, 0.301, & 253 ! sulfate coarse CS254 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &255 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &256 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &257 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &258 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, 0.996, &259 0.877, 0.877, 0.877, 0.873, 0.870, 0.867, 0.864, 0.860, 0.856, 0.854, 0.852, 0.849, &260 294 ! seasalt seasalt Super Coarse Soluble (SS) 261 295 0.983, 0.982, 0.982, 0.982, 0.982, 0.992, 0.993, 0.994, 0.995, 0.996, 0.997, 0.998, & … … 278 312 0.999, 0.999, 0.999, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, & 279 313 0.997, 0.998, 0.998, 0.998, 0.998, 0.999, 0.999, 0.999, 1.000, 1.000, 1.000, 1.000, & 280 0.985, 0.989, 0.990, 0.990, 0.991, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1.000 / 314 0.985, 0.989, 0.990, 0.990, 0.991, 0.996, 0.997, 0.998, 0.999, 0.999, 0.999, 1.000, & 315 ! NO3 coarse (CS) 316 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 317 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 318 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 319 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 320 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 321 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 322 ! NO3 accumulation (AS) 323 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 324 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 325 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 326 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 327 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, & 328 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 / 281 329 282 330 DATA piz_aeri_6bands/ & … … 286 334 0.460, 0.460, 0.445, 0.394, 0.267, 0.121, & 287 335 ! pom insoluble AI 288 0.973, 0.973, 0.972, 0.940, 0.816, 0.663 / 336 0.973, 0.973, 0.972, 0.940, 0.816, 0.663, & 337 ! NO3 insoluble CI 338 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 / 289 339 290 340 ! Added by R. Wang (July 31 2016) … … 440 490 aerosol_name(1) = id_CIDUSTM_phy 441 491 ELSEIF (flag_aerosol .EQ. 6) THEN 442 nb_aer = 1 0492 nb_aer = 13 443 493 ALLOCATE (aerosol_name(nb_aer)) 444 494 aerosol_name(1) = id_ASSO4M_phy … … 452 502 aerosol_name(9) = id_CIDUSTM_phy 453 503 aerosol_name(10)= id_CSSO4M_phy 504 aerosol_name(11)= id_CSNO3M_phy 505 aerosol_name(12)= id_ASNO3M_phy 506 aerosol_name(13)= id_CINO3M_phy 454 507 ENDIF 455 508 … … 491 544 soluble=.TRUE. 492 545 spsol=2 493 ELSEIF (aerosol_name(m).EQ.id_ ASSO4M_phy) THEN546 ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN 494 547 soluble=.TRUE. 495 548 spsol=3 496 549 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD 497 ELSEIF (aerosol_name(m).EQ.id_ CSSO4M_phy) THEN550 ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN 498 551 soluble=.TRUE. 499 552 spsol=4 … … 508 561 soluble=.TRUE. 509 562 spsol=7 563 ELSEIF (aerosol_name(m).EQ.id_CSNO3M_phy) THEN 564 soluble=.TRUE. 565 spsol=8 566 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 567 ELSEIF (aerosol_name(m).EQ.id_ASNO3M_phy) THEN 568 soluble=.TRUE. 569 spsol=9 570 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 510 571 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN 511 572 soluble=.FALSE. … … 517 578 soluble=.FALSE. 518 579 spinsol=3 580 ELSEIF (aerosol_name(m).EQ.id_CINO3M_phy) THEN 581 soluble=.FALSE. 582 spinsol=4 583 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD 519 584 ELSE 520 585 CYCLE … … 522 587 523 588 !--shortname for aerosol index 524 id=aerosol_name(m)589 aerindex=aerosol_name(m) 525 590 526 591 IF (soluble) THEN … … 532 597 DO i=1, klon 533 598 534 tmp_var=m_allaer(i,k, spsol)/1.e6*zdh(i,k)*fac535 tmp_var_pi=m_allaer_pi(i,k, spsol)/1.e6*zdh(i,k)*fac599 tmp_var=m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*fac 600 tmp_var_pi=m_allaer_pi(i,k,aerindex)/1.e6*zdh(i,k)*fac 536 601 537 602 ! Calculate the dry BC/(BC+SUL) mass ratio for all (natural+anthropogenic) aerosols … … 580 645 cg_MG_6bands(RH_num(i,k),inu,classbc)) 581 646 582 tau_ae(i,k, id,inu) = tmp_var*tau_ae2b_int583 piz_ae(i,k, id,inu) = piz_ae2b_int584 cg_ae(i,k, id,inu) = cg_ae2b_int647 tau_ae(i,k,aerindex,inu) = tmp_var*tau_ae2b_int 648 piz_ae(i,k,aerindex,inu) = piz_ae2b_int 649 cg_ae(i,k,aerindex,inu) = cg_ae2b_int 585 650 586 651 !--natural aerosols … … 597 662 cg_MG_6bands(RH_num(i,k),inu,classbc_pi)) 598 663 599 tau_ae_pi(i,k, id,inu) = tmp_var_pi* tau_ae2b_int600 piz_ae_pi(i,k, id,inu) = piz_ae2b_int601 cg_ae_pi(i,k, id,inu) = cg_ae2b_int664 tau_ae_pi(i,k,aerindex,inu) = tmp_var_pi* tau_ae2b_int 665 piz_ae_pi(i,k,aerindex,inu) = piz_ae2b_int 666 cg_ae_pi(i,k,aerindex,inu) = cg_ae2b_int 602 667 603 668 ENDDO … … 610 675 DO k=1, klev 611 676 DO i=1, klon 612 tmp_var=m_allaer(i,k, spsol)/1.e6*zdh(i,k)*fac613 tmp_var_pi=m_allaer_pi(i,k, spsol)/1.e6*zdh(i,k)*fac677 tmp_var=m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*fac 678 tmp_var_pi=m_allaer_pi(i,k,aerindex)/1.e6*zdh(i,k)*fac 614 679 615 680 DO inu=1,NSW … … 627 692 cg_aers_6bands(RH_num(i,k),inu,spsol)) 628 693 629 tau_ae(i,k, id,inu) = tmp_var*tau_ae2b_int630 tau_ae_pi(i,k, id,inu) = tmp_var_pi* tau_ae2b_int631 piz_ae(i,k, id,inu) = piz_ae2b_int632 cg_ae(i,k, id,inu) = cg_ae2b_int694 tau_ae(i,k,aerindex,inu) = tmp_var*tau_ae2b_int 695 tau_ae_pi(i,k,aerindex,inu) = tmp_var_pi* tau_ae2b_int 696 piz_ae(i,k,aerindex,inu) = piz_ae2b_int 697 cg_ae(i,k,aerindex,inu) = cg_ae2b_int 633 698 634 699 ENDDO … … 638 703 !--external mixture case for soluble BC 639 704 IF (spsol.EQ.1) THEN 640 piz_ae_pi(:,:, id,:) = piz_ae(:,:,id,:)641 cg_ae_pi(:,:, id,:) = cg_ae(:,:,id,:)705 piz_ae_pi(:,:,aerindex,:) = piz_ae(:,:,aerindex,:) 706 cg_ae_pi(:,:,aerindex,:) = cg_ae(:,:,aerindex,:) 642 707 ENDIF 643 708 … … 648 713 DO k=1, klev 649 714 DO i=1, klon 650 tmp_var=m_allaer(i,k, naero_soluble+spinsol)/1.e6*zdh(i,k)*fac651 tmp_var_pi=m_allaer_pi(i,k, naero_soluble+spinsol)/1.e6*zdh(i,k)*fac715 tmp_var=m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*fac 716 tmp_var_pi=m_allaer_pi(i,k,aerindex)/1.e6*zdh(i,k)*fac 652 717 653 718 DO inu=1,NSW … … 656 721 cg_ae2b_int = cg_aeri_6bands(inu,spinsol) 657 722 658 tau_ae(i,k, id,inu) = tmp_var*tau_ae2b_int659 tau_ae_pi(i,k, id,inu) = tmp_var_pi*tau_ae2b_int660 piz_ae(i,k, id,inu) = piz_ae2b_int661 cg_ae(i,k, id,inu)= cg_ae2b_int723 tau_ae(i,k,aerindex,inu) = tmp_var*tau_ae2b_int 724 tau_ae_pi(i,k,aerindex,inu) = tmp_var_pi*tau_ae2b_int 725 piz_ae(i,k,aerindex,inu) = piz_ae2b_int 726 cg_ae(i,k,aerindex,inu)= cg_ae2b_int 662 727 ENDDO 663 728 ENDDO -
LMDZ5/trunk/libf/phylmd/rrtm/aeropt_lw_rrtm.F90
r2504 r2738 2 2 ! aeropt_lw_rrtm.F90 2014-05-13 C. Kleinschmitt 3 3 ! 2016-05-03 O. Boucher 4 ! 2016-12-17 O. Boucher 4 5 ! 5 6 ! This routine feeds aerosol LW properties to RRTM 6 7 ! we only consider absorption (not scattering) 8 ! we only consider dust for now 7 9 8 SUBROUTINE AEROPT_LW_RRTM( aerosol_couple,paprs,tr_seri)10 SUBROUTINE AEROPT_LW_RRTM(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi) 9 11 10 12 USE dimphy 11 13 USE aero_mod 12 USE infotrac_phy13 14 USE phys_state_var_mod, ONLY : tau_aero_lw_rrtm 14 15 USE YOERAD, ONLY : NLW 16 USE YOMCST 15 17 16 18 IMPLICIT NONE 17 19 18 INCLUDE "YOMCST.h"19 20 INCLUDE "clesphys.h" 20 21 ! 21 22 ! Input arguments: 22 23 ! 23 LOGICAL, INTENT(IN) :: aerosol_couple 24 REAL, DIMENSION(klon,klev+1), INTENT(in) :: paprs 25 REAL, DIMENSION(klon,klev,nbtr), INTENT(in) :: tr_seri 26 ! 27 REAL, DIMENSION(klon,klev) :: zdp, mass_temp 28 ! 24 LOGICAL, INTENT(IN) :: ok_alw 25 INTEGER, INTENT(IN) :: flag_aerosol 26 REAL, DIMENSION(klon,klev), INTENT(in) :: pdel, zrho 27 REAL, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer, m_allaer_pi 29 28 ! 30 29 INTEGER inu, i, k 31 INTEGER :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM 32 INTEGER :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M 33 30 REAL :: zdh(klon,klev) 31 REAL :: tmp_var, tmp_var_pi 34 32 ! 35 33 !--absorption coefficient for CIDUST 36 34 REAL:: alpha_abs_CIDUST_16bands(nbands_lw_rrtm) !--unit m2/g 37 35 DATA alpha_abs_CIDUST_16bands / & 38 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &39 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/36 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 37 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 40 38 ! 41 39 IF (NLW.NE.nbands_lw_rrtm) THEN 42 print*,'Erreur NLW doit etre egal a 16 pour cette routine'43 stop40 PRINT *,'Erreur NLW doit etre egal a 16 pour cette routine' 41 STOP 44 42 ENDIF 45 43 ! 46 IF (aerosol_couple) THEN 47 ! 48 do i=1,nbtr 49 select case(trim(solsym(i))) 50 case ("ASBCM") 51 id_ASBCM = i 52 case ("ASPOMM") 53 id_ASPOMM = i 54 case ("ASSO4M") 55 id_ASSO4M = i 56 case ("ASMSAM") 57 id_ASMSAM = i 58 case ("CSSO4M") 59 id_CSSO4M = i 60 case ("CSMSAM") 61 id_CSMSAM = i 62 case ("SSSSM") 63 id_SSSSM = i 64 case ("CSSSM") 65 id_CSSSM = i 66 case ("ASSSM") 67 id_ASSSM = i 68 case ("CIDUSTM") 69 id_CIDUSTM = i 70 case ("AIBCM") 71 id_AIBCM = i 72 case ("AIPOMM") 73 id_AIPOMM = i 74 case ("ASNO3M") 75 id_ASNO3M = i 76 case ("CSNO3M") 77 id_CSNO3M = i 78 case ("CINO3M") 79 id_CINO3M = i 80 end select 81 enddo 44 IF (ok_alw) THEN !--aerosol LW effects 45 ! 46 IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6) THEN !--Dust 47 ! 48 zdh(:,:)=pdel(:,:)/(RG*zrho(:,:)) !-- m 82 49 ! 83 50 DO k=1, klev 84 zdp(:,k) = (paprs(:,k)-paprs(:,k+1))/RG !--kg/m2 85 ENDDO 86 ! 87 !--for now only consider dust 88 mass_temp(:,:)=tr_seri(:,:,id_CIDUSTM) !--kg/kg 89 ! 90 DO inu=1,NLW 91 ! 92 !--total aerosol 93 tau_aero_lw_rrtm(:,:,2,inu) = mass_temp(:,:)*zdp(:,:)*1000.*alpha_abs_CIDUST_16bands(inu) 94 !--no aerosol at all 95 tau_aero_lw_rrtm(:,:,1,inu) = 0.0 51 DO i=1, klon 52 ! 53 tmp_var =m_allaer(i,k,id_CIDUSTM_phy) /1.e6*zdh(i,k) !-- g/m2 54 tmp_var_pi=m_allaer_pi(i,k,id_CIDUSTM_phy)/1.e6*zdh(i,k) !-- g/m2 55 ! 56 DO inu=1, NLW 57 ! 58 !--total aerosol 59 tau_aero_lw_rrtm(i,k,2,inu) = MAX(1.e-15,tmp_var*alpha_abs_CIDUST_16bands(inu)) 60 !--natural aerosol 61 tau_aero_lw_rrtm(i,k,1,inu) = MAX(1.e-15,tmp_var_pi*alpha_abs_CIDUST_16bands(inu)) 62 ! 63 ENDDO 64 ENDDO 96 65 ! 97 66 ENDDO 98 67 ! 99 !--avoid very small values 100 tau_aero_lw_rrtm = MAX(tau_aero_lw_rrtm,1.e-15) 101 ! 102 ELSE !--not aerosol_couple 68 ENDIF 69 ! 70 ELSE !--no aerosol LW effects 103 71 ! 104 !--no LW effects if not coupled to INCA105 72 tau_aero_lw_rrtm = 1.e-15 106 73 ENDIF -
LMDZ5/trunk/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90
r2693 r2738 1 1 ! $Id$ 2 2 ! 3 SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, &3 SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, ok_alw, & 4 4 new_aod, flag_aerosol, flag_bc_internal_mixture, itap, rjourvrai, & 5 5 pdtphys, pplay, paprs, t_seri, rhcl, presnivs, & … … 30 30 LOGICAL, INTENT(IN) :: debut 31 31 LOGICAL, INTENT(IN) :: aerosol_couple 32 LOGICAL, INTENT(IN) :: ok_alw 32 33 LOGICAL, INTENT(IN) :: new_aod 33 34 INTEGER, INTENT(IN) :: flag_aerosol … … 281 282 ! Calculate the total mass of all soluble aersosols 282 283 ! to be revisited for AR6 283 mass_solu_aero(:,:) = sulfacc(:,:) + bcsol(:,:) + pomsol(:,:) + nitracc(:,:)+ ssacu(:,:)284 mass_solu_aero_pi(:,:) = sulfacc_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + nitracc_pi(:,:) + ssacu_pi(:,:) 284 mass_solu_aero(:,:) = sulfacc(:,:) + bcsol(:,:) + pomsol(:,:) + nitracc(:,:) + ssacu(:,:) 285 mass_solu_aero_pi(:,:) = sulfacc_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + nitracc_pi(:,:) + ssacu_pi(:,:) 285 286 286 287 !**************************************************************************************** … … 310 311 pplay, t_seri, & 311 312 tausum_aero, tau3d_aero ) 313 314 !--call LW optical properties for tropospheric aerosols 315 CALL aeropt_lw_rrtm(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi) 312 316 313 317 ! Diagnostics calculation for CMIP5 protocol
Note: See TracChangeset
for help on using the changeset viewer.