- Timestamp:
- Jun 23, 2023, 4:10:41 PM (12 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Portage_acc/libf/phylmd/ecrad/radiation_mcica_lw.F90
r3908 r4584 157 157 ! transmittance etc at each model level 158 158 do jlev = 1,nlev 159 ssa_total = ssa(:,jlev,jcol) 160 g_total = g(:,jlev,jcol) 161 call calc_two_stream_gammas_lw(ng, ssa_total, g_total, & 159 call calc_two_stream_gammas_lw(ng, ssa(:,jlev,jcol), g(:,jlev,jcol), & 162 160 & gamma1, gamma2) 163 161 call calc_reflectance_transmittance_lw(ng, & … … 206 204 & config%cloud_inhom_decorr_scaling, cloud%fractional_std(jcol,:), & 207 205 & config%pdf_sampler, od_scaling, total_cloud_cover, & 208 & is_beta_overlap=config%use_beta_overlap) 206 & use_beta_overlap=config%use_beta_overlap, & 207 & use_vectorizable_generator=config%use_vectorizable_generator) 209 208 210 209 ! Store total cloud cover … … 225 224 end if 226 225 227 od_cloud_new = od_scaling(:,jlev) & 228 & * od_cloud(config%i_band_from_reordered_g_lw,jlev,jcol) 229 od_total = od(:,jlev,jcol) + od_cloud_new 230 ssa_total = 0.0_jprb 231 g_total = 0.0_jprb 226 do jg = 1,ng 227 od_cloud_new(jg) = od_scaling(jg,jlev) & 228 & * od_cloud(config%i_band_from_reordered_g_lw(jg),jlev,jcol) 229 od_total(jg) = od(jg,jlev,jcol) + od_cloud_new(jg) 230 ssa_total(jg) = 0.0_jprb 231 g_total(jg) = 0.0_jprb 232 end do 232 233 233 234 if (config%do_lw_cloud_scattering) then … … 239 240 ! case that od_total > 0.0 and ssa_total > 0.0 but 240 241 ! od_total*ssa_total == 0 due to underflow 241 scat_od_total = ssa(:,jlev,jcol)*od(:,jlev,jcol) & 242 & + ssa_cloud(config%i_band_from_reordered_g_lw,jlev,jcol) & 243 & * od_cloud_new 244 where (scat_od_total > 0.0_jprb) 245 g_total = (g(:,jlev,jcol)*ssa(:,jlev,jcol)*od(:,jlev,jcol) & 246 & + g_cloud(config%i_band_from_reordered_g_lw,jlev,jcol) & 247 & * ssa_cloud(config%i_band_from_reordered_g_lw,jlev,jcol) & 248 & * od_cloud_new) & 249 & / scat_od_total 250 end where 251 where (od_total > 0.0_jprb) 252 ssa_total = scat_od_total / od_total 253 end where 242 do jg = 1,ng 243 if (od_total(jg) > 0.0_jprb) then 244 scat_od_total(jg) = ssa(jg,jlev,jcol)*od(jg,jlev,jcol) & 245 & + ssa_cloud(config%i_band_from_reordered_g_lw(jg),jlev,jcol) & 246 & * od_cloud_new(jg) 247 ssa_total(jg) = scat_od_total(jg) / od_total(jg) 248 249 if (scat_od_total(jg) > 0.0_jprb) then 250 g_total(jg) = (g(jg,jlev,jcol)*ssa(jg,jlev,jcol)*od(jg,jlev,jcol) & 251 & + g_cloud(config%i_band_from_reordered_g_lw(jg),jlev,jcol) & 252 & * ssa_cloud(config%i_band_from_reordered_g_lw(jg),jlev,jcol) & 253 & * od_cloud_new(jg)) & 254 & / scat_od_total(jg) 255 end if 256 end if 257 end do 258 254 259 else 260 255 261 do jg = 1,ng 256 262 if (od_total(jg) > 0.0_jprb) then … … 265 271 end if 266 272 end do 273 267 274 end if 268 275 … … 301 308 ! Use adding method to compute fluxes but optimize for the 302 309 ! presence of clear-sky layers 303 ! call adding_ica_lw(ng, nlev, reflectance, transmittance, source_up, source_dn, &304 ! & emission(:,jcol), albedo(:,jcol), &305 ! & flux_up, flux_dn)306 310 call fast_adding_ica_lw(ng, nlev, reflectance, transmittance, source_up, source_dn, & 307 311 & emission(:,jcol), albedo(:,jcol), &
Note: See TracChangeset
for help on using the changeset viewer.