Ignore:
Timestamp:
Jun 23, 2023, 4:10:41 PM (12 months ago)
Author:
Laurent Fairhead
Message:

Merged trunk revisions from r4443 to r4582 (HEAD) into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Portage_acc/libf/phylmd/ecrad/radiation_mcica_lw.F90

    r3908 r4584  
    157157        ! transmittance etc at each model level
    158158        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), &
    162160               &  gamma1, gamma2)
    163161          call calc_reflectance_transmittance_lw(ng, &
     
    206204           &  config%cloud_inhom_decorr_scaling, cloud%fractional_std(jcol,:), &
    207205           &  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)
    209208     
    210209      ! Store total cloud cover
     
    225224            end if
    226225
    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
    232233
    233234            if (config%do_lw_cloud_scattering) then
     
    239240                ! case that od_total > 0.0 and ssa_total > 0.0 but
    240241                ! 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
    254259              else
     260
    255261                do jg = 1,ng
    256262                  if (od_total(jg) > 0.0_jprb) then
     
    265271                  end if
    266272                end do
     273
    267274              end if
    268275           
     
    301308          ! Use adding method to compute fluxes but optimize for the
    302309          ! 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)
    306310          call fast_adding_ica_lw(ng, nlev, reflectance, transmittance, source_up, source_dn, &
    307311               &  emission(:,jcol), albedo(:,jcol), &
Note: See TracChangeset for help on using the changeset viewer.