Changeset 5671 for LMDZ6


Ignore:
Timestamp:
May 22, 2025, 2:09:48 PM (2 weeks ago)
Author:
lguez
Message:

Manage zero values of extinction coefficient

Manage zero values of longwave extinction coefficient. This happens
with LMDZ aerosols. This is commit ede672f2 in our fork of ecrad, pull
request #31 in upstream ecrad.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/ecrad/radiation/radiation_aerosol_optics.F90

    r4853 r5671  
    444444      mapping = transpose(mapping_transp)
    445445      ao%mass_ext_lw_phobic = matmul(mapping, ao_legacy%mass_ext_lw_phobic)
    446       ao%ssa_lw_phobic = matmul(mapping, ao_legacy%mass_ext_lw_phobic*ao_legacy%ssa_lw_phobic) &
    447            &           / ao%mass_ext_lw_phobic
    448       ao%g_lw_phobic = matmul(mapping, ao_legacy%mass_ext_lw_phobic*ao_legacy%ssa_lw_phobic &
    449            &                           *ao_legacy%g_lw_phobic) &
    450            &         / (ao%mass_ext_lw_phobic*ao%ssa_lw_phobic)
     446
     447      where (ao%mass_ext_lw_phobic /= 0)
     448         ao%ssa_lw_phobic = matmul(mapping, ao_legacy%mass_ext_lw_phobic*ao_legacy%ssa_lw_phobic) &
     449              &           / ao%mass_ext_lw_phobic
     450         ao%g_lw_phobic = matmul(mapping, ao_legacy%mass_ext_lw_phobic*ao_legacy%ssa_lw_phobic &
     451              &                           *ao_legacy%g_lw_phobic) &
     452              &         / (ao%mass_ext_lw_phobic*ao%ssa_lw_phobic)
     453      elsewhere
     454         ao%ssa_lw_phobic = 1.
     455         ao%g_lw_phobic = 0.
     456      end where
    451457
    452458      if (ao%use_hydrophilic) then
    453459        do jtype = 1,ao%n_type_philic
    454460          ao%mass_ext_lw_philic(:,:,jtype) = matmul(mapping, ao_legacy%mass_ext_lw_philic(:,:,jtype))
    455           ao%ssa_lw_philic(:,:,jtype) = matmul(mapping, ao_legacy%mass_ext_lw_philic(:,:,jtype) &
    456                &                                        *ao_legacy%ssa_lw_philic(:,:,jtype)) &
    457                &           / ao%mass_ext_lw_philic(:,:,jtype)
    458           ao%g_lw_philic(:,:,jtype) = matmul(mapping, ao_legacy%mass_ext_lw_philic(:,:,jtype) &
    459                &               *ao_legacy%ssa_lw_philic(:,:,jtype)*ao_legacy%g_lw_philic(:,:,jtype)) &
    460                &         / (ao%mass_ext_lw_philic(:,:,jtype)*ao%ssa_lw_philic(:,:,jtype))
     461
     462          where (ao%mass_ext_lw_philic(:,:,jtype) /= 0.)
     463             ao%ssa_lw_philic(:,:,jtype) = matmul(mapping, ao_legacy%mass_ext_lw_philic(:,:,jtype) &
     464                  &                                        *ao_legacy%ssa_lw_philic(:,:,jtype)) &
     465                  &           / ao%mass_ext_lw_philic(:,:,jtype)
     466             ao%g_lw_philic(:,:,jtype) = matmul(mapping, ao_legacy%mass_ext_lw_philic(:,:,jtype) &
     467                  &               *ao_legacy%ssa_lw_philic(:,:,jtype)*ao_legacy%g_lw_philic(:,:,jtype)) &
     468                  &         / (ao%mass_ext_lw_philic(:,:,jtype)*ao%ssa_lw_philic(:,:,jtype))
     469          elsewhere
     470             ao%ssa_lw_philic(:,:,jtype) = 1.
     471             ao%g_lw_philic(:,:,jtype) = 0.
     472          end where
    461473        end do
    462474      end if
Note: See TracChangeset for help on using the changeset viewer.