diff --git a/config/model_configs/diagnostic_edmfx_aquaplanet.yml b/config/model_configs/diagnostic_edmfx_aquaplanet.yml index bbfb7c149a..bb8485f49d 100644 --- a/config/model_configs/diagnostic_edmfx_aquaplanet.yml +++ b/config/model_configs/diagnostic_edmfx_aquaplanet.yml @@ -1,3 +1,6 @@ +z_max: 75000 +z_elem: 31 +rayleigh_sponge: true surface_setup: DefaultMoninObukhov rad: clearsky turbconv: diagnostic_edmfx @@ -14,8 +17,7 @@ moist: equil cloud_model: "quadrature_sgs" precip_model: 1M dt: 100secs -t_end: 12hours -dt_save_state_to_disk: 12hours +t_end: 6hours regression_test: true toml: [toml/diagnostic_edmfx.toml] ode_algo: ARS343 diff --git a/config/model_configs/diagnostic_edmfx_aquaplanet_gpu.yml b/config/model_configs/diagnostic_edmfx_aquaplanet_gpu.yml index f311520ea3..87536d798a 100644 --- a/config/model_configs/diagnostic_edmfx_aquaplanet_gpu.yml +++ b/config/model_configs/diagnostic_edmfx_aquaplanet_gpu.yml @@ -1,3 +1,5 @@ +z_max: 75000.0 +z_elem: 25 surface_setup: DefaultMoninObukhov rad: clearsky turbconv: diagnostic_edmfx @@ -14,7 +16,6 @@ moist: equil cloud_model: "quadrature_sgs" precip_model: 1M dt: 100secs -t_end: 12hours -dt_save_state_to_disk: 12hours +t_end: 6hours toml: [toml/diagnostic_edmfx.toml] ode_algo: ARS343 diff --git a/config/model_configs/prognostic_edmfx_aquaplanet.yml b/config/model_configs/prognostic_edmfx_aquaplanet.yml index 5526883302..a4e517166d 100644 --- a/config/model_configs/prognostic_edmfx_aquaplanet.yml +++ b/config/model_configs/prognostic_edmfx_aquaplanet.yml @@ -1,3 +1,6 @@ +z_max: 75000 +z_elem: 31 +rayleigh_sponge: true surface_setup: DefaultMoninObukhov rad: clearsky turbconv: prognostic_edmfx diff --git a/config/model_configs/single_column_hydrostatic_balance_ft64.yml b/config/model_configs/single_column_hydrostatic_balance_ft64.yml index 225a48d060..03dcd61a17 100644 --- a/config/model_configs/single_column_hydrostatic_balance_ft64.yml +++ b/config/model_configs/single_column_hydrostatic_balance_ft64.yml @@ -1,9 +1,10 @@ +z_max: 75000.0 dz_bottom: 30.0 dt_save_state_to_disk: "5days" initial_condition: "IsothermalProfile" config: "column" hyperdiff: false -z_elem: 45 +z_elem: 63 dt: "3hours" FLOAT_TYPE: "Float64" dt_save_to_sol: "3hours" diff --git a/config/model_configs/single_column_radiative_equilibrium_allsky_idealized_clouds.yml b/config/model_configs/single_column_radiative_equilibrium_allsky_idealized_clouds.yml index 10d5bc77b1..238b1c2df7 100644 --- a/config/model_configs/single_column_radiative_equilibrium_allsky_idealized_clouds.yml +++ b/config/model_configs/single_column_radiative_equilibrium_allsky_idealized_clouds.yml @@ -10,7 +10,7 @@ idealized_clouds: true dz_bottom: 30.0 config: "column" insolation: "timevarying" -z_max: 70000.0 +z_max: 75000.0 dt_save_to_sol: "30hours" rad: "allskywithclear" diagnostics: diff --git a/config/model_configs/single_column_radiative_equilibrium_clearsky.yml b/config/model_configs/single_column_radiative_equilibrium_clearsky.yml index f8b197d806..5a5b5677de 100644 --- a/config/model_configs/single_column_radiative_equilibrium_clearsky.yml +++ b/config/model_configs/single_column_radiative_equilibrium_clearsky.yml @@ -8,6 +8,6 @@ idealized_h2o: true t_end: "654days" dz_bottom: 30.0 config: "column" -z_max: 70000.0 +z_max: 75000.0 dt_save_to_sol: "30hours" rad: "clearsky" diff --git a/config/model_configs/single_column_radiative_equilibrium_clearsky_prognostic_surface_temp.yml b/config/model_configs/single_column_radiative_equilibrium_clearsky_prognostic_surface_temp.yml index e49d6ec462..17dbb08cb0 100644 --- a/config/model_configs/single_column_radiative_equilibrium_clearsky_prognostic_surface_temp.yml +++ b/config/model_configs/single_column_radiative_equilibrium_clearsky_prognostic_surface_temp.yml @@ -4,7 +4,7 @@ idealized_h2o: true hyperdiff: false config: "column" initial_condition: "IsothermalProfile" -z_max: 70000 +z_max: 75000 z_elem: 63 dz_bottom: 30 t_end: "654days" diff --git a/config/model_configs/single_column_radiative_equilibrium_gray.yml b/config/model_configs/single_column_radiative_equilibrium_gray.yml index 02b096b8fa..973f56cbf7 100644 --- a/config/model_configs/single_column_radiative_equilibrium_gray.yml +++ b/config/model_configs/single_column_radiative_equilibrium_gray.yml @@ -3,13 +3,13 @@ initial_condition: "IsothermalProfile" hyperdiff: false # It seems radiative equilibrium needs a larger dz near the top # to be stable, so we use a smaller z_elem -z_elem: 50 +z_elem: 63 dt: "3hours" dt_rad: "3hours" t_end: "654days" dz_bottom: 30.0 config: "column" -z_max: 70000.0 +z_max: 75000.0 dt_save_to_sol: "30hours" rad: "gray" # [2, 2, 80] instead of [1, 1, 80] because Julia ranges are inclusive of the diff --git a/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric.yml b/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric.yml index 65097acad1..080fefecba 100644 --- a/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric.yml +++ b/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_raw_zonallyasymmetric.yml @@ -10,7 +10,7 @@ non_orographic_gravity_wave: true dz_bottom: 300.0 vert_diff: true insolation: "timevarying" -z_max: 55000.0 +z_max: 75000.0 precip_model: "0M" cloud_model: "grid_scale" surface_temperature: "ZonallyAsymmetric" diff --git a/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.yml b/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.yml index 3ced2aaf4f..5f20a5fee3 100644 --- a/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.yml +++ b/config/model_configs/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.yml @@ -1,5 +1,5 @@ -z_elem: 25 -z_max: 55000.0 +z_max: 75000.0 +z_elem: 31 dz_bottom: 300.0 dt: "400secs" t_end: "1days" @@ -18,7 +18,7 @@ orographic_gravity_wave: "gfdl_restart" surface_setup: "DefaultMoninObukhov" prescribe_ozone: true prescribed_aerosols: ["CB1", "CB2", "SO4"] -toml: [toml/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.toml] +toml: [toml/sphere_held_suarez.toml] diagnostics: - short_name: [edt, evu, mmrso4, mmrbcpo, mmrbcpi, o3] reduction_time: average diff --git a/config/model_configs/sphere_aquaplanet_rhoe_nonequilmoist_allsky.yml b/config/model_configs/sphere_aquaplanet_rhoe_nonequilmoist_allsky.yml index 1fed54c9c3..ef970c0fef 100644 --- a/config/model_configs/sphere_aquaplanet_rhoe_nonequilmoist_allsky.yml +++ b/config/model_configs/sphere_aquaplanet_rhoe_nonequilmoist_allsky.yml @@ -1,5 +1,5 @@ z_elem: 25 -z_max: 55000.0 +z_max: 75000.0 dz_bottom: 300.0 dt: "400secs" t_end: "18hours" @@ -14,4 +14,4 @@ rad: "allskywithclear" insolation: "timevarying" rayleigh_sponge: true surface_setup: "DefaultMoninObukhov" -toml: [toml/sphere_aquaplanet_rhoe_equilmoist_allsky_gw_res.toml] +toml: [toml/sphere_held_suarez.toml] diff --git a/config/model_configs/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.yml b/config/model_configs/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.yml index 685851fb0a..16dedb3cb8 100644 --- a/config/model_configs/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.yml +++ b/config/model_configs/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.yml @@ -1,14 +1,14 @@ dt_save_state_to_disk: "4days" -rayleigh_sponge: true -dt: "450secs" -z_elem: 25 +dt: "400secs" +z_elem: 31 t_end: "4days" dz_bottom: 300.0 vert_diff: true forcing: "held_suarez" -z_max: 55000.0 +z_max: 75000.0 precip_model: "0M" regression_test: true +rayleigh_sponge: true viscous_sponge: true moist: "equil" -toml: [toml/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.toml] +toml: [toml/sphere_held_suarez.toml] diff --git a/config/model_configs/sphere_held_suarez_rhoe_hightop.yml b/config/model_configs/sphere_held_suarez_rhoe_hightop.yml index 6e9f232f5b..50bf455973 100644 --- a/config/model_configs/sphere_held_suarez_rhoe_hightop.yml +++ b/config/model_configs/sphere_held_suarez_rhoe_hightop.yml @@ -1,8 +1,10 @@ +z_max: 75000.0 dz_bottom: 300.0 dt_save_state_to_disk: "4days" t_end: "8days" forcing: "held_suarez" dt: "400secs" -z_elem: 25 +z_elem: 31 deep_atmosphere: true -z_max: 55000.0 +rayleigh_sponge: true +toml: [toml/sphere_held_suarez.toml] diff --git a/config/model_configs/sphere_hydrostatic_balance_rhoe_ft64.yml b/config/model_configs/sphere_hydrostatic_balance_rhoe_ft64.yml index ea3cea15b8..0ef3642ff9 100644 --- a/config/model_configs/sphere_hydrostatic_balance_rhoe_ft64.yml +++ b/config/model_configs/sphere_hydrostatic_balance_rhoe_ft64.yml @@ -1,7 +1,7 @@ dt_save_state_to_disk: "8days" t_end: "8days" discrete_hydrostatic_balance: true -hyperdiff: false +hyperdiff: true perturb_initstate: false FLOAT_TYPE: "Float64" dt_save_to_sol: "600secs" diff --git a/src/cache/tracer_cache.jl b/src/cache/tracer_cache.jl index 4b57ab7589..e03d8d714d 100644 --- a/src/cache/tracer_cache.jl +++ b/src/cache/tracer_cache.jl @@ -2,6 +2,7 @@ using ClimaUtilities.ClimaArtifacts import Dates: Year import ClimaUtilities.TimeVaryingInputs: TimeVaryingInput, LinearPeriodFillingInterpolation +import Interpolations as Intp function tracer_cache( Y, @@ -47,6 +48,7 @@ function tracer_cache( # time series of lon-lat-z data. prescribed_aerosol_names_as_symbols = Symbol.(prescribed_aerosol_names) target_space = axes(Y.c) + extrapolation_bc = (Intp.Periodic(), Intp.Flat(), Intp.Flat()) timevaryinginputs = [ TimeVaryingInput( joinpath( @@ -60,6 +62,7 @@ function tracer_cache( target_space; reference_date = start_date, regridder_type = :InterpolationsRegridder, + regridder_kwargs = (; extrapolation_bc), method = LinearPeriodFillingInterpolation(Year(1)), ) for name in prescribed_aerosol_names ] diff --git a/toml/diagnostic_edmfx.toml b/toml/diagnostic_edmfx.toml index 41c7c57094..4e415a01fb 100644 --- a/toml/diagnostic_edmfx.toml +++ b/toml/diagnostic_edmfx.toml @@ -1,3 +1,6 @@ +[zd_rayleigh] +value = 50000.0 + [entr_inv_tau] value = 0.002 diff --git a/toml/prognostic_edmfx.toml b/toml/prognostic_edmfx.toml index 654a543e81..9ba0a56378 100644 --- a/toml/prognostic_edmfx.toml +++ b/toml/prognostic_edmfx.toml @@ -22,6 +22,9 @@ value = 0 [detr_coeff] value = 0 +[zd_rayleigh] +value = 50000.0 + [detr_buoy_coeff] value = 0 diff --git a/toml/sphere_held_suarez.toml b/toml/sphere_held_suarez.toml new file mode 100644 index 0000000000..46b16eedac --- /dev/null +++ b/toml/sphere_held_suarez.toml @@ -0,0 +1,6 @@ +[zd_viscous] +value = 50000.0 + +[zd_rayleigh] +value = 50000.0 + diff --git a/toml/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.toml b/toml/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.toml deleted file mode 100644 index cda298c679..0000000000 --- a/toml/sphere_held_suarez_rhoe_equilmoist_hightop_sponge.toml +++ /dev/null @@ -1,6 +0,0 @@ -[zd_viscous] -value = 30000.0 - -[zd_rayleigh] -value = 30000.0 -