Ignore:
Timestamp:
Sep 18, 2025, 10:29:26 AM (4 months ago)
Author:
idelkadi
Message:

Added a formulation to prescribe effective cloud size as a hyperbolic tangent function of pressure for calculating radiative fluxes related to 3D cloud effects.
Activation is controlled in namelist_ecrad by the logical key ok_separation_tanh

Location:
LMDZ6/trunk/libf/phylmd/ecrad/lmdz
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/ecrad/lmdz/radiation_scheme_mod.f90

    r5675 r5821  
    428428               &  driver_config%high_inv_effective_size, 0.8_jprb, 0.45_jprb, &
    429429               &  KIDIA, KFDIA)
    430    else if (driver_config%ok_separation) then
     430   else if (driver_config%ok_separation_eta) then
    431431     call cloud%param_cloud_effective_separation_eta(klon, klev, &
     432               &  thermodynamics%pressure_hl, &
     433               &  driver_config%cloud_separation_scale_surface, &
     434               &  driver_config%cloud_separation_scale_toa, &
     435               &  driver_config%cloud_separation_scale_power, &
     436               &  driver_config%cloud_inhom_separation_factor, &
     437               &  KIDIA, KFDIA)
     438   else if (driver_config%ok_separation_tanh) then
     439     call cloud%param_cloud_effective_separation_tanh(klon, klev, &
    432440               &  thermodynamics%pressure_hl, &
    433441               &  driver_config%cloud_separation_scale_surface, &
     
    11341142               &  driver_config%high_inv_effective_size, 0.8_jprb, 0.45_jprb, &
    11351143               &  KIDIA, KFDIA)
    1136    else if (driver_config%ok_separation) then
     1144   else if (driver_config%ok_separation_eta) then
    11371145     call cloud%param_cloud_effective_separation_eta(klon, klev, &
     1146               &  thermodynamics%pressure_hl, &
     1147               &  driver_config%cloud_separation_scale_surface, &
     1148               &  driver_config%cloud_separation_scale_toa, &
     1149               &  driver_config%cloud_separation_scale_power, &
     1150               &  driver_config%cloud_inhom_separation_factor, &
     1151               &  KIDIA, KFDIA)
     1152   else if (driver_config%ok_separation_tanh) then
     1153     call cloud%param_cloud_effective_separation_tanh(klon, klev, &
    11381154               &  thermodynamics%pressure_hl, &
    11391155               &  driver_config%cloud_separation_scale_surface, &
  • LMDZ6/trunk/libf/phylmd/ecrad/lmdz/setup_config_from_lmdz.f90

    r5675 r5821  
    99  type driver_config_type
    1010     logical    :: ok_effective_size  = .true.
    11      logical    :: ok_separation = .false.   
     11     logical    :: ok_separation_eta = .false.   
     12     logical    :: ok_separation_tanh = .false.
    1213     real(jprb) :: high_inv_effective_size   = -1.0_jprb ! m-1
    1314     real(jprb) :: middle_inv_effective_size = -1.0_jprb ! m-1
     
    4445    character(*), intent(in)          :: file_name
    4546    logical, intent(out), optional    :: is_success
    46     logical    :: ok_effective_size, ok_separation
     47    logical    :: ok_effective_size, ok_separation_eta, ok_separation_tanh
    4748    integer    :: iosopen ! Status after calling open
    4849    real(jprb) :: high_inv_effective_size
     
    6162    logical :: do_save_inputs
    6263
    63     namelist /radiation_driver/ ok_effective_size, ok_separation, &
     64    namelist /radiation_driver/ ok_effective_size, ok_separation_eta, ok_separation_tanh, &
    6465         &  frac_std, overlap_decorr_length, kdecolat, &
    6566         &  low_decorrelation_length, mid_decorrelation_length, high_decorrelation_length, &
     
    7071
    7172    ok_effective_size = .false.
    72     ok_separation = .false.
     73    ok_separation_eta = .false.
     74    ok_separation_tanh = .false.
    7375    high_inv_effective_size   = -1.0_jprb
    7476    middle_inv_effective_size = -1.0_jprb
     
    109111    ! Copy namelist data into configuration object
    110112    this%ok_effective_size = ok_effective_size
    111     this%ok_separation = ok_separation
     113    this%ok_separation_eta = ok_separation_eta
     114    this%ok_separation_tanh = ok_separation_tanh
    112115    this%frac_std = frac_std
    113116    this%overlap_decorr_length = overlap_decorr_length
Note: See TracChangeset for help on using the changeset viewer.