diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 4ebf2859c..9a3225b6e 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1050,7 +1050,15 @@ module GFS_typedefs integer :: decfl !< deformed CFL factor type(ty_tempo_cfg) :: tempo_cfg !< Thompson MP configuration information. logical :: thompson_mp_is_init=.false. !< Local scheme initialization flag - + real(kind=kind_phys) :: nt_c_l !< prescribed cloud liquid water number concentration over land + real(kind=kind_phys) :: nt_c_o !< prescribed cloud liquid water number concentration over ocean + real(kind=kind_phys) :: av_i !< transition value of coefficient matching at crossover from cloud ice to snow + real(kind=kind_phys) :: xnc_max !< maximum mass number concentration of cloud liquid water particles in air used in deposition nucleation + real(kind=kind_phys) :: ssati_min !< minimum supersaturation over ice threshold for deposition nucleation + real(kind=kind_phys) :: Nt_i_max !< maximum threshold number concentration of cloud ice water crystals in air + real(kind=kind_phys) :: rr_min !< multiplicative tuning parameter for microphysical sedimentation minimum threshold + + !--- GFDL microphysical paramters logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency @@ -3651,7 +3659,14 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & real(kind=kind_phys) :: dt_inner = -999.0 !< time step for the inner loop logical :: sedi_semi = .false. !< flag for semi Lagrangian sedi of rain integer :: decfl = 8 !< deformed CFL factor - + real(kind=kind_phys) :: nt_c_l = 150.e6 !< prescribed cloud liquid water number concentration over land + real(kind=kind_phys) :: nt_c_o = 50.e6 !< prescribed cloud liquid water number concentration over ocean + real(kind=kind_phys) :: av_i = -999.0 !< transition value of coefficient matching at crossover from cloud ice to snow + real(kind=kind_phys) :: xnc_max = 1000.e3 !< maximum mass number concentration of cloud liquid water particles in air used in deposition nucleation + real(kind=kind_phys) :: ssati_min = 0.15 !< minimum supersaturation over ice threshold for deposition nucleation + real(kind=kind_phys) :: Nt_i_max = 4999.e3 !< maximum threshold number concentration of cloud ice water crystals in air + real(kind=kind_phys) :: rr_min = 1000.0 !< multiplicative tuning parameter for microphysical sedimentation minimum threshold + !--- GFDL microphysical parameters logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction @@ -4160,7 +4175,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & mg_ncnst, mg_ninst, mg_ngnst, sed_supersat, do_sb_physics, & mg_alf, mg_qcmin, mg_do_ice_gmao, mg_do_liq_liu, & ltaerosol, lthailaware, lradar, nsfullradar_diag, lrefres, & - ttendlim, ext_diag_thompson, dt_inner, lgfdlmprad, & + ttendlim, ext_diag_thompson, nt_c_l, nt_c_o, av_i, xnc_max, & + ssati_min, Nt_i_max, rr_min, dt_inner, lgfdlmprad, & sedi_semi, decfl, & nssl_cccn, nssl_alphah, nssl_alphahl, & nssl_alphar, nssl_ehw0, nssl_ehlw0, & @@ -4881,6 +4897,13 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & endif Model%sedi_semi = sedi_semi Model%decfl = decfl + Model%nt_c_l = nt_c_l + Model%nt_c_o = nt_c_o + Model%av_i = av_i + Model%xnc_max = xnc_max + Model%ssati_min = ssati_min + Model%Nt_i_max = Nt_i_max + Model%rr_min = rr_min !--- TEMPO MP parameters ! DJS to Anders: Maybe we put more of these nml options into the TEMPO configuration type? @@ -6331,6 +6354,13 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, & ' dt_inner =',Model%dt_inner, & ' sedi_semi=',Model%sedi_semi, & ' decfl=',decfl, & + ' nt_c_l=',nt_c_l, & + ' nt_c_o=',nt_c_o, & + ' av_i=',av_i, & + ' xnc_max=',xnc_max, & + ' ssati_min',ssati_min, & + ' Nt_i_max',Nt_i_max, & + ' rr_min',rr_min, & ' effr_in =',Model%effr_in, & ' lradar =',Model%lradar, & ' nsfullradar_diag =',Model%nsfullradar_diag, & @@ -6890,6 +6920,13 @@ subroutine control_print(Model) print *, ' dt_inner : ', Model%dt_inner print *, ' sedi_semi : ', Model%sedi_semi print *, ' decfl : ', Model%decfl + print *, ' nt_c_l : ', Model%nt_c_l + print *, ' nt_c_o : ', Model%nt_c_o + print *, ' av_i : ', Model%av_i + print *, ' xnc_max : ', Model%xnc_max + print *, ' ssati_min : ', Model%ssati_min + print *, ' Nt_i_max : ', Model%Nt_i_max + print *, ' rr_min : ', Model%rr_min print *, ' ' endif if (Model%imp_physics == Model%imp_physics_nssl) then diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 1aade37ed..ab6cf3f72 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4999,6 +4999,55 @@ units = flag dimensions = () type = logical +[nt_c_l] + standard_name = prescribed_number_concentration_of_cloud_liquid_water_particles_in_air_over_land + long_name = volumetric number concentration of cloud liquid water droplets in air over land points + units = m-3 + dimensions = () + type = real + kind = kind_phys +[nt_c_o] + standard_name = prescribed_number_concentration_of_cloud_liquid_water_particles_in_air_over_ocean + long_name = volumetric number concentration of cloud liquid water droplets in air over ocean points + units = m-3 + dimensions = () + type = real + kind = kind_phys +[av_i] + standard_name = cloud_ice_to_snow_tuning_parameter + long_name = transition value of coefficient matching at crossover from cloud ice to snow + units = 1 + dimensions = () + type = real + kind = kind_phys +[xnc_max] + standard_name = maximum_mass_number_concentration_of_cloud_liquid_water_particles_in_air_used_in_deposition_nucleation + long_name = maximum mass number concentration of cloud liquid water particles in air + units = kg-1 + dimensions = () + type = real + kind = kind_phys +[ssati_min] + standard_name = minimum_threshold_supersaturation_over_ice_for_deposition_nucleation + long_name = minimum supersaturation over ice threshold for deposition nucleation + units = fraction + dimensions = () + type = real + kind = kind_phys +[Nt_i_max] + standard_name = maximum_threshold_number_concentration_of_cloud_ice_water_crystals_in_air + long_name = maximum threshold number concentration of cloud ice water crystals in air + units = m-3 + dimensions = () + type = real + kind = kind_phys +[rr_min] + standard_name = multiplicative_tuning_parameter_for_microphysical_sedimentation_minimum_threshold + long_name = multiplicative tuning parameter for microphysical sedimentation minimum threshold + units = 1 + dimensions = () + type = real + kind = kind_phys [gfs_phys_time_vary_is_init] standard_name = flag_for_gfs_phys_time_vary_interstitial_initialization long_name = flag carrying interstitial initialization status diff --git a/ccpp/physics b/ccpp/physics index e6949b379..cf752f71b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e6949b37966bb8424d6dbf434715e3510ca9a562 +Subproject commit cf752f71b838f3d78c49c449c60fc928e9c62a0d