From 5ae8d08728af2d17217884da8b04824d5410768c Mon Sep 17 00:00:00 2001 From: LenkaNovak Date: Wed, 31 Jan 2024 15:33:33 -0800 Subject: [PATCH] cp from ln/fixes-for-longruns + rebase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit revert to min changes pkg project clean pip fix ρ_ice conserving. add info for cc conserving. add info for cc add asserts clean up cons checks add softfails add longrun softfails, amip netcdf_int clean rev2, firerson, using ref, only amip in bk all longruns add back topo ref state add back topo ref state vert_diff: "true", use_reference_state: false re pip --- .buildkite/longruns/pipeline.yml | 4 +- config/longrun_configs/amip_target.yml | 31 +++--- config/longrun_configs/amip_target_topo.yml | 35 ++++--- .../slabplanet_aqua_atmos_sf_couple.yml | 3 +- .../slabplanet_aqua_atmos_sf_nocouple.yml | 3 +- .../slabplanet_aqua_coupler_sf.yml | 3 +- .../slabplanet_aqua_target.yml | 29 +++--- .../slabplanet_aqua_target_evolve_ocn.yml | 29 +++--- .../slabplanet_aqua_target_nocouple.yml | 29 +++--- config/longrun_configs/slabplanet_target.yml | 29 +++--- .../slabplanet_target_evolve_ocn.yml | 29 +++--- config/longrun_configs/slabplanet_terra.yml | 3 +- config/model_configs/slabplanet_eisenman.yml | 1 + .../target_params_in_slab_test2.yml | 1 + .../target_params_in_slab_test3.yml | 1 + experiments/AMIP/Manifest.toml | 94 ++++++++++--------- experiments/AMIP/cli_options.jl | 4 + .../components/atmosphere/climaatmos_init.jl | 30 +++++- .../AMIP/components/land/bucket_utils.jl | 6 +- experiments/AMIP/coupler_driver.jl | 8 +- src/ConservationChecker.jl | 23 +++-- target/atmos_driver.jl | 33 ------- ...3_0M_55km_rs35km_clearsky_tvinsolation.yml | 21 ----- .../climaatmos_standalone/atmos_driver.jl | 15 +++ ...km_nz63_clearsky_tvinsol_0M_slabocean.toml | 9 +- ...5km_nz63_clearsky_tvinsol_0M_slabocean.yml | 25 +++++ 26 files changed, 279 insertions(+), 219 deletions(-) delete mode 100644 target/atmos_driver.jl delete mode 100644 target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation.yml create mode 100644 test/component_model_tests/climaatmos_standalone/atmos_driver.jl rename target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky.toml => test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.toml (58%) create mode 100644 test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.yml diff --git a/.buildkite/longruns/pipeline.yml b/.buildkite/longruns/pipeline.yml index 1007d678ac..da42d35f8f 100644 --- a/.buildkite/longruns/pipeline.yml +++ b/.buildkite/longruns/pipeline.yml @@ -128,8 +128,8 @@ steps: - label: "ClimaAtmos standalone target" command: - - srun julia --project=experiments/AMIP/ target/atmos_driver.jl --config_file target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation.yml - artifact_paths: "longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation/*" + - srun julia --project=experiments/AMIP/ target/atmos_driver.jl --config_file target/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.yml + artifact_paths: "longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean/*" env: BUILD_HISTORY_HANDLE: "" CLIMACORE_DISTRIBUTED: "MPI" diff --git a/config/longrun_configs/amip_target.yml b/config/longrun_configs/amip_target.yml index f89ef0045d..393d88b202 100644 --- a/config/longrun_configs/amip_target.yml +++ b/config/longrun_configs/amip_target.yml @@ -1,18 +1,23 @@ -run_name: "amip_target" anim: true -dt_cpl: 150 +apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +dt_cloud_fraction: "1hours" +dt_cpl: 100 +dt_rad: "1hours" +dt_save_state_to_disk: "20days" +dt_save_to_sol: "10days" +dt: "100secs" energy_check: false +FLOAT_TYPE: "Float32" +hourly_checkpoint: true +job_id: "amip_target" +land_albedo_type: "map_temporal" mode_name: "amip" mono_surface: false -dt: "150secs" -t_end: "200days" -job_id: "amip_target" -dt_save_to_sol: "10days" -dt_save_state_to_disk: "20days" -apply_limiter: false -hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +rad: "allskywithclear" +run_name: "amip_target" +start_date: "19790301" surface_setup: "PrescribedSurface" -land_albedo_type: "map_temporal" -start_date: "19790301" \ No newline at end of file +t_end: "100days" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/amip_target_topo.yml b/config/longrun_configs/amip_target_topo.yml index 5fe71b1fef..aea5172ac7 100644 --- a/config/longrun_configs/amip_target_topo.yml +++ b/config/longrun_configs/amip_target_topo.yml @@ -1,21 +1,26 @@ -run_name: "amip_target_topo" anim: true -dt_cpl: 75 -energy_check: false -mode_name: "amip" -mono_surface: false -dt: "150secs" -t_end: "100days" -job_id: "amip_target_topo" -dt_save_to_sol: "10days" -dt_save_state_to_disk: "20days" apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M_earth.yml" +dt_cloud_fraction: "1hours" +dt_cpl: 100 +dt_rad: "1hours" +dt_save_state_to_disk: "20days" +dt_save_to_sol: "10days" +dt: "100secs" +energy_check: false +FLOAT_TYPE: "Float32" hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" -surface_setup: "PrescribedSurface" +job_id: "amip_target_topo" land_albedo_type: "map_temporal" +mode_name: "amip" +mono_surface: false +netcdf_interpolate_z_over_msl: true +rad: "allskywithclear" +run_name: "amip_target_topo" start_date: "19790301" -topography: "Earth" +surface_setup: "PrescribedSurface" +t_end: "100days" topo_smoothing: true -use_reference_state: false \ No newline at end of file +topography: "Earth" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_aqua_atmos_sf_couple.yml b/config/longrun_configs/slabplanet_aqua_atmos_sf_couple.yml index 89e592ccd2..fdafc5c132 100644 --- a/config/longrun_configs/slabplanet_aqua_atmos_sf_couple.yml +++ b/config/longrun_configs/slabplanet_aqua_atmos_sf_couple.yml @@ -18,4 +18,5 @@ turb_flux_partition: "CombinedStateFluxes" surface_setup: "DefaultMoninObukhov" land_albedo_type: "function" evolving_ocean: false -start_date: "19790301" \ No newline at end of file +start_date: "19790301" +conservation_softfail: true \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_aqua_atmos_sf_nocouple.yml b/config/longrun_configs/slabplanet_aqua_atmos_sf_nocouple.yml index e7420b0c2a..87e2962526 100644 --- a/config/longrun_configs/slabplanet_aqua_atmos_sf_nocouple.yml +++ b/config/longrun_configs/slabplanet_aqua_atmos_sf_nocouple.yml @@ -18,4 +18,5 @@ turb_flux_partition: "CombinedStateFluxes" surface_setup: "DefaultMoninObukhov" land_albedo_type: "function" evolving_ocean: false -start_date: "19790301" \ No newline at end of file +start_date: "19790301" +conservation_softfail: true \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_aqua_coupler_sf.yml b/config/longrun_configs/slabplanet_aqua_coupler_sf.yml index d02caca226..8daebd727c 100644 --- a/config/longrun_configs/slabplanet_aqua_coupler_sf.yml +++ b/config/longrun_configs/slabplanet_aqua_coupler_sf.yml @@ -18,4 +18,5 @@ turb_flux_partition: "CombinedStateFluxes" surface_setup: "PrescribedSurface" land_albedo_type: "function" evolving_ocean: false -start_date: "19790301" \ No newline at end of file +start_date: "19790301" +conservation_softfail: true \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_aqua_target.yml b/config/longrun_configs/slabplanet_aqua_target.yml index 5e162430a5..1cb94b4afd 100644 --- a/config/longrun_configs/slabplanet_aqua_target.yml +++ b/config/longrun_configs/slabplanet_aqua_target.yml @@ -1,19 +1,22 @@ -run_name: "slabplanet_aqua_target" anim: true +apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +dt_cloud_fraction: "1hours" dt_cpl: 150 -energy_check: false -mode_name: "slabplanet_aqua" -mono_surface: false -dt: "150secs" -t_end: "200days" -job_id: "slabplanet_aqua_target" -dt_save_to_sol: "10days" +dt_rad: "1hours" dt_save_state_to_disk: "20days" -apply_limiter: false +dt_save_to_sol: "10days" +dt: "150secs" +energy_check: false +evolving_ocean: false hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" -surface_setup: "PrescribedSurface" +job_id: "slabplanet_aqua_target" land_albedo_type: "function" -evolving_ocean: false +mode_name: "slabplanet_aqua" +mono_surface: false +run_name: "slabplanet_aqua_target" start_date: "19790301" +surface_setup: "PrescribedSurface" +t_end: "100days" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_aqua_target_evolve_ocn.yml b/config/longrun_configs/slabplanet_aqua_target_evolve_ocn.yml index 7b73ff7fc7..b6955e446a 100644 --- a/config/longrun_configs/slabplanet_aqua_target_evolve_ocn.yml +++ b/config/longrun_configs/slabplanet_aqua_target_evolve_ocn.yml @@ -1,19 +1,22 @@ -run_name: "slabplanet_aqua_target_evolve_ocn" anim: true +apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +dt_cloud_fraction: "1hours" dt_cpl: 150 -energy_check: false -mode_name: "slabplanet_aqua" -mono_surface: false -dt: "150secs" -t_end: "200days" -job_id: "slabplanet_target_evolve_ocn" -dt_save_to_sol: "10days" +dt_rad: "1hours" dt_save_state_to_disk: "20days" -apply_limiter: false +dt_save_to_sol: "10days" +dt: "150secs" +energy_check: false +evolving_ocean: true hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" -surface_setup: "PrescribedSurface" +job_id: "slabplanet_target_evolve_ocn" land_albedo_type: "function" -evolving_ocean: true +mode_name: "slabplanet_aqua" +mono_surface: false +run_name: "slabplanet_aqua_target_evolve_ocn" start_date: "19790301" +surface_setup: "PrescribedSurface" +t_end: "100days" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_aqua_target_nocouple.yml b/config/longrun_configs/slabplanet_aqua_target_nocouple.yml index 621077c08f..10fd68e1a7 100644 --- a/config/longrun_configs/slabplanet_aqua_target_nocouple.yml +++ b/config/longrun_configs/slabplanet_aqua_target_nocouple.yml @@ -1,19 +1,22 @@ -run_name: "slabplanet_aqua_target_nocouple" anim: true +apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +dt_cloud_fraction: "1hours" dt_cpl: 8639800 -energy_check: false -mode_name: "slabplanet_aqua" -mono_surface: false -dt: "150secs" -t_end: "200days" -job_id: "slabplanet_aqua_target_nocouple" -dt_save_to_sol: "10days" +dt_rad: "1hours" dt_save_state_to_disk: "20days" -apply_limiter: false +dt_save_to_sol: "10days" +dt: "150secs" +energy_check: false +evolving_ocean: false hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" -surface_setup: "DefaultMoninObukhov" +job_id: "slabplanet_aqua_target_nocouple" land_albedo_type: "function" -evolving_ocean: false +mode_name: "slabplanet_aqua" +mono_surface: false +run_name: "slabplanet_aqua_target_nocouple" start_date: "19790301" +surface_setup: "DefaultMoninObukhov" +t_end: "100days" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_target.yml b/config/longrun_configs/slabplanet_target.yml index 170e32d8eb..868d0a3dab 100644 --- a/config/longrun_configs/slabplanet_target.yml +++ b/config/longrun_configs/slabplanet_target.yml @@ -1,19 +1,22 @@ -run_name: "slabplanet_target" anim: true +apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +dt_cloud_fraction: "1hours" dt_cpl: 150 -energy_check: false -mode_name: "slabplanet" -mono_surface: false -dt: "150secs" -t_end: "200days" -job_id: "slabplanet_target" -dt_save_to_sol: "10days" +dt_rad: "1hours" dt_save_state_to_disk: "20days" -apply_limiter: false +dt_save_to_sol: "10days" +dt: "150secs" +energy_check: false +evolving_ocean: false hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" -surface_setup: "PrescribedSurface" +job_id: "slabplanet_target" land_albedo_type: "function" -evolving_ocean: false +mode_name: "slabplanet" +mono_surface: false +run_name: "slabplanet_target" start_date: "19790301" +surface_setup: "PrescribedSurface" +t_end: "100days" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_target_evolve_ocn.yml b/config/longrun_configs/slabplanet_target_evolve_ocn.yml index a6d5c898d5..6c3d5d8d47 100644 --- a/config/longrun_configs/slabplanet_target_evolve_ocn.yml +++ b/config/longrun_configs/slabplanet_target_evolve_ocn.yml @@ -1,19 +1,22 @@ -run_name: "slabplanet_target_evolve_ocn" anim: true +apply_limiter: false +atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" +dt_cloud_fraction: "1hours" dt_cpl: 150 -energy_check: false -mode_name: "slabplanet" -mono_surface: false -dt: "150secs" -t_end: "200days" -job_id: "slabplanet_target_evolve_ocn" -dt_save_to_sol: "10days" +dt_rad: "1hours" dt_save_state_to_disk: "20days" -apply_limiter: false +dt_save_to_sol: "10days" +dt: "150secs" +energy_check: false +evolving_ocean: true hourly_checkpoint: true -turb_flux_partition: "CombinedStateFluxes" -atmos_config_file: "config/longrun_configs/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_0M.yml" -surface_setup: "PrescribedSurface" +job_id: "slabplanet_target_evolve_ocn" land_albedo_type: "function" -evolving_ocean: true +mode_name: "slabplanet" +mono_surface: false +run_name: "slabplanet_target_evolve_ocn" start_date: "19790301" +surface_setup: "PrescribedSurface" +t_end: "100days" +turb_flux_partition: "CombinedStateFluxes" +vert_diff: "true" \ No newline at end of file diff --git a/config/longrun_configs/slabplanet_terra.yml b/config/longrun_configs/slabplanet_terra.yml index affb7b48e2..1aacd31ea3 100644 --- a/config/longrun_configs/slabplanet_terra.yml +++ b/config/longrun_configs/slabplanet_terra.yml @@ -17,4 +17,5 @@ apply_limiter: false turb_flux_partition: "CombinedStateFluxes" surface_setup: "PrescribedSurface" land_albedo_type: "function" -start_date: "19790301" \ No newline at end of file +start_date: "19790301" +conservation_softfail: true \ No newline at end of file diff --git a/config/model_configs/slabplanet_eisenman.yml b/config/model_configs/slabplanet_eisenman.yml index b93b7d9e9a..e427ec7bd2 100644 --- a/config/model_configs/slabplanet_eisenman.yml +++ b/config/model_configs/slabplanet_eisenman.yml @@ -15,3 +15,4 @@ precip_model: "0M" anim: true apply_limiter: false job_id: "slabplanet_eisenman" +conservation_softfail: true diff --git a/config/model_configs/target_params_in_slab_test2.yml b/config/model_configs/target_params_in_slab_test2.yml index d32b4622ee..4f9d1856ae 100644 --- a/config/model_configs/target_params_in_slab_test2.yml +++ b/config/model_configs/target_params_in_slab_test2.yml @@ -18,3 +18,4 @@ precip_model: "0M" run_name: "target_params_in_slab_test2" apply_limiter: false job_id: "target_params_in_slab_test2" +conservation_softfail: true diff --git a/config/model_configs/target_params_in_slab_test3.yml b/config/model_configs/target_params_in_slab_test3.yml index e477552ca4..fa3eb23674 100644 --- a/config/model_configs/target_params_in_slab_test3.yml +++ b/config/model_configs/target_params_in_slab_test3.yml @@ -18,3 +18,4 @@ precip_model: "0M" run_name: "target_params_in_slab_test3" apply_limiter: false job_id: "target_params_in_slab_test3" +conservation_softfail: true diff --git a/experiments/AMIP/Manifest.toml b/experiments/AMIP/Manifest.toml index 25db0de495..7bb8ccaef0 100644 --- a/experiments/AMIP/Manifest.toml +++ b/experiments/AMIP/Manifest.toml @@ -80,9 +80,9 @@ version = "7.7.0" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "a45ec4acc9d905f94b47243cff666820bb107789" +git-tree-sha1 = "64d582bcb9c93ac741234789eeb4f16812413efb" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.5.2" +version = "1.6.0" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -123,9 +123,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "27baf04c642465b4289179f29bb7127f0673d4f1" +git-tree-sha1 = "3ac52471386dfcc0f6a3c8aeb37ed37c37701128" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.4.0" +version = "1.4.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -133,9 +133,9 @@ weakdeps = ["SparseArrays"] [[deps.BangBang]] deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] -git-tree-sha1 = "e28912ce94077686443433c2800104b061a827ed" +git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3" uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.3.39" +version = "0.3.40" [deps.BangBang.extensions] BangBangChainRulesCoreExt = "ChainRulesCore" @@ -230,9 +230,9 @@ version = "0.7.0+1" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "bcc4a23cbbd99c8535a5318455dcf0f2546ec536" +git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.2" +version = "0.2.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] @@ -254,15 +254,15 @@ version = "1.16.1+1" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "0aa0a3dd7b9bacbbadf1932ccbdfa938985c5561" +git-tree-sha1 = "213f001d1233fd3b8ef007f50c8cab29061917d8" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.58.1" +version = "1.61.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "c1deebd76f7a443d527fc0430d5758b8b2112ed8" +git-tree-sha1 = "1287e3872d646eed95198457873249bd9f0caed2" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.19.1" +version = "1.20.1" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -282,9 +282,9 @@ version = "0.5.6" [[deps.ClimaCore]] deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "Unrolled"] -git-tree-sha1 = "e43923b57aa6abea8df2b59e1318f5598e715bf0" +git-tree-sha1 = "541bf25a8adc3c7ddf8d45a96149964f5cfbb074" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.11.8" +version = "0.11.9" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -334,9 +334,9 @@ version = "0.15.1" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "cd67fc487743b2f0fd4380d4cbd3a24660d0eec8" +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.3" +version = "0.7.4" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] @@ -455,9 +455,9 @@ uuid = "7445602f-e544-4518-8976-18f8e8ae6cdb" version = "0.2.4" [[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" +version = "1.16.0" [[deps.DataFrames]] deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] @@ -737,9 +737,9 @@ version = "0.8.4" [[deps.Flux]] deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] -git-tree-sha1 = "2827339fbc2291d541a9c62ffbf28da7f3621ae4" +git-tree-sha1 = "39a9e46b4e92d5b56c0712adeb507555a2327240" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.9" +version = "0.14.11" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -834,15 +834,15 @@ version = "0.25.0" [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] -git-tree-sha1 = "27442171f28c952804dede8ff72828a96f2bfc1f" +git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.72.10" +version = "0.73.2" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "025d171a2847f616becc0f84c8dc62fe18f0f6dd" +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.72.10+0" +version = "0.73.2+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -895,9 +895,9 @@ weakdeps = ["MPI"] [[deps.HDF5_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "8156325170d6763b5494c072ac4754214db3e669" +git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.3+0" +version = "1.14.3+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] @@ -1390,9 +1390,9 @@ version = "4.5.1" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "900a11b3a2b02e36b25cb55a80777d4a4670f0f6" +git-tree-sha1 = "d2811b435d2f571bdfdfa644bb806a66b458e186" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.10" +version = "0.9.11" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" @@ -1457,9 +1457,9 @@ version = "1.3.5+1" [[deps.OneHotArrays]] deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] -git-tree-sha1 = "5e4029759e8699ec12ebdf8721e51a659443403c" +git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" -version = "0.2.4" +version = "0.2.5" [[deps.OpenBLAS32_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] @@ -1491,9 +1491,9 @@ version = "1.4.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f" +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.12+0" +version = "3.0.13+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1570,10 +1570,10 @@ uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.4.0" [[deps.Plots]] -deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Preferences", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "ccee59c6e48e6f2edf8a5b64dc817b6729f99eb5" +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "38a748946dca52a622e79eea6ed35c6737499109" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.39.0" +version = "1.40.0" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1720,21 +1720,25 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "dd7fc1923fde0cc6cdff451352d17924b0704ca1" +git-tree-sha1 = "2bd309f5171a628efdf5309361cd8a779b9e63a9" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.5.4" +version = "3.8.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" RecursiveArrayToolsMeasurementsExt = "Measurements" RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] RecursiveArrayToolsTrackerExt = "Tracker" RecursiveArrayToolsZygoteExt = "Zygote" [deps.RecursiveArrayTools.weakdeps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" @@ -1778,9 +1782,9 @@ version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "de41474ac529bf81598e064587421cc5ebc28fa0" +git-tree-sha1 = "535bb76be2c1090a09767b18b160f5729ad12aff" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.20.0" +version = "2.23.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1907,9 +1911,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "f68dd04d131d9a8a8eb836173ee8f105c360b0c5" +git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.1" +version = "1.9.2" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -1978,9 +1982,9 @@ uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" version = "0.8.1" [[deps.SymbolicIndexingInterface]] -git-tree-sha1 = "74502f408d99fc217a9d7cd901d9ffe45af892b1" +git-tree-sha1 = "b3103f4f50a3843e66297a2456921377c78f5e31" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.3" +version = "0.3.5" [[deps.TOML]] deps = ["Dates"] @@ -2062,9 +2066,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "1fbeaaca45801b4ba17c251dd8603ef24801dd84" +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.2" +version = "0.10.3" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] diff --git a/experiments/AMIP/cli_options.jl b/experiments/AMIP/cli_options.jl index 4006b1eba1..1508adff7d 100644 --- a/experiments/AMIP/cli_options.jl +++ b/experiments/AMIP/cli_options.jl @@ -18,6 +18,10 @@ function argparse_settings() help = "Boolean flag indicating whether to check energy conservation" arg_type = Bool default = false + "--conservation_softfail" + help = "Boolean flag indicating whether to soft fail on conservation errors" + arg_type = Bool + default = false "--mode_name" help = "Mode of coupled simulation. [`amip`, `slabplanet`, `slabplanet_aqua`, `slabplanet_terra`, `slabplanet_eisenman`]" arg_type = String diff --git a/experiments/AMIP/components/atmosphere/climaatmos_init.jl b/experiments/AMIP/components/atmosphere/climaatmos_init.jl index 445c3ec5c5..fb56e4a378 100644 --- a/experiments/AMIP/components/atmosphere/climaatmos_init.jl +++ b/experiments/AMIP/components/atmosphere/climaatmos_init.jl @@ -81,6 +81,9 @@ function atmos_init(::Type{FT}, atmos_config_dict::Dict) where {FT} integrator.p.precomputed.sfc_conditions.ρ_flux_uₕ.components .= Ref(SMatrix{1, 2}([FT(0), FT(0)])) integrator.p.precipitation.col_integrated_rain .= FT(0) integrator.p.precipitation.col_integrated_snow .= FT(0) + integrator.p.precipitation.ᶜS_ρq_tot .= FT(0) + integrator.p.precipitation.ᶜ3d_rain .= FT(0) + integrator.p.precipitation.ᶜ3d_snow .= FT(0) sim = ClimaAtmosSimulation(integrator.p.params, Y, spaces, integrator) @@ -97,8 +100,11 @@ function get_field(sim::ClimaAtmosSimulation, ::Val{:liquid_precipitation}) sim.integrator.p.precipitation.col_integrated_rain .* ρ_liq # kg/m^2/s end function get_field(sim::ClimaAtmosSimulation, ::Val{:snow_precipitation}) - ρ_liq = CAP.ρ_cloud_liq(sim.integrator.p.params) - sim.integrator.p.precipitation.col_integrated_snow .* ρ_liq # kg/m^2/s + # TODO: use this upon Atmos v0.20 release + # sim.integrator.p.precipitation.col_integrated_snow # kg/m^2/s + + ρ_ice = CAP.ρ_cloud_ice(sim.integrator.p.params) + sim.integrator.p.precipitation.col_integrated_snow .* ρ_ice # kg/m^2/s end get_field(sim::ClimaAtmosSimulation, ::Val{:turbulent_energy_flux}) = @@ -333,7 +339,25 @@ function get_field(atmos_sim::ClimaAtmosSimulation, ::Val{:F_radiative_TOA}) end end -get_field(atmos_sim::ClimaAtmosSimulation, ::Val{:energy}) = atmos_sim.integrator.u.c.ρe_tot +function get_field(atmos_sim::ClimaAtmosSimulation, ::Val{:energy}) + thermo_params = get_thermo_params(atmos_sim) + + ᶜS_ρq_tot = atmos_sim.integrator.p.precipitation.ᶜS_ρq_tot + ᶜts = atmos_sim.integrator.p.precomputed.ᶜts + ᶜΦ = atmos_sim.integrator.p.core.ᶜΦ + + # return total energy and (if Microphysics0Moment) the energy lost due to precipitation removal + if atmos_sim.integrator.p.atmos.precip_model isa CA.Microphysics0Moment + ᶜS_ρq_tot = atmos_sim.integrator.p.precipitation.ᶜS_ρq_tot + ᶜts = atmos_sim.integrator.p.precomputed.ᶜts + ᶜΦ = atmos_sim.integrator.p.core.ᶜΦ + return atmos_sim.integrator.u.c.ρe_tot .- + ᶜS_ρq_tot .* CA.e_tot_0M_precipitation_sources_helper.(Ref(thermo_params), ᶜts, ᶜΦ) .* + atmos_sim.integrator.dt + else + return atmos_sim.integrator.u.c.ρe_tot + end +end get_field(atmos_sim::ClimaAtmosSimulation, ::Val{:water}) = atmos_sim.integrator.u.c.ρq_tot diff --git a/experiments/AMIP/components/land/bucket_utils.jl b/experiments/AMIP/components/land/bucket_utils.jl index 8b18215f07..f25a10c935 100644 --- a/experiments/AMIP/components/land/bucket_utils.jl +++ b/experiments/AMIP/components/land/bucket_utils.jl @@ -54,7 +54,7 @@ function update_field!(sim::BucketSimulation, ::Val{:turbulent_energy_flux}, fie end function update_field!(sim::BucketSimulation, ::Val{:turbulent_moisture_flux}, field) ρ_liq = (LSMP.ρ_cloud_liq(sim.model.parameters.earth_param_set)) - parent(sim.integrator.p.bucket.evaporation) .= parent(field ./ ρ_liq) + parent(sim.integrator.p.bucket.evaporation) .= parent(field ./ ρ_liq) # TODO: account for sublimation end function update_field!(sim::BucketSimulation, ::Val{:radiative_energy_flux}, field) parent(sim.integrator.p.bucket.R_n) .= parent(field) @@ -64,8 +64,8 @@ function update_field!(sim::BucketSimulation, ::Val{:liquid_precipitation}, fiel parent(sim.integrator.p.drivers.P_liq) .= parent(field ./ ρ_liq) end function update_field!(sim::BucketSimulation, ::Val{:snow_precipitation}, field) - ρ_liq = (LSMP.ρ_cloud_liq(sim.model.parameters.earth_param_set)) - parent(sim.integrator.p.drivers.P_snow) .= parent(field ./ ρ_liq) + ρ_ice = (LSMP.ρ_cloud_ice(sim.model.parameters.earth_param_set)) + parent(sim.integrator.p.drivers.P_snow) .= parent(field ./ ρ_ice) end function update_field!(sim::BucketSimulation, ::Val{:air_density}, field) diff --git a/experiments/AMIP/coupler_driver.jl b/experiments/AMIP/coupler_driver.jl index e0cf3abd0b..61da6bd443 100644 --- a/experiments/AMIP/coupler_driver.jl +++ b/experiments/AMIP/coupler_driver.jl @@ -705,12 +705,14 @@ if ClimaComms.iamroot(comms_ctx) plot_global_conservation( cs.conservation_checks.energy, cs, + config_dict["conservation_softfail"], figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"), figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"), ) plot_global_conservation( cs.conservation_checks.water, cs, + config_dict["conservation_softfail"], figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"), figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"), ) @@ -780,6 +782,8 @@ if ClimaComms.iamroot(comms_ctx) ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month) end - ## clean up - rm(COUPLER_OUTPUT_DIR; recursive = true, force = true) + ## clean up for interactive runs, retain all output otherwise + if isinteractive() + rm(COUPLER_OUTPUT_DIR; recursive = true, force = true) + end end diff --git a/src/ConservationChecker.jl b/src/ConservationChecker.jl index 55fd8399cd..52198d6a5f 100644 --- a/src/ConservationChecker.jl +++ b/src/ConservationChecker.jl @@ -233,7 +233,8 @@ relative to the initial value; """ function plot_global_conservation( cc::AbstractConservationCheck, - coupler_sim::Interfacer.CoupledSimulation; + coupler_sim::Interfacer.CoupledSimulation, + softfail = false; figname1 = "total.png", figname2 = "total_log.png", ) @@ -247,6 +248,8 @@ function plot_global_conservation( total = ccs.total # total var_name = Interfacer.name(cc) + cum_total = [0.0] + Plots.plot( days, total .- total[1], @@ -260,23 +263,27 @@ function plot_global_conservation( global_field = getproperty(ccs, Symbol(sim_name)) diff_global_field = (global_field .- global_field[1]) Plots.plot!(days, diff_global_field[1:length(days)], label = sim_name) + cum_total .+= abs.(global_field[end]) end if cc isa EnergyConservationCheck global_field = ccs.toa_net_source diff_global_field = (global_field .- global_field[1]) Plots.plot!(days, diff_global_field[1:length(days)], label = "toa_net") + cum_total .+= abs.(global_field[end]) end Plots.savefig(figname1) + # use the cumulative global sum at the final time step as a reference for the error calculation + rse = abs.((total .- total[1]) ./ cum_total) + # evolution of log error of total - Plots.plot( - days, - log.(abs.(total .- total[1]) / abs(total[1])), - label = "tot", - xlabel = "time [days]", - ylabel = "log( | e(t) - e(t=0)| / e(t=0))", - ) + Plots.plot(days, log.(rse), label = "rs error", xlabel = "time [days]", ylabel = "log( |x(t) - x(t=0)| / Σx(t=T) )") Plots.savefig(figname2) + + # check that the relative error is small (TODO: reduce this to sqrt(eps(FT))) + if !softfail + @assert rse[end] < 1e-3 + end end end # module diff --git a/target/atmos_driver.jl b/target/atmos_driver.jl deleted file mode 100644 index 09eb21798f..0000000000 --- a/target/atmos_driver.jl +++ /dev/null @@ -1,33 +0,0 @@ -using ClimaComms -using Logging -using ClimaAtmos - -const is_distributed = get(ENV, "CLIMACORE_DISTRIBUTED", "") == "MPI" -if is_distributed - const comms_ctx = ClimaComms.context(ClimaComms.CPUSingleThreaded()) - const pid, nprocs = ClimaComms.init(comms_ctx) - - if ClimaComms.iamroot(comms_ctx) - Logging.global_logger(Logging.ConsoleLogger(stderr, Logging.Info)) - else - Logging.global_logger(Logging.NullLogger()) - end -else - using TerminalLoggers: TerminalLogger - const comms_ctx = ClimaComms.SingletonCommsContext() - const pid, nprocs = ClimaComms.init(comms_ctx) -end - - -ClimaComms.barrier(comms_ctx) - -# this tests the standalone runs, using the hybrid/driver -import Random -Random.seed!(1234) - -config = ClimaAtmos.AtmosConfig() -ClimaComms.barrier(comms_ctx) -# ClimaComms.iamroot(comms_ctx) ? @info(config) : nothing -integrator = ClimaAtmos.get_integrator(config) -ClimaComms.barrier(comms_ctx) -sol_res = ClimaAtmos.solve_atmos!(integrator) diff --git a/target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation.yml b/target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation.yml deleted file mode 100644 index 2e83e52e0c..0000000000 --- a/target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation.yml +++ /dev/null @@ -1,21 +0,0 @@ -FLOAT_TYPE: "Float64" -dt_save_state_to_disk: "10days" -dt: "150secs" -t_end: "200days" -h_elem: 16 -z_elem: 63 -dz_bottom: 30.0 -dz_top: 3000.0 -z_max: 55000.0 -rayleigh_sponge: true -kappa_4: 2.0e16 -moist: "equil" -precip_model: "0M" -surface_setup: "DefaultMoninObukhov" -vert_diff: "true" -rad: "clearsky" -idealized_insolation: false -dt_rad: "1hours" -job_id: "longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky_tvinsolation" -toml: [target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky.toml] -start_date: "19790301" \ No newline at end of file diff --git a/test/component_model_tests/climaatmos_standalone/atmos_driver.jl b/test/component_model_tests/climaatmos_standalone/atmos_driver.jl new file mode 100644 index 0000000000..b67dc44282 --- /dev/null +++ b/test/component_model_tests/climaatmos_standalone/atmos_driver.jl @@ -0,0 +1,15 @@ +using ClimaComms +using Logging +using ClimaAtmos + +redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) +import ClimaAtmos as CA +import Random +Random.seed!(1234) + +if !(@isdefined config) + config = CA.AtmosConfig() +end +simulation = CA.get_simulation(config) +(; integrator) = simulation +sol_res = CA.solve_atmos!(simulation) diff --git a/target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky.toml b/test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.toml similarity index 58% rename from target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky.toml rename to test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.toml index 7469c2505f..0791ca5ba9 100644 --- a/target/longrun_aquaplanet_rhoe_equilmoist_nz63_0M_55km_rs35km_clearsky.toml +++ b/test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.toml @@ -1,10 +1,9 @@ -[alpha_rayleigh_w] -alias = "alpha_rayleigh_w" -value = 1.0 -type = "float" - [zd_rayleigh] alias = "zd_rayleigh" value = 35000.0 type = "float" +[alpha_rayleigh_uh] +alias = "alpha_rayleigh_uh" +value = 0.0 +type = "float" diff --git a/test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.yml b/test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.yml new file mode 100644 index 0000000000..306dd669c3 --- /dev/null +++ b/test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.yml @@ -0,0 +1,25 @@ +approximate_linear_solve_iters: 2 +bubble: false +check_conservation: true +dt_rad: "1hours" +dt_save_state_to_disk: "10days" +dt: "150secs" +dz_bottom: 30.0 +dz_top: 3000.0 +h_elem: 16 +idealized_insolation: false +implicit_diffusion: true +job_id: "longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean" +moist: "equil" +precip_model: "0M" +prognostic_surface: "PrognosticSurfaceTemperature" +rad: "clearsky" +run_name: "longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean" +rayleigh_sponge: true +surface_setup: "DefaultMoninObukhov" +t_end: "100days" +coupler_toml_file: "test/component_model_tests/climaatmos_standalone/longrun_aquaplanet_rhoe_equil_55km_nz63_clearsky_tvinsol_0M_slabocean.toml" +vert_diff: "FriersonDiffusion" +z_elem: 63 +z_max: 55000.0 +output_default_diagnostics: false