diff --git a/.buildkite/longruns/pipeline.yml b/.buildkite/longruns/pipeline.yml index 5952958fc..9ca71b213 100644 --- a/.buildkite/longruns/pipeline.yml +++ b/.buildkite/longruns/pipeline.yml @@ -1,7 +1,7 @@ agents: queue: new-central slurm_time: 24:00:00 - modules: climacommon/2024_02_27 + modules: climacommon/2024_03_18 env: JULIA_LOAD_PATH: "${JULIA_LOAD_PATH}:${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite" @@ -45,7 +45,12 @@ steps: JULIA_NUM_PRECOMPILE_TASKS: 8 JULIA_MAX_NUM_PRECOMPILE_FILES: 50 - # DYAMOND AMIP: 1 day (convection resolving) + concurrency: 1 + concurrency_group: 'depot/climacoupler-longruns' + + - wait + + # DYAMOND AMIP: 1 day (convection resolving) - running on clima, so need to instantiate again - label: "GPU AMIP SUPERFINE: dyamond_target" key: "gpu_dyamond_target" command: @@ -62,6 +67,7 @@ steps: - "julia --project=artifacts -e 'using Pkg; Pkg.status()'" - "julia --project=artifacts artifacts/download_artifacts.jl" + - echo "--- Run simulation" - "julia --color=yes --project=experiments/AMIP/ experiments/AMIP/coupler_driver.jl --config_file $CONFIG_PATH/gpu_dyamond_target.yml" artifact_paths: "experiments/AMIP/output/amip/gpu_dyamond_target_artifacts/*" agents: @@ -70,8 +76,6 @@ steps: slurm_gpus: 1 modules: common - - wait - - group: "Coupler integration and conservation tests" steps: diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 6237e0ced..bfbc6b4fb 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,7 +1,7 @@ agents: queue: new-central slurm_time: 24:00:00 - modules: climacommon/2024_02_27 + modules: climacommon/2024_03_18 env: JULIA_LOAD_PATH: "${JULIA_LOAD_PATH}:${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite" @@ -66,6 +66,8 @@ steps: - "julia --project=artifacts -e 'using Pkg; Pkg.status()'" - "julia --project=artifacts artifacts/download_artifacts.jl" + concurrency: 1 + concurrency_group: 'depot/climacoupler-ci' agents: slurm_cpus_per_task: 12 slurm_gpus: 1 diff --git a/Project.toml b/Project.toml index a4d7426ad..4c27e6cad 100644 --- a/Project.toml +++ b/Project.toml @@ -4,12 +4,12 @@ authors = ["CliMA Contributors "] version = "0.1.0" [deps] -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" ClimaCoreTempestRemap = "d934ef94-cdd4-4710-83d6-720549644b70" ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" Insolation = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" @@ -24,22 +24,22 @@ TempestRemap_jll = "8573a8c5-1df0-515e-a024-abad257ee284" Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" [compat] -CLIMAParameters = "0.9" -ClimaAtmos = "0.21" +ClimaAtmos = "0.22" ClimaComms = "0.5.6" -ClimaCore = "0.12" +ClimaCore = "0.13" ClimaCoreTempestRemap = "0.3" -ClimaLand = "0.10" +ClimaLand = "0.11" +ClimaParams = "0.10" Dates = "1" DocStringExtensions = "0.8, 0.9" -Insolation = "0.9" +Insolation = "0.9.2" JLD2 = "0.4" NCDatasets = "0.11, 0.12, 0.13, =0.14.1" Plots = "1.39.0" SciMLBase = "1, 2" StaticArrays = "1" Statistics = "1" -SurfaceFluxes = "0.9" +SurfaceFluxes = "0.11" TempestRemap_jll = "2" -Thermodynamics = "< 0.12.4" +Thermodynamics = "0.12.4" julia = "1.8" diff --git a/artifacts/Artifacts.toml b/artifacts/Artifacts.toml index 375ce9686..818474a9c 100644 --- a/artifacts/Artifacts.toml +++ b/artifacts/Artifacts.toml @@ -4,11 +4,11 @@ git-tree-sha1 = "0c6039bfcc39f6c6cb20fb331a71f6a381d93f24" [land_mask] git-tree-sha1 = "e41bc8c44124f867b64a9d70f1599515ae27f38a" +[pr_obs_data] +git-tree-sha1 = "7486bf32e9352493f69364aead26f01eaf90d2af" + [sic] git-tree-sha1 = "139d23f6de29900917d79b41a87a8ee6483c72d0" [sst] git-tree-sha1 = "9969543acd3c9084b8238b7858d0c76aa0bf98a7" - -[pr_obs_data] -git-tree-sha1 = "7486bf32e9352493f69364aead26f01eaf90d2af" diff --git a/docs/src/fluxcalculator.md b/docs/src/fluxcalculator.md index f77af1d57..7c1f1b0eb 100644 --- a/docs/src/fluxcalculator.md +++ b/docs/src/fluxcalculator.md @@ -25,6 +25,7 @@ Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric ce ClimaCoupler.FluxCalculator.update_turbulent_fluxes_point! ClimaCoupler.FluxCalculator.extrapolate_ρ_to_sfc ClimaCoupler.FluxCalculator.surface_thermo_state + ClimaCoupler.FluxCalculator.water_albedo_from_atmosphere! ``` ## FieldExchanger Internal Functions diff --git a/docs/src/interfacer.md b/docs/src/interfacer.md index bdf4b4479..1e237d5cd 100644 --- a/docs/src/interfacer.md +++ b/docs/src/interfacer.md @@ -101,11 +101,12 @@ following properties: | Coupler name | Description | Units | |-------------------|-------------|-------| | `co2` | global mean co2 | ppm | -| `surface_albedo` | bulk surface albedo over the whole surface space | | +| `surface_direct_albedo` | bulk direct surface albedo over the whole surface space | | +| `surface_diffuse_albedo` | bulk diffuse surface albedo over the whole surface space | | | `surface_temperature` | temperature over the combined surface space | K | | `turbulent_fluxes` | turbulent fluxes (note: only required when using `PartitionedStateFluxes` option - see our `FluxCalculator` module docs for more information) | W m^-2 | -- `calculate_surface_air_density(atmos_sim::Interfacer.AtmosModelSimulation, T_S::Fields.Field)`: +- `calculate_surface_air_density(atmos_sim::Interfacer.AtmosModelSimulation, T_S::ClimaCore.Fields.Field)`: A function to return the air density of the atmosphere simulation extrapolated to the surface, with units of [kg m^-3]. @@ -124,7 +125,8 @@ for the following properties: | `beta` | factor that scales evaporation based on its estimated level of saturation | | | `roughness_buoyancy` | aerodynamic roughness length for buoyancy | m | | `roughness_momentum` | aerodynamic roughness length for momentum | m | -| `surface_albedo` | bulk surface albedo | | +| `surface_direct albedo` | bulk direct surface albedo | | +| `surface_diffuse albedo` | bulk diffuse surface albedo | | | `surface_humidity` | surface humidity | kg kg^-1 | | `surface_temperature` | surface temperature | K | @@ -170,7 +172,7 @@ get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta get_field(sim::SurfaceStub, ::Val{:energy}) = nothing get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m -get_field(sim::SurfaceStub, ::Val{:surface_albedo}) = sim.cache.α +get_field(sim::SurfaceStub, ::Union{Val{:surface_direct_albedo}, Val{:surface_diffuse_albedo}}) = sim.cache.α get_field(sim::SurfaceStub, ::Val{:surface_humidity}) = TD.q_vap_saturation_generic.(sim.cache.thermo_params, sim.cache.T_sfc, sim.cache.ρ_sfc, sim.cache.phase) get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc get_field(sim::SurfaceStub, ::Val{:water}) = nothing @@ -180,10 +182,10 @@ and with the corresponding `update_field!` functions function update_field!(sim::SurfaceStub, ::Val{:air_density}, field) sim.cache.ρ_sfc .= field end -function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field) +function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::ClimaCore.Fields.Field) sim.cache.area_fraction .= field end -function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field) +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::ClimaCore.Fields.Field) sim.cache.T_sfc .= field end ``` diff --git a/experiments/AMIP/Manifest.toml b/experiments/AMIP/Manifest.toml index 337548e39..eb90b68d1 100644 --- a/experiments/AMIP/Manifest.toml +++ b/experiments/AMIP/Manifest.toml @@ -1,13 +1,13 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.1" +julia_version = "1.10.2" manifest_format = "2.0" -project_hash = "8d2ff3613412ce745a56f29971ef6211131f932f" +project_hash = "284db48dcd39d58ad8518daa0c1caded1552fa4a" [[deps.ADTypes]] -git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.6" +version = "0.2.7" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -38,9 +38,9 @@ version = "0.4.5" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.2" +version = "4.0.3" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -68,16 +68,18 @@ uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.7.1" +version = "7.9.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" ArrayInterfaceTrackerExt = "Tracker" @@ -85,7 +87,9 @@ version = "7.7.1" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" @@ -146,9 +150,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +git-tree-sha1 = "c946c5014cf4cdbfacacb363b110e7bffba3e742" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.5.0" +version = "1.6.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -228,12 +232,6 @@ git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.3" -[[deps.CLIMAParameters]] -deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "9fcb37be791b4762943cbbf15ccf35c99d91460c" -uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.9.1" - [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" @@ -262,10 +260,10 @@ uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" version = "0.10.13" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "95ac638373ac40e29c1b6d086a3698f5026ff6a6" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics"] +git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.1.2" +version = "5.2.0" weakdeps = ["ChainRulesCore", "SpecialFunctions"] [deps.CUDA.extensions] @@ -286,9 +284,9 @@ version = "0.2.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.10.1+0" +version = "0.11.1+0" [[deps.CUDNN_jll]] deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] @@ -309,10 +307,10 @@ uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" version = "0.11.9" [[deps.Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.1+1" +version = "1.18.0+1" [[deps.Calculus]] deps = ["LinearAlgebra"] @@ -348,10 +346,10 @@ weakdeps = ["CairoMakie", "GeoMakie"] GeoMakieExt = "GeoMakie" [[deps.ClimaAtmos]] -deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FastGaussQuadrature", "Insolation", "Interpolations", "IntervalSets", "Krylov", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "Thermodynamics", "YAML"] -git-tree-sha1 = "f239ec018e8802fa52f2f093a1cf94d8933cea78" +deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "ClimaComms", "ClimaCore", "ClimaParams", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FastGaussQuadrature", "Insolation", "Interpolations", "IntervalSets", "Krylov", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "Thermodynamics", "YAML"] +git-tree-sha1 = "6f61041395606445cb1c69233b0451f395231cec" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.21.0" +version = "0.22.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -361,9 +359,9 @@ version = "0.5.7" [[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 = "fd3bb1f7655ebcc8c8a652a8cc6c4f7f2620ae72" +git-tree-sha1 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.12.1" +version = "0.13.2" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -371,37 +369,43 @@ weakdeps = ["Krylov"] [[deps.ClimaCorePlots]] deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] -git-tree-sha1 = "e86fd9242e89b526c9fb29e05db3071ce64e3a8e" +git-tree-sha1 = "ded3e0f3e7069f7c807f7b56caff232921bc2f5f" uuid = "cf7c7e5a-b407-4c48-9047-11a94a308626" -version = "0.2.7" +version = "0.2.8" [[deps.ClimaCoreTempestRemap]] deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] -git-tree-sha1 = "2267e018c34f44fa8300b8d550d59f3eecef6094" +git-tree-sha1 = "ac11cc8ad2c043ab753d6888c224c7e2f35f42c0" uuid = "d934ef94-cdd4-4710-83d6-720549644b70" -version = "0.3.13" +version = "0.3.14" [[deps.ClimaCoupler]] -deps = ["CLIMAParameters", "ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] +deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] path = "../.." uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" version = "0.1.0" [[deps.ClimaLand]] deps = ["Adapt", "ArtifactWrappers", "CFTime", "CSV", "CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "DataFrames", "Dates", "DocStringExtensions", "Flux", "HTTP", "Insolation", "IntervalSets", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] -git-tree-sha1 = "bb7ce7cfe44a0be6228139da713068bad2e27985" +git-tree-sha1 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.10.0" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.ClimaLand.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" + +[[deps.ClimaParams]] +deps = ["DocStringExtensions", "TOML", "Test"] +git-tree-sha1 = "1a3d2455fff201bcf130bbd5a71ac16fc3c21fd1" +uuid = "5c42b081-d73a-476f-9059-fd94b934656c" +version = "0.10.4" [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "a439bdd2527f88962c4c77598e6a7b18f180502a" +git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.18" +version = "0.7.19" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -410,10 +414,10 @@ uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "71cfda20196c7a81f3798de59f3830c78f4c17b0" +deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.16.0" +version = "0.18.0" [[deps.CodecBzip2]] deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] @@ -496,7 +500,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.0+0" +version = "1.0.5+1" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" @@ -511,9 +515,9 @@ version = "0.1.2" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.3.1" +version = "2.4.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -617,9 +621,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "aee5798bd4f1ed1260bd1741221f9589e5ee8a90" +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.147.3" +version = "6.148.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -738,9 +742,9 @@ uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" [[deps.EnzymeCore]] -git-tree-sha1 = "496c5455d6a61c2a6f2233ce07c1fcdbe4995ab6" +git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.7.0" +version = "0.6.5" weakdeps = ["Adapt"] [deps.EnzymeCore.extensions] @@ -846,9 +850,9 @@ version = "0.3.1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.2" +version = "1.16.3" [[deps.FilePaths]] deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] @@ -879,9 +883,9 @@ weakdeps = ["PDMats", "SparseArrays", "Statistics"] [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.22.0" +version = "2.23.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -901,9 +905,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 = "5a626d6ef24ae0a8590c22dc12096fb65eb66325" +git-tree-sha1 = "502d0232ec6430d40b6e5b57637333f32192592e" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.13" +version = "0.14.14" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -975,9 +979,9 @@ version = "0.1.3" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.7" +version = "0.4.8" [[deps.Future]] deps = ["Random"] @@ -996,15 +1000,15 @@ version = "6.2.1+6" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "9.1.0" +version = "10.0.2" [[deps.GPUArraysCore]] deps = ["Adapt"] -git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.5" +version = "0.1.6" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] @@ -1014,15 +1018,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 = "3458564589be207fa6a77dbbf8b97674c9836aab" +git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.2" +version = "0.73.3" [[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 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.2+0" +version = "0.73.3+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -1094,9 +1098,9 @@ version = "0.1.0" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.76.5+0" +version = "2.80.0+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -1123,9 +1127,9 @@ version = "1.3.14+0" [[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] -git-tree-sha1 = "af13a277efd8a6e716d79ef635d5342ccb75be61" +git-tree-sha1 = "6f93a83ca11346771a93bbde2bdad2f65b61498f" uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" -version = "0.10.0" +version = "0.10.2" [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" @@ -1150,9 +1154,9 @@ version = "1.14.3+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "db864f2d91f68a5912937af80327d288ea1f3aee" +git-tree-sha1 = "995f762e0182ebc50548c434c171a5bb6635f8e4" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.3" +version = "1.10.4" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -1242,13 +1246,13 @@ version = "1.4.0" [[deps.Insolation]] deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "e5bd2e08d94737b3acd1c1c4e6ab737d2494571c" +git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.1" -weakdeps = ["CLIMAParameters"] +version = "0.9.2" +weakdeps = ["ClimaParams"] [deps.Insolation.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.IntegerMathUtils]] git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" @@ -1426,9 +1430,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "ddab4d40513bce53c8e3157825e245224f74fae7" +git-tree-sha1 = "7c6650580b4c3169d9905858160db895bff6d2e2" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.6.0" +version = "6.6.1" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1564,10 +1568,10 @@ uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.17.0+0" [[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.35.0+0" +version = "2.39.3+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1577,9 +1581,9 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e5edc369a598dfde567269dc6add5812cfa10cd5" +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+0" +version = "2.39.3+1" [[deps.LightXML]] deps = ["Libdl", "XML2_jll"] @@ -1825,18 +1829,20 @@ version = "4.5.1" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "6e4e90c2e2ef091ef50b91af65fa4bb09c3d0728" +git-tree-sha1 = "877f15c331337d54cf24c797d5bcb2e48ce21221" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.6" +version = "0.9.12" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" [deps.NNlib.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.NVTX]] @@ -1920,7 +1926,7 @@ version = "0.3.24+0" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+4" +version = "0.3.23+2" [[deps.OpenEXR]] deps = ["Colors", "FileIO", "OpenEXR_jll"] @@ -2029,9 +2035,9 @@ version = "0.5.12" [[deps.Pango_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4745216e94f71cb768d58330b059c9b76f32cb66" +git-tree-sha1 = "526f5a03792669e4187e584e8ec9d534248ca765" uuid = "36c8627f-9965-5494-a995-c6b170f724f3" -version = "1.50.14+0" +version = "1.52.1+0" [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] @@ -2093,9 +2099,9 @@ version = "1.4.1" [[deps.Plots]] 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 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +git-tree-sha1 = "3c403c6590dd93b36752634115e20137e79ab4df" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.1" +version = "1.40.2" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -2167,9 +2173,9 @@ version = "0.4.20" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.0" +version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] @@ -2250,13 +2256,13 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "411d7064df9a123db8d2878539b7cc86158ed215" +git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.12.0" -weakdeps = ["CLIMAParameters"] +version = "0.13.1" +weakdeps = ["ClimaParams"] [deps.RRTMGP.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.Random]] deps = ["SHA"] @@ -2309,9 +2315,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "dc428bb59c20dafd1ec500c3432b9e3d7e78e7f3" +git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.10.1" +version = "3.12.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -2399,10 +2405,10 @@ uuid = "76ed43ae-9a5d-5a62-8c75-30186b810ce8" version = "3.45.0+0" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "3a281a9fce9cd62b849d7f16e412933a5fe755cb" +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "dce2d07e3519cb7817f2d89a7978c13fef30be87" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.29.0" +version = "2.30.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2429,6 +2435,11 @@ git-tree-sha1 = "10499f619ef6e890f3f4a38914481cc868689cd5" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" version = "0.3.8" +[[deps.SciMLStructures]] +git-tree-sha1 = "5833c10ce83d690c124beedfe5f621b50b02ba4d" +uuid = "53ae85a6-f571-4167-b2af-e1d143709226" +version = "1.1.0" + [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" @@ -2683,18 +2694,19 @@ version = "7.2.1+1" [[deps.SurfaceFluxes]] deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] -git-tree-sha1 = "c2329f2ba04cfd7d93b1fa00d43822b1ccacaa4e" +git-tree-sha1 = "89c701c87f378ce95e7ddbcd69b8f1106ba8b968" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.9.4" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.SurfaceFluxes.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.SymbolicIndexingInterface]] -git-tree-sha1 = "251bb311585143931a306175c3b7ced220300578" +deps = ["MacroTools", "RuntimeGeneratedFunctions"] +git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.8" +version = "0.3.11" [[deps.TOML]] deps = ["Dates"] @@ -2757,13 +2769,13 @@ version = "1.0.1" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "9c9ccbdb2ecb490fc69a0392c98766dcc2024eae" +git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.3" -weakdeps = ["CLIMAParameters"] +version = "0.12.5" +weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -2784,9 +2796,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" +git-tree-sha1 = "a09c933bebed12501890d8e92946bbab6a1690f1" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.4" +version = "0.10.5" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2947,9 +2959,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "37195dcb94a5970397ad425b95a9a26d0befce3a" +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.6.0+0" +version = "5.6.1+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] @@ -3207,9 +3219,9 @@ version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "1ea2ebe8ffa31f9c324e8c1d6e86b4165b84a024" +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.43+0" +version = "1.6.43+1" [[deps.libsixel_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] diff --git a/experiments/AMIP/Project.toml b/experiments/AMIP/Project.toml index 9c9d69864..f0c30ae8f 100644 --- a/experiments/AMIP/Project.toml +++ b/experiments/AMIP/Project.toml @@ -2,7 +2,6 @@ ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" AtmosphericProfilesLibrary = "86bc3604-9858-485a-bdbe-831ec50de11d" -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" ClimaAnalysis = "29b5916a-a76c-4e73-9657-3c8fd22e65e6" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" @@ -12,6 +11,7 @@ ClimaCorePlots = "cf7c7e5a-b407-4c48-9047-11a94a308626" ClimaCoreTempestRemap = "d934ef94-cdd4-4710-83d6-720549644b70" ClimaCoupler = "4ade58fe-a8da-486c-bd89-46df092ec0c7" ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" CloudMicrophysics = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" diff --git a/experiments/AMIP/README.md b/experiments/AMIP/README.md new file mode 100644 index 000000000..96744afb9 --- /dev/null +++ b/experiments/AMIP/README.md @@ -0,0 +1,61 @@ +## Current AMIP components + +### Atmosphere + +Dynamical core: +- Equation: non-hydrostatic and fully compressible +- Prognostic variables: Density, velocity components, total energy, total specific humidity +- Spatial discretization: Spectral element in the horizontal, finite difference in the vertical, cubed sphere +- Time stepping: Implicit-explicit additive Runge–Kutta method + +Parameterizations: + +- Radiation: A scheme based on RRTM for General circulation model applications—Parallel (RRTMGP) (Pincus et al. 2019) + +- Convection and turbulence: Diagnostic Eddy-diffusivity Mass-Flux (EDMF) scheme with prognostic turbulent kinetic energy. +EDMF is a unified parameterization for turbulence and convection (Tan et al. 2018, Cohen et al. 2020, Lopez-Gomez et al. 2020). The grid is decomposed into convective updrafts and the turbulent environment. +Updraft properties are calculated from mass, momentum and energy conservation of the updraft. +Mass and momentum exchange between the updrafts and the environment, and +turbulent mixing in the environment, are represented with physical closures. Currently, only one updraft is used. + +- Microphysics: 0-moment scheme, where cloud condensate is removed in-situ with a constant timescale + +- Surface fluxes: A scheme based on Monin-Obukhov similarity theory, with constant roughness lengths over land and ocean + +- Orographic gravity wave drag: None + +- Non-orographic gravity wave drag: None + +- Aerosols and chemistry: None + +### Land + +Dynamical core: +- Equation: Following Manabe bucket hydrology scheme (Manabe 1969) +- Prognostic variables: Temperature, water content, snow water content +- Spatial discretization: Finite difference, multiple independent columns on the sphere +- Time stepping: Explicit additive Runge–Kutta method + +Land surface albedo: +- Bare ground: Prescribed from files +- Snow: Constant + +### Sea ice + +Thermodynamics: 0-layer model, with prognostic ice surface temperature and fixed ice thickness + +### Coupling + +Sequential coupling. Fluxes over a heterogeneous surface are calculated using the averaged surface properties. + +## References + +[Manabe 1969](https://journals.ametsoc.org/view/journals/mwre/97/11/1520-0493_1969_097_0739_catoc_2_3_co_2.xml): Climate and ocean circulation. I. The atmospheric circulation and the hydrology of the earth's surface. + +[Pincus et al. 2019](https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2019MS001621): Balancing Accuracy, Efficiency, and Flexibility in Radiation Calculations for Dynamical Models + +[Tan et al. 2018](https://agupubs.onlinelibrary.wiley.com/doi/full/10.1002/2017MS001162): An Extended Eddy-Diffusivity Mass-Flux Scheme for Unified Representation of Subgrid-Scale Turbulence and Convection + +[Cohen et al. 2020](https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020MS002162): Unified Entrainment and Detrainment Closures for Extended Eddy-Diffusivity Mass-Flux Schemes + +[Lopez-Gomez et al. 2020](https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020MS002161): A Generalized Mixing Length Closure for Eddy-Diffusivity Mass-Flux Schemes of Turbulence and Convection \ No newline at end of file diff --git a/experiments/AMIP/components/atmosphere/climaatmos.jl b/experiments/AMIP/components/atmosphere/climaatmos.jl index 08ba2e717..27f64a5f4 100644 --- a/experiments/AMIP/components/atmosphere/climaatmos.jl +++ b/experiments/AMIP/components/atmosphere/climaatmos.jl @@ -1,6 +1,7 @@ # atmos_init: for ClimaAtmos pre-AMIP interface using StaticArrays using Statistics: mean +using LinearAlgebra: norm import ClimaAtmos as CA import ClimaAtmos: CT1, CT2, CT12, CT3, C3, C12, unit_basis_vector_data, ⊗ @@ -14,7 +15,8 @@ import ClimaCoupler.FluxCalculator: calculate_surface_air_density, PartitionedStateFluxes, extrapolate_ρ_to_sfc, - get_surface_params + get_surface_params, + water_albedo_from_atmosphere! import ClimaCoupler.Interfacer: get_field, update_field!, name import ClimaCoupler.Checkpointer: get_model_prog_state import ClimaCoupler.FieldExchanger: update_sim!, step!, reinit! @@ -35,6 +37,7 @@ name(::ClimaAtmosSimulation) = "ClimaAtmosSimulation" function atmos_init(::Type{FT}, atmos_config_dict::Dict) where {FT} # By passing `parsed_args` to `AtmosConfig`, `parsed_args` overwrites the default atmos config + atmos_config_dict["surface_albedo"] = "CouplerAlbedo" atmos_config = CA.AtmosConfig(atmos_config_dict) simulation = CA.get_simulation(atmos_config) (; integrator) = simulation @@ -171,13 +174,16 @@ function update_field!(sim::ClimaAtmosSimulation, ::Val{:surface_temperature}, c sim.integrator.p.radiation.radiation_model.surface_temperature .= CA.RRTMGPI.field2array(csf.T_S) end -function update_field!(sim::ClimaAtmosSimulation, ::Val{:surface_albedo}, field) - sim.integrator.p.radiation.radiation_model.diffuse_sw_surface_albedo .= - reshape(CA.RRTMGPI.field2array(field), 1, length(parent(field))) +function update_field!(sim::ClimaAtmosSimulation, ::Val{:surface_direct_albedo}, field) sim.integrator.p.radiation.radiation_model.direct_sw_surface_albedo .= reshape(CA.RRTMGPI.field2array(field), 1, length(parent(field))) end +function update_field!(sim::ClimaAtmosSimulation, ::Val{:surface_diffuse_albedo}, field) + sim.integrator.p.radiation.radiation_model.diffuse_sw_surface_albedo .= + reshape(CA.RRTMGPI.field2array(field), 1, length(parent(field))) +end + function update_field!(sim::ClimaAtmosSimulation, ::Val{:turbulent_fluxes}, fields) (; F_turb_energy, F_turb_moisture, F_turb_ρτxz, F_turb_ρτyz) = fields @@ -210,7 +216,8 @@ step!(sim::ClimaAtmosSimulation, t) = step!(sim.integrator, t - sim.integrator.t reinit!(sim::ClimaAtmosSimulation) = reinit!(sim.integrator) function update_sim!(atmos_sim::ClimaAtmosSimulation, csf, turbulent_fluxes) - update_field!(atmos_sim, Val(:surface_albedo), csf.surface_albedo) + update_field!(atmos_sim, Val(:surface_direct_albedo), csf.surface_direct_albedo) + update_field!(atmos_sim, Val(:surface_diffuse_albedo), csf.surface_diffuse_albedo) update_field!(atmos_sim, Val(:surface_temperature), csf) if turbulent_fluxes isa PartitionedStateFluxes @@ -384,3 +391,37 @@ function dss_state!(sim::ClimaAtmosSimulation) ClimaCore.Spaces.weighted_dss!(field, buffer) end end + +""" + water_albedo_from_atmosphere!(atmos_sim::ClimaAtmosSimulation, direct_albedo::ClimaCore.Fields.Field, diffuse_albedo::ClimaCore.Fields.Field) + +Extension to calculate the water surface albedo from wind speed and insolation. It can be used for prescribed ocean and lakes. +""" +function water_albedo_from_atmosphere!( + atmos_sim::ClimaAtmosSimulation, + direct_albedo::ClimaCore.Fields.Field, + diffuse_albedo::ClimaCore.Fields.Field, +) + + Y = atmos_sim.integrator.u + p = atmos_sim.integrator.p + t = atmos_sim.integrator.t + + radiation_model = atmos_sim.integrator.p.radiation.radiation_model + FT = eltype(Y) + λ = FT(0) # spectral wavelength (not used for now) + + # update for current zenith angle + CA.set_insolation_variables!(Y, p, t) + + bottom_coords = ClimaCore.Fields.coordinate_field(ClimaCore.Spaces.level(Y.c, 1)) + μ = CA.RRTMGPI.array2field(radiation_model.cos_zenith, axes(bottom_coords)) + FT = eltype(atmos_sim.integrator.u) + α_model = CA.RegressionFunctionAlbedo{FT}() + + + # set the direct and diffuse surface albedos + direct_albedo .= CA.surface_albedo_direct(α_model).(λ, μ, norm.(ClimaCore.Fields.level(Y.c.uₕ, 1))) + diffuse_albedo .= CA.surface_albedo_diffuse(α_model).(λ, μ, norm.(ClimaCore.Fields.level(Y.c.uₕ, 1))) + +end diff --git a/experiments/AMIP/components/land/climaland_bucket.jl b/experiments/AMIP/components/land/climaland_bucket.jl index d9cc5ba67..916e20b57 100644 --- a/experiments/AMIP/components/land/climaland_bucket.jl +++ b/experiments/AMIP/components/land/climaland_bucket.jl @@ -4,11 +4,11 @@ import ClimaTimeSteppers as CTS import Thermodynamics as TD using Dates: DateTime using ClimaComms: AbstractCommsContext -import CLIMAParameters +import ClimaParams import ClimaLand using ClimaLand.Bucket: BucketModel, BucketModelParameters, AbstractAtmosphericDrivers, AbstractRadiativeDrivers -import ClimaLand.Bucket: BulkAlbedoTemporal, BulkAlbedoStatic, BulkAlbedoFunction +import ClimaLand.Bucket: PrescribedSurfaceAlbedo, PrescribedBaregroundAlbedo using ClimaLand: make_exp_tendency, initialize, @@ -67,36 +67,36 @@ function bucket_init( @assert config == "sphere" end - earth_param_set = LP.LandParameters(FT) - α_snow = FT(0.8) # snow albedo if albedo_type == "map_static" # Read in albedo from static data file (default type) # By default, this uses a file containing bareground albedo without a time component. Snow albedo is specified separately. - albedo = BulkAlbedoStatic{FT}(regrid_dirpath, space, α_snow = α_snow) + albedo = PrescribedBaregroundAlbedo{FT}(α_snow, regrid_dirpath, space) elseif albedo_type == "map_temporal" # Read in albedo from data file containing data over time # By default, this uses a file containing linearly-interpolated monthly data of total albedo, generated by CESM2's land model (CLM). - albedo = BulkAlbedoTemporal{FT}(regrid_dirpath, date_ref, t_start, space) + albedo = PrescribedSurfaceAlbedo{FT}(regrid_dirpath, date_ref, t_start, space) elseif albedo_type == "function" # Use prescribed function of lat/lon for surface albedo function α_bareground(coordinate_point) (; lat, long) = coordinate_point return typeof(lat)(0.38) end - albedo = BulkAlbedoFunction{FT}(α_snow, α_bareground, space) + albedo = PrescribedBaregroundAlbedo{FT}(α_snow, α_bareground, space) else error("invalid albedo type $albedo_type") end - σS_c = FT(0.2) - W_f = FT(10) d_soil = FT(3.5) # soil depth z_0m = FT(1e-3) # roughness length for momentum over smooth bare soil z_0b = FT(1e-3) # roughness length for tracers over smooth bare soil - κ_soil = FT(0.7) - ρc_soil = FT(2e8) - t_crit = FT(dt) # This is the timescale on which snow exponentially damps to zero, in the case where all - # the snow would melt in time t_crit. It prevents us from having to specially time step in cases where + τc = FT(dt) # This is the timescale on which snow exponentially damps to zero, in the case where all + # the snow would melt in time `τc`. It prevents us from having to specially time step in cases where # all the snow melts in a single timestep. - params = BucketModelParameters(κ_soil, ρc_soil, albedo, σS_c, W_f, z_0m, z_0b, t_crit, earth_param_set) + σS_c = FT(0.2) # critical snow water equivalent + W_f = FT(10) # bucket capacity + κ_soil = FT(0.7) # soil conductivity + ρc_soil = FT(2e8) # soil volumetric heat capacity + + params = BucketModelParameters(FT; albedo, z_0m, z_0b, τc, σS_c, W_f, κ_soil, ρc_soil) + n_vertical_elements = 7 # Note that this does not take into account topography of the surface, which is OK for this land model. # But it must be taken into account when computing surface fluxes, for Δz. @@ -145,7 +145,9 @@ get_field(sim::BucketSimulation, ::Val{:beta}) = ClimaLand.surface_evaporative_scaling(sim.model, sim.integrator.u, sim.integrator.p) get_field(sim::BucketSimulation, ::Val{:roughness_buoyancy}) = sim.model.parameters.z_0b get_field(sim::BucketSimulation, ::Val{:roughness_momentum}) = sim.model.parameters.z_0m -get_field(sim::BucketSimulation, ::Val{:surface_albedo}) = +get_field(sim::BucketSimulation, ::Val{:surface_direct_albedo}) = + ClimaLand.surface_albedo(sim.model, sim.integrator.u, sim.integrator.p) +get_field(sim::BucketSimulation, ::Val{:surface_diffuse_albedo}) = ClimaLand.surface_albedo(sim.model, sim.integrator.u, sim.integrator.p) get_field(sim::BucketSimulation, ::Val{:surface_humidity}) = ClimaLand.surface_specific_humidity(sim.model, sim.integrator.u, sim.integrator.p, sim.integrator.t) @@ -317,7 +319,7 @@ function make_land_domain( vertdomain = ClimaCore.Domains.IntervalDomain( ClimaCore.Geometry.ZPoint(FT(zlim[1])), ClimaCore.Geometry.ZPoint(FT(zlim[2])); - boundary_tags = (:bottom, :top), + boundary_names = (:bottom, :top), ) vertmesh = ClimaCore.Meshes.IntervalMesh(vertdomain, ClimaCore.Meshes.Uniform(), nelems = nelements[2]) diff --git a/experiments/AMIP/components/ocean/eisenman_seaice.jl b/experiments/AMIP/components/ocean/eisenman_seaice.jl index 0bfe3bd67..75ac89f91 100644 --- a/experiments/AMIP/components/ocean/eisenman_seaice.jl +++ b/experiments/AMIP/components/ocean/eisenman_seaice.jl @@ -102,7 +102,7 @@ get_field(sim::EisenmanIceSimulation, ::Val{:roughness_buoyancy}) = get_field(sim::EisenmanIceSimulation, ::Val{:roughness_momentum}) = @. sim.integrator.p.params.p_i.z0m * (sim.integrator.p.ice_area_fraction) + sim.integrator.p.params.p_o.z0m .* (1 - sim.integrator.p.ice_area_fraction) -get_field(sim::EisenmanIceSimulation, ::Val{:surface_albedo}) = +get_field(sim::EisenmanIceSimulation, ::Union{Val{:surface_direct_albedo}, Val{:surface_diffuse_albedo}}) = @. sim.integrator.p.params.p_i.α * (sim.integrator.p.ice_area_fraction) + sim.integrator.p.params.p_o.α .* (1 - sim.integrator.p.ice_area_fraction) get_field(sim::EisenmanIceSimulation, ::Val{:surface_humidity}) = sim.integrator.u.q_sfc diff --git a/experiments/AMIP/components/ocean/prescr_seaice.jl b/experiments/AMIP/components/ocean/prescr_seaice.jl index 88d499b24..47807fa5c 100644 --- a/experiments/AMIP/components/ocean/prescr_seaice.jl +++ b/experiments/AMIP/components/ocean/prescr_seaice.jl @@ -105,7 +105,8 @@ get_field(sim::PrescribedIceSimulation, ::Val{:area_fraction}) = sim.integrator. get_field(sim::PrescribedIceSimulation, ::Val{:beta}) = convert(eltype(sim.integrator.u), 1.0) get_field(sim::PrescribedIceSimulation, ::Val{:roughness_buoyancy}) = sim.integrator.p.params.z0b get_field(sim::PrescribedIceSimulation, ::Val{:roughness_momentum}) = sim.integrator.p.params.z0m -get_field(sim::PrescribedIceSimulation, ::Val{:surface_albedo}) = sim.integrator.p.params.α +get_field(sim::PrescribedIceSimulation, ::Union{Val{:surface_direct_albedo}, Val{:surface_diffuse_albedo}}) = + sim.integrator.p.params.α get_field(sim::PrescribedIceSimulation, ::Val{:surface_humidity}) = sim.integrator.p.q_sfc get_field(sim::PrescribedIceSimulation, ::Val{:surface_temperature}) = sim.integrator.u.T_sfc get_field(sim::PrescribedIceSimulation, ::Val{:water}) = nothing diff --git a/experiments/AMIP/components/ocean/slab_ocean.jl b/experiments/AMIP/components/ocean/slab_ocean.jl index 2a708bb52..fa03a7471 100644 --- a/experiments/AMIP/components/ocean/slab_ocean.jl +++ b/experiments/AMIP/components/ocean/slab_ocean.jl @@ -115,7 +115,8 @@ get_field(sim::SlabOceanSimulation, ::Val{:area_fraction}) = sim.integrator.p.ar get_field(sim::SlabOceanSimulation, ::Val{:beta}) = convert(eltype(sim.integrator.u), 1.0) get_field(sim::SlabOceanSimulation, ::Val{:roughness_buoyancy}) = sim.integrator.p.params.z0b get_field(sim::SlabOceanSimulation, ::Val{:roughness_momentum}) = sim.integrator.p.params.z0m -get_field(sim::SlabOceanSimulation, ::Val{:surface_albedo}) = sim.integrator.p.params.α +get_field(sim::SlabOceanSimulation, ::Union{Val{:surface_direct_albedo}, Val{:surface_diffuse_albedo}}) = + sim.integrator.p.params.α get_field(sim::SlabOceanSimulation, ::Val{:surface_humidity}) = sim.integrator.p.q_sfc get_field(sim::SlabOceanSimulation, ::Val{:surface_temperature}) = sim.integrator.u.T_sfc get_field(sim::SlabOceanSimulation, ::Val{:water}) = nothing diff --git a/experiments/AMIP/coupler_driver.jl b/experiments/AMIP/coupler_driver.jl index 514341c66..7e0db5719 100644 --- a/experiments/AMIP/coupler_driver.jl +++ b/experiments/AMIP/coupler_driver.jl @@ -58,7 +58,8 @@ using ClimaCoupler.FluxCalculator: CombinedStateFluxes, combined_turbulent_fluxes!, MoninObukhovScheme, - partitioned_turbulent_fluxes! + partitioned_turbulent_fluxes!, + water_albedo_from_atmosphere! using ClimaCoupler.Interfacer: CoupledSimulation, SurfaceStub, get_field, update_field! using ClimaCoupler.Regridder using ClimaCoupler.Regridder: update_surface_fractions!, combine_surfaces!, binary_mask @@ -133,6 +134,7 @@ hourly_checkpoint = config_dict["hourly_checkpoint"] restart_dir = config_dict["restart_dir"] restart_t = Int(config_dict["restart_t"]) evolving_ocean = config_dict["evolving_ocean"] +dt_rad = config_dict["dt_rad"] #= ## Setup Communication Context @@ -142,7 +144,7 @@ then `ClimaComms` automatically selects the device from which this code is calle using ClimaComms comms_ctx = get_comms_context(parsed_args) -const pid, nprocs = ClimaComms.init(comms_ctx) +ClimaComms.init(comms_ctx) #= ### I/O Directory Setup @@ -280,7 +282,8 @@ if mode_name == "amip" z0m = FT(1e-3), z0b = FT(1e-3), beta = FT(1), - α = FT(0.06), + α_direct = ClimaCore.Fields.ones(boundary_space) .* FT(0.06), + α_diffuse = ClimaCore.Fields.ones(boundary_space) .* FT(0.06), area_fraction = (FT(1) .- land_fraction), phase = TD.Liquid(), thermo_params = thermo_params, @@ -374,7 +377,8 @@ elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") z0m = FT(0), z0b = FT(0), beta = FT(1), - α = FT(1), + α_direct = ClimaCore.Fields.ones(boundary_space) .* FT(1), + α_diffuse = ClimaCore.Fields.ones(boundary_space) .* FT(1), area_fraction = ClimaCore.Fields.zeros(boundary_space), phase = TD.Ice(), thermo_params = thermo_params, @@ -438,7 +442,8 @@ coupler_field_names = ( :z0b_S, :ρ_sfc, :q_sfc, - :surface_albedo, + :surface_direct_albedo, + :surface_diffuse_albedo, :beta, :F_turb_energy, :F_turb_moisture, @@ -449,6 +454,8 @@ coupler_field_names = ( :P_snow, :radiative_energy_flux_toa, :P_net, + :temp1, + :temp2, ) coupler_fields = NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) @@ -515,14 +522,37 @@ the `ref_date` field specifies the reference (first) date for the callback, and The currently implemented callbacks are: - `checkpoint_cb`: generates a checkpoint of all model states at a specified interval. This is mainly used for restarting simulations. - `update_firstdayofmonth!_cb`: generates a callback to update the first day of the month for monthly message print (and other monthly operations). +- `albedo_cb`: for the amip mode, the water albedo is time varying (since the reflectivity of water depends on insolation and wave characteristics, with the latter + being approximated from wind speed). It is updated at the same frequency as the atmospheric radiation. + NB: Eventually, we will call all of radiation from the coupler, in addition to the albedo calculation. =# - -## checkpoint_cb generates a checkpoint of all model states at a specified interval. This mainly used for restarting simulations. checkpoint_cb = HourlyCallback(dt = FT(480), func = checkpoint_sims, ref_date = [dates.date[1]], active = hourly_checkpoint) # 20 days update_firstdayofmonth!_cb = MonthlyCallback(dt = FT(1), func = update_firstdayofmonth!, ref_date = [dates.date1[1]], active = true) -callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) +dt_water_albedo = parse(FT, filter(x -> !occursin(x, "hours"), dt_rad)) +albedo_cb = HourlyCallback( + dt = dt_water_albedo, + func = water_albedo_from_atmosphere!, + ref_date = [dates.date[1]], + active = mode_name == "amip", +) +callbacks = + (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb, water_albedo = albedo_cb) + +#= +## Initialize turbulent fluxes + +Decide on the type of turbulent flux partition (see `FluxCalculator` documentation for more details). +=# +turbulent_fluxes = nothing +if config_dict["turb_flux_partition"] == "PartitionedStateFluxes" + turbulent_fluxes = PartitionedStateFluxes() +elseif config_dict["turb_flux_partition"] == "CombinedStateFluxes" + turbulent_fluxes = CombinedStateFluxes() +else + error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes") +end #= ## Initialize Coupled Simulation @@ -549,6 +579,8 @@ cs = CoupledSimulation{FT}( diagnostics, callbacks, dir_paths, + turbulent_fluxes, + thermo_params, ); #= @@ -573,41 +605,31 @@ depend on initial conditions of other component models than those in which the v The concrete steps for proper initialization are: =# -# 1.decide on the type of turbulent flux partition (see `FluxCalculator` documentation for more details) -turbulent_fluxes = nothing -if config_dict["turb_flux_partition"] == "PartitionedStateFluxes" - turbulent_fluxes = PartitionedStateFluxes() -elseif config_dict["turb_flux_partition"] == "CombinedStateFluxes" - turbulent_fluxes = CombinedStateFluxes() -else - error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes") -end - -# 2.coupler updates surface model area fractions +# 1.coupler updates surface model area fractions update_surface_fractions!(cs) -# 3.surface density (`ρ_sfc`): calculated by the coupler by adiabatically extrapolating atmospheric thermal state to the surface. +# 2.surface density (`ρ_sfc`): calculated by the coupler by adiabatically extrapolating atmospheric thermal state to the surface. # For this, we need to import surface and atmospheric fields. The model sims are then updated with the new surface density. -import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) -import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) -update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes) +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) +update_model_sims!(cs.model_sims, cs.fields, cs.turbulent_fluxes) -# 4.surface vapor specific humidity (`q_sfc`): step surface models with the new surface density to calculate their respective `q_sfc` internally +# 3.surface vapor specific humidity (`q_sfc`): step surface models with the new surface density to calculate their respective `q_sfc` internally ## TODO: the q_sfc calculation follows the design of the bucket q_sfc, but it would be neater to abstract this from step! (#331) step!(land_sim, Δt_cpl) step!(ocean_sim, Δt_cpl) step!(ice_sim, Δt_cpl) -# 5.turbulent fluxes: now we have all information needed for calculating the initial turbulent surface fluxes using the combined state +# 4.turbulent fluxes: now we have all information needed for calculating the initial turbulent surface fluxes using the combined state # or the partitioned state method -if turbulent_fluxes isa CombinedStateFluxes +if cs.turbulent_fluxes isa CombinedStateFluxes ## import the new surface properties into the coupler (note the atmos state was also imported in step 3.) - import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc + import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc ## calculate turbulent fluxes inside the atmos cache based on the combined surface state in each grid box - combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts -elseif turbulent_fluxes isa PartitionedStateFluxes + combined_turbulent_fluxes!(cs.model_sims, cs.fields, cs.turbulent_fluxes) # this updates the atmos thermo state, sfc_ts +elseif cs.turbulent_fluxes isa PartitionedStateFluxes ## calculate turbulent fluxes in surface models and save the weighted average in coupler fields - partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params) + partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), cs.thermo_params) ## update atmos sfc_conditions for surface temperature ## TODO: this is hard coded and needs to be simplified (req. CA modification) (#479) @@ -616,15 +638,15 @@ elseif turbulent_fluxes isa PartitionedStateFluxes atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions end -# 6.reinitialize models + radiative flux: prognostic states and time are set to their initial conditions. For atmos, this also triggers the callbacks and sets a nonzero radiation flux (given the new sfc_conditions) +# 5.reinitialize models + radiative flux: prognostic states and time are set to their initial conditions. For atmos, this also triggers the callbacks and sets a nonzero radiation flux (given the new sfc_conditions) reinit_model_sims!(cs.model_sims) -# 7.update all fluxes: coupler re-imports updated atmos fluxes (radiative fluxes for both `turbulent_fluxes` types +# 6.update all fluxes: coupler re-imports updated atmos fluxes (radiative fluxes for both `turbulent_fluxes` types # and also turbulent fluxes if `turbulent_fluxes isa CombinedStateFluxes`, # and sends them to the surface component models. If `turbulent_fluxes isa PartitionedStateFluxes` # atmos receives the turbulent fluxes from the coupler. -import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) -update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes) +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) +update_model_sims!(cs.model_sims, cs.fields, cs.turbulent_fluxes) #= ## Coupling Loop @@ -634,13 +656,12 @@ Note that we want to implement this in a dispatchable function to allow for othe =# function solve_coupler!(cs) - ClimaComms.iamroot(comms_ctx) ? @info("Starting coupling loop") : nothing - - (; model_sims, Δt_cpl, tspan) = cs + (; model_sims, Δt_cpl, tspan, comms_ctx) = cs (; atmos_sim, land_sim, ocean_sim, ice_sim) = model_sims + ClimaComms.iamroot(comms_ctx) ? @info("Starting coupling loop") : nothing ## step in time - walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) + walltime = @elapsed for t in ((tspan[begin] + Δt_cpl):Δt_cpl:tspan[end]) cs.dates.date[1] = current_date(cs, t) @@ -662,7 +683,10 @@ function solve_coupler!(cs) update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info) end SIC_current = - get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface) + get_ice_fraction.( + interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), + cs.mode.SIC_info.mono, + ) update_field!(ice_sim, Val(:area_fraction), SIC_current) if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info) @@ -682,22 +706,31 @@ function solve_coupler!(cs) ## compute global energy !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing + ClimaComms.barrier(comms_ctx) + + ## update water albedo from wind at dt_water_albedo (this will be extended to a radiation callback from the coupler) + trigger_callback!(cs, cs.callbacks.water_albedo) ## run component models sequentially for one coupling timestep (Δt_cpl) - ClimaComms.barrier(comms_ctx) update_surface_fractions!(cs) - update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes) + update_model_sims!(cs.model_sims, cs.fields, cs.turbulent_fluxes) ## step sims step_model_sims!(cs.model_sims, t) ## exchange combined fields and (if specified) calculate fluxes using combined states - import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, surface_albedo, z0, beta - if turbulent_fluxes isa CombinedStateFluxes - combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes) - elseif turbulent_fluxes isa PartitionedStateFluxes + import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) # i.e. T_sfc, surface_albedo, z0, beta + if cs.turbulent_fluxes isa CombinedStateFluxes + combined_turbulent_fluxes!(cs.model_sims, cs.fields, cs.turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes) + elseif cs.turbulent_fluxes isa PartitionedStateFluxes ## calculate turbulent fluxes in surfaces and save the weighted average in coupler fields - partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params) + partitioned_turbulent_fluxes!( + cs.model_sims, + cs.fields, + cs.boundary_space, + MoninObukhovScheme(), + cs.thermo_params, + ) ## update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification) new_p = get_new_cache(atmos_sim, cs.fields) @@ -705,7 +738,7 @@ function solve_coupler!(cs) atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions end - import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent + import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) # radiative and/or turbulent ## callback to update the fist day of month if needed (for BCReader) trigger_callback!(cs, cs.callbacks.update_firstdayofmonth!) diff --git a/experiments/AMIP/user_io/debug_plots.jl b/experiments/AMIP/user_io/debug_plots.jl index c4f5f6b8c..4cc8fc9d2 100644 --- a/experiments/AMIP/user_io/debug_plots.jl +++ b/experiments/AMIP/user_io/debug_plots.jl @@ -29,7 +29,8 @@ plot the anomalies of the fields with respect to `cs_fields_ref`. """ function debug(cs_fields::NamedTuple, dir, cs_fields_ref = nothing) field_names = ( - :surface_albedo, + :surface_direct_albedo, + :surface_diffuse_albedo, :F_radiative, :F_turb_energy, :F_turb_moisture, diff --git a/experiments/ClimaCore/Manifest.toml b/experiments/ClimaCore/Manifest.toml index 7f4141693..d33feab26 100644 --- a/experiments/ClimaCore/Manifest.toml +++ b/experiments/ClimaCore/Manifest.toml @@ -1,13 +1,13 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.1" +julia_version = "1.10.2" manifest_format = "2.0" -project_hash = "7453f2d69076b669252dbe4dc1f5fe3e732e1493" +project_hash = "259cae42429247b16710ab2dd21991c786e66868" [[deps.ADTypes]] -git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.6" +version = "0.2.7" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -85,9 +85,9 @@ version = "7.7.1" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "64d582bcb9c93ac741234789eeb4f16812413efb" +git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.6.0" +version = "1.6.1" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -110,9 +110,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +git-tree-sha1 = "fe7ed7b33416db994f706f66e31bbd1b378f71b7" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.5.0" +version = "1.6.0" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -169,12 +169,6 @@ git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.5.0" -[[deps.CLIMAParameters]] -deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "9fcb37be791b4762943cbbf15ccf35c99d91460c" -uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.9.1" - [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" @@ -211,10 +205,10 @@ uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" version = "0.10.1+0" [[deps.Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.1+1" +version = "1.18.0+1" [[deps.Calculus]] deps = ["LinearAlgebra"] @@ -224,9 +218,9 @@ version = "0.5.1" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "aef70bb349b20aa81a82a19704c3ef339d4ee494" +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.22.1" +version = "1.23.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -240,19 +234,25 @@ version = "0.5.7" [[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 = "fd3bb1f7655ebcc8c8a652a8cc6c4f7f2620ae72" +git-tree-sha1 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.12.1" +version = "0.13.2" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] KrylovExt = "Krylov" +[[deps.ClimaParams]] +deps = ["DocStringExtensions", "TOML", "Test"] +git-tree-sha1 = "ec67949db856e01df4cbf7d6ddafefeda02f93ee" +uuid = "5c42b081-d73a-476f-9059-fd94b934656c" +version = "0.10.3" + [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "96bbba6d14467a2b9512ba0a536395350bb361ff" +git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.17" +version = "0.7.19" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -342,9 +342,9 @@ version = "0.2.3" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.3.1" +version = "2.4.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -392,9 +392,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.17" +version = "0.18.18" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -456,9 +456,9 @@ weakdeps = ["OrdinaryDiffEq", "Sundials"] [[deps.DiffEqNoiseProcess]] deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "3d440ee25f48e5c7b08af71f2997daca45bf6856" +git-tree-sha1 = "65cbbe1450ced323b4b17228ccd96349d96795a7" uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.20.1" +version = "5.21.0" [deps.DiffEqNoiseProcess.extensions] DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" @@ -650,9 +650,9 @@ weakdeps = ["PDMats", "SparseArrays", "Statistics"] [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.22.0" +version = "2.23.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -676,11 +676,10 @@ git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" -[[deps.Formatting]] -deps = ["Logging", "Printf"] -git-tree-sha1 = "fb409abab2caf118986fc597ba84b50cbaf00b87" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.3" +[[deps.Format]] +git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.6" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] @@ -717,9 +716,9 @@ version = "0.1.3" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.7" +version = "0.4.8" [[deps.Future]] deps = ["Random"] @@ -751,15 +750,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 = "3458564589be207fa6a77dbbf8b97674c9836aab" +git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.2" +version = "0.73.3" [[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 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.2+0" +version = "0.73.3+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -786,9 +785,9 @@ version = "0.1.0" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.76.5+0" +version = "2.80.0+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -825,9 +824,9 @@ version = "1.14.3+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "ac7b73d562b8f4287c3b67b4c66a5395a19c1ae8" +git-tree-sha1 = "db864f2d91f68a5912937af80327d288ea1f3aee" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.2" +version = "1.10.3" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -965,9 +964,9 @@ version = "0.4.1" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "c7753cc3febe006708ce6798482004241f7d890b" +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.17" +version = "0.9.18" weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] @@ -1042,10 +1041,10 @@ uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.1" [[deps.Latexify]] -deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.1" +version = "0.16.2" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1151,10 +1150,10 @@ uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.17.0+0" [[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.35.0+0" +version = "2.39.3+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1164,9 +1163,9 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e5edc369a598dfde567269dc6add5812cfa10cd5" +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+0" +version = "2.39.3+1" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] @@ -1453,9 +1452,9 @@ version = "4.1.6+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" +version = "1.4.2" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1551,15 +1550,15 @@ version = "3.1.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.0" +version = "1.4.1" [[deps.Plots]] 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 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +git-tree-sha1 = "3c403c6590dd93b36752634115e20137e79ab4df" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.1" +version = "1.40.2" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1619,15 +1618,15 @@ version = "0.4.20" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.0" +version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.1" +version = "1.4.3" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] @@ -2126,9 +2125,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.3" +version = "0.10.4" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2257,9 +2256,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "37195dcb94a5970397ad425b95a9a26d0befce3a" +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.6.0+0" +version = "5.6.1+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] @@ -2477,9 +2476,9 @@ version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "1ea2ebe8ffa31f9c324e8c1d6e86b4165b84a024" +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.43+0" +version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] diff --git a/experiments/ClimaCore/Project.toml b/experiments/ClimaCore/Project.toml index 7dc954679..861f25124 100644 --- a/experiments/ClimaCore/Project.toml +++ b/experiments/ClimaCore/Project.toml @@ -1,6 +1,6 @@ [deps] -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" +ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" diff --git a/experiments/ClimaCore/heat-diffusion/run.jl b/experiments/ClimaCore/heat-diffusion/run.jl index c99985dc0..6c687c47b 100644 --- a/experiments/ClimaCore/heat-diffusion/run.jl +++ b/experiments/ClimaCore/heat-diffusion/run.jl @@ -195,7 +195,7 @@ coupler_put_(x) = x; domain_atm = Domains.IntervalDomain( Geometry.ZPoint{FT}(parameters.zmin_atm), Geometry.ZPoint{FT}(parameters.zmax_atm); - boundary_tags = (:bottom, :top), + boundary_names = (:bottom, :top), ); mesh_atm = Meshes.IntervalMesh(domain_atm, nelems = parameters.n); # struct, allocates face boundaries to 5,6: atmos center_space_atm = Spaces.CenterFiniteDifferenceSpace(mesh_atm); # collection of the above, discretises space into FD and provides coords diff --git a/experiments/ClimaCore/sea_breeze/Manifest.toml b/experiments/ClimaCore/sea_breeze/Manifest.toml index c46496180..a15a5f937 100644 --- a/experiments/ClimaCore/sea_breeze/Manifest.toml +++ b/experiments/ClimaCore/sea_breeze/Manifest.toml @@ -1,13 +1,13 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.1" +julia_version = "1.10.2" manifest_format = "2.0" project_hash = "e237b6466db7bb85f7730efc9e7650e946e179a5" [[deps.ADTypes]] -git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.6" +version = "0.2.7" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -33,9 +33,9 @@ version = "0.4.5" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.2" +version = "4.0.3" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -57,16 +57,18 @@ uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.7.1" +version = "7.9.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" ArrayInterfaceTrackerExt = "Tracker" @@ -74,15 +76,17 @@ version = "7.7.1" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "64d582bcb9c93ac741234789eeb4f16812413efb" +git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.6.0" +version = "1.6.1" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -123,9 +127,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +git-tree-sha1 = "fe7ed7b33416db994f706f66e31bbd1b378f71b7" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.5.0" +version = "1.6.0" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -199,12 +203,6 @@ git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.3" -[[deps.CLIMAParameters]] -deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "9fcb37be791b4762943cbbf15ccf35c99d91460c" -uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.9.1" - [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" @@ -213,15 +211,15 @@ version = "0.2.4" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" +git-tree-sha1 = "a44910ceb69b0d44fe262dd451ab11ead3ed0be8" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.12" +version = "0.10.13" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "95ac638373ac40e29c1b6d086a3698f5026ff6a6" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics"] +git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.1.2" +version = "5.2.0" weakdeps = ["ChainRulesCore", "SpecialFunctions"] [deps.CUDA.extensions] @@ -242,9 +240,9 @@ version = "0.2.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.10.1+0" +version = "0.11.1+0" [[deps.CUDNN_jll]] deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] @@ -253,10 +251,10 @@ uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" version = "8.9.4+0" [[deps.Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.1+1" +version = "1.18.0+1" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] @@ -266,19 +264,19 @@ version = "1.63.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "aef70bb349b20aa81a82a19704c3ef339d4ee494" +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.22.1" +version = "1.23.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] ChainRulesCoreSparseArraysExt = "SparseArrays" [[deps.ClimaAtmos]] -deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FastGaussQuadrature", "Insolation", "Interpolations", "IntervalSets", "Krylov", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "Thermodynamics", "YAML"] -git-tree-sha1 = "f239ec018e8802fa52f2f093a1cf94d8933cea78" +deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "ClimaComms", "ClimaCore", "ClimaParams", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FastGaussQuadrature", "Insolation", "Interpolations", "IntervalSets", "Krylov", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "Thermodynamics", "YAML"] +git-tree-sha1 = "6f61041395606445cb1c69233b0451f395231cec" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.21.0" +version = "0.22.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -288,9 +286,9 @@ version = "0.5.7" [[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 = "fd3bb1f7655ebcc8c8a652a8cc6c4f7f2620ae72" +git-tree-sha1 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.12.1" +version = "0.13.2" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -298,37 +296,43 @@ weakdeps = ["Krylov"] [[deps.ClimaCorePlots]] deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] -git-tree-sha1 = "11b973227d09bbdeaaa191ab59f2338f3f11d118" +git-tree-sha1 = "ded3e0f3e7069f7c807f7b56caff232921bc2f5f" uuid = "cf7c7e5a-b407-4c48-9047-11a94a308626" -version = "0.2.6" +version = "0.2.8" [[deps.ClimaCoreTempestRemap]] deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] -git-tree-sha1 = "2267e018c34f44fa8300b8d550d59f3eecef6094" +git-tree-sha1 = "ac11cc8ad2c043ab753d6888c224c7e2f35f42c0" uuid = "d934ef94-cdd4-4710-83d6-720549644b70" -version = "0.3.13" +version = "0.3.14" [[deps.ClimaCoupler]] -deps = ["CLIMAParameters", "ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] +deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] path = "../../.." uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" version = "0.1.0" [[deps.ClimaLand]] deps = ["Adapt", "ArtifactWrappers", "CFTime", "CSV", "CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "DataFrames", "Dates", "DocStringExtensions", "Flux", "HTTP", "Insolation", "IntervalSets", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] -git-tree-sha1 = "bb7ce7cfe44a0be6228139da713068bad2e27985" +git-tree-sha1 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.10.0" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.ClimaLand.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" + +[[deps.ClimaParams]] +deps = ["DocStringExtensions", "TOML", "Test"] +git-tree-sha1 = "ec67949db856e01df4cbf7d6ddafefeda02f93ee" +uuid = "5c42b081-d73a-476f-9059-fd94b934656c" +version = "0.10.3" [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "96bbba6d14467a2b9512ba0a536395350bb361ff" +git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.17" +version = "0.7.19" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -337,10 +341,10 @@ uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "71cfda20196c7a81f3798de59f3830c78f4c17b0" +deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.16.0" +version = "0.18.0" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] @@ -421,9 +425,9 @@ version = "0.1.2" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.3.1" +version = "2.4.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -477,9 +481,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.17" +version = "0.18.18" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -515,9 +519,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "2ad3a2dcd5f28f535aa884d199cc2f0a9d335729" +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.147.1" +version = "6.148.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -725,9 +729,9 @@ version = "1.9.3" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.22.0" +version = "2.23.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -747,9 +751,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 = "fd7b23aa8013a7528563d429f6eaf406f60364ed" +git-tree-sha1 = "5a626d6ef24ae0a8590c22dc12096fb65eb66325" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.12" +version = "0.14.13" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -769,11 +773,10 @@ git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" -[[deps.Formatting]] -deps = ["Logging", "Printf"] -git-tree-sha1 = "fb409abab2caf118986fc597ba84b50cbaf00b87" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.3" +[[deps.Format]] +git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.6" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] @@ -810,9 +813,9 @@ version = "0.1.3" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.7" +version = "0.4.8" [[deps.Future]] deps = ["Random"] @@ -831,15 +834,15 @@ version = "6.2.1+6" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "9.1.0" +version = "10.0.2" [[deps.GPUArraysCore]] deps = ["Adapt"] -git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.5" +version = "0.1.6" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] @@ -849,15 +852,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 = "3458564589be207fa6a77dbbf8b97674c9836aab" +git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.2" +version = "0.73.3" [[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 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.2+0" +version = "0.73.3+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -878,9 +881,9 @@ version = "0.1.0" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.76.5+0" +version = "2.80.0+0" [[deps.GnuTLS_jll]] deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Nettle_jll", "P11Kit_jll", "Zlib_jll"] @@ -917,9 +920,9 @@ version = "1.14.3+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "ac7b73d562b8f4287c3b67b4c66a5395a19c1ae8" +git-tree-sha1 = "db864f2d91f68a5912937af80327d288ea1f3aee" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.2" +version = "1.10.3" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -957,13 +960,13 @@ version = "1.4.0" [[deps.Insolation]] deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "e5bd2e08d94737b3acd1c1c4e6ab737d2494571c" +git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.1" -weakdeps = ["CLIMAParameters"] +version = "0.9.2" +weakdeps = ["ClimaParams"] [deps.Insolation.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1055,9 +1058,9 @@ version = "0.2.4" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "c7753cc3febe006708ce6798482004241f7d890b" +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.17" +version = "0.9.18" weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] @@ -1141,10 +1144,10 @@ uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.1" [[deps.Latexify]] -deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.1" +version = "0.16.2" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1228,10 +1231,10 @@ uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.17.0+0" [[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.35.0+0" +version = "2.39.3+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1241,9 +1244,9 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e5edc369a598dfde567269dc6add5812cfa10cd5" +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+0" +version = "2.39.3+1" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] @@ -1527,9 +1530,9 @@ version = "4.1.6+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" +version = "1.4.2" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1613,15 +1616,15 @@ version = "3.1.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.0" +version = "1.4.1" [[deps.Plots]] 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 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +git-tree-sha1 = "3c403c6590dd93b36752634115e20137e79ab4df" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.1" +version = "1.40.2" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1669,15 +1672,15 @@ version = "0.4.20" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.0" +version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.1" +version = "1.4.3" [[deps.PrettyPrint]] git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" @@ -1718,13 +1721,13 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "411d7064df9a123db8d2878539b7cc86158ed215" +git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.12.0" -weakdeps = ["CLIMAParameters"] +version = "0.13.1" +weakdeps = ["ClimaParams"] [deps.RRTMGP.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.Random]] deps = ["SHA"] @@ -1772,9 +1775,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "dc428bb59c20dafd1ec500c3432b9e3d7e78e7f3" +git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.10.1" +version = "3.12.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -2038,18 +2041,19 @@ version = "7.2.1+1" [[deps.SurfaceFluxes]] deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] -git-tree-sha1 = "c2329f2ba04cfd7d93b1fa00d43822b1ccacaa4e" +git-tree-sha1 = "89c701c87f378ce95e7ddbcd69b8f1106ba8b968" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.9.4" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.SurfaceFluxes.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.SymbolicIndexingInterface]] -git-tree-sha1 = "251bb311585143931a306175c3b7ced220300578" +deps = ["MacroTools", "RuntimeGeneratedFunctions"] +git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.8" +version = "0.3.11" [[deps.TOML]] deps = ["Dates"] @@ -2114,13 +2118,13 @@ version = "1.0.1" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "9c9ccbdb2ecb490fc69a0392c98766dcc2024eae" +git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.3" -weakdeps = ["CLIMAParameters"] +version = "0.12.5" +weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -2135,9 +2139,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.3" +version = "0.10.4" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2293,9 +2297,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "37195dcb94a5970397ad425b95a9a26d0befce3a" +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.6.0+0" +version = "5.6.1+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] @@ -2547,9 +2551,9 @@ version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "1ea2ebe8ffa31f9c324e8c1d6e86b4165b84a024" +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.43+0" +version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] diff --git a/experiments/ClimaCore/sea_breeze/atmos_rhs.jl b/experiments/ClimaCore/sea_breeze/atmos_rhs.jl index 47bf2acc5..2cf9c5ea3 100644 --- a/experiments/ClimaCore/sea_breeze/atmos_rhs.jl +++ b/experiments/ClimaCore/sea_breeze/atmos_rhs.jl @@ -122,7 +122,7 @@ function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, n vertdomain = Domains.IntervalDomain( Geometry.ZPoint{FT}(zlim[1]), Geometry.ZPoint{FT}(zlim[2]); - boundary_tags = (:bottom, :top), + boundary_names = (:bottom, :top), ) vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem) vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh) diff --git a/experiments/ClimaCore/sea_breeze/run.jl b/experiments/ClimaCore/sea_breeze/run.jl index 6b4f3d982..0e4382c71 100644 --- a/experiments/ClimaCore/sea_breeze/run.jl +++ b/experiments/ClimaCore/sea_breeze/run.jl @@ -26,7 +26,6 @@ using DiffEqCallbacks #hide ## enable broadcasting with mismatched spaces #hide import ClimaCore: Fields, Operators #hide -Fields.allow_mismatched_diagonalized_spaces() = true #hide Operators.allow_mismatched_fd_spaces() = true #hide #hide push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", "..")) #hide diff --git a/perf/Manifest.toml b/perf/Manifest.toml index 312ef3ccf..6515b38e0 100644 --- a/perf/Manifest.toml +++ b/perf/Manifest.toml @@ -1,13 +1,13 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.1" +julia_version = "1.10.2" manifest_format = "2.0" -project_hash = "d466c6535d5038b5212a6962924c2af1f22f20c7" +project_hash = "ed46c461d51248cd9cbdd956368072e478bae235" [[deps.ADTypes]] -git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.6" +version = "0.2.7" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -33,9 +33,9 @@ version = "0.4.5" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.2" +version = "4.0.3" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -57,16 +57,18 @@ uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.7.1" +version = "7.9.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" ArrayInterfaceTrackerExt = "Tracker" @@ -74,15 +76,17 @@ version = "7.7.1" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "64d582bcb9c93ac741234789eeb4f16812413efb" +git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.6.0" +version = "1.6.1" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -123,9 +127,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +git-tree-sha1 = "fe7ed7b33416db994f706f66e31bbd1b378f71b7" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.5.0" +version = "1.6.0" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -199,12 +203,6 @@ git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.3" -[[deps.CLIMAParameters]] -deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "9fcb37be791b4762943cbbf15ccf35c99d91460c" -uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.9.1" - [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" @@ -213,15 +211,15 @@ version = "0.2.4" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" +git-tree-sha1 = "a44910ceb69b0d44fe262dd451ab11ead3ed0be8" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.12" +version = "0.10.13" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "95ac638373ac40e29c1b6d086a3698f5026ff6a6" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics"] +git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.1.2" +version = "5.2.0" weakdeps = ["ChainRulesCore", "SpecialFunctions"] [deps.CUDA.extensions] @@ -242,9 +240,9 @@ version = "0.2.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.10.1+0" +version = "0.11.1+0" [[deps.CUDNN_jll]] deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] @@ -253,10 +251,10 @@ uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" version = "8.9.4+0" [[deps.Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.16.1+1" +version = "1.18.0+1" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] @@ -266,19 +264,19 @@ version = "1.63.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "aef70bb349b20aa81a82a19704c3ef339d4ee494" +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.22.1" +version = "1.23.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] ChainRulesCoreSparseArraysExt = "SparseArrays" [[deps.ClimaAtmos]] -deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FastGaussQuadrature", "Insolation", "Interpolations", "IntervalSets", "Krylov", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "Thermodynamics", "YAML"] -git-tree-sha1 = "f239ec018e8802fa52f2f093a1cf94d8933cea78" +deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "ClimaComms", "ClimaCore", "ClimaParams", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FastGaussQuadrature", "Insolation", "Interpolations", "IntervalSets", "Krylov", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "Thermodynamics", "YAML"] +git-tree-sha1 = "6f61041395606445cb1c69233b0451f395231cec" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.21.0" +version = "0.22.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -288,9 +286,9 @@ version = "0.5.7" [[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 = "fd3bb1f7655ebcc8c8a652a8cc6c4f7f2620ae72" +git-tree-sha1 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.12.1" +version = "0.13.2" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -298,37 +296,43 @@ weakdeps = ["Krylov"] [[deps.ClimaCorePlots]] deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] -git-tree-sha1 = "e86fd9242e89b526c9fb29e05db3071ce64e3a8e" +git-tree-sha1 = "ded3e0f3e7069f7c807f7b56caff232921bc2f5f" uuid = "cf7c7e5a-b407-4c48-9047-11a94a308626" -version = "0.2.7" +version = "0.2.8" [[deps.ClimaCoreTempestRemap]] deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] -git-tree-sha1 = "2267e018c34f44fa8300b8d550d59f3eecef6094" +git-tree-sha1 = "ac11cc8ad2c043ab753d6888c224c7e2f35f42c0" uuid = "d934ef94-cdd4-4710-83d6-720549644b70" -version = "0.3.13" +version = "0.3.14" [[deps.ClimaCoupler]] -deps = ["CLIMAParameters", "ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] +deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] path = ".." uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" version = "0.1.0" [[deps.ClimaLand]] deps = ["Adapt", "ArtifactWrappers", "CFTime", "CSV", "CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "DataFrames", "Dates", "DocStringExtensions", "Flux", "HTTP", "Insolation", "IntervalSets", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] -git-tree-sha1 = "bb7ce7cfe44a0be6228139da713068bad2e27985" +git-tree-sha1 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.10.0" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.ClimaLand.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" + +[[deps.ClimaParams]] +deps = ["DocStringExtensions", "TOML", "Test"] +git-tree-sha1 = "ec67949db856e01df4cbf7d6ddafefeda02f93ee" +uuid = "5c42b081-d73a-476f-9059-fd94b934656c" +version = "0.10.3" [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "96bbba6d14467a2b9512ba0a536395350bb361ff" +git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.17" +version = "0.7.19" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -337,10 +341,10 @@ uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "71cfda20196c7a81f3798de59f3830c78f4c17b0" +deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.16.0" +version = "0.18.0" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] @@ -421,9 +425,9 @@ version = "0.1.2" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.3.1" +version = "2.4.1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -477,9 +481,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.17" +version = "0.18.18" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -515,9 +519,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] -git-tree-sha1 = "2ad3a2dcd5f28f535aa884d199cc2f0a9d335729" +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.147.1" +version = "6.148.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -725,9 +729,9 @@ version = "1.9.3" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.22.0" +version = "2.23.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -747,9 +751,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 = "fd7b23aa8013a7528563d429f6eaf406f60364ed" +git-tree-sha1 = "5a626d6ef24ae0a8590c22dc12096fb65eb66325" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.12" +version = "0.14.13" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -769,11 +773,10 @@ git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" -[[deps.Formatting]] -deps = ["Logging", "Printf"] -git-tree-sha1 = "fb409abab2caf118986fc597ba84b50cbaf00b87" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.3" +[[deps.Format]] +git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.6" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] @@ -810,9 +813,9 @@ version = "0.1.3" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.7" +version = "0.4.8" [[deps.Future]] deps = ["Random"] @@ -831,15 +834,15 @@ version = "6.2.1+6" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "9.1.0" +version = "10.0.2" [[deps.GPUArraysCore]] deps = ["Adapt"] -git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.5" +version = "0.1.6" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] @@ -849,15 +852,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 = "3458564589be207fa6a77dbbf8b97674c9836aab" +git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.2" +version = "0.73.3" [[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 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.2+0" +version = "0.73.3+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -878,9 +881,9 @@ version = "0.1.0" [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.76.5+0" +version = "2.80.0+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -922,9 +925,9 @@ version = "1.14.3+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "ac7b73d562b8f4287c3b67b4c66a5395a19c1ae8" +git-tree-sha1 = "db864f2d91f68a5912937af80327d288ea1f3aee" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.2" +version = "1.10.3" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -962,13 +965,13 @@ version = "1.4.0" [[deps.Insolation]] deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "e5bd2e08d94737b3acd1c1c4e6ab737d2494571c" +git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.1" -weakdeps = ["CLIMAParameters"] +version = "0.9.2" +weakdeps = ["ClimaParams"] [deps.Insolation.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1060,9 +1063,9 @@ version = "0.2.4" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "c7753cc3febe006708ce6798482004241f7d890b" +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.17" +version = "0.9.18" weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] @@ -1146,10 +1149,10 @@ uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.1" [[deps.Latexify]] -deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] -git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.1" +version = "0.16.2" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1233,10 +1236,10 @@ uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.17.0+0" [[deps.Libmount_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.35.0+0" +version = "2.39.3+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1246,9 +1249,9 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e5edc369a598dfde567269dc6add5812cfa10cd5" +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+0" +version = "2.39.3+1" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] @@ -1532,9 +1535,9 @@ version = "4.1.6+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" +version = "1.4.2" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1618,15 +1621,15 @@ version = "3.1.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.0" +version = "1.4.1" [[deps.Plots]] 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 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +git-tree-sha1 = "3c403c6590dd93b36752634115e20137e79ab4df" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.1" +version = "1.40.2" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1674,15 +1677,15 @@ version = "0.4.20" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.0" +version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.1" +version = "1.4.3" [[deps.PrettyPrint]] git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" @@ -1733,13 +1736,13 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "411d7064df9a123db8d2878539b7cc86158ed215" +git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.12.0" -weakdeps = ["CLIMAParameters"] +version = "0.13.1" +weakdeps = ["ClimaParams"] [deps.RRTMGP.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.Random]] deps = ["SHA"] @@ -1787,9 +1790,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "dc428bb59c20dafd1ec500c3432b9e3d7e78e7f3" +git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.10.1" +version = "3.12.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -2053,18 +2056,19 @@ version = "7.2.1+1" [[deps.SurfaceFluxes]] deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] -git-tree-sha1 = "c2329f2ba04cfd7d93b1fa00d43822b1ccacaa4e" +git-tree-sha1 = "89c701c87f378ce95e7ddbcd69b8f1106ba8b968" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.9.4" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.SurfaceFluxes.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.SymbolicIndexingInterface]] -git-tree-sha1 = "251bb311585143931a306175c3b7ced220300578" +deps = ["MacroTools", "RuntimeGeneratedFunctions"] +git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.8" +version = "0.3.11" [[deps.TOML]] deps = ["Dates"] @@ -2129,13 +2133,13 @@ version = "1.0.1" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "9c9ccbdb2ecb490fc69a0392c98766dcc2024eae" +git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.3" -weakdeps = ["CLIMAParameters"] +version = "0.12.5" +weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -2150,9 +2154,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.3" +version = "0.10.4" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2308,9 +2312,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "37195dcb94a5970397ad425b95a9a26d0befce3a" +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.6.0+0" +version = "5.6.1+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] @@ -2562,9 +2566,9 @@ version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "1ea2ebe8ffa31f9c324e8c1d6e86b4165b84a024" +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.43+0" +version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] diff --git a/perf/Project.toml b/perf/Project.toml index 34af973cf..e064cb0b8 100644 --- a/perf/Project.toml +++ b/perf/Project.toml @@ -2,7 +2,6 @@ ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" AtmosphericProfilesLibrary = "86bc3604-9858-485a-bdbe-831ec50de11d" -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" @@ -10,6 +9,7 @@ ClimaCorePlots = "cf7c7e5a-b407-4c48-9047-11a94a308626" ClimaCoreTempestRemap = "d934ef94-cdd4-4710-83d6-720549644b70" ClimaCoupler = "4ade58fe-a8da-486c-bd89-46df092ec0c7" ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" CloudMicrophysics = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" diff --git a/src/BCReader.jl b/src/BCReader.jl index e62c1bb4e..51718e626 100644 --- a/src/BCReader.jl +++ b/src/BCReader.jl @@ -35,6 +35,7 @@ Stores information specific to each boundary condition from a file and each vari - segment_idx0::Vector{Int} # `segment_idx` of the file data that is closest to date0 - segment_length::Vector{Int} # length of each month segment (used in the daily interpolation) - interpolate_daily::Bool # switch to trigger daily interpolation +- mono::Bool # flag for monotone remapping of input data """ struct BCFileInfo{FT <: Real, B, X, S, V, D, C, O, M, VI} bcfile_dir::B @@ -49,6 +50,7 @@ struct BCFileInfo{FT <: Real, B, X, S, V, D, C, O, M, VI} segment_idx0::VI segment_length::VI interpolate_daily::Bool + mono::Bool end BCFileInfo{FT}(args...) where {FT} = BCFileInfo{FT, typeof.(args[1:9])...}(args...) @@ -164,6 +166,7 @@ function bcfile_info_init( segment_idx0, segment_length, interpolate_daily, + mono, ) end diff --git a/src/FieldExchanger.jl b/src/FieldExchanger.jl index ec5ca5d92..c38558415 100644 --- a/src/FieldExchanger.jl +++ b/src/FieldExchanger.jl @@ -49,7 +49,7 @@ end import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes) Updates the coupler with the surface properties. The `Interfacer.get_field` functions for -(`:surface_temperature`, `:surface_albedo`, `:roughness_momentum`, `:roughness_buoyancy`, `:beta`) +(`:surface_temperature`, `:surface_direct_albedo`, `:surface_diffuse_albedo`, `:roughness_momentum`, `:roughness_buoyancy`, `:beta`) need to be specified for each surface model. # Arguments @@ -67,8 +67,11 @@ function import_combined_surface_fields!(csf, model_sims, boundary_space, turbul Regridder.combine_surfaces!(combined_field, model_sims, Val(:surface_temperature)) Regridder.dummmy_remap!(csf.T_S, combined_field) - Regridder.combine_surfaces!(combined_field, model_sims, Val(:surface_albedo)) - Regridder.dummmy_remap!(csf.surface_albedo, combined_field) + Regridder.combine_surfaces!(combined_field, model_sims, Val(:surface_direct_albedo)) + Regridder.dummmy_remap!(csf.surface_direct_albedo, combined_field) + + Regridder.combine_surfaces!(combined_field, model_sims, Val(:surface_diffuse_albedo)) + Regridder.dummmy_remap!(csf.surface_diffuse_albedo, combined_field) if turbulent_fluxes isa FluxCalculator.CombinedStateFluxes Regridder.combine_surfaces!(combined_field, model_sims, Val(:roughness_momentum)) @@ -97,7 +100,8 @@ Updates the surface fields for temperature, roughness length, albedo, and specif """ function update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf, turbulent_fluxes) - Interfacer.update_field!(atmos_sim, Val(:surface_albedo), csf.surface_albedo) + Interfacer.update_field!(atmos_sim, Val(:surface_direct_albedo), csf.surface_direct_albedo) + Interfacer.update_field!(atmos_sim, Val(:surface_diffuse_albedo), csf.surface_diffuse_albedo) Interfacer.update_field!(atmos_sim, Val(:surface_temperature), csf.T_S) if turbulent_fluxes isa FluxCalculator.CombinedStateFluxes diff --git a/src/FluxCalculator.jl b/src/FluxCalculator.jl index c45e6b921..b8a924cc0 100644 --- a/src/FluxCalculator.jl +++ b/src/FluxCalculator.jl @@ -9,7 +9,6 @@ module FluxCalculator import SurfaceFluxes as SF import Thermodynamics as TD using StaticArrays - using ClimaCoupler: Interfacer, Regridder using ClimaCore: Fields, Spaces export PartitionedStateFluxes, @@ -23,7 +22,8 @@ export PartitionedStateFluxes, BulkScheme, partitioned_turbulent_fluxes!, get_surface_params, - update_turbulent_fluxes_point! + update_turbulent_fluxes_point!, + water_albedo_from_atmosphere! """ TurbulentFluxPartition @@ -387,4 +387,31 @@ surface temperature in surface energy balance calculations. """ differentiate_turbulent_fluxes!(::Interfacer.SurfaceModelSimulation, args) = nothing +""" + water_albedo_from_atmosphere!(cs::Interfacer.CoupledSimulation, _) + +Callback to calculate the water albedo from atmospheric state. This is a placeholder for the full radiation callback. +""" +function water_albedo_from_atmosphere!(cs::Interfacer.CoupledSimulation, _) + atmos_sim = cs.model_sims.atmos_sim + ocean_sim = cs.model_sims.ocean_sim + cf = cs.fields + + # use temp fields + water_albedo_from_atmosphere!(atmos_sim, cf.temp1, cf.temp2) + + Interfacer.update_field!(ocean_sim, Val(:surface_direct_albedo), cf.temp1) + Interfacer.update_field!(ocean_sim, Val(:surface_diffuse_albedo), cf.temp2) + +end + +""" + water_albedo_from_atmosphere!(atmos_sim::Interfacer.AtmosModelSimulation, ::Fields.Field, ::Fields.Field) + +Placeholder for the water albedo calculation from the atmosphere. It returns an error if not extended. +""" +function water_albedo_from_atmosphere!(atmos_sim::Interfacer.AtmosModelSimulation, ::Fields.Field, ::Fields.Field) + error("this function is required to be dispatched on" * Interfacer.name(atmos_sim) * ", but no method defined") +end + end # module diff --git a/src/Interfacer.jl b/src/Interfacer.jl index 6391d00c8..530b123d0 100644 --- a/src/Interfacer.jl +++ b/src/Interfacer.jl @@ -49,6 +49,8 @@ struct CoupledSimulation{ TD <: Tuple, NTC <: NamedTuple, NTP <: NamedTuple, + TF, + TP, } comms_ctx::X dates::D @@ -65,6 +67,8 @@ struct CoupledSimulation{ diagnostics::TD callbacks::NTC dirs::NTP + turbulent_fluxes::TF + thermo_params::TP end CoupledSimulation{FT}(args...) where {FT} = CoupledSimulation{FT, typeof.(args[1:end])...}(args...) @@ -143,7 +147,8 @@ get_field( Val{:beta}, Val{:roughness_buoyancy}, Val{:roughness_momentum}, - Val{:surface_albedo}, + Val{:surface_direct_albedo}, + Val{:surface_diffuse_albedo}, Val{:surface_humidity}, Val{:surface_temperature}, }, @@ -186,7 +191,8 @@ get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta get_field(sim::SurfaceStub, ::Val{:energy}) = nothing get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m -get_field(sim::SurfaceStub, ::Val{:surface_albedo}) = sim.cache.α +get_field(sim::SurfaceStub, ::Val{:surface_direct_albedo}) = sim.cache.α_direct +get_field(sim::SurfaceStub, ::Val{:surface_diffuse_albedo}) = sim.cache.α_diffuse get_field(sim::SurfaceStub, ::Val{:surface_humidity}) = TD.q_vap_saturation_generic.(sim.cache.thermo_params, sim.cache.T_sfc, sim.cache.ρ_sfc, sim.cache.phase) get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc @@ -214,7 +220,13 @@ If it isn't extended, the field won't be updated and a warning will be raised. """ update_field!( sim::AtmosModelSimulation, - val::Union{Val{:co2}, Val{:surface_albedo}, Val{:surface_temperature}, Val{:turbulent_fluxes}}, + val::Union{ + Val{:co2}, + Val{:surface_direct_albedo}, + Val{:surface_diffuse_albedo}, + Val{:surface_temperature}, + Val{:turbulent_fluxes}, + }, _, ) = update_field_warning(sim, val) @@ -235,6 +247,8 @@ update_field!( Val{:snow_precipitation}, Val{:turbulent_energy_flux}, Val{:turbulent_moisture_flux}, + Val{:surface_direct_albedo}, + Val{:surface_diffuse_albedo}, }, _, ) = update_field_warning(sim, val) @@ -256,6 +270,12 @@ end function update_field!(sim::SurfaceStub, ::Val{:air_density}, field) parent(sim.cache.ρ_sfc) .= parent(field) end +function update_field!(sim::SurfaceStub, ::Val{:surface_direct_albedo}, field::Fields.Field) + sim.cache.α_direct .= field +end +function update_field!(sim::SurfaceStub, ::Val{:surface_diffuse_albedo}, field::Fields.Field) + sim.cache.α_diffuse .= field +end """ name(::ComponentModelSimulation) diff --git a/test/Project.toml b/test/Project.toml index 35e89d63e..1b19987fb 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,7 +1,6 @@ [deps] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" ClimaAnalysis = "29b5916a-a76c-4e73-9657-3c8fd22e65e6" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" @@ -10,6 +9,7 @@ ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" ClimaCorePlots = "cf7c7e5a-b407-4c48-9047-11a94a308626" ClimaCoupler = "4ade58fe-a8da-486c-bd89-46df092ec0c7" ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" @@ -17,6 +17,7 @@ GeoMakie = "db073c08-6b98-4ee5-b6a4-5efafb3259c6" Insolation = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" diff --git a/test/TestHelper.jl b/test/TestHelper.jl index 8f41eccab..28852f6d9 100644 --- a/test/TestHelper.jl +++ b/test/TestHelper.jl @@ -51,7 +51,7 @@ function create_space( if nz > 1 vertdomain = - Domains.IntervalDomain(Geometry.ZPoint{FT}(0), Geometry.ZPoint{FT}(100); boundary_tags = (:bottom, :top)) + Domains.IntervalDomain(Geometry.ZPoint{FT}(0), Geometry.ZPoint{FT}(100); boundary_names = (:bottom, :top)) vertmesh = Meshes.IntervalMesh(vertdomain, nelems = nz) vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh) return Spaces.ExtrudedFiniteDifferenceSpace(sphere_space, vert_center_space) diff --git a/test/bcreader_tests.jl b/test/bcreader_tests.jl index aa311f868..06ac34e2b 100644 --- a/test/bcreader_tests.jl +++ b/test/bcreader_tests.jl @@ -44,6 +44,7 @@ for FT in (Float32, Float64) segment_idx0, # segment_idx0 Int[], # segment_length false, # interpolate_daily + false, # mono ) idx = segment_idx0[1] @@ -113,6 +114,7 @@ for FT in (Float32, Float64) segment_idx0, # segment_idx0 segment_length, # segment_length interpolate_daily, # interpolate_daily + false, # mono ) @test BCReader.interpolate_midmonth_to_daily(date0, bcf_info_interp) == ones(boundary_space_t) .* FT(0.5) @@ -132,6 +134,7 @@ for FT in (Float32, Float64) segment_idx0, # segment_idx0 segment_length, # segment_length interpolate_daily, # interpolate_daily + false, # mono ) @test BCReader.interpolate_midmonth_to_daily(date0, bcf_info_no_interp) == monthly_fields[1] end @@ -196,6 +199,8 @@ for FT in (Float32, Float64) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) # step in time diff --git a/test/component_model_tests/eisenman_seaice_tests.jl b/test/component_model_tests/eisenman_seaice_tests.jl index 514198262..53957ca60 100644 --- a/test/component_model_tests/eisenman_seaice_tests.jl +++ b/test/component_model_tests/eisenman_seaice_tests.jl @@ -8,7 +8,7 @@ import ClimaCoupler.TestHelper import ClimaCoupler.Interfacer: SeaIceModelSimulation import ClimaCoupler: Regridder -import CLIMAParameters as CP +import ClimaParams as CP import Thermodynamics as TD import Thermodynamics.Parameters as TP diff --git a/test/component_model_tests/prescr_seaice_tests.jl b/test/component_model_tests/prescr_seaice_tests.jl index 5a4c8abcf..04add681e 100644 --- a/test/component_model_tests/prescr_seaice_tests.jl +++ b/test/component_model_tests/prescr_seaice_tests.jl @@ -4,7 +4,7 @@ using ClimaCoupler.Interfacer: SeaIceModelSimulation using ClimaCoupler.TestHelper: create_space using ClimaCore using ClimaCore: Fields, Spaces -import CLIMAParameters as CP +import ClimaParams as CP import Thermodynamics.Parameters as TDP include(pkgdir(ClimaCoupler, "experiments/AMIP/components/ocean/prescr_seaice.jl")) diff --git a/test/component_model_tests/slab_ocean_tests.jl b/test/component_model_tests/slab_ocean_tests.jl index 7a02f5458..ba8d0694f 100644 --- a/test/component_model_tests/slab_ocean_tests.jl +++ b/test/component_model_tests/slab_ocean_tests.jl @@ -4,7 +4,7 @@ using ClimaCoupler.Interfacer: OceanModelSimulation using ClimaCoupler.TestHelper: create_space using ClimaCore using ClimaCore: Fields, Spaces -import CLIMAParameters as CP +import ClimaParams as CP import Thermodynamics.Parameters as TDP include(pkgdir(ClimaCoupler, "experiments/AMIP/components/ocean/slab_ocean.jl")) diff --git a/test/conservation_checker_tests.jl b/test/conservation_checker_tests.jl index 327392cf5..8f9e6455d 100644 --- a/test/conservation_checker_tests.jl +++ b/test/conservation_checker_tests.jl @@ -100,6 +100,8 @@ for FT in (Float32, Float64) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) # set non-zero radiation and precipitation @@ -178,6 +180,8 @@ for FT in (Float32, Float64) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) tot_energy, tot_water = check_conservation!(cs) diff --git a/test/debug/debug_amip_plots.jl b/test/debug/debug_amip_plots.jl index fdda9cb14..8470c389b 100644 --- a/test/debug/debug_amip_plots.jl +++ b/test/debug/debug_amip_plots.jl @@ -39,7 +39,8 @@ plot_field_names(sim::SurfaceStub) = (:stub_field,) boundary_space = TestHelper.create_space(FT) coupler_names = ( - :surface_albedo, + :surface_direct_albedo, + :surface_diffuse_albedo, :F_radiative, :F_turb_energy, :F_turb_moisture, @@ -83,6 +84,8 @@ plot_field_names(sim::SurfaceStub) = (:stub_field,) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) output_plots = "test_debug" diff --git a/test/diagnostics_tests.jl b/test/diagnostics_tests.jl index 0435e77be..a2e541846 100644 --- a/test/diagnostics_tests.jl +++ b/test/diagnostics_tests.jl @@ -53,6 +53,8 @@ for FT in (Float32, Float64) (dg_2d,), (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) accumulate_diagnostics!(cs) @test cs.diagnostics[1].field_vector[1] == expected_results[c_i] @@ -89,6 +91,8 @@ for FT in (Float32, Float64) (dg_2d,), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) save_diagnostics(cs, cs.diagnostics[1]) file = filter(x -> endswith(x, ".hdf5"), readdir(test_dir)) @@ -129,6 +133,8 @@ for FT in (Float32, Float64) (dg_2d,), (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) accumulate_diagnostics!(cs) @test cs.diagnostics[1].field_vector[1] == expected_results[c_i][1] diff --git a/test/field_exchanger_tests.jl b/test/field_exchanger_tests.jl index 5ebba43db..d3fca071a 100644 --- a/test/field_exchanger_tests.jl +++ b/test/field_exchanger_tests.jl @@ -41,8 +41,10 @@ end get_field(sim::Union{TestSurfaceSimulation1, TestSurfaceSimulation2}, ::Val{:surface_temperature}) = sim.cache_field .* eltype(sim.cache_field)(1.0) -get_field(sim::Union{TestSurfaceSimulation1, TestSurfaceSimulation2}, ::Val{:surface_albedo}) = - sim.cache_field .* eltype(sim.cache_field)(1.0) +get_field( + sim::Union{TestSurfaceSimulation1, TestSurfaceSimulation2}, + ::Union{Val{:surface_direct_albedo}, Val{:surface_diffuse_albedo}}, +) = sim.cache_field .* eltype(sim.cache_field)(1.0) get_field(sim::Union{TestSurfaceSimulation1, TestSurfaceSimulation2}, ::Val{:roughness_momentum}) = sim.cache_field .* eltype(sim.cache_field)(1.0) get_field(sim::Union{TestSurfaceSimulation1, TestSurfaceSimulation2}, ::Val{:roughness_buoyancy}) = @@ -63,8 +65,11 @@ get_field(sim::Union{TestSurfaceSimulation2, TestSurfaceSimulation2}, ::Val{:sur struct TestAtmosSimulation{C} <: AtmosModelSimulation cache::C end -function update_field!(sim::TestAtmosSimulation, ::Val{:surface_albedo}, field) - parent(sim.cache.surface_albedo) .= parent(field) +function update_field!(sim::TestAtmosSimulation, ::Val{:surface_direct_albedo}, field) + parent(sim.cache.albedo_direct) .= parent(field) +end +function update_field!(sim::TestAtmosSimulation, ::Val{:surface_diffuse_albedo}, field) + parent(sim.cache.albedo_diffuse) .= parent(field) end function update_field!(sim::TestAtmosSimulation, ::Val{:roughness_momentum}, field) parent(sim.cache.roughness_momentum) .= parent(field) @@ -119,10 +124,17 @@ for FT in (Float32, Float64) @testset "import_combined_surface_fields! for FT=$FT" begin # coupler cache setup boundary_space = TestHelper.create_space(FT) - coupler_names = (:T_S, :z0m_S, :z0b_S, :surface_albedo, :beta, :q_sfc) + coupler_names = (:T_S, :z0m_S, :z0b_S, :surface_direct_albedo, :surface_diffuse_albedo, :beta, :q_sfc) # coupler cache setup - exchanged_fields = (:surface_temperature, :surface_albedo, :roughness_momentum, :roughness_buoyancy, :beta) + exchanged_fields = ( + :surface_temperature, + :surface_direct_albedo, + :surface_diffuse_albedo, + :roughness_momentum, + :roughness_buoyancy, + :beta, + ) sims = (; a = TestSurfaceSimulation1(ones(boundary_space)), b = TestSurfaceSimulation2(ones(boundary_space))) @@ -134,7 +146,8 @@ for FT in (Float32, Float64) coupler_fields = NamedTuple{coupler_names}(ntuple(i -> Fields.zeros(boundary_space), length(coupler_names))) import_combined_surface_fields!(coupler_fields, sims, boundary_space, t) @test parent(coupler_fields.T_S)[1] == results[1] - @test parent(coupler_fields.surface_albedo)[1] == results[1] + @test parent(coupler_fields.surface_direct_albedo)[1] == results[1] + @test parent(coupler_fields.surface_diffuse_albedo)[1] == results[1] @test parent(coupler_fields.z0m_S)[1] == results[i] @test parent(coupler_fields.z0b_S)[1] == results[i] @test parent(coupler_fields.beta)[1] == results[i] @@ -149,7 +162,8 @@ for FT in (Float32, Float64) :T_S, :z0m_S, :z0b_S, - :surface_albedo, + :surface_direct_albedo, + :surface_diffuse_albedo, :beta, :F_turb_energy, :F_turb_moisture, @@ -162,7 +176,8 @@ for FT in (Float32, Float64) # model cache setup - atmos_names = (:surface_temperature, :surface_albedo, :roughness_momentum, :roughness_buoyancy, :beta) + atmos_names = + (:surface_temperature, :albedo_direct, :albedo_diffuse, :roughness_momentum, :roughness_buoyancy, :beta) atmos_fields = NamedTuple{atmos_names}(ntuple(i -> Fields.zeros(boundary_space), length(atmos_names))) land_names = ( @@ -181,18 +196,22 @@ for FT in (Float32, Float64) stub_sim = SurfaceStub((; area_fraction = Fields.ones(boundary_space), ρ_sfc = Fields.ones(boundary_space), + albedo_direct = Fields.ones(boundary_space), + albedo_diffuse = Fields.ones(boundary_space), )), ) + coupler_fields.surface_diffuse_albedo .= FT(0.5) # test the sim update under CombinedStateFluxes (update all) and PartitionedStateFluxes (update all except turbulent fluxes) flux_types = (CombinedStateFluxes(), PartitionedStateFluxes()) - results = [FT(0), FT(1)] + results = [FT(0), FT(1), FT(0.5)] for (i, t) in enumerate(flux_types) model_sims.atmos_sim.cache.roughness_momentum .= FT(0) update_model_sims!(model_sims, coupler_fields, t) # test atmos - @test parent(model_sims.atmos_sim.cache.surface_albedo)[1] == results[2] + @test parent(model_sims.atmos_sim.cache.albedo_direct)[1] == results[2] + @test parent(model_sims.atmos_sim.cache.albedo_diffuse)[1] == results[3] if t isa CombinedStateFluxes @test parent(model_sims.atmos_sim.cache.roughness_momentum)[1] == results[2] else @@ -213,6 +232,10 @@ for FT in (Float32, Float64) @test parent(model_sims.land_sim.cache.liquid_precipitation)[1] == results[1] @test parent(model_sims.land_sim.cache.snow_precipitation)[1] == results[1] + # test stub - albedo should be updated by update_sim! + @test parent(model_sims.stub_sim.cache.albedo_direct)[1] == results[2] + @test parent(model_sims.stub_sim.cache.albedo_diffuse)[1] == results[2] + end end @testset "reinit_model_sims! for FT=$FT" begin diff --git a/test/flux_calculator_tests.jl b/test/flux_calculator_tests.jl index 417ee6c74..078f9c095 100644 --- a/test/flux_calculator_tests.jl +++ b/test/flux_calculator_tests.jl @@ -1,6 +1,6 @@ using ClimaCore: Meshes, Domains, Topologies, Spaces, Fields, InputOutput, Geometry -using ClimaCoupler: Utilities, Regridder, TestHelper +using ClimaCoupler: Utilities, Regridder, TestHelper, Interfacer using Test import ClimaCoupler.FluxCalculator: atmos_turbulent_fluxes!, @@ -17,16 +17,15 @@ import ClimaCoupler.FluxCalculator: surface_inputs, get_surface_fluxes_point!, get_scheme_properties, - surface_thermo_state + surface_thermo_state, + water_albedo_from_atmosphere! import ClimaCoupler: Interfacer - -import CLIMAParameters as CP +import ClimaParams as CP import Thermodynamics as TD import Thermodynamics.Parameters.ThermodynamicsParameters import SurfaceFluxes as SF import SurfaceFluxes.Parameters.SurfaceFluxesParameters import SurfaceFluxes.UniversalFunctions as UF - using StaticArrays # simple generic atmos model @@ -50,6 +49,8 @@ struct TestAtmos{P, Y, D, I} <: Interfacer.AtmosModelSimulation domain::D integrator::I end +struct TestAtmos2 <: Interfacer.AtmosModelSimulation end +name(sim::TestAtmos2) = "TestAtmos2" Interfacer.get_field(sim::TestAtmos, ::Val{:height_int}) = sim.integrator.p.z Interfacer.get_field(sim::TestAtmos, ::Val{:height_sfc}) = sim.integrator.p.z_sfc @@ -96,7 +97,8 @@ Interfacer.get_field(sim::TestOcean, ::Val{:beta}) = sim.integrator.p.beta Interfacer.get_field(sim::TestOcean, ::Val{:area_fraction}) = sim.integrator.p.area_fraction Interfacer.get_field(sim::TestOcean, ::Val{:heat_transfer_coefficient}) = sim.integrator.p.Ch Interfacer.get_field(sim::TestOcean, ::Val{:drag_coefficient}) = sim.integrator.p.Cd -Interfacer.get_field(sim::TestOcean, ::Val{:surface_albedo}) = sim.integrator.p.α +Interfacer.get_field(sim::TestOcean, ::Union{Val{:surface_direct_albedo}, Val{:surface_diffuse_albedo}}) = + sim.integrator.p.α function surface_thermo_state( sim::TestOcean, @@ -143,6 +145,10 @@ function surface_thermo_state( @. TD.PhaseEquil_ρTq.(thermo_params, ρ_sfc, T_sfc, q_sfc) end +function water_albedo_from_atmosphere!(::TestAtmos, temp1::Fields.Field, temp2::Fields.Field) + temp1 .*= 2 + temp2 .*= 3 +end for FT in (Float32, Float64) @testset "combined_turbulent_fluxes! for FT=$FT" begin @@ -220,7 +226,8 @@ for FT in (Float32, Float64) coupler_cache_names = ( :T_S, - :surface_albedo, + :surface_direct_albedo, + :surface_diffuse_albedo, :F_R_sfc, :F_R_toa, :P_liq, @@ -322,4 +329,39 @@ for FT in (Float32, Float64) @test surface_thermo_state(surface_sim, thermo_params, thermo_state_int[colidx], colidx).ρ == thermo_state_int[colidx].ρ end + + @testset "water_albedo_from_atmosphere!" begin + boundary_space = TestHelper.create_space(FT) + ocean_sim = Interfacer.SurfaceStub((; α_direct = zeros(boundary_space), α_diffuse = zeros(boundary_space))) + atmos_sim = TestAtmos(1, 2, 3, 4) + coupler_fields = (; temp1 = ones(boundary_space), temp2 = ones(boundary_space)) + model_sims = (; atmos_sim, ocean_sim) + cs = Interfacer.CoupledSimulation{FT}( + nothing, # comms_ctx + nothing, # dates + nothing, # boundary_space + coupler_fields, # fields + nothing, # parsed_args + nothing, # conservation_checks + (Int(0), Int(1)), # tspan + 0, # t + 0, # Δt_cpl + (;), # surface_masks + model_sims, # model_sims + (;), # mode + (), # diagnostics + (;), # callbacks + (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params + ) + water_albedo_from_atmosphere!(cs, nothing) + @test sum(parent(cs.model_sims.ocean_sim.cache.α_direct) .- parent(ones(boundary_space)) .* 2) == 0 + @test sum(parent(cs.model_sims.ocean_sim.cache.α_diffuse) .- parent(ones(boundary_space)) .* 3) == 0 + + atmos_sim2 = TestAtmos2() + @test_throws ErrorException( + "this function is required to be dispatched on" * Interfacer.name(atmos_sim2) * ", but no method defined", + ) water_albedo_from_atmosphere!(atmos_sim2, ones(boundary_space), ones(boundary_space)) + end end diff --git a/test/interfacer_tests.jl b/test/interfacer_tests.jl index 066c64018..ef09cfdc4 100644 --- a/test/interfacer_tests.jl +++ b/test/interfacer_tests.jl @@ -2,7 +2,7 @@ using ClimaCore: Meshes, Domains, Topologies, Spaces, Fields, InputOutput using ClimaCoupler: Regridder, TestHelper using Test import Thermodynamics as TD -import CLIMAParameters as CP +import ClimaParams as CP import Thermodynamics.Parameters as TDP import ClimaCoupler.Interfacer: CoupledSimulation, @@ -57,6 +57,8 @@ for FT in (Float32, Float64) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) @test float_type(cs) == FT @@ -80,7 +82,8 @@ for FT in (Float32, Float64) stub = SurfaceStub((; area_fraction = FT(1), T_sfc = FT(280), - α = 3, + α_direct = 3, + α_diffuse = 3, z0m = 4, z0b = 5, beta = 6, @@ -90,23 +93,37 @@ for FT in (Float32, Float64) )) @test get_field(stub, Val(:area_fraction)) == FT(1) @test get_field(stub, Val(:surface_temperature)) == FT(280) - @test get_field(stub, Val(:surface_albedo)) == 3 + @test get_field(stub, Val(:surface_direct_albedo)) == 3 + @test get_field(stub, Val(:surface_diffuse_albedo)) == 3 @test get_field(stub, Val(:roughness_momentum)) == 4 @test get_field(stub, Val(:roughness_buoyancy)) == 5 @test get_field(stub, Val(:beta)) == 6 + @test get_field(stub, Val(:air_density)) == FT(1) @test ≈(get_field(stub, Val(:surface_humidity))[1], FT(0.0076), atol = FT(1e-4)) end @testset "update_field! the SurfaceStub area_fraction for FT=$FT" begin boundary_space = TestHelper.create_space(FT) - stub = SurfaceStub((; area_fraction = zeros(boundary_space), T_sfc = zeros(boundary_space))) + stub = SurfaceStub((; + area_fraction = zeros(boundary_space), + T_sfc = zeros(boundary_space), + α_direct = zeros(boundary_space), + α_diffuse = zeros(boundary_space), + z0m = zeros(boundary_space), + z0b = zeros(boundary_space), + beta = zeros(boundary_space), + )) update_field!(stub, Val(:area_fraction), ones(boundary_space)) update_field!(stub, Val(:surface_temperature), ones(boundary_space) .* 2) + update_field!(stub, Val(:surface_direct_albedo), ones(boundary_space) .* 3) + update_field!(stub, Val(:surface_diffuse_albedo), ones(boundary_space) .* 4) @test parent(get_field(stub, Val(:area_fraction)))[1] == FT(1) @test parent(get_field(stub, Val(:surface_temperature)))[1] == FT(2) + @test parent(get_field(stub, Val(:surface_direct_albedo)))[1] == FT(3) + @test parent(get_field(stub, Val(:surface_diffuse_albedo)))[1] == FT(4) end end @@ -135,7 +152,8 @@ end :beta, :roughness_buoyancy, :roughness_momentum, - :surface_albedo, + :surface_direct_albedo, + :surface_diffuse_albedo, :surface_humidity, :surface_temperature, ) @@ -203,7 +221,7 @@ end sim = DummySimulation4(space) # Test that update_field! gives correct warnings for unextended fields - for value in (:co2, :surface_albedo, :surface_temperature, :turbulent_fluxes) + for value in (:co2, :surface_direct_albedo, :surface_diffuse_albedo, :surface_temperature, :turbulent_fluxes) val = Val(value) @test_logs ( :warn, diff --git a/test/mpi_tests/bcreader_mpi_tests.jl b/test/mpi_tests/bcreader_mpi_tests.jl index 6749ba67c..d1ee0f24e 100644 --- a/test/mpi_tests/bcreader_mpi_tests.jl +++ b/test/mpi_tests/bcreader_mpi_tests.jl @@ -143,6 +143,8 @@ end (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) ClimaComms.barrier(comms_ctx) diff --git a/test/regridder_tests.jl b/test/regridder_tests.jl index b804cb3b3..b553fda25 100644 --- a/test/regridder_tests.jl +++ b/test/regridder_tests.jl @@ -83,6 +83,8 @@ for FT in (Float32, Float64) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) Regridder.update_surface_fractions!(cs) diff --git a/test/time_manager_tests.jl b/test/time_manager_tests.jl index 1a9ecabbf..8be0930ee 100644 --- a/test/time_manager_tests.jl +++ b/test/time_manager_tests.jl @@ -31,6 +31,8 @@ for FT in (Float32, Float64) (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) @@ -70,6 +72,8 @@ end (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) @test TimeManager.trigger_callback(cs, TimeManager.Monthly()) == true end @@ -110,6 +114,8 @@ end monthly_counter = monthly_counter, ), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) TimeManager.trigger_callback!(cs, cs.callbacks.twhohourly_inactive) @@ -172,6 +178,8 @@ end (), # diagnostics (;), # callbacks (;), # dirs + nothing, # turbulent_fluxes + nothing, # thermo_params ) TimeManager.update_firstdayofmonth!(cs, nothing)