From 8bd8a3402209dc470d775f46b08e113ad31f60ca Mon Sep 17 00:00:00 2001 From: Elizabeth Hunke Date: Sun, 1 Oct 2023 08:54:37 -0500 Subject: [PATCH 1/3] rename config_pond_flushing_timescale, fix spelling in config_ridiging_efolding_scale --- components/mpas-seaice/bld/build-namelist | 4 +-- .../mpas-seaice/bld/build-namelist-section | 4 +-- .../namelist_defaults_mpassi.xml | 4 +-- .../namelist_definition_mpassi.xml | 6 ++-- components/mpas-seaice/src/Registry.xml | 6 ++-- .../src/shared/mpas_seaice_column.F | 18 +++++----- .../src/shared/mpas_seaice_icepack.F | 36 +++++++++---------- 7 files changed, 39 insertions(+), 39 deletions(-) diff --git a/components/mpas-seaice/bld/build-namelist b/components/mpas-seaice/bld/build-namelist index 8d4249b504d3..d50b3edb6f69 100755 --- a/components/mpas-seaice/bld/build-namelist +++ b/components/mpas-seaice/bld/build-namelist @@ -861,7 +861,7 @@ add_default($nl, 'config_max_dry_snow_radius'); add_default($nl, 'config_snow_to_ice_transition_depth'); add_default($nl, 'config_pond_refreezing_type'); -add_default($nl, 'config_pond_flushing_timescale'); +add_default($nl, 'config_pond_flushing_factor'); add_default($nl, 'config_min_meltwater_retained_fraction'); add_default($nl, 'config_max_meltwater_retained_fraction'); add_default($nl, 'config_pond_depth_to_fraction_ratio'); @@ -901,7 +901,7 @@ add_default($nl, 'config_floediam'); add_default($nl, 'config_ice_strength_formulation'); add_default($nl, 'config_ridging_participation_function'); add_default($nl, 'config_ridging_redistribution_function'); -add_default($nl, 'config_ridiging_efolding_scale'); +add_default($nl, 'config_ridging_efolding_scale'); add_default($nl, 'config_ratio_ridging_work_to_PE'); ############################## diff --git a/components/mpas-seaice/bld/build-namelist-section b/components/mpas-seaice/bld/build-namelist-section index 3bee756fcf42..bb544754a6ac 100644 --- a/components/mpas-seaice/bld/build-namelist-section +++ b/components/mpas-seaice/bld/build-namelist-section @@ -377,7 +377,7 @@ add_default($nl, 'config_max_dry_snow_radius'); add_default($nl, 'config_snow_to_ice_transition_depth'); add_default($nl, 'config_pond_refreezing_type'); -add_default($nl, 'config_pond_flushing_timescale'); +add_default($nl, 'config_pond_flushing_factor'); add_default($nl, 'config_min_meltwater_retained_fraction'); add_default($nl, 'config_max_meltwater_retained_fraction'); add_default($nl, 'config_pond_depth_to_fraction_ratio'); @@ -418,7 +418,7 @@ add_default($nl, 'config_floediam'); add_default($nl, 'config_ice_strength_formulation'); add_default($nl, 'config_ridging_participation_function'); add_default($nl, 'config_ridging_redistribution_function'); -add_default($nl, 'config_ridiging_efolding_scale'); +add_default($nl, 'config_ridging_efolding_scale'); add_default($nl, 'config_ratio_ridging_work_to_PE'); ############################## diff --git a/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml b/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml index df33a404abdd..9304d1c7ea52 100644 --- a/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml +++ b/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml @@ -369,7 +369,7 @@ 0.0 'hlid' -1.0e-3 +1.0e-3 0.15 1.0 0.8 @@ -398,7 +398,7 @@ 'Rothrock75' 'exponential' 'exponential' -3.0 +3.0 17.0 diff --git a/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml b/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml index 6b62bd21e62f..17376d3ea1f4 100644 --- a/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml +++ b/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml @@ -2330,9 +2330,9 @@ Valid values: 'cesm' or 'hlid' Default: Defined in namelist_defaults.xml - -Alter e-folding time scale for flushing.????? +Alters e-folding time scale for flushing with BL99 thermodynamics. Valid values: Default: Defined in namelist_defaults.xml @@ -2508,7 +2508,7 @@ Valid values: 'Hibler80' or 'exponential' Default: Defined in namelist_defaults.xml - E-folding scale of ridged ice (krdg_redist = 1) diff --git a/components/mpas-seaice/src/Registry.xml b/components/mpas-seaice/src/Registry.xml index f7a3df3e0a4a..9343c0f45740 100644 --- a/components/mpas-seaice/src/Registry.xml +++ b/components/mpas-seaice/src/Registry.xml @@ -1644,8 +1644,8 @@ possible_values="'cesm' or 'hlid'" icepack_name="frzpnd" /> - @@ -1761,7 +1761,7 @@ possible_values="'Hibler80' or 'exponential'" icepack_name="krdg_redist" /> - Date: Sun, 1 Oct 2023 10:05:15 -0500 Subject: [PATCH 2/3] add shortwave redistribution config options --- components/mpas-seaice/bld/build-namelist | 3 ++ .../mpas-seaice/bld/build-namelist-section | 3 ++ .../namelist_defaults_mpassi.xml | 3 ++ .../namelist_definition_mpassi.xml | 24 ++++++++++++ components/mpas-seaice/src/Registry.xml | 15 ++++++++ .../src/shared/mpas_seaice_icepack.F | 38 ++++++++++++++----- 6 files changed, 76 insertions(+), 10 deletions(-) diff --git a/components/mpas-seaice/bld/build-namelist b/components/mpas-seaice/bld/build-namelist index d50b3edb6f69..a5b691ce0f62 100755 --- a/components/mpas-seaice/bld/build-namelist +++ b/components/mpas-seaice/bld/build-namelist @@ -840,6 +840,9 @@ add_default($nl, 'config_snow_shortwave_tuning_parameter'); add_default($nl, 'config_temp_change_snow_grain_radius_change'); add_default($nl, 'config_max_melting_snow_grain_radius'); add_default($nl, 'config_algae_absorption_coefficient'); +add_default($nl, 'config_use_shortwave_redistribution'); +add_default($nl, 'config_shortwave_redistribution_fraction'); +add_default($nl, 'config_shortwave_redistribution_threshold'); ######################## # Namelist group: snow # diff --git a/components/mpas-seaice/bld/build-namelist-section b/components/mpas-seaice/bld/build-namelist-section index bb544754a6ac..de5db9e589be 100644 --- a/components/mpas-seaice/bld/build-namelist-section +++ b/components/mpas-seaice/bld/build-namelist-section @@ -356,6 +356,9 @@ add_default($nl, 'config_snow_shortwave_tuning_parameter'); add_default($nl, 'config_temp_change_snow_grain_radius_change'); add_default($nl, 'config_max_melting_snow_grain_radius'); add_default($nl, 'config_algae_absorption_coefficient'); +add_default($nl, 'config_use_shortwave_redistribution'); +add_default($nl, 'config_shortwave_redistribution_fraction'); +add_default($nl, 'config_shortwave_redistribution_threshold'); ######################## # Namelist group: snow # diff --git a/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml b/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml index 9304d1c7ea52..661a8692dbec 100644 --- a/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml +++ b/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml @@ -354,6 +354,9 @@ 1.5 1500.0 0.6 +false +0.9 +0.02 'ITDrdg' diff --git a/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml b/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml index 17376d3ea1f4..d75c63fffceb 100644 --- a/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml +++ b/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml @@ -2236,6 +2236,30 @@ Valid values: Default: Defined in namelist_defaults.xml + +Redistribute shortwave from layers near the melting temperature to the surface. + +Valid values: true or false +Default: Defined in namelist_defaults.xml + + + +Fraction of shortwave moved from a layer near the melting temperature to the surface. + +Valid values: fraction between 0 and 1 +Default: Defined in namelist_defaults.xml + + + +Temperature threshold for moving shortwave to the surface. + +Valid values: +Default: Defined in namelist_defaults.xml + + diff --git a/components/mpas-seaice/src/Registry.xml b/components/mpas-seaice/src/Registry.xml index 9343c0f45740..7543f42a266a 100644 --- a/components/mpas-seaice/src/Registry.xml +++ b/components/mpas-seaice/src/Registry.xml @@ -1583,6 +1583,21 @@ possible_values="" icepack_name="kalg" /> + + + diff --git a/components/mpas-seaice/src/shared/mpas_seaice_icepack.F b/components/mpas-seaice/src/shared/mpas_seaice_icepack.F index cc1eed53e1ce..e3eaa6c1fdc9 100644 --- a/components/mpas-seaice/src/shared/mpas_seaice_icepack.F +++ b/components/mpas-seaice/src/shared/mpas_seaice_icepack.F @@ -11570,7 +11570,8 @@ subroutine init_icepack_package_configs(domain) config_use_skeletal_biochemistry, & config_use_modal_aerosols, & config_use_snow_liquid_ponds, & - config_use_snow_grain_radius + config_use_snow_grain_radius, & + config_use_shortwave_redistribution real(kind=RKIND), pointer :: & config_min_friction_velocity, & @@ -11591,6 +11592,8 @@ subroutine init_icepack_package_configs(domain) config_ice_shortwave_tuning_parameter, & config_pond_shortwave_tuning_parameter, & config_snow_shortwave_tuning_parameter, & + config_shortwave_redistribution_fraction, & + config_shortwave_redistribution_threshold, & config_temp_change_snow_grain_radius_change, & config_max_melting_snow_grain_radius, & config_algae_absorption_coefficient, & @@ -11751,7 +11754,7 @@ subroutine init_icepack_package_configs(domain) config_itd_conversion_type_int, & config_category_bounds_type_int - character(len=strKIND) :: tmp_config_shortwave + character(len=strKIND) :: tmp_config_shortwave_type character(len=strKIND) :: tmp_config_snw_ssp_table character(len=strKIND) :: snw_aging_table = 'snicar' @@ -11787,6 +11790,9 @@ subroutine init_icepack_package_configs(domain) call MPAS_pool_get_config(domain % configs, "config_ice_shortwave_tuning_parameter", config_ice_shortwave_tuning_parameter) call MPAS_pool_get_config(domain % configs, "config_pond_shortwave_tuning_parameter", config_pond_shortwave_tuning_parameter) call MPAS_pool_get_config(domain % configs, "config_snow_shortwave_tuning_parameter", config_snow_shortwave_tuning_parameter) + call MPAS_pool_get_config(domain % configs, "config_use_shortwave_redistribution", config_use_shortwave_redistribution) + call MPAS_pool_get_config(domain % configs, "config_shortwave_redistribution_fraction", config_shortwave_redistribution_fraction) + call MPAS_pool_get_config(domain % configs, "config_shortwave_redistribution_threshold", config_shortwave_redistribution_threshold) call MPAS_pool_get_config(domain % configs, "config_temp_change_snow_grain_radius_change", & config_temp_change_snow_grain_radius_change) call MPAS_pool_get_config(domain % configs, "config_max_melting_snow_grain_radius", config_max_melting_snow_grain_radius) @@ -11980,11 +11986,11 @@ subroutine init_icepack_package_configs(domain) config_category_bounds_type_int = config_cice_int("config_category_bounds_type", config_category_bounds_type) if (config_use_snicar_ad .and. (trim(config_shortwave_type(1:4)) == "dEdd")) then - tmp_config_shortwave = 'dEdd_snicar_ad' - tmp_config_snw_ssp_table = 'snicar' + tmp_config_shortwave_type = 'dEdd_snicar_ad' + tmp_config_snw_ssp_table = 'snicar' else - tmp_config_shortwave = config_shortwave_type - tmp_config_snw_ssp_table = 'test' + tmp_config_shortwave_type = config_shortwave_type + tmp_config_snw_ssp_table = 'test' endif !echmod debugging @@ -12201,7 +12207,7 @@ subroutine init_icepack_package_configs(domain) phi_c_slow_mode_in = config_slow_mode_critical_porosity, & phi_i_mushy_in = config_congelation_ice_porosity, & ! shortwave_in = config_shortwave_type, & - shortwave_in = tmp_config_shortwave, & + shortwave_in = tmp_config_shortwave_type, & albedo_type_in = config_albedo_type, & albsnowi_in = config_infrared_snow_albedo, & albicev_in = config_visible_ice_albedo, & @@ -12275,9 +12281,9 @@ subroutine init_icepack_package_configs(domain) !t_sk_conv_in = , & !t_sk_ox_in = , & !frazil_scav_in = , & - !sw_redist_in = , & ! not yet implemented in MPAS-SI (stealth feature) - !sw_frac_in = , & ! not yet implemented in MPAS-SI (stealth feature) - !sw_dtemp_in = , & ! not yet implemented in MPAS-SI (stealth feature) + sw_redist_in = config_use_shortwave_redistribution, & + sw_frac_in = config_shortwave_redistribution_fraction, & + sw_dtemp_in = config_shortwave_redistribution_threshold, & snwgrain_in = config_use_snow_grain_radius, & snwredist_in = config_snow_redistribution_scheme, & use_smliq_pnd_in = config_use_snow_liquid_ponds, & @@ -12590,6 +12596,18 @@ subroutine init_icepack_package_configs(domain) ! snow tuning parameter; +1 > ~.01 change in broadband albedo !R_snw = config_snow_shortwave_tuning_parameter + ! sw_redist + ! Redistribute shortwave from layers near the melting temperature to the surface + !sw_redist = config_use_shortwave_redistribution + + ! sw_frac + ! Fraction of shortwave moved from layers near the melting temperature to the surface + !sw_frac = config_shortwave_redistribution_fraction + + ! sw_dtemp + ! Temperature threshold for moving shortwave to the surface + !sw_dtemp = config_shortwave_redistribution_threshold + ! dT_mlt: ! change in temp for non-melt to melt snow grain radius change (C) !dT_mlt = config_temp_change_snow_grain_radius_change From 64aa64f03d0fdeb1cd9bbcfee7d786bf2e53d1bb Mon Sep 17 00:00:00 2001 From: Elizabeth Hunke Date: Mon, 2 Oct 2023 12:21:33 -0500 Subject: [PATCH 3/3] add config_macro_drainage_timescale --- components/mpas-seaice/bld/build-namelist | 1 + components/mpas-seaice/bld/build-namelist-section | 1 + .../bld/namelist_files/namelist_defaults_mpassi.xml | 1 + .../bld/namelist_files/namelist_definition_mpassi.xml | 8 ++++++++ components/mpas-seaice/src/Registry.xml | 5 +++++ components/mpas-seaice/src/shared/mpas_seaice_icepack.F | 7 +++++++ 6 files changed, 23 insertions(+) diff --git a/components/mpas-seaice/bld/build-namelist b/components/mpas-seaice/bld/build-namelist index a5b691ce0f62..e653d10f65c9 100755 --- a/components/mpas-seaice/bld/build-namelist +++ b/components/mpas-seaice/bld/build-namelist @@ -882,6 +882,7 @@ add_default($nl, 'config_rapid_model_critical_Ra'); add_default($nl, 'config_rapid_mode_aspect_ratio'); add_default($nl, 'config_slow_mode_drainage_strength'); add_default($nl, 'config_slow_mode_critical_porosity'); +add_default($nl, 'config_macro_drainage_timescale'); add_default($nl, 'config_congelation_ice_porosity'); ####################### diff --git a/components/mpas-seaice/bld/build-namelist-section b/components/mpas-seaice/bld/build-namelist-section index de5db9e589be..4b99123aa2cf 100644 --- a/components/mpas-seaice/bld/build-namelist-section +++ b/components/mpas-seaice/bld/build-namelist-section @@ -398,6 +398,7 @@ add_default($nl, 'config_rapid_model_critical_Ra'); add_default($nl, 'config_rapid_mode_aspect_ratio'); add_default($nl, 'config_slow_mode_drainage_strength'); add_default($nl, 'config_slow_mode_critical_porosity'); +add_default($nl, 'config_macro_drainage_timescale'); add_default($nl, 'config_congelation_ice_porosity'); ####################### diff --git a/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml b/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml index 661a8692dbec..52b692571983 100644 --- a/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml +++ b/components/mpas-seaice/bld/namelist_files/namelist_defaults_mpassi.xml @@ -387,6 +387,7 @@ 1.0 -5.0e-8 0.05 +10. 0.85 diff --git a/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml b/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml index d75c63fffceb..b0d4060ea186 100644 --- a/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml +++ b/components/mpas-seaice/bld/namelist_files/namelist_definition_mpassi.xml @@ -2461,6 +2461,14 @@ Valid values: Any real number between 0 and 1. Default: Defined in namelist_defaults.xml + +Timescale for macroscopic drainage. + +Valid values: Any positive real number. +Default: Defined in namelist_defaults.xml + + Liquid fraction of congelation ice. diff --git a/components/mpas-seaice/src/Registry.xml b/components/mpas-seaice/src/Registry.xml index 7543f42a266a..11b481211858 100644 --- a/components/mpas-seaice/src/Registry.xml +++ b/components/mpas-seaice/src/Registry.xml @@ -1727,6 +1727,11 @@ possible_values="Any real number between 0 and 1." icepack_name="phi_c_slow_mode" /> +