Ignore:
Timestamp:
Jul 1, 2025, 2:17:10 PM (38 hours ago)
Author:
jbclement
Message:

PEM:
Addition of the flag 'impose_dust_ratio' (default: .false.) to impose a dust-to-ice ratio instead of a dust tendency for the layering algorithm. The ratio value can be set in the "run_PEM.def" by 'dust_to_ice_ratio' (default: 0.01).
JBC

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/layering_mod.F90

    r3809 r3821  
    1919
    2020! Physical parameters
    21 real, parameter :: d_dust            = 1.e-3 ! Tendency of dust [kg.m-2.y-1]
    22 real, parameter :: dry_lag_porosity  = 0.4   ! Porosity of dust lag
    23 real, parameter :: wet_lag_porosity  = 0.1   ! Porosity of water ice lag
    24 real, parameter :: regolith_porosity = 0.4   ! Porosity of regolith
    25 real, parameter :: breccia_porosity  = 0.1   ! Porosity of breccia
    26 real, parameter :: co2ice_porosity   = 0.    ! Porosity of CO2 ice
    27 real, parameter :: h2oice_porosity   = 0.    ! Porosity of H2O ice
    28 real, parameter :: rho_dust          = 2500. ! Density of dust [kg.m-3]
    29 real, parameter :: rho_rock          = 3200. ! Density of rock [kg.m-3]
    30 real, parameter :: h_patchy_dust     = 5.e-4 ! Height under which a dust lag is considered patchy [m]
    31 real, parameter :: h_patchy_ice      = 5.e-4 ! Height under which a H2O ice lag is considered patchy [m]
     21logical         :: impose_dust_ratio = .false. ! Impose dust-to-ice ratio instead of dust tendency (see 'dust2ice_ratio')
     22real            :: dust2ice_ratio    = 0.01    ! Dust-to-ice ratio when ice condenses (1% by default)
     23real            :: d_dust            = 1.e-3   ! Tendency of dust [kg.m-2.y-1]
     24real, parameter :: dry_lag_porosity  = 0.4     ! Porosity of dust lag
     25real, parameter :: wet_lag_porosity  = 0.1     ! Porosity of water ice lag
     26real, parameter :: regolith_porosity = 0.4     ! Porosity of regolith
     27real, parameter :: breccia_porosity  = 0.1     ! Porosity of breccia
     28real, parameter :: co2ice_porosity   = 0.      ! Porosity of CO2 ice
     29real, parameter :: h2oice_porosity   = 0.      ! Porosity of H2O ice
     30real, parameter :: rho_dust          = 2500.   ! Density of dust [kg.m-3]
     31real, parameter :: rho_rock          = 3200.   ! Density of rock [kg.m-3]
     32real, parameter :: h_patchy_dust     = 5.e-4   ! Height under which a dust lag is considered patchy [m]
     33real, parameter :: h_patchy_ice      = 5.e-4   ! Height under which a H2O ice lag is considered patchy [m]
    3234
    3335! Parameters for CO2 flux correction (inspired by Levrard et al. 2007)
     
    574576! Is the considered stratum a dust lag?
    575577if (.not. is_dust_lag(current)) return
    576 do while (is_dust_lag(current) .and. associated(current))
     578do while (is_dust_lag(current))
    577579    h_toplag = h_toplag + thickness(current)
    578     current => current%down
     580    if (associated(current%down)) then
     581        current => current%down
     582    else
     583        exit
     584    endif
    579585enddo
     586
     587if (.not. associated(current%down)) then ! Bottom of the layering -> no ice below
     588    h_toplag = 0.
     589    return
     590endif
     591
    580592! Is the stratum below the dust lag made of ice?
    581 if (current%h_h2oice > 0. .and. current%h_h2oice > current%h_co2ice) then ! There is more H2O ice than CO2 ice
     593if (current%h_h2oice > 0. .and. current%h_h2oice > current%h_co2ice) then ! Yes, there is more H2O ice than CO2 ice
    582594    if (h_toplag < h_patchy_dust) then ! But the dust lag is too thin to considered ice as subsurface ice
    583595        h_toplag = 0.
    584596        h2o_ice = current%h_h2oice
    585597    endif
    586 else if (current%h_co2ice > 0. .and. current%h_co2ice > current%h_h2oice) then ! There is more CO2 ice than H2O ice
     598else if (current%h_co2ice > 0. .and. current%h_co2ice > current%h_h2oice) then ! No, there is more CO2 ice than H2O ice
    587599    h_toplag = 0. ! Because it matters only for H2O ice
    588600    if (h_toplag < h_patchy_ice) then ! But the dust lag is too thin to considered ice as subsurface ice
     
    712724dh_h2oice = d_h2oice/rho_h2oice
    713725! To disable dust sedimenation when there is ice sublimation (because dust tendency is fixed)
    714 if (dh_co2ice > 0. .or. dh_h2oice > 0.) then
    715     dh_dust = d_dust/rho_dust
     726if (dh_co2ice >= 0. .and. dh_h2oice >= 0.) then
     727    if (impose_dust_ratio) then
     728        dh_dust = dust2ice_ratio*(dh_h2oice + dh_co2ice)
     729    else
     730        dh_dust = d_dust/rho_dust
     731    endif
    716732else
    717733    dh_dust = 0.
Note: See TracChangeset for help on using the changeset viewer.