From 0ae2377d5aecfc4f554a9dd7515644aa40ddf69f Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Thu, 22 Feb 2024 14:04:10 -0800 Subject: [PATCH 01/23] WIP initial commit new file: calibration/Project.toml new file: calibration/coupler_interface.jl new file: calibration/ekp_config.yml new file: calibration/experiments/amip_coupled/coupler_config.yml new file: calibration/experiments/amip_coupled/prior.toml new file: calibration/generate_observations.sbatch new file: calibration/model_run.sbatch new file: calibration/observation_map.jl new file: calibration/test_coupler_config.jl new file: calibration/test_output/iteration_001/member_001/parameters.toml new file: "calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" new file: "calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" new file: experiments/AMIP/coupler_driver_calibration.jl --- calibration/Project.toml | 19 + calibration/coupler_interface.jl | 57 ++ calibration/ekp_config.yml | 7 + .../amip_coupled/coupler_config.yml | 26 + .../experiments/amip_coupled/prior.toml | 23 + calibration/generate_observations.sbatch | 36 + calibration/model_run.sbatch | 23 + calibration/observation_map.jl | 2 + calibration/test_coupler_config.jl | 27 + .../iteration_001/member_001/parameters.toml | 0 ...ler_utcpx_toml_default_coarse.toml\"].yml" | 98 +++ ...ml_default_coarse.toml\"]_parameters.toml" | 487 ++++++++++++++ .../AMIP/coupler_driver_calibration.jl | 625 ++++++++++++++++++ 13 files changed, 1430 insertions(+) create mode 100644 calibration/Project.toml create mode 100644 calibration/coupler_interface.jl create mode 100644 calibration/ekp_config.yml create mode 100644 calibration/experiments/amip_coupled/coupler_config.yml create mode 100644 calibration/experiments/amip_coupled/prior.toml create mode 100644 calibration/generate_observations.sbatch create mode 100644 calibration/model_run.sbatch create mode 100644 calibration/observation_map.jl create mode 100644 calibration/test_coupler_config.jl create mode 100644 calibration/test_output/iteration_001/member_001/parameters.toml create mode 100644 "calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" create mode 100644 "calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" create mode 100644 experiments/AMIP/coupler_driver_calibration.jl diff --git a/calibration/Project.toml b/calibration/Project.toml new file mode 100644 index 0000000000..68735b7c5e --- /dev/null +++ b/calibration/Project.toml @@ -0,0 +1,19 @@ +[deps] +ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" +ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" +CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" +CalibrateAtmos = "4347a170-ebd6-470c-89d3-5c705c0cacc2" +ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" +ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" +ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" +ClimaCorePlots = "cf7c7e5a-b407-4c48-9047-11a94a308626" +ClimaCoupler = "4ade58fe-a8da-486c-bd89-46df092ec0c7" +ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" +EnsembleKalmanProcesses = "aa8a2aa5-91d8-4396-bcef-d4f2ec43552d" +Insolation = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SurfaceFluxes = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" +Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" +YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl new file mode 100644 index 0000000000..c88e726c89 --- /dev/null +++ b/calibration/coupler_interface.jl @@ -0,0 +1,57 @@ +import EnsembleKalmanProcesses as EKP +import ClimaAtmos as CA +import ClimaCoupler as CCo +import YAML + +""" + get_coupler_sim(member, iteration, experiment_id::AbstractString) + +Returns a CouplerSimulation object for the given member and iteration. +If given an experiment id string, it will load the config from the corresponding YAML file. +Turns off default diagnostics and sets the TOML parameter file to the member's path. +This assumes that the config dictionary has `output_dir` and `restart_file` keys. +""" +function get_coupler_sim(member, iteration, experiment_id::AbstractString) + # Specify member path for output_dir + # Set TOML to use EKP parameter(s) + config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") + output_dir = "output" + member_path = + EKP.TOMLInterface.path_to_ensemble_member(output_dir, iteration, member) + config_dict["output_dir"] = member_path + # COPY Coupler Driver + include("/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/experiments/AMIP/coupler_driver_calibration.jl") + # END Coupler Driver + + parameter_path = joinpath(member_path, "parameters.toml") + if haskey(config_dict, "toml") + push!(config_dict["toml"], parameter_path) + else + config_dict["toml"] = [parameter_path] + end + + # Turn off default diagnostics + config_dict["output_default_diagnostics"] = false + + # Set restart file for initial equilibrium state + ENV["RESTART_FILE"] = config_dict["restart_file"] + return get_coupled_simulation(config_dict) +end + +""" + run_forward_model(coupled_sim::CCo.CoupledSimulation) + +Runs the coupled model with the given a CoupledSimulation object. +Note that running an AtmosModel can be considered a special case +of running a CoupledSimulation. +Currently only has basic error handling. +""" +function run_forward_model(coupled_sim::CCo.Interfacer.CoupledSimulation) + sol_res = solve_coupled!(coupled_sim) + if sol_res.ret_code == :simulation_crashed + !isnothing(sol_res.sol) && sol_res.sol .= eltype(sol_res.sol)(NaN) + error( + "The coupled simulation has crashed. See the stack trace for details.", + ) + end +end diff --git a/calibration/ekp_config.yml b/calibration/ekp_config.yml new file mode 100644 index 0000000000..c17c09fe54 --- /dev/null +++ b/calibration/ekp_config.yml @@ -0,0 +1,7 @@ +output_dir: output/amip_coupled +prior_path: experiments/amip_coupled/prior.toml +parameter_names: ["coefficient_a_m_businger", "coefficient_b_m_businger", "coefficient_a_h_businger", "coefficient_b_h_businger"] +ensemble_size: 10 +n_iterations: 3 +truth_data: experiments/amip_coupled/obs_mean.jld2 +truth_noise: experiments/amip_coupled/obs_noise_cov.jld2 diff --git a/calibration/experiments/amip_coupled/coupler_config.yml b/calibration/experiments/amip_coupled/coupler_config.yml new file mode 100644 index 0000000000..a56cabd66b --- /dev/null +++ b/calibration/experiments/amip_coupled/coupler_config.yml @@ -0,0 +1,26 @@ +alpha_rayleigh_uh: 0 +alpha_rayleigh_w: 10 +apply_limiter: false +atmos_config_file: "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/config/longrun_configs/amip_n1_shortrun.yml" +dt: "150secs" +dt_cpl: 150 +dt_rad: "1hours" +dt_save_to_sol: "1days" +dz_bottom: 30 +dz_top: 3000 +energy_check: false +h_elem: 16 +job_id: "target_amip_n1_shortrun" +kappa_4: 1e16 +mode_name: "amip" +moist: "equil" +mono_surface: false +precip_model: "0M" +rad: "gray" +rayleigh_sponge: true +run_name: "target_amip_n1_shortrun" +t_end: "150secs" +vert_diff: "true" +z_elem: 50 +z_stretch: false +restart_dir: "./output/restart/" diff --git a/calibration/experiments/amip_coupled/prior.toml b/calibration/experiments/amip_coupled/prior.toml new file mode 100644 index 0000000000..3f1519594e --- /dev/null +++ b/calibration/experiments/amip_coupled/prior.toml @@ -0,0 +1,23 @@ +["coefficient_a_m_businger"] +prior = "Parameterized(Normal(0.0, 2.0))" +constraint = "[bounded_below(0)]" +type = "float" +alias = "businger_a_m" + +["coefficient_b_m_businger"] +prior = "Parameterized(Normal(0.0, 16.0))" +constraint = "[bounded_below(0)]" +type = "float" +alias = "businger_b_m" + +["coefficient_a_h_businger"] +prior = "Parameterized(Normal(0.0, 16.0))" +constraint = "[bounded_below(0)]" +type = "float" +alias = "businger_a_h" + +["coefficient_b_h_businger"] +prior = "Parameterized(Normal(0.0, 16.0))" +constraint = "[bounded_below(0)]" +type = "float" +alias = "businger_b_h"" diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch new file mode 100644 index 0000000000..68ee57d7e5 --- /dev/null +++ b/calibration/generate_observations.sbatch @@ -0,0 +1,36 @@ +#!/bin/bash +#SBATCH --time=24:00:00 +#SBATCH --ntasks=32 +#SBATCH --cpus-per-task=8 +#SBATCH --output="experiments/amip_coupled/truth_simulation/model_log.out" + +# Configure the environment +source experiments/common_env.sh + +echo "Generating truth observations." + +srun --open-mode=append julia --project=experiments -e ' +using ClimaComms +ClimaComms.init(ClimaComms.context()) +import ClimaAtmos as CA +import ClimaCoupler as CCo +import YAML +using NetCDF +import JLD2 + +experiment_dir = joinpath("experiments", "amip_coupled") +output_dir = joinpath(experiment_dir, "truth_simulation") + +config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")) +config_dict["t_end"] = "3000days" +config_dict["output_dir"] = output_dir + +coupled_simulation = CA.get_simulation(config_dict) +CA.solve_coupler!(coupled_simulation) + +ts = ncread(joinpath(output_dir, "ts_60d_average.nc"), "ta") +include(joinpath(experiment_dir, "observation_map.jl")) +(; observation, variance) = process_member_data(ta; output_variance = true) +JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) +JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) +' diff --git a/calibration/model_run.sbatch b/calibration/model_run.sbatch new file mode 100644 index 0000000000..9dec2b5e4f --- /dev/null +++ b/calibration/model_run.sbatch @@ -0,0 +1,23 @@ +#!/bin/bash +#SBATCH --time=2:00:00 +#SBATCH --cpus-per-task=8 +#SBATCH --mem-per-cpu=8G + +# Extract command-line arguments +experiment_id=$1 +iteration=$2 + +# Find output directory +format_i=$(printf "iteration_%03d" "$iteration") +member=$(printf "member_%03d" "$SLURM_ARRAY_TASK_ID") +output=output/$experiment_id/$format_i/$member/model_log.out + +# Run the forward model +srun --output=$output julia --color=no --project=experiments -e " + using ClimaComms + using ClimaCoupler + ClimaComms.init(ClimaComms.context()) + import CalibrateAtmos, ClimaCoupler + atmos_config = CalibrateAtmos.get_atmos_config($SLURM_ARRAY_TASK_ID, $iteration, \"$experiment_id\") + CalibrateAtmos.run_forward_model(atmos_config) +" diff --git a/calibration/observation_map.jl b/calibration/observation_map.jl new file mode 100644 index 0000000000..71318c8d57 --- /dev/null +++ b/calibration/observation_map.jl @@ -0,0 +1,2 @@ +### Place holder for NCEP data from the ClimaCoupler outputs +# diff --git a/calibration/test_coupler_config.jl b/calibration/test_coupler_config.jl new file mode 100644 index 0000000000..b0eb2e6c3b --- /dev/null +++ b/calibration/test_coupler_config.jl @@ -0,0 +1,27 @@ +import CalibrateAtmos +using Test + +include("coupler_interface.jl") + +# Tests for ensuring CalibrateAtmos sets AtmosConfig correctly. + +member_path = joinpath("test_output", "iteration_001", "member_001") +file_path = joinpath(member_path, "parameters.toml") +mkpath(dirname(file_path)) +touch(file_path) + +config_dict = Dict{Any, Any}( + "dt_save_to_disk" => "100days", + "output_dir" => "test_output", +) + +coupler_config = get_coupler_sim(1, 1, "amip_coupled") +(; parsed_args) = coupler_config + +@testset "Atmos Configuration" begin + @test parsed_args["moist"] == "equil" + @test parsed_args["toml"] == [file_path] + @test parsed_args["output_dir"] == member_path +end + +rm(file_path) diff --git a/calibration/test_output/iteration_001/member_001/parameters.toml b/calibration/test_output/iteration_001/member_001/parameters.toml new file mode 100644 index 0000000000..e69de29bb2 diff --git "a/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" "b/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" new file mode 100644 index 0000000000..57d5e14a47 --- /dev/null +++ "b/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" @@ -0,0 +1,98 @@ +surface_thermo_state_type: "GCMSurfaceThermoState" +topo_smoothing: false +warn_allocations_diagnostics: false +hyperdiff: "ClimaHyperdiffusion" +dt: "600secs" +output_dir: "test_output" +prognostic_tke: false +override_τ_precip: true +use_newton_rtol: false +netcdf_output_at_levels: false +device: "auto" +t_end: "10days" +dz_top: 5000.0 +y_elem: 6 +z_stretch: true +bubble: true +ode_algo: "ARS343" +max_newton_iters_ode: 1 +start_date: "19790101" +check_precipitation: false +forcing: ~ +edmfx_nh_pressure: false +scalar_hyperdiffusion_coefficient: 1.5 +prognostic_surface: "false" +test_dycore_consistency: false +moist: "dry" +perf_mode: "PerfStandard" +edmf_coriolis: ~ +rad: ~ +rayleigh_sponge: false +initial_condition: "DecayingProfile" +cloud_model: "quadrature" +krylov_rtol: 0.1 +divergence_damping_factor: 1.0 +edmfx_entr_model: ~ +eisenstat_walker_forcing_alpha: 2.0 +dt_cloud_fraction: "3hours" +smoothing_order: 3 +idealized_h2o: false +surface_setup: "PrescribedSurface" +perturb_initstate: true +jvp_step_adjustment: 1.0 +discrete_hydrostatic_balance: false +netcdf_interpolate_z_over_msl: false +log_progress: true +dz_bottom: 500.0 +h_elem: 6 +dt_save_state_to_disk: "Inf" +netcdf_interpolation_num_points: ~ +advection_test: false +z_max: 30000.0 +apply_limiter: false +topography: "NoWarp" +reference_job_id: ~ +precip_model: ~ +perf_summary: false +vorticity_hyperdiffusion_coefficient: 1.5 +viscous_sponge: false +surface_temperature: "ZonallySymmetric" +job_id: ~ +orographic_gravity_wave: ~ +dt_rad: "6hours" +approximate_linear_solve_iters: 1 +edmfx_upwinding: "none" +tracer_upwinding: "none" +nh_poly: 3 +edmfx_sgs_diffusive_flux: false +y_max: 300000.0 +non_orographic_gravity_wave: false +use_reference_state: true +config: "sphere" +energy_upwinding: "none" +FLOAT_TYPE: "Float64" +updraft_number: 1 +split_ode: true +regression_test: false +check_conservation: false +ls_adv: ~ +output_default_diagnostics: true +implicit_diffusion: false +x_max: 300000.0 +edmfx_sgs_mass_flux: false +z_elem: 10 +newton_rtol: 1.0e-5 +fps: 5 +edmfx_sgsflux_upwinding: "none" +turbconv: ~ +x_elem: 6 +idealized_clouds: false +vert_diff: "false" +use_krylov_method: false +subsidence: ~ +use_dynamic_krylov_rtol: false +idealized_insolation: true +toml: + - "/Users/akshaysridhar/.julia/packages/ClimaCoupler/utcpx/toml/default_coarse.toml" +edmfx_detr_model: ~ +dt_save_to_sol: "1days" diff --git "a/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" "b/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" new file mode 100644 index 0000000000..156c8b27b3 --- /dev/null +++ "b/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" @@ -0,0 +1,487 @@ +[f_plane_coriolis_frequency] +used_in = ["ClimaAtmos"] +value = 0 +type = "float" + +[orbit_eccentricity_at_epoch] +used_in = ["Insolation"] +value = 0.016708634 +type = "float" + +[potential_temperature_reference_pressure] +used_in = ["Thermodynamics"] +value = 100000 +type = "float" +description = "Reference pressure used in potential temperature definition" + +[prandtl_number_0_businger] +used_in = ["SurfaceFluxes"] +value = 0.74 +type = "float" +description = "Pr_0 for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[mixing_length_tke_surf_scale] +used_in = ["ClimaAtmos"] +value = 3.75 +type = "float" +description = "Ratio of turbulence kinetic energy to squared friction velocity in the surface layer for the EDMF mixing length closure; denoted κ_*². See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1. Note: the square root, i.e. κ_*, is listed in the reference." + +[temperature_triple_point] +used_in = ["Thermodynamics"] +value = 273.16 +type = "float" + +[length_orbit_semi_major] +used_in = ["Insolation"] +value = 149597870000 +type = "float" +description = "derived: 1 * [astronomical_unit]" + +[isobaric_specific_heat_ice] +used_in = ["Thermodynamics"] +value = 2100 +type = "float" + +[mixing_length_smin_rm] +used_in = ["ClimaAtmos"] +value = 1.5 +type = "float" +description = "Upper ratio limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." + +[C_E] +used_in = ["ClimaAtmos"] +value = 0.044 +type = "float" +description = "vertical diffusion coefficient" + +[latent_heat_sublimation_at_reference] +used_in = ["Thermodynamics"] +value = 2834400 +type = "float" + +[day] +used_in = ["Insolation"] +value = 86400 +type = "float" + +[isobaric_specific_heat_vapor] +used_in = ["Thermodynamics"] +value = 1859 +type = "float" + +[EDMF_surface_area] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Combined updraft surface area fraction; used to compute boundary conditions for prognostic updraft variables. The surface area for each updraft is `surface_area / N_updrafts`. See Cohen et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 2." + +[c_smag] +used_in = ["ClimaAtmos"] +value = 0.2 +type = "float" +description = "Smagorinsky coefficient" + +[mixing_length_smin_ub] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Lower limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." + +[molar_mass_water] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.01801528 +type = "float" + +[most_stability_exponent_businger] +used_in = ["SurfaceFluxes"] +value = 4.42 +type = "float" +description = "γ for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[temperature_saturation_adjustment_min] +used_in = ["Thermodynamics"] +value = 150 +type = "float" + +[min_area_limiter_power] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Constant coefficient for the exponent in the minimum area limiter term in entrainment. Parameter not described in the literature." + +[pressure_normalmode_drag_coeff] +used_in = ["ClimaAtmos"] +value = 10.0 +type = "float" +description = "Updraft pressure drag coefficent in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." + +[held_suarez_T_equator_dry] +used_in = ["ClimaAtmos"] +value = 315 +type = "float" +description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[mixing_length_Prandtl_number_0] +used_in = ["ClimaAtmos"] +value = 0.74 +type = "float" +description = "Turbulent Prandtl number in neutral conditions; denoted Pr_{t,0}. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1 and Eq 36." + +[longitude_perihelion_at_epoch] +used_in = ["Insolation"] +value = 4.938188299449 +type = "float" +description = "(282.937348 degrees) in radians" + +[stefan_boltzmann_constant] +used_in = ["RRTMGP"] +value = 5.67e-8 +type = "float" + +[temperature_min_at_reference] +used_in = ["Thermodynamics"] +value = 220 +type = "float" + +[entropy_water_vapor] +used_in = ["Thermodynamics"] +value = 10513.6 +type = "float" + +[equator_pole_temperature_gradient_wet] +used_in = ["ClimaAtmos"] +value = 65 +type = "float" +description = "Temperature gradient between equator and pole for moist adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[held_suarez_T_equator_wet] +used_in = ["ClimaAtmos"] +value = 294 +type = "float" +description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[entropy_dry_air] +used_in = ["Thermodynamics"] +value = 6864.8 +type = "float" + +[zd_rayleigh] +used_in = ["ClimaAtmos"] +value = 15000.0 +type = "float" +description = "rayleigh sponge height" + +[coefficient_a_m_businger] +used_in = ["SurfaceFluxes"] +value = 4.7 +type = "float" +description = "a_m for Businger momentum universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[temperature_saturation_adjustment_max] +used_in = ["Thermodynamics"] +value = 1000 +type = "float" + +[mean_anomalistic_at_epoch] +used_in = ["Insolation"] +value = 6.24006014121 +type = "float" +description = "(357.52911 degrees) in radians" + +[mixing_length_diss_coeff] +used_in = ["ClimaAtmos"] +value = 0.22 +type = "float" +description = "Turbulence kinetic energy dissipation coefficient for the EDMF mixing length closure; denoted c_d. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[potential_temp_vertical_gradient] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Potential temperature gradient with height. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[EDMF_max_area] +used_in = ["ClimaAtmos"] +value = 0.9 +type = "float" +description = "Maximum area fraction per updraft. Parameter not described in the literature." + +[entr_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "TODO: Remove this. Constant entrainment coefficient used for testing EDMF" + +[mixing_length_Ri_crit] +used_in = ["ClimaAtmos"] +value = 0.25 +type = "float" +description = "Critical gradient Richardson number. It is an upper limit to the gradient Richardson number . See Li (2019) [https://doi.org/10.1016/j.atmosres.2018.09.015], Section 6.2 for details." + +[gas_constant] +used_in = ["Thermodynamics", "RRTMGP"] +value = 8.3144598 +type = "float" + +[orbit_obliquity_at_epoch] +used_in = ["Insolation"] +value = 0.408979125113246 +type = "float" +description = "(23.432777778 degrees) in radians" + +[drag_layer_vertical_extent] +used_in = ["ClimaAtmos"] +value = 0.7 +type = "float" +description = "Vertical extend of drag layer. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[temperature_mean_at_reference] +used_in = ["Thermodynamics"] +value = 290 +type = "float" + +[detr_inv_tau] +used_in = ["ClimaAtmos"] +value = 900 +type = "float" +description = "Detrainment timescale" + +[entr_inv_tau] +used_in = ["ClimaAtmos"] +value = 900 +type = "float" +description = "Entrainment timescale" + +[temperature_homogenous_nucleation] +used_in = ["Thermodynamics"] +value = 233 +type = "float" + +[pressure_normalmode_buoy_coeff1] +used_in = ["ClimaAtmos"] +value = 0.12 +type = "float" +description = "Pressure buoyancy coefficient (encapsulating virtual mass loading effect) in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." + +[mixing_length_static_stab_coeff] +used_in = ["ClimaAtmos"] +value = 0.4 +type = "float" +description = "Static stability coefficient for the EDMF mixing length closure; denoted c_b. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[held_suarez_minimum_temperature] +used_in = ["ClimaAtmos"] +value = 200 +type = "float" +description = "Minimum temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[angular_velocity_planet_rotation] +used_in = ["ClimaAtmos"] +value = 7.2921159e-5 +type = "float" + +[min_area_limiter_scale] +used_in = ["ClimaAtmos"] +value = 0.001 +type = "float" +description = "Constant coefficient that scales the minimum area limiter term in entrainment. Parameter not described in the literature." + +[entropy_reference_temperature] +used_in = ["Thermodynamics"] +value = 298.15 +type = "float" + +[most_stability_parameter_businger] +used_in = ["SurfaceFluxes"] +value = 2.5 +type = "float" +description = "ζ_a for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[molar_mass_dry_air] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.02897 +type = "float" + +[zd_viscous] +used_in = ["ClimaAtmos"] +value = 15000.0 +type = "float" +description = "viscous sponge height" + +[planet_radius] +used_in = ["ClimaAtmos"] +value = 6371000 +type = "float" + +[adiabatic_exponent_dry_air] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.28571428571 +type = "float" +description = "(2/7)" + +[epoch_time] +used_in = ["Insolation"] +value = 211813488000 +type = "float" +description = "derived: 2451545.0 * [day]" + +[detr_buoy_coeff] +used_in = ["ClimaAtmos"] +value = 0.12 +type = "float" +description = "Coefficient for the b/w^2 term in the detrainment closure. See Tan et al. (2018) [https://doi.org/10.1002/2017MS001162], Eq 27." + +[precipitation_timescale] +used_in = ["CloudMicrophysics"] +value = 600.0 +type = "float" + +[C_H] +used_in = ["ClimaAtmos"] +value = 0.0044 +type = "float" +description = "bulk transfer coefficient" + +[EDMF_min_area] +used_in = ["ClimaAtmos"] +value = 1.0e-5 +type = "float" +description = "Minimum area fraction per updraft. Parameter not described in the literature." + +[isobaric_specific_heat_liquid] +used_in = ["Thermodynamics"] +value = 4181 +type = "float" + +[latent_heat_vaporization_at_reference] +used_in = ["Thermodynamics"] +value = 2500800 +type = "float" + +[detr_vertdiv_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "Coefficient for the vertical divergence term in the detrainment closure. Parameter not described in the literature." + +[gravitational_acceleration] +used_in = ["Thermodynamics", "RRTMGP"] +value = 9.81 +type = "float" + +[equator_pole_temperature_gradient_dry] +used_in = ["ClimaAtmos"] +value = 60 +type = "float" +description = "Temperature gradient between equator and pole for dry adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[coefficient_a_h_businger] +used_in = ["SurfaceFluxes"] +value = 4.7 +type = "float" +description = "a_h for Businger heat universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[pow_icenuc] +used_in = ["Thermodynamics"] +value = 1 +type = "float" + +[max_area_limiter_scale] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Constant coefficient that scales the maximum area limiter term in detrainment. Parameter not described in the literature." + +[avogadro_constant] +used_in = ["RRTMGP"] +value = 6.02214076e23 +type = "float" + +[pressure_triple_point] +used_in = ["Thermodynamics"] +value = 611.657 +type = "float" + +[thermodynamics_temperature_reference] +used_in = ["Thermodynamics"] +value = 273.16 +type = "float" + +[temperature_water_freeze] +used_in = ["Thermodynamics"] +value = 273.15 +type = "float" + +[total_solar_irradiance] +used_in = ["Insolation"] +value = 1362 +type = "float" + +[detr_coeff] +used_in = ["ClimaAtmos"] +value = 0.001 +type = "float" +description = "TODO: Remove this. Constant detrainment coefficient used for testing EDMF" + +[minimum_updraft_top] +used_in = ["ClimaAtmos"] +value = 500.0 +type = "float" +description = "Minimum updraft height limiter to avoid zero division in pressure drag and entrainment/detrainment closures. Parameter not described in the literature." + +[von_karman_constant] +used_in = ["SurfaceFluxes"] +value = 0.4 +type = "float" + +[mixing_length_eddy_viscosity_coefficient] +used_in = ["ClimaAtmos"] +value = 0.14 +type = "float" +description = "Turbulence kinetic energy diffusivity coefficient for the EDMF mixing length closure; denoted c_m. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[alpha_rayleigh_w] +used_in = ["ClimaAtmos"] +value = 1.0 +type = "float" +description = "rayleigh sponge vert velocity coeff" + +[mean_sea_level_pressure] +used_in = ["Thermodynamics"] +value = 101325 +type = "float" + +[max_area_limiter_power] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Constant coefficient for the exponent in the maximum area limiter term in detrainment. Parameter not described in the literature." + +[anomalistic_year_length] +used_in = ["Insolation"] +value = 31558464 +type = "float" +description = "derived: 365.25 * [day]" + +[alpha_rayleigh_uh] +used_in = ["ClimaAtmos"] +value = 0.0 +type = "float" +description = "rayleigh sponge horizontal velocity coefficient" + +[kappa_2_sponge] +used_in = ["ClimaAtmos"] +value = 1.0e6 +type = "float" +description = "viscous sponge coefficient" + +[astronomical_unit] +used_in = ["ClimaAtmos"] +value = 149597870000 +type = "float" + +[mixing_length_Prandtl_number_scale] +used_in = ["ClimaAtmos"] +value = 4.076923076923077 +type = "float" +description = "Cospectral budget factor for turbulent Prandtl number for the EDMF mixing length closure, denoted ω_pr. In Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Eq. 36, it is described as a phenomenological constant, denoted by ω₂ and set to 53/13 ≈ 4.0769..." diff --git a/experiments/AMIP/coupler_driver_calibration.jl b/experiments/AMIP/coupler_driver_calibration.jl new file mode 100644 index 0000000000..4eb94ffac2 --- /dev/null +++ b/experiments/AMIP/coupler_driver_calibration.jl @@ -0,0 +1,625 @@ +# When Julia 1.10+ is used interactively, stacktraces contain reduced type information to make them shorter. +# On the other hand, the full type information is printed when julia is not run interactively. +# Given that ClimaCore objects are heavily parametrized, non-abbreviated stacktraces are hard to read, +# so we force abbreviated stacktraces even in non-interactive runs. +# (See also Base.type_limited_string_from_context()) +redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) + +# Set up context for CPU single thread/CPU with MPI/GPU +using ClimaComms +comms_ctx = ClimaComms.context() +const pid, nprocs = ClimaComms.init(comms_ctx) + +# # AMIP Driver + +#= +## Overview + +AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). +It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) +are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources: +- SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html +- land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf + +For more information, see the PCMDI's specifications for [AMIP I](https://pcmdi.github.io/mips/amip/) and [AMIP II](https://pcmdi.github.io/mips/amip2/). + +This driver contains two modes. The full `AMIP` mode and a `SlabPlanet` (all surfaces are thermal slabs) mode. Since `AMIP` is not a closed system, the +`SlabPlanet` mode is useful for checking conservation properties of the coupling. + +=# + +#= +## Start Up +Before starting Julia, ensure your environment is properly set up: +```julia +module purge +module load julia/1.10.0 + +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty +export JUlIA_MPI_BINARY="system" +export JULIA_HDF5_PATH="" +``` + +Next instantiate/build all packages listed in `Manifest.toml`: +```julia +julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()' +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")' +``` + +The `coupler_driver.jl` is now ready to be run. You can run a SLURM job (e.g., run `sbatch sbatch_job.sh` from the terminal), or +you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run +with threading enabled: +```julia +julia --project --threads 8 +``` +=# + +#= +## Initialization +Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in `cli_options.jl` apply). +We then specify the input data file names. If these are not already downloaded, include `artifacts/download_artifacts.jl`. +=# + +import SciMLBase: ODEProblem, solve, step!, init, reinit! +using LinearAlgebra +import Test: @test +using Dates +using Plots +using Statistics: mean +import ClimaAtmos as CA +import YAML + +using ClimaCore.Utilities: half, PlusHalf +using ClimaCore: InputOutput, Fields +import ClimaCore.Spaces as Spaces + +## coupler specific imports +import ClimaCoupler +import ClimaCoupler.Regridder +import ClimaCoupler.Regridder: + update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask +import ClimaCoupler.ConservationChecker: + EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation +import ClimaCoupler.Utilities: swap_space! +import ClimaCoupler.BCReader: + bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily +import ClimaCoupler.TimeManager: + current_date, + datetime_to_strdate, + trigger_callback, + Monthly, + EveryTimestep, + HourlyCallback, + MonthlyCallback, + update_firstdayofmonth!, + trigger_callback! +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean +import ClimaCoupler.PostProcessor: postprocess + +import ClimaCoupler.Interfacer: + CoupledSimulation, + float_type, + AtmosModelSimulation, + SurfaceModelSimulation, + SurfaceStub, + SeaIceModelSimulation, + LandModelSimulation, + OceanModelSimulation, + get_field, + update_field! +import ClimaCoupler.FluxCalculator: + PartitionedStateFluxes, + CombinedStateFluxes, + combined_turbulent_fluxes!, + MoninObukhovScheme, + partitioned_turbulent_fluxes! +import ClimaCoupler.FieldExchanger: + import_atmos_fields!, + import_combined_surface_fields!, + update_sim!, + update_model_sims!, + reinit_model_sims!, + step_model_sims! +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! + +## helpers for component models +include("components/atmosphere/climaatmos_init.jl") +include("components/land/bucket_init.jl") +include("components/land/bucket_utils.jl") +include("components/ocean/slab_ocean_init.jl") +include("components/ocean/prescr_seaice_init.jl") +include("user_io/user_diagnostics.jl") +include("user_io/user_logging.jl") + +## coupler defaults +# get component model dictionaries +include("cli_options.jl") +parsed_args = parse_commandline(argparse_settings()) +config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") +config_dict = merge(parsed_args, config_dict) +config_dict_atmos = get_atmos_config(config_dict) + +# merge dictionaries of command line arguments, coupler dictionary and component model dictionaries +# (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) +config_dict = merge(config_dict_atmos, config_dict) + + +## read in some parsed command line arguments +mode_name = config_dict["mode_name"] +run_name = config_dict["run_name"] +energy_check = config_dict["energy_check"] +FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 +land_sim_name = "bucket" +t_end = Float64(time_to_seconds(config_dict["t_end"])) +t_start = 0.0 +tspan = (t_start, t_end) +Δt_cpl = Float64(config_dict["dt_cpl"]) +saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) +date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd") +mono_surface = config_dict["mono_surface"] +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"] + +## I/O directory setup +COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" +mkpath(COUPLER_OUTPUT_DIR) + +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") +mkpath(REGRID_DIR) + +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) + +@info COUPLER_OUTPUT_DIR +config_dict["print_config_dict"] ? @info(config_dict) : nothing + +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) +sst_data = joinpath(sst_dataset_path(), "sst.nc") +sic_data = joinpath(sic_dataset_path(), "sic.nc") +co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") + +#= +## Component Model Initialization +Here we set initial and boundary conditions for each component model. +=# + +#= +### Atmosphere +This uses the `ClimaAtmos.jl` driver, with parameterization options specified in the command line arguments. +=# +## init atmos model component +atmos_sim = atmos_init(FT, config_dict_atmos); +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models + +#= +We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both +the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the +atmosphere and surface are of the same horizontal resolution. +=# +## init a 2D boundary space at the surface +boundary_space = Spaces.horizontal_space(atmos_sim.domain.face_space) + +# init land-sea fraction +land_fraction = + FT.( + Regridder.land_fraction( + FT, + REGRID_DIR, + comms_ctx, + land_mask_data, + "LSMASK", + boundary_space, + mono = mono_surface, + ) + ) + +#= +### Ocean and Sea Ice +In the `AMIP` mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed +SIC and assuming a 2m thickness of the ice. + +In the `SlabPlanet` mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters. + +### Land +If evolving, use `ClimaLand.jl`'s bucket model. +=# + +@info mode_name +if mode_name == "amip" + @info "AMIP boundary conditions - do not expect energy conservation" + + ## land + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + comms_ctx, + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) + + ## ocean + SST_info = bcfile_info_init( + FT, + REGRID_DIR, + sst_data, + "SST", + boundary_space, + comms_ctx, + interpolate_daily = true, + scaling_function = clean_sst, ## convert to Kelvin + land_fraction = land_fraction, + date0 = date0, + mono = mono_surface, + ) + + update_midmonth_data!(date0, SST_info) + SST_init = interpolate_midmonth_to_daily(date0, SST_info) + ocean_sim = SurfaceStub((; + T_sfc = SST_init, + ρ_sfc = ClimaCore.Fields.zeros(boundary_space), + z0m = FT(1e-3), + z0b = FT(1e-3), + beta = FT(1), + α = FT(0.06), + area_fraction = (FT(1) .- land_fraction), + phase = TD.Liquid(), + thermo_params = thermo_params, + )) + + ## sea ice + SIC_info = bcfile_info_init( + FT, + REGRID_DIR, + sic_data, + "SEAICE", + boundary_space, + comms_ctx, + interpolate_daily = true, + scaling_function = clean_sic, ## convert to fraction + land_fraction = land_fraction, + date0 = date0, + mono = mono_surface, + ) + update_midmonth_data!(date0, SIC_info) + SIC_init = interpolate_midmonth_to_daily(date0, SIC_info) + ice_fraction = get_ice_fraction.(SIC_init, mono_surface) + ice_sim = ice_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = ice_fraction, + thermo_params = thermo_params, + ) + + ## CO2 concentration + CO2_info = bcfile_info_init( + FT, + REGRID_DIR, + co2_data, + "co2", + boundary_space, + comms_ctx, + interpolate_daily = true, + land_fraction = ones(boundary_space), + date0 = date0, + mono = mono_surface, + ) + + update_midmonth_data!(date0, CO2_info) + CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) + update_field!(atmos_sim, Val(:co2_gm), CO2_init) + + mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) + +elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") + + land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction + land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction + + ## land + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + comms_ctx, + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) + + ## ocean + ocean_sim = ocean_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs) + thermo_params = thermo_params, + evolving = evolving_ocean, + ) + + ## sea ice (here set to zero area coverage) + ice_sim = SurfaceStub((; + T_sfc = ClimaCore.Fields.ones(boundary_space), + ρ_sfc = ClimaCore.Fields.zeros(boundary_space), + z0m = FT(0), + z0b = FT(0), + beta = FT(1), + α = FT(1), + area_fraction = ClimaCore.Fields.zeros(boundary_space), + phase = TD.Ice(), + thermo_params = thermo_params, + )) + + mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) +end + +#= +## Coupler Initialization +The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally +save online diagnostics. These are all initialized here and saved in a global `CouplerSimulation` struct, `cs`. +=# + +## coupler exchange fields +coupler_field_names = ( + :T_S, + :z0m_S, + :z0b_S, + :ρ_sfc, + :q_sfc, + :albedo, + :beta, + :F_turb_energy, + :F_turb_moisture, + :F_turb_ρτxz, + :F_turb_ρτyz, + :F_radiative, + :P_liq, + :P_snow, + :F_radiative_TOA, + :P_net, +) +coupler_fields = + NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) + +## model simulations +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); + +## dates +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) + +#= +### Online Diagnostics +User can write custom diagnostics in the `user_diagnostics.jl`. +=# +monthly_3d_diags = init_diagnostics( + (:T, :u, :q_tot, :q_liq_ice), + atmos_sim.domain.center_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_3d_", +) + +monthly_2d_diags = init_diagnostics( + (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), + boundary_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_2d_", +) + +diagnostics = (monthly_3d_diags, monthly_2d_diags) + +#= +## Initialize Conservation Checks +=# +## init conservation info collector +conservation_checks = nothing +if energy_check + @assert( + mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), + "Only non-distributed slabplanet allowable for energy_check" + ) + conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) +end + +dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) +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) # for BCReader +callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) + +## coupler simulation +cs = CoupledSimulation{FT}( + comms_ctx, + dates, + boundary_space, + coupler_fields, + config_dict, + conservation_checks, + [tspan[1], tspan[2]], + atmos_sim.integrator.t, + Δt_cpl, + (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)), + model_sims, + mode_specifics, + diagnostics, + callbacks, + dir_paths, +); + +@show cs + +#= +## Restart component model states if specified +=# +if restart_dir !== "unspecified" + for sim in cs.model_sims + if get_model_state_vector(sim) !== nothing + restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) + end + end +end + +#= +## Initialize Component Model Exchange +=# +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 + +# 1) coupler combines surface states and calculates rho_sfc using surface and atmos variables +update_surface_fractions!(cs) +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) + +# 2) each surface component model calculates its own vapor specific humidity (q_sfc) +# TODO: the q_sfc calculation follows the design of the bucket q_sfc, but it would be neater to abstract this from step! +step!(land_sim, Δt_cpl) +step!(ocean_sim, Δt_cpl) +step!(ice_sim, Δt_cpl) + +# 3) coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions +if turbulent_fluxes isa CombinedStateFluxes + # calculate fluxes using combined surface states on the atmos grid + import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc + combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts +elseif 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) + + # update atmos sfc_conditions for surface temperature + # TODO: this is hard coded and needs to be simplified (need CA modification) + new_p = get_new_cache(atmos_sim, cs.fields) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA) + atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions +end + +# 4) given the new sfc_conditions, atmos calls the radiative flux callback +reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux + +# 5) 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) + +#= +## Coupling Loop +=# +function solve_coupler!(cs) + @info "Starting coupling loop" + + (; model_sims, Δt_cpl, tspan) = cs + (; atmos_sim, land_sim, ocean_sim, ice_sim) = model_sims + + ## step in time + walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) + + cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated. + + ## print date on the first of month + if cs.dates.date[1] >= cs.dates.date1[1] + ClimaComms.iamroot(comms_ctx) ? @show(cs.dates.date[1]) : nothing + end + + if cs.mode.name == "amip" + + ## monthly read of boundary condition data for SST and SIC and CO2 + if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info) + update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info) + end + SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info) + update_field!(ocean_sim, Val(:surface_temperature), SST_current) + + if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info) + 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) + update_field!(ice_sim, Val(:area_fraction), SIC_current) + + if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info) + update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info) + end + CO2_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.CO2_info) + update_field!(atmos_sim, Val(:co2_gm), CO2_current) + + ## calculate and accumulate diagnostics at each timestep + ClimaComms.barrier(comms_ctx) + accumulate_diagnostics!(cs) + + ## save and reset monthly averages + save_diagnostics(cs) + + end + + ## compute global energy + !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing + + ## 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) + + ## 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, 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 + # 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) + + # 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) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification) + 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 + + ## callback to update the fist day of month if needed (for BCReader) + trigger_callback!(cs, cs.callbacks.update_firstdayofmonth!) + + ## callback to checkpoint model state + trigger_callback!(cs, cs.callbacks.checkpoint) + + end + @show walltime + + return cs +end From 59cbf290e529aea30e706eb4d7d0a6eb8c691477 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 28 Feb 2024 13:08:54 -0800 Subject: [PATCH 02/23] modified: coupler_config.yml modified: ../../../experiments/AMIP/coupler_driver.jl --- calibration/experiments/amip_coupled/coupler_config.yml | 1 + experiments/AMIP/coupler_driver.jl | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/calibration/experiments/amip_coupled/coupler_config.yml b/calibration/experiments/amip_coupled/coupler_config.yml index a56cabd66b..68de946e66 100644 --- a/calibration/experiments/amip_coupled/coupler_config.yml +++ b/calibration/experiments/amip_coupled/coupler_config.yml @@ -23,4 +23,5 @@ t_end: "150secs" vert_diff: "true" z_elem: 50 z_stretch: false +dt_save_restart: "150secs" restart_dir: "./output/restart/" diff --git a/experiments/AMIP/coupler_driver.jl b/experiments/AMIP/coupler_driver.jl index 0ed4d48d16..3f536b26b2 100644 --- a/experiments/AMIP/coupler_driver.jl +++ b/experiments/AMIP/coupler_driver.jl @@ -163,7 +163,7 @@ config_dict = merge(config_dict_atmos, config_dict) mode_name = config_dict["mode_name"] run_name = config_dict["run_name"] energy_check = config_dict["energy_check"] -const FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 +FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 land_sim_name = "bucket" t_end = Float64(time_to_seconds(config_dict["t_end"])) t_start = 0.0 @@ -534,6 +534,7 @@ cs = CoupledSimulation{FT}( dir_paths, ); + #= ## Restart component model states if specified =# From 0529270a081904022e0ec6b1b962ae2ea8321a29 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Thu, 29 Feb 2024 10:10:30 -0800 Subject: [PATCH 03/23] modified: experiments/AMIP/coupler_driver_calibration.jl --- experiments/AMIP/coupler_driver_calibration.jl | 2 -- 1 file changed, 2 deletions(-) diff --git a/experiments/AMIP/coupler_driver_calibration.jl b/experiments/AMIP/coupler_driver_calibration.jl index 4eb94ffac2..ff51c12a59 100644 --- a/experiments/AMIP/coupler_driver_calibration.jl +++ b/experiments/AMIP/coupler_driver_calibration.jl @@ -472,8 +472,6 @@ cs = CoupledSimulation{FT}( dir_paths, ); -@show cs - #= ## Restart component model states if specified =# From b632f4a0aaccab7c7acd7ba06f1ac64f2156b7d3 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 1 Mar 2024 09:29:18 -0800 Subject: [PATCH 04/23] modified: coupler_interface.jl modified: experiments/amip_coupled/coupler_config.yml modified: generate_observations.sbatch modified: model_run.sbatch deleted: test_coupler_config.jl modified: ../experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl modified: ../experiments/AMIP/coupler_driver_calibration.jl --- calibration/coupler_interface.jl | 6 ++--- .../amip_coupled/coupler_config.yml | 2 +- calibration/generate_observations.sbatch | 6 ++--- calibration/model_run.sbatch | 4 +-- calibration/test_coupler_config.jl | 27 ------------------- .../atmosphere/climaatmos_extra_diags.jl | 1 + .../AMIP/coupler_driver_calibration.jl | 15 ++++++----- 7 files changed, 17 insertions(+), 44 deletions(-) delete mode 100644 calibration/test_coupler_config.jl diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl index c88e726c89..06ddb4608f 100644 --- a/calibration/coupler_interface.jl +++ b/calibration/coupler_interface.jl @@ -1,5 +1,4 @@ import EnsembleKalmanProcesses as EKP -import ClimaAtmos as CA import ClimaCoupler as CCo import YAML @@ -20,7 +19,7 @@ function get_coupler_sim(member, iteration, experiment_id::AbstractString) EKP.TOMLInterface.path_to_ensemble_member(output_dir, iteration, member) config_dict["output_dir"] = member_path # COPY Coupler Driver - include("/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/experiments/AMIP/coupler_driver_calibration.jl") + include("../experiments/AMIP/coupler_driver_calibration.jl") # END Coupler Driver parameter_path = joinpath(member_path, "parameters.toml") @@ -34,8 +33,7 @@ function get_coupler_sim(member, iteration, experiment_id::AbstractString) config_dict["output_default_diagnostics"] = false # Set restart file for initial equilibrium state - ENV["RESTART_FILE"] = config_dict["restart_file"] - return get_coupled_simulation(config_dict) + return cs end """ diff --git a/calibration/experiments/amip_coupled/coupler_config.yml b/calibration/experiments/amip_coupled/coupler_config.yml index 68de946e66..96b31dceda 100644 --- a/calibration/experiments/amip_coupled/coupler_config.yml +++ b/calibration/experiments/amip_coupled/coupler_config.yml @@ -24,4 +24,4 @@ vert_diff: "true" z_elem: 50 z_stretch: false dt_save_restart: "150secs" -restart_dir: "./output/restart/" +restart_dir: "./restart" diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 68ee57d7e5..69bfc51675 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -12,7 +12,6 @@ echo "Generating truth observations." srun --open-mode=append julia --project=experiments -e ' using ClimaComms ClimaComms.init(ClimaComms.context()) -import ClimaAtmos as CA import ClimaCoupler as CCo import YAML using NetCDF @@ -22,10 +21,11 @@ experiment_dir = joinpath("experiments", "amip_coupled") output_dir = joinpath(experiment_dir, "truth_simulation") config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")) -config_dict["t_end"] = "3000days" +config_dict["t_end"] = "300days" config_dict["output_dir"] = output_dir -coupled_simulation = CA.get_simulation(config_dict) + +coupled_simulation = CA.solve_coupler!(coupled_simulation) ts = ncread(joinpath(output_dir, "ts_60d_average.nc"), "ta") diff --git a/calibration/model_run.sbatch b/calibration/model_run.sbatch index 9dec2b5e4f..efa90f21f4 100644 --- a/calibration/model_run.sbatch +++ b/calibration/model_run.sbatch @@ -18,6 +18,6 @@ srun --output=$output julia --color=no --project=experiments -e " using ClimaCoupler ClimaComms.init(ClimaComms.context()) import CalibrateAtmos, ClimaCoupler - atmos_config = CalibrateAtmos.get_atmos_config($SLURM_ARRAY_TASK_ID, $iteration, \"$experiment_id\") - CalibrateAtmos.run_forward_model(atmos_config) + coupled_simulation = get_coupler_sim($SLURM_ARRAY_TASK_ID, $iteration, \"$experiment_id\") + run_forward_model(coupled_simulation) " diff --git a/calibration/test_coupler_config.jl b/calibration/test_coupler_config.jl deleted file mode 100644 index b0eb2e6c3b..0000000000 --- a/calibration/test_coupler_config.jl +++ /dev/null @@ -1,27 +0,0 @@ -import CalibrateAtmos -using Test - -include("coupler_interface.jl") - -# Tests for ensuring CalibrateAtmos sets AtmosConfig correctly. - -member_path = joinpath("test_output", "iteration_001", "member_001") -file_path = joinpath(member_path, "parameters.toml") -mkpath(dirname(file_path)) -touch(file_path) - -config_dict = Dict{Any, Any}( - "dt_save_to_disk" => "100days", - "output_dir" => "test_output", -) - -coupler_config = get_coupler_sim(1, 1, "amip_coupled") -(; parsed_args) = coupler_config - -@testset "Atmos Configuration" begin - @test parsed_args["moist"] == "equil" - @test parsed_args["toml"] == [file_path] - @test parsed_args["output_dir"] == member_path -end - -rm(file_path) diff --git a/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl b/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl index 9e2b66d85e..de3dd3f66a 100644 --- a/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl +++ b/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl @@ -12,6 +12,7 @@ The `compute!` function is called at every atmos time step to compute the diagno To output these variables, short_name needs to be specified under diagnostics in the required yml file. """ +### TODO This has been fixed in a recent update add_diagnostic_variable!( short_name = "mse", diff --git a/experiments/AMIP/coupler_driver_calibration.jl b/experiments/AMIP/coupler_driver_calibration.jl index ff51c12a59..33bdcb9da7 100644 --- a/experiments/AMIP/coupler_driver_calibration.jl +++ b/experiments/AMIP/coupler_driver_calibration.jl @@ -475,13 +475,14 @@ cs = CoupledSimulation{FT}( #= ## Restart component model states if specified =# -if restart_dir !== "unspecified" - for sim in cs.model_sims - if get_model_state_vector(sim) !== nothing - restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) - end - end -end +#if restart_dir !== "unspecified" +# for sim in cs.model_sims +# if get_model_state_vector(sim) !== nothing +# @skipping restart +# restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) +# end +# end +#end #= ## Initialize Component Model Exchange From e871dc28b8a64e19a119e9a35b8e75425c80f4aa Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 13:34:17 -0800 Subject: [PATCH 05/23] modified: coupler_interface.jl modified: model_run.sbatch modified: ../experiments/AMIP/coupler_driver_calibration.jl --- calibration/coupler_interface.jl | 10 +++------- calibration/model_run.sbatch | 7 ++++--- experiments/AMIP/coupler_driver_calibration.jl | 12 +----------- 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl index 06ddb4608f..49698b3352 100644 --- a/calibration/coupler_interface.jl +++ b/calibration/coupler_interface.jl @@ -45,11 +45,7 @@ of running a CoupledSimulation. Currently only has basic error handling. """ function run_forward_model(coupled_sim::CCo.Interfacer.CoupledSimulation) - sol_res = solve_coupled!(coupled_sim) - if sol_res.ret_code == :simulation_crashed - !isnothing(sol_res.sol) && sol_res.sol .= eltype(sol_res.sol)(NaN) - error( - "The coupled simulation has crashed. See the stack trace for details.", - ) - end + sol_res = solve_coupler!(coupled_sim) + # Is there a return code in coupler sims? + # Can we get the atmos version instead ? end diff --git a/calibration/model_run.sbatch b/calibration/model_run.sbatch index efa90f21f4..8ea48f8028 100644 --- a/calibration/model_run.sbatch +++ b/calibration/model_run.sbatch @@ -17,7 +17,8 @@ srun --output=$output julia --color=no --project=experiments -e " using ClimaComms using ClimaCoupler ClimaComms.init(ClimaComms.context()) - import CalibrateAtmos, ClimaCoupler - coupled_simulation = get_coupler_sim($SLURM_ARRAY_TASK_ID, $iteration, \"$experiment_id\") - run_forward_model(coupled_simulation) + include(\"coupler_interface.jl\") + import CalibrateAtmos + coupled_simulation = get_coupler_sim($SLURM_ARRAY_TASK_ID, $iteration, \"$experiment_id\"); + run_forward_model(coupled_simulation); " diff --git a/experiments/AMIP/coupler_driver_calibration.jl b/experiments/AMIP/coupler_driver_calibration.jl index 33bdcb9da7..eb1c9b9f93 100644 --- a/experiments/AMIP/coupler_driver_calibration.jl +++ b/experiments/AMIP/coupler_driver_calibration.jl @@ -161,6 +161,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"] +config_dict["print_config_dict"] = false ## I/O directory setup COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" @@ -172,7 +173,6 @@ mkpath(REGRID_DIR) COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) -@info COUPLER_OUTPUT_DIR config_dict["print_config_dict"] ? @info(config_dict) : nothing # get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration @@ -182,16 +182,6 @@ sic_data = joinpath(sic_dataset_path(), "sic.nc") co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") -#= -## Component Model Initialization -Here we set initial and boundary conditions for each component model. -=# - -#= -### Atmosphere -This uses the `ClimaAtmos.jl` driver, with parameterization options specified in the command line arguments. -=# -## init atmos model component atmos_sim = atmos_init(FT, config_dict_atmos); thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models From 761500feb2024cf7ed0ddc749e7fc05bf9268ee6 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 13:35:36 -0800 Subject: [PATCH 06/23] deleted: test_output/iteration_001/member_001/parameters.toml deleted: "test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" deleted: "test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" --- .../iteration_001/member_001/parameters.toml | 0 ...ler_utcpx_toml_default_coarse.toml\"].yml" | 98 ---- ...ml_default_coarse.toml\"]_parameters.toml" | 487 ------------------ 3 files changed, 585 deletions(-) delete mode 100644 calibration/test_output/iteration_001/member_001/parameters.toml delete mode 100644 "calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" delete mode 100644 "calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" diff --git a/calibration/test_output/iteration_001/member_001/parameters.toml b/calibration/test_output/iteration_001/member_001/parameters.toml deleted file mode 100644 index e69de29bb2..0000000000 diff --git "a/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" "b/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" deleted file mode 100644 index 57d5e14a47..0000000000 --- "a/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"].yml" +++ /dev/null @@ -1,98 +0,0 @@ -surface_thermo_state_type: "GCMSurfaceThermoState" -topo_smoothing: false -warn_allocations_diagnostics: false -hyperdiff: "ClimaHyperdiffusion" -dt: "600secs" -output_dir: "test_output" -prognostic_tke: false -override_τ_precip: true -use_newton_rtol: false -netcdf_output_at_levels: false -device: "auto" -t_end: "10days" -dz_top: 5000.0 -y_elem: 6 -z_stretch: true -bubble: true -ode_algo: "ARS343" -max_newton_iters_ode: 1 -start_date: "19790101" -check_precipitation: false -forcing: ~ -edmfx_nh_pressure: false -scalar_hyperdiffusion_coefficient: 1.5 -prognostic_surface: "false" -test_dycore_consistency: false -moist: "dry" -perf_mode: "PerfStandard" -edmf_coriolis: ~ -rad: ~ -rayleigh_sponge: false -initial_condition: "DecayingProfile" -cloud_model: "quadrature" -krylov_rtol: 0.1 -divergence_damping_factor: 1.0 -edmfx_entr_model: ~ -eisenstat_walker_forcing_alpha: 2.0 -dt_cloud_fraction: "3hours" -smoothing_order: 3 -idealized_h2o: false -surface_setup: "PrescribedSurface" -perturb_initstate: true -jvp_step_adjustment: 1.0 -discrete_hydrostatic_balance: false -netcdf_interpolate_z_over_msl: false -log_progress: true -dz_bottom: 500.0 -h_elem: 6 -dt_save_state_to_disk: "Inf" -netcdf_interpolation_num_points: ~ -advection_test: false -z_max: 30000.0 -apply_limiter: false -topography: "NoWarp" -reference_job_id: ~ -precip_model: ~ -perf_summary: false -vorticity_hyperdiffusion_coefficient: 1.5 -viscous_sponge: false -surface_temperature: "ZonallySymmetric" -job_id: ~ -orographic_gravity_wave: ~ -dt_rad: "6hours" -approximate_linear_solve_iters: 1 -edmfx_upwinding: "none" -tracer_upwinding: "none" -nh_poly: 3 -edmfx_sgs_diffusive_flux: false -y_max: 300000.0 -non_orographic_gravity_wave: false -use_reference_state: true -config: "sphere" -energy_upwinding: "none" -FLOAT_TYPE: "Float64" -updraft_number: 1 -split_ode: true -regression_test: false -check_conservation: false -ls_adv: ~ -output_default_diagnostics: true -implicit_diffusion: false -x_max: 300000.0 -edmfx_sgs_mass_flux: false -z_elem: 10 -newton_rtol: 1.0e-5 -fps: 5 -edmfx_sgsflux_upwinding: "none" -turbconv: ~ -x_elem: 6 -idealized_clouds: false -vert_diff: "false" -use_krylov_method: false -subsidence: ~ -use_dynamic_krylov_rtol: false -idealized_insolation: true -toml: - - "/Users/akshaysridhar/.julia/packages/ClimaCoupler/utcpx/toml/default_coarse.toml" -edmfx_detr_model: ~ -dt_save_to_sol: "1days" diff --git "a/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" "b/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" deleted file mode 100644 index 156c8b27b3..0000000000 --- "a/calibration/test_output/test_output_PrescribedSurface_Float64_toml_Any[\"_Users_akshaysridhar_.julia_packages_ClimaCoupler_utcpx_toml_default_coarse.toml\"]_parameters.toml" +++ /dev/null @@ -1,487 +0,0 @@ -[f_plane_coriolis_frequency] -used_in = ["ClimaAtmos"] -value = 0 -type = "float" - -[orbit_eccentricity_at_epoch] -used_in = ["Insolation"] -value = 0.016708634 -type = "float" - -[potential_temperature_reference_pressure] -used_in = ["Thermodynamics"] -value = 100000 -type = "float" -description = "Reference pressure used in potential temperature definition" - -[prandtl_number_0_businger] -used_in = ["SurfaceFluxes"] -value = 0.74 -type = "float" -description = "Pr_0 for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[mixing_length_tke_surf_scale] -used_in = ["ClimaAtmos"] -value = 3.75 -type = "float" -description = "Ratio of turbulence kinetic energy to squared friction velocity in the surface layer for the EDMF mixing length closure; denoted κ_*². See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1. Note: the square root, i.e. κ_*, is listed in the reference." - -[temperature_triple_point] -used_in = ["Thermodynamics"] -value = 273.16 -type = "float" - -[length_orbit_semi_major] -used_in = ["Insolation"] -value = 149597870000 -type = "float" -description = "derived: 1 * [astronomical_unit]" - -[isobaric_specific_heat_ice] -used_in = ["Thermodynamics"] -value = 2100 -type = "float" - -[mixing_length_smin_rm] -used_in = ["ClimaAtmos"] -value = 1.5 -type = "float" -description = "Upper ratio limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." - -[C_E] -used_in = ["ClimaAtmos"] -value = 0.044 -type = "float" -description = "vertical diffusion coefficient" - -[latent_heat_sublimation_at_reference] -used_in = ["Thermodynamics"] -value = 2834400 -type = "float" - -[day] -used_in = ["Insolation"] -value = 86400 -type = "float" - -[isobaric_specific_heat_vapor] -used_in = ["Thermodynamics"] -value = 1859 -type = "float" - -[EDMF_surface_area] -used_in = ["ClimaAtmos"] -value = 0.1 -type = "float" -description = "Combined updraft surface area fraction; used to compute boundary conditions for prognostic updraft variables. The surface area for each updraft is `surface_area / N_updrafts`. See Cohen et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 2." - -[c_smag] -used_in = ["ClimaAtmos"] -value = 0.2 -type = "float" -description = "Smagorinsky coefficient" - -[mixing_length_smin_ub] -used_in = ["ClimaAtmos"] -value = 0.1 -type = "float" -description = "Lower limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." - -[molar_mass_water] -used_in = ["Thermodynamics", "RRTMGP"] -value = 0.01801528 -type = "float" - -[most_stability_exponent_businger] -used_in = ["SurfaceFluxes"] -value = 4.42 -type = "float" -description = "γ for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[temperature_saturation_adjustment_min] -used_in = ["Thermodynamics"] -value = 150 -type = "float" - -[min_area_limiter_power] -used_in = ["ClimaAtmos"] -value = 10 -type = "float" -description = "Constant coefficient for the exponent in the minimum area limiter term in entrainment. Parameter not described in the literature." - -[pressure_normalmode_drag_coeff] -used_in = ["ClimaAtmos"] -value = 10.0 -type = "float" -description = "Updraft pressure drag coefficent in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." - -[held_suarez_T_equator_dry] -used_in = ["ClimaAtmos"] -value = 315 -type = "float" -description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[mixing_length_Prandtl_number_0] -used_in = ["ClimaAtmos"] -value = 0.74 -type = "float" -description = "Turbulent Prandtl number in neutral conditions; denoted Pr_{t,0}. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1 and Eq 36." - -[longitude_perihelion_at_epoch] -used_in = ["Insolation"] -value = 4.938188299449 -type = "float" -description = "(282.937348 degrees) in radians" - -[stefan_boltzmann_constant] -used_in = ["RRTMGP"] -value = 5.67e-8 -type = "float" - -[temperature_min_at_reference] -used_in = ["Thermodynamics"] -value = 220 -type = "float" - -[entropy_water_vapor] -used_in = ["Thermodynamics"] -value = 10513.6 -type = "float" - -[equator_pole_temperature_gradient_wet] -used_in = ["ClimaAtmos"] -value = 65 -type = "float" -description = "Temperature gradient between equator and pole for moist adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[held_suarez_T_equator_wet] -used_in = ["ClimaAtmos"] -value = 294 -type = "float" -description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[entropy_dry_air] -used_in = ["Thermodynamics"] -value = 6864.8 -type = "float" - -[zd_rayleigh] -used_in = ["ClimaAtmos"] -value = 15000.0 -type = "float" -description = "rayleigh sponge height" - -[coefficient_a_m_businger] -used_in = ["SurfaceFluxes"] -value = 4.7 -type = "float" -description = "a_m for Businger momentum universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[temperature_saturation_adjustment_max] -used_in = ["Thermodynamics"] -value = 1000 -type = "float" - -[mean_anomalistic_at_epoch] -used_in = ["Insolation"] -value = 6.24006014121 -type = "float" -description = "(357.52911 degrees) in radians" - -[mixing_length_diss_coeff] -used_in = ["ClimaAtmos"] -value = 0.22 -type = "float" -description = "Turbulence kinetic energy dissipation coefficient for the EDMF mixing length closure; denoted c_d. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." - -[potential_temp_vertical_gradient] -used_in = ["ClimaAtmos"] -value = 10 -type = "float" -description = "Potential temperature gradient with height. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[EDMF_max_area] -used_in = ["ClimaAtmos"] -value = 0.9 -type = "float" -description = "Maximum area fraction per updraft. Parameter not described in the literature." - -[entr_coeff] -used_in = ["ClimaAtmos"] -value = 1 -type = "float" -description = "TODO: Remove this. Constant entrainment coefficient used for testing EDMF" - -[mixing_length_Ri_crit] -used_in = ["ClimaAtmos"] -value = 0.25 -type = "float" -description = "Critical gradient Richardson number. It is an upper limit to the gradient Richardson number . See Li (2019) [https://doi.org/10.1016/j.atmosres.2018.09.015], Section 6.2 for details." - -[gas_constant] -used_in = ["Thermodynamics", "RRTMGP"] -value = 8.3144598 -type = "float" - -[orbit_obliquity_at_epoch] -used_in = ["Insolation"] -value = 0.408979125113246 -type = "float" -description = "(23.432777778 degrees) in radians" - -[drag_layer_vertical_extent] -used_in = ["ClimaAtmos"] -value = 0.7 -type = "float" -description = "Vertical extend of drag layer. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[temperature_mean_at_reference] -used_in = ["Thermodynamics"] -value = 290 -type = "float" - -[detr_inv_tau] -used_in = ["ClimaAtmos"] -value = 900 -type = "float" -description = "Detrainment timescale" - -[entr_inv_tau] -used_in = ["ClimaAtmos"] -value = 900 -type = "float" -description = "Entrainment timescale" - -[temperature_homogenous_nucleation] -used_in = ["Thermodynamics"] -value = 233 -type = "float" - -[pressure_normalmode_buoy_coeff1] -used_in = ["ClimaAtmos"] -value = 0.12 -type = "float" -description = "Pressure buoyancy coefficient (encapsulating virtual mass loading effect) in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." - -[mixing_length_static_stab_coeff] -used_in = ["ClimaAtmos"] -value = 0.4 -type = "float" -description = "Static stability coefficient for the EDMF mixing length closure; denoted c_b. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." - -[held_suarez_minimum_temperature] -used_in = ["ClimaAtmos"] -value = 200 -type = "float" -description = "Minimum temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[angular_velocity_planet_rotation] -used_in = ["ClimaAtmos"] -value = 7.2921159e-5 -type = "float" - -[min_area_limiter_scale] -used_in = ["ClimaAtmos"] -value = 0.001 -type = "float" -description = "Constant coefficient that scales the minimum area limiter term in entrainment. Parameter not described in the literature." - -[entropy_reference_temperature] -used_in = ["Thermodynamics"] -value = 298.15 -type = "float" - -[most_stability_parameter_businger] -used_in = ["SurfaceFluxes"] -value = 2.5 -type = "float" -description = "ζ_a for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[molar_mass_dry_air] -used_in = ["Thermodynamics", "RRTMGP"] -value = 0.02897 -type = "float" - -[zd_viscous] -used_in = ["ClimaAtmos"] -value = 15000.0 -type = "float" -description = "viscous sponge height" - -[planet_radius] -used_in = ["ClimaAtmos"] -value = 6371000 -type = "float" - -[adiabatic_exponent_dry_air] -used_in = ["Thermodynamics", "RRTMGP"] -value = 0.28571428571 -type = "float" -description = "(2/7)" - -[epoch_time] -used_in = ["Insolation"] -value = 211813488000 -type = "float" -description = "derived: 2451545.0 * [day]" - -[detr_buoy_coeff] -used_in = ["ClimaAtmos"] -value = 0.12 -type = "float" -description = "Coefficient for the b/w^2 term in the detrainment closure. See Tan et al. (2018) [https://doi.org/10.1002/2017MS001162], Eq 27." - -[precipitation_timescale] -used_in = ["CloudMicrophysics"] -value = 600.0 -type = "float" - -[C_H] -used_in = ["ClimaAtmos"] -value = 0.0044 -type = "float" -description = "bulk transfer coefficient" - -[EDMF_min_area] -used_in = ["ClimaAtmos"] -value = 1.0e-5 -type = "float" -description = "Minimum area fraction per updraft. Parameter not described in the literature." - -[isobaric_specific_heat_liquid] -used_in = ["Thermodynamics"] -value = 4181 -type = "float" - -[latent_heat_vaporization_at_reference] -used_in = ["Thermodynamics"] -value = 2500800 -type = "float" - -[detr_vertdiv_coeff] -used_in = ["ClimaAtmos"] -value = 1 -type = "float" -description = "Coefficient for the vertical divergence term in the detrainment closure. Parameter not described in the literature." - -[gravitational_acceleration] -used_in = ["Thermodynamics", "RRTMGP"] -value = 9.81 -type = "float" - -[equator_pole_temperature_gradient_dry] -used_in = ["ClimaAtmos"] -value = 60 -type = "float" -description = "Temperature gradient between equator and pole for dry adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[coefficient_a_h_businger] -used_in = ["SurfaceFluxes"] -value = 4.7 -type = "float" -description = "a_h for Businger heat universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[pow_icenuc] -used_in = ["Thermodynamics"] -value = 1 -type = "float" - -[max_area_limiter_scale] -used_in = ["ClimaAtmos"] -value = 0.1 -type = "float" -description = "Constant coefficient that scales the maximum area limiter term in detrainment. Parameter not described in the literature." - -[avogadro_constant] -used_in = ["RRTMGP"] -value = 6.02214076e23 -type = "float" - -[pressure_triple_point] -used_in = ["Thermodynamics"] -value = 611.657 -type = "float" - -[thermodynamics_temperature_reference] -used_in = ["Thermodynamics"] -value = 273.16 -type = "float" - -[temperature_water_freeze] -used_in = ["Thermodynamics"] -value = 273.15 -type = "float" - -[total_solar_irradiance] -used_in = ["Insolation"] -value = 1362 -type = "float" - -[detr_coeff] -used_in = ["ClimaAtmos"] -value = 0.001 -type = "float" -description = "TODO: Remove this. Constant detrainment coefficient used for testing EDMF" - -[minimum_updraft_top] -used_in = ["ClimaAtmos"] -value = 500.0 -type = "float" -description = "Minimum updraft height limiter to avoid zero division in pressure drag and entrainment/detrainment closures. Parameter not described in the literature." - -[von_karman_constant] -used_in = ["SurfaceFluxes"] -value = 0.4 -type = "float" - -[mixing_length_eddy_viscosity_coefficient] -used_in = ["ClimaAtmos"] -value = 0.14 -type = "float" -description = "Turbulence kinetic energy diffusivity coefficient for the EDMF mixing length closure; denoted c_m. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." - -[alpha_rayleigh_w] -used_in = ["ClimaAtmos"] -value = 1.0 -type = "float" -description = "rayleigh sponge vert velocity coeff" - -[mean_sea_level_pressure] -used_in = ["Thermodynamics"] -value = 101325 -type = "float" - -[max_area_limiter_power] -used_in = ["ClimaAtmos"] -value = 10 -type = "float" -description = "Constant coefficient for the exponent in the maximum area limiter term in detrainment. Parameter not described in the literature." - -[anomalistic_year_length] -used_in = ["Insolation"] -value = 31558464 -type = "float" -description = "derived: 365.25 * [day]" - -[alpha_rayleigh_uh] -used_in = ["ClimaAtmos"] -value = 0.0 -type = "float" -description = "rayleigh sponge horizontal velocity coefficient" - -[kappa_2_sponge] -used_in = ["ClimaAtmos"] -value = 1.0e6 -type = "float" -description = "viscous sponge coefficient" - -[astronomical_unit] -used_in = ["ClimaAtmos"] -value = 149597870000 -type = "float" - -[mixing_length_Prandtl_number_scale] -used_in = ["ClimaAtmos"] -value = 4.076923076923077 -type = "float" -description = "Cospectral budget factor for turbulent Prandtl number for the EDMF mixing length closure, denoted ω_pr. In Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Eq. 36, it is described as a phenomenological constant, denoted by ω₂ and set to 53/13 ≈ 4.0769..." From 8986a455d9e1316116a241351609190149a5d6cf Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 15:11:35 -0800 Subject: [PATCH 07/23] Fix output directories, store atmos+coupler in same dir --- calibration/Project.toml | 2 + calibration/generate_observations.sbatch | 18 +- config/longrun_configs/amip_n1_shortrun.yml | 4 + .../AMIP/coupler_driver_calibration.jl | 614 ------------------ 4 files changed, 13 insertions(+), 625 deletions(-) delete mode 100644 experiments/AMIP/coupler_driver_calibration.jl diff --git a/calibration/Project.toml b/calibration/Project.toml index 68735b7c5e..0b0817bd2a 100644 --- a/calibration/Project.toml +++ b/calibration/Project.toml @@ -12,6 +12,8 @@ ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" EnsembleKalmanProcesses = "aa8a2aa5-91d8-4396-bcef-d4f2ec43552d" Insolation = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SurfaceFluxes = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 69bfc51675..6be58ed598 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -5,7 +5,8 @@ #SBATCH --output="experiments/amip_coupled/truth_simulation/model_log.out" # Configure the environment -source experiments/common_env.sh +export MODULEPATH=/groups/esm/modules:$MODULEPATH +module load climacommon/2024_02_27 echo "Generating truth observations." @@ -14,23 +15,18 @@ using ClimaComms ClimaComms.init(ClimaComms.context()) import ClimaCoupler as CCo import YAML -using NetCDF +using NCDatasets import JLD2 experiment_dir = joinpath("experiments", "amip_coupled") output_dir = joinpath(experiment_dir, "truth_simulation") -config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")) -config_dict["t_end"] = "300days" -config_dict["output_dir"] = output_dir +include("coupler_driver_calibration.jl"); +solve_coupler!(cs); # Integrate the coupled model - -coupled_simulation = -CA.solve_coupler!(coupled_simulation) - -ts = ncread(joinpath(output_dir, "ts_60d_average.nc"), "ta") +ts = ncread(joinpath(output_dir, "", "ts_60d_average.nc"), "ta") include(joinpath(experiment_dir, "observation_map.jl")) (; observation, variance) = process_member_data(ta; output_variance = true) JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) -' +' \ No newline at end of file diff --git a/config/longrun_configs/amip_n1_shortrun.yml b/config/longrun_configs/amip_n1_shortrun.yml index 8494e76da7..a5b01f7c28 100644 --- a/config/longrun_configs/amip_n1_shortrun.yml +++ b/config/longrun_configs/amip_n1_shortrun.yml @@ -22,3 +22,7 @@ t_end: "1days" vert_diff: "true" z_elem: 50 z_stretch: false +diagnostics: + - short_name: [pfull, wa, va, rv] + period: 150secs + reduction: average diff --git a/experiments/AMIP/coupler_driver_calibration.jl b/experiments/AMIP/coupler_driver_calibration.jl deleted file mode 100644 index eb1c9b9f93..0000000000 --- a/experiments/AMIP/coupler_driver_calibration.jl +++ /dev/null @@ -1,614 +0,0 @@ -# When Julia 1.10+ is used interactively, stacktraces contain reduced type information to make them shorter. -# On the other hand, the full type information is printed when julia is not run interactively. -# Given that ClimaCore objects are heavily parametrized, non-abbreviated stacktraces are hard to read, -# so we force abbreviated stacktraces even in non-interactive runs. -# (See also Base.type_limited_string_from_context()) -redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) - -# Set up context for CPU single thread/CPU with MPI/GPU -using ClimaComms -comms_ctx = ClimaComms.context() -const pid, nprocs = ClimaComms.init(comms_ctx) - -# # AMIP Driver - -#= -## Overview - -AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). -It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) -are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources: -- SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html -- land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf - -For more information, see the PCMDI's specifications for [AMIP I](https://pcmdi.github.io/mips/amip/) and [AMIP II](https://pcmdi.github.io/mips/amip2/). - -This driver contains two modes. The full `AMIP` mode and a `SlabPlanet` (all surfaces are thermal slabs) mode. Since `AMIP` is not a closed system, the -`SlabPlanet` mode is useful for checking conservation properties of the coupling. - -=# - -#= -## Start Up -Before starting Julia, ensure your environment is properly set up: -```julia -module purge -module load julia/1.10.0 - -export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty -export JUlIA_MPI_BINARY="system" -export JULIA_HDF5_PATH="" -``` - -Next instantiate/build all packages listed in `Manifest.toml`: -```julia -julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()' -julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")' -``` - -The `coupler_driver.jl` is now ready to be run. You can run a SLURM job (e.g., run `sbatch sbatch_job.sh` from the terminal), or -you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run -with threading enabled: -```julia -julia --project --threads 8 -``` -=# - -#= -## Initialization -Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in `cli_options.jl` apply). -We then specify the input data file names. If these are not already downloaded, include `artifacts/download_artifacts.jl`. -=# - -import SciMLBase: ODEProblem, solve, step!, init, reinit! -using LinearAlgebra -import Test: @test -using Dates -using Plots -using Statistics: mean -import ClimaAtmos as CA -import YAML - -using ClimaCore.Utilities: half, PlusHalf -using ClimaCore: InputOutput, Fields -import ClimaCore.Spaces as Spaces - -## coupler specific imports -import ClimaCoupler -import ClimaCoupler.Regridder -import ClimaCoupler.Regridder: - update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask -import ClimaCoupler.ConservationChecker: - EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation -import ClimaCoupler.Utilities: swap_space! -import ClimaCoupler.BCReader: - bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily -import ClimaCoupler.TimeManager: - current_date, - datetime_to_strdate, - trigger_callback, - Monthly, - EveryTimestep, - HourlyCallback, - MonthlyCallback, - update_firstdayofmonth!, - trigger_callback! -import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean -import ClimaCoupler.PostProcessor: postprocess - -import ClimaCoupler.Interfacer: - CoupledSimulation, - float_type, - AtmosModelSimulation, - SurfaceModelSimulation, - SurfaceStub, - SeaIceModelSimulation, - LandModelSimulation, - OceanModelSimulation, - get_field, - update_field! -import ClimaCoupler.FluxCalculator: - PartitionedStateFluxes, - CombinedStateFluxes, - combined_turbulent_fluxes!, - MoninObukhovScheme, - partitioned_turbulent_fluxes! -import ClimaCoupler.FieldExchanger: - import_atmos_fields!, - import_combined_surface_fields!, - update_sim!, - update_model_sims!, - reinit_model_sims!, - step_model_sims! -import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! - -## helpers for component models -include("components/atmosphere/climaatmos_init.jl") -include("components/land/bucket_init.jl") -include("components/land/bucket_utils.jl") -include("components/ocean/slab_ocean_init.jl") -include("components/ocean/prescr_seaice_init.jl") -include("user_io/user_diagnostics.jl") -include("user_io/user_logging.jl") - -## coupler defaults -# get component model dictionaries -include("cli_options.jl") -parsed_args = parse_commandline(argparse_settings()) -config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") -config_dict = merge(parsed_args, config_dict) -config_dict_atmos = get_atmos_config(config_dict) - -# merge dictionaries of command line arguments, coupler dictionary and component model dictionaries -# (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) -config_dict = merge(config_dict_atmos, config_dict) - - -## read in some parsed command line arguments -mode_name = config_dict["mode_name"] -run_name = config_dict["run_name"] -energy_check = config_dict["energy_check"] -FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 -land_sim_name = "bucket" -t_end = Float64(time_to_seconds(config_dict["t_end"])) -t_start = 0.0 -tspan = (t_start, t_end) -Δt_cpl = Float64(config_dict["dt_cpl"]) -saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) -date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd") -mono_surface = config_dict["mono_surface"] -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"] -config_dict["print_config_dict"] = false - -## I/O directory setup -COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" -mkpath(COUPLER_OUTPUT_DIR) - -REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") -mkpath(REGRID_DIR) - -COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" -isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) - -config_dict["print_config_dict"] ? @info(config_dict) : nothing - -# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration -include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) -sst_data = joinpath(sst_dataset_path(), "sst.nc") -sic_data = joinpath(sic_dataset_path(), "sic.nc") -co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") -land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") - -atmos_sim = atmos_init(FT, config_dict_atmos); -thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models - -#= -We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both -the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the -atmosphere and surface are of the same horizontal resolution. -=# -## init a 2D boundary space at the surface -boundary_space = Spaces.horizontal_space(atmos_sim.domain.face_space) - -# init land-sea fraction -land_fraction = - FT.( - Regridder.land_fraction( - FT, - REGRID_DIR, - comms_ctx, - land_mask_data, - "LSMASK", - boundary_space, - mono = mono_surface, - ) - ) - -#= -### Ocean and Sea Ice -In the `AMIP` mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed -SIC and assuming a 2m thickness of the ice. - -In the `SlabPlanet` mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters. - -### Land -If evolving, use `ClimaLand.jl`'s bucket model. -=# - -@info mode_name -if mode_name == "amip" - @info "AMIP boundary conditions - do not expect energy conservation" - - ## land - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - comms_ctx, - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean - SST_info = bcfile_info_init( - FT, - REGRID_DIR, - sst_data, - "SST", - boundary_space, - comms_ctx, - interpolate_daily = true, - scaling_function = clean_sst, ## convert to Kelvin - land_fraction = land_fraction, - date0 = date0, - mono = mono_surface, - ) - - update_midmonth_data!(date0, SST_info) - SST_init = interpolate_midmonth_to_daily(date0, SST_info) - ocean_sim = SurfaceStub((; - T_sfc = SST_init, - ρ_sfc = ClimaCore.Fields.zeros(boundary_space), - z0m = FT(1e-3), - z0b = FT(1e-3), - beta = FT(1), - α = FT(0.06), - area_fraction = (FT(1) .- land_fraction), - phase = TD.Liquid(), - thermo_params = thermo_params, - )) - - ## sea ice - SIC_info = bcfile_info_init( - FT, - REGRID_DIR, - sic_data, - "SEAICE", - boundary_space, - comms_ctx, - interpolate_daily = true, - scaling_function = clean_sic, ## convert to fraction - land_fraction = land_fraction, - date0 = date0, - mono = mono_surface, - ) - update_midmonth_data!(date0, SIC_info) - SIC_init = interpolate_midmonth_to_daily(date0, SIC_info) - ice_fraction = get_ice_fraction.(SIC_init, mono_surface) - ice_sim = ice_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = ice_fraction, - thermo_params = thermo_params, - ) - - ## CO2 concentration - CO2_info = bcfile_info_init( - FT, - REGRID_DIR, - co2_data, - "co2", - boundary_space, - comms_ctx, - interpolate_daily = true, - land_fraction = ones(boundary_space), - date0 = date0, - mono = mono_surface, - ) - - update_midmonth_data!(date0, CO2_info) - CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) - update_field!(atmos_sim, Val(:co2_gm), CO2_init) - - mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) - -elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") - - land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction - land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction - - ## land - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - comms_ctx, - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean - ocean_sim = ocean_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs) - thermo_params = thermo_params, - evolving = evolving_ocean, - ) - - ## sea ice (here set to zero area coverage) - ice_sim = SurfaceStub((; - T_sfc = ClimaCore.Fields.ones(boundary_space), - ρ_sfc = ClimaCore.Fields.zeros(boundary_space), - z0m = FT(0), - z0b = FT(0), - beta = FT(1), - α = FT(1), - area_fraction = ClimaCore.Fields.zeros(boundary_space), - phase = TD.Ice(), - thermo_params = thermo_params, - )) - - mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) -end - -#= -## Coupler Initialization -The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally -save online diagnostics. These are all initialized here and saved in a global `CouplerSimulation` struct, `cs`. -=# - -## coupler exchange fields -coupler_field_names = ( - :T_S, - :z0m_S, - :z0b_S, - :ρ_sfc, - :q_sfc, - :albedo, - :beta, - :F_turb_energy, - :F_turb_moisture, - :F_turb_ρτxz, - :F_turb_ρτyz, - :F_radiative, - :P_liq, - :P_snow, - :F_radiative_TOA, - :P_net, -) -coupler_fields = - NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) - -## model simulations -model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); - -## dates -dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) - -#= -### Online Diagnostics -User can write custom diagnostics in the `user_diagnostics.jl`. -=# -monthly_3d_diags = init_diagnostics( - (:T, :u, :q_tot, :q_liq_ice), - atmos_sim.domain.center_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_3d_", -) - -monthly_2d_diags = init_diagnostics( - (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), - boundary_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_2d_", -) - -diagnostics = (monthly_3d_diags, monthly_2d_diags) - -#= -## Initialize Conservation Checks -=# -## init conservation info collector -conservation_checks = nothing -if energy_check - @assert( - mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), - "Only non-distributed slabplanet allowable for energy_check" - ) - conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) -end - -dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) -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) # for BCReader -callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) - -## coupler simulation -cs = CoupledSimulation{FT}( - comms_ctx, - dates, - boundary_space, - coupler_fields, - config_dict, - conservation_checks, - [tspan[1], tspan[2]], - atmos_sim.integrator.t, - Δt_cpl, - (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)), - model_sims, - mode_specifics, - diagnostics, - callbacks, - dir_paths, -); - -#= -## Restart component model states if specified -=# -#if restart_dir !== "unspecified" -# for sim in cs.model_sims -# if get_model_state_vector(sim) !== nothing -# @skipping restart -# restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) -# end -# end -#end - -#= -## Initialize Component Model Exchange -=# -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 - -# 1) coupler combines surface states and calculates rho_sfc using surface and atmos variables -update_surface_fractions!(cs) -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) - -# 2) each surface component model calculates its own vapor specific humidity (q_sfc) -# TODO: the q_sfc calculation follows the design of the bucket q_sfc, but it would be neater to abstract this from step! -step!(land_sim, Δt_cpl) -step!(ocean_sim, Δt_cpl) -step!(ice_sim, Δt_cpl) - -# 3) coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions -if turbulent_fluxes isa CombinedStateFluxes - # calculate fluxes using combined surface states on the atmos grid - import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc - combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts -elseif 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) - - # update atmos sfc_conditions for surface temperature - # TODO: this is hard coded and needs to be simplified (need CA modification) - new_p = get_new_cache(atmos_sim, cs.fields) - CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA) - atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions -end - -# 4) given the new sfc_conditions, atmos calls the radiative flux callback -reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux - -# 5) 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) - -#= -## Coupling Loop -=# -function solve_coupler!(cs) - @info "Starting coupling loop" - - (; model_sims, Δt_cpl, tspan) = cs - (; atmos_sim, land_sim, ocean_sim, ice_sim) = model_sims - - ## step in time - walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) - - cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated. - - ## print date on the first of month - if cs.dates.date[1] >= cs.dates.date1[1] - ClimaComms.iamroot(comms_ctx) ? @show(cs.dates.date[1]) : nothing - end - - if cs.mode.name == "amip" - - ## monthly read of boundary condition data for SST and SIC and CO2 - if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info) - update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info) - end - SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info) - update_field!(ocean_sim, Val(:surface_temperature), SST_current) - - if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info) - 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) - update_field!(ice_sim, Val(:area_fraction), SIC_current) - - if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info) - update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info) - end - CO2_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.CO2_info) - update_field!(atmos_sim, Val(:co2_gm), CO2_current) - - ## calculate and accumulate diagnostics at each timestep - ClimaComms.barrier(comms_ctx) - accumulate_diagnostics!(cs) - - ## save and reset monthly averages - save_diagnostics(cs) - - end - - ## compute global energy - !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing - - ## 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) - - ## 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, 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 - # 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) - - # 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) - CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification) - 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 - - ## callback to update the fist day of month if needed (for BCReader) - trigger_callback!(cs, cs.callbacks.update_firstdayofmonth!) - - ## callback to checkpoint model state - trigger_callback!(cs, cs.callbacks.checkpoint) - - end - @show walltime - - return cs -end From eccc89bc6fa14b73e3965d92b900be9bfa1e0575 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 15:12:06 -0800 Subject: [PATCH 08/23] new file: coupler_driver_calibration.jl --- calibration/coupler_driver_calibration.jl | 552 ++++++++++++++++++++++ 1 file changed, 552 insertions(+) create mode 100644 calibration/coupler_driver_calibration.jl diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl new file mode 100644 index 0000000000..62f1930f6a --- /dev/null +++ b/calibration/coupler_driver_calibration.jl @@ -0,0 +1,552 @@ +redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) + +using ClimaComms +comms_ctx = ClimaComms.context() +const pid, nprocs = ClimaComms.init(comms_ctx) + + +import SciMLBase: ODEProblem, solve, step!, init, reinit! +using LinearAlgebra +import Test: @test +using Dates +using Plots +using Statistics: mean +import ClimaAtmos as CA +import YAML + +using ClimaCore.Utilities: half, PlusHalf +using ClimaCore: InputOutput, Fields +import ClimaCore.Spaces as Spaces + +## coupler specific imports +import ClimaCoupler +import ClimaCoupler.Regridder +import ClimaCoupler.Regridder: + update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask +import ClimaCoupler.ConservationChecker: + EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation +import ClimaCoupler.Utilities: swap_space! +import ClimaCoupler.BCReader: + bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily +import ClimaCoupler.TimeManager: + current_date, + datetime_to_strdate, + trigger_callback, + Monthly, + EveryTimestep, + HourlyCallback, + MonthlyCallback, + update_firstdayofmonth!, + trigger_callback! +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean +import ClimaCoupler.PostProcessor: postprocess + +import ClimaCoupler.Interfacer: + CoupledSimulation, + float_type, + AtmosModelSimulation, + SurfaceModelSimulation, + SurfaceStub, + SeaIceModelSimulation, + LandModelSimulation, + OceanModelSimulation, + get_field, + update_field! +import ClimaCoupler.FluxCalculator: + PartitionedStateFluxes, + CombinedStateFluxes, + combined_turbulent_fluxes!, + MoninObukhovScheme, + partitioned_turbulent_fluxes! +import ClimaCoupler.FieldExchanger: + import_atmos_fields!, + import_combined_surface_fields!, + update_sim!, + update_model_sims!, + reinit_model_sims!, + step_model_sims! +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! + +## helpers for component models +include("../experiments/AMIP/components/atmosphere/climaatmos_init.jl") +include("../experiments/AMIP/components/land/bucket_init.jl") +include("../experiments/AMIP/components/land/bucket_utils.jl") +include("../experiments/AMIP/components/ocean/slab_ocean_init.jl") +include("../experiments/AMIP/components/ocean/prescr_seaice_init.jl") +include("../experiments/AMIP/user_io/user_diagnostics.jl") +include("../experiments/AMIP/user_io/user_logging.jl") + +## coupler defaults +# get component model dictionaries +include("../experiments/AMIP/cli_options.jl") +parsed_args = parse_commandline(argparse_settings()) +config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") +config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")); +config_dict["t_end"] = "150secs"; +config_dict["output_dir"] = output_dir; +config_dict = merge(parsed_args, config_dict) +config_dict_atmos = get_atmos_config(config_dict) + +# merge dictionaries of command line arguments, coupler dictionary and component model dictionaries +# (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) +config_dict = merge(config_dict_atmos, config_dict) + + +## read in some parsed command line arguments +mode_name = config_dict["mode_name"] +run_name = config_dict["run_name"] +energy_check = config_dict["energy_check"] +FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 +land_sim_name = "bucket" +t_end = Float64(time_to_seconds(config_dict["t_end"])) +t_start = 0.0 +tspan = (t_start, t_end) +Δt_cpl = Float64(config_dict["dt_cpl"]) +saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) +date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd") +mono_surface = config_dict["mono_surface"] +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"] +config_dict["print_config_dict"] = false + +## I/O directory setup +COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" +mkpath(COUPLER_OUTPUT_DIR) + +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") +mkpath(REGRID_DIR) + +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) + +config_dict["print_config_dict"] ? @info(config_dict) : nothing + +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) +sst_data = joinpath(sst_dataset_path(), "sst.nc") +sic_data = joinpath(sic_dataset_path(), "sic.nc") +co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") + +config_dict_atmos["output_dir"] = COUPLER_OUTPUT_DIR +atmos_sim = atmos_init(FT, config_dict_atmos); +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models + +#= +We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both +the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the +atmosphere and surface are of the same horizontal resolution. +=# +## init a 2D boundary space at the surface +boundary_space = Spaces.horizontal_space(atmos_sim.domain.face_space) + +# init land-sea fraction +land_fraction = + FT.( + Regridder.land_fraction( + FT, + REGRID_DIR, + comms_ctx, + land_mask_data, + "LSMASK", + boundary_space, + mono = mono_surface, + ) + ) + +@info mode_name +if mode_name == "amip" + @info "AMIP boundary conditions - do not expect energy conservation" + + ## land + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + comms_ctx, + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) + + ## ocean + SST_info = bcfile_info_init( + FT, + REGRID_DIR, + sst_data, + "SST", + boundary_space, + comms_ctx, + interpolate_daily = true, + scaling_function = clean_sst, ## convert to Kelvin + land_fraction = land_fraction, + date0 = date0, + mono = mono_surface, + ) + + update_midmonth_data!(date0, SST_info) + SST_init = interpolate_midmonth_to_daily(date0, SST_info) + ocean_sim = SurfaceStub((; + T_sfc = SST_init, + ρ_sfc = ClimaCore.Fields.zeros(boundary_space), + z0m = FT(1e-3), + z0b = FT(1e-3), + beta = FT(1), + α = FT(0.06), + area_fraction = (FT(1) .- land_fraction), + phase = TD.Liquid(), + thermo_params = thermo_params, + )) + + ## sea ice + SIC_info = bcfile_info_init( + FT, + REGRID_DIR, + sic_data, + "SEAICE", + boundary_space, + comms_ctx, + interpolate_daily = true, + scaling_function = clean_sic, ## convert to fraction + land_fraction = land_fraction, + date0 = date0, + mono = mono_surface, + ) + update_midmonth_data!(date0, SIC_info) + SIC_init = interpolate_midmonth_to_daily(date0, SIC_info) + ice_fraction = get_ice_fraction.(SIC_init, mono_surface) + ice_sim = ice_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = ice_fraction, + thermo_params = thermo_params, + ) + + ## CO2 concentration + CO2_info = bcfile_info_init( + FT, + REGRID_DIR, + co2_data, + "co2", + boundary_space, + comms_ctx, + interpolate_daily = true, + land_fraction = ones(boundary_space), + date0 = date0, + mono = mono_surface, + ) + + update_midmonth_data!(date0, CO2_info) + CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) + update_field!(atmos_sim, Val(:co2_gm), CO2_init) + + mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) + +elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") + + land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction + land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction + + ## land + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + comms_ctx, + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) + + ## ocean + ocean_sim = ocean_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs) + thermo_params = thermo_params, + evolving = evolving_ocean, + ) + + ## sea ice (here set to zero area coverage) + ice_sim = SurfaceStub((; + T_sfc = ClimaCore.Fields.ones(boundary_space), + ρ_sfc = ClimaCore.Fields.zeros(boundary_space), + z0m = FT(0), + z0b = FT(0), + beta = FT(1), + α = FT(1), + area_fraction = ClimaCore.Fields.zeros(boundary_space), + phase = TD.Ice(), + thermo_params = thermo_params, + )) + + mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) +end + +#= +## Coupler Initialization +The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally +save online diagnostics. These are all initialized here and saved in a global `CouplerSimulation` struct, `cs`. +=# + +## coupler exchange fields +coupler_field_names = ( + :T_S, + :z0m_S, + :z0b_S, + :ρ_sfc, + :q_sfc, + :albedo, + :beta, + :F_turb_energy, + :F_turb_moisture, + :F_turb_ρτxz, + :F_turb_ρτyz, + :F_radiative, + :P_liq, + :P_snow, + :F_radiative_TOA, + :P_net, +) +coupler_fields = + NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) + +## model simulations +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); + +## dates +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) + +#= +### Online Diagnostics +User can write custom diagnostics in the `user_diagnostics.jl`. +=# +monthly_3d_diags = init_diagnostics( + (:T, :u, :q_tot, :q_liq_ice), + atmos_sim.domain.center_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_3d_", +) + +monthly_2d_diags = init_diagnostics( + (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), + boundary_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_2d_", +) + +diagnostics = (monthly_3d_diags, monthly_2d_diags) + +#= +## Initialize Conservation Checks +=# +## init conservation info collector +conservation_checks = nothing +if energy_check + @assert( + mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), + "Only non-distributed slabplanet allowable for energy_check" + ) + conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) +end + +dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) +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) # for BCReader +callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) + +## coupler simulation +cs = CoupledSimulation{FT}( + comms_ctx, + dates, + boundary_space, + coupler_fields, + config_dict, + conservation_checks, + [tspan[1], tspan[2]], + atmos_sim.integrator.t, + Δt_cpl, + (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)), + model_sims, + mode_specifics, + diagnostics, + callbacks, + dir_paths, +); + +#= +## Restart component model states if specified +=# +#if restart_dir !== "unspecified" +# for sim in cs.model_sims +# if get_model_state_vector(sim) !== nothing +# @skipping restart +# restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) +# end +# end +#end + +#= +## Initialize Component Model Exchange +=# +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 + +# 1) coupler combines surface states and calculates rho_sfc using surface and atmos variables +update_surface_fractions!(cs) +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) + +# 2) each surface component model calculates its own vapor specific humidity (q_sfc) +# TODO: the q_sfc calculation follows the design of the bucket q_sfc, but it would be neater to abstract this from step! +step!(land_sim, Δt_cpl) +step!(ocean_sim, Δt_cpl) +step!(ice_sim, Δt_cpl) + +# 3) coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions +if turbulent_fluxes isa CombinedStateFluxes + # calculate fluxes using combined surface states on the atmos grid + import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc + combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts +elseif 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) + + # update atmos sfc_conditions for surface temperature + # TODO: this is hard coded and needs to be simplified (need CA modification) + new_p = get_new_cache(atmos_sim, cs.fields) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA) + atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions +end + +# 4) given the new sfc_conditions, atmos calls the radiative flux callback +reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux + +# 5) 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) + +#= +## Coupling Loop +=# +function solve_coupler!(cs::ClimaCoupler.Interfacer.CoupledSimulation) + @info "Starting coupling loop" + + (; model_sims, Δt_cpl, tspan) = cs + (; atmos_sim, land_sim, ocean_sim, ice_sim) = model_sims + + ## step in time + walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) + + cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated. + + ## print date on the first of month + if cs.dates.date[1] >= cs.dates.date1[1] + ClimaComms.iamroot(comms_ctx) ? @show(cs.dates.date[1]) : nothing + end + + if cs.mode.name == "amip" + + ## monthly read of boundary condition data for SST and SIC and CO2 + if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info) + update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info) + end + SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info) + update_field!(ocean_sim, Val(:surface_temperature), SST_current) + + if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info) + 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) + update_field!(ice_sim, Val(:area_fraction), SIC_current) + + if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info) + update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info) + end + CO2_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.CO2_info) + update_field!(atmos_sim, Val(:co2_gm), CO2_current) + + ## calculate and accumulate diagnostics at each timestep + ClimaComms.barrier(comms_ctx) + accumulate_diagnostics!(cs) + + ## save and reset monthly averages + save_diagnostics(cs) + + end + + ## compute global energy + !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing + + ## 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) + + ## 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, 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 + # 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) + + # 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) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification) + 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 + + ## callback to update the fist day of month if needed (for BCReader) + trigger_callback!(cs, cs.callbacks.update_firstdayofmonth!) + + ## callback to checkpoint model state + trigger_callback!(cs, cs.callbacks.checkpoint) + + end + @show walltime + + return cs +end From 4e049b3fd000e571f4dbfc08e4ff35a91fc43b38 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 15:13:06 -0800 Subject: [PATCH 09/23] modified: generate_observations.sbatch --- calibration/generate_observations.sbatch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 6be58ed598..00af05b297 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -24,9 +24,9 @@ output_dir = joinpath(experiment_dir, "truth_simulation") include("coupler_driver_calibration.jl"); solve_coupler!(cs); # Integrate the coupled model -ts = ncread(joinpath(output_dir, "", "ts_60d_average.nc"), "ta") +ta = ncread(joinpath(output_dir, "", "ta_150s_average.nc"), "ta") include(joinpath(experiment_dir, "observation_map.jl")) (; observation, variance) = process_member_data(ta; output_variance = true) JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) -' \ No newline at end of file +' From 1b79c172f1f8c2b0cdbb8d57d1c82a3c455781c2 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 17:42:22 -0800 Subject: [PATCH 10/23] new file: coupler_component_init.jl modified: coupler_driver_calibration.jl new file: coupler_driver_init.jl new file: coupler_parse_args.jl modified: ../src/Regridder.jl --- calibration/coupler_component_init.jl | 257 +++++++++++++++ calibration/coupler_driver_calibration.jl | 385 +--------------------- calibration/coupler_driver_init.jl | 77 +++++ calibration/coupler_parse_args.jl | 47 +++ src/Regridder.jl | 2 +- 5 files changed, 385 insertions(+), 383 deletions(-) create mode 100644 calibration/coupler_component_init.jl create mode 100644 calibration/coupler_driver_init.jl create mode 100644 calibration/coupler_parse_args.jl diff --git a/calibration/coupler_component_init.jl b/calibration/coupler_component_init.jl new file mode 100644 index 0000000000..c90e8625a7 --- /dev/null +++ b/calibration/coupler_component_init.jl @@ -0,0 +1,257 @@ + +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) +sst_data = joinpath(sst_dataset_path(), "sst.nc") +sic_data = joinpath(sic_dataset_path(), "sic.nc") +co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") + +atmos_sim = atmos_init(FT, config_dict_atmos); +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models + +#= +We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both +the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the +atmosphere and surface are of the same horizontal resolution. +=# +## init a 2D boundary space at the surface +boundary_space = Spaces.horizontal_space(atmos_sim.domain.face_space) + +# init land-sea fraction +land_fraction = + FT.( + Regridder.land_fraction( + FT, + REGRID_DIR, + comms_ctx, + land_mask_data, + "LSMASK", + boundary_space, + mono = mono_surface, + ) + ) + +@info mode_name +if mode_name == "amip" + @info "AMIP boundary conditions - do not expect energy conservation" + + ## land + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + comms_ctx, + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) + + ## ocean + SST_info = bcfile_info_init( + FT, + REGRID_DIR, + sst_data, + "SST", + boundary_space, + comms_ctx, + interpolate_daily = true, + scaling_function = clean_sst, ## convert to Kelvin + land_fraction = land_fraction, + date0 = date0, + mono = mono_surface, + ) + + update_midmonth_data!(date0, SST_info) + SST_init = interpolate_midmonth_to_daily(date0, SST_info) + ocean_sim = SurfaceStub((; + T_sfc = SST_init, + ρ_sfc = ClimaCore.Fields.zeros(boundary_space), + z0m = FT(1e-3), + z0b = FT(1e-3), + beta = FT(1), + α = FT(0.06), + area_fraction = (FT(1) .- land_fraction), + phase = TD.Liquid(), + thermo_params = thermo_params, + )) + + ## sea ice + SIC_info = bcfile_info_init( + FT, + REGRID_DIR, + sic_data, + "SEAICE", + boundary_space, + comms_ctx, + interpolate_daily = true, + scaling_function = clean_sic, ## convert to fraction + land_fraction = land_fraction, + date0 = date0, + mono = mono_surface, + ) + update_midmonth_data!(date0, SIC_info) + SIC_init = interpolate_midmonth_to_daily(date0, SIC_info) + ice_fraction = get_ice_fraction.(SIC_init, mono_surface) + ice_sim = ice_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = ice_fraction, + thermo_params = thermo_params, + ) + + ## CO2 concentration + CO2_info = bcfile_info_init( + FT, + REGRID_DIR, + co2_data, + "co2", + boundary_space, + comms_ctx, + interpolate_daily = true, + land_fraction = ones(boundary_space), + date0 = date0, + mono = mono_surface, + ) + + update_midmonth_data!(date0, CO2_info) + CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) + update_field!(atmos_sim, Val(:co2_gm), CO2_init) + + mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) + +elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") + + land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction + land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction + + ## land + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + comms_ctx, + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) + + ## ocean + ocean_sim = ocean_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs) + thermo_params = thermo_params, + evolving = evolving_ocean, + ) + + ## sea ice (here set to zero area coverage) + ice_sim = SurfaceStub((; + T_sfc = ClimaCore.Fields.ones(boundary_space), + ρ_sfc = ClimaCore.Fields.zeros(boundary_space), + z0m = FT(0), + z0b = FT(0), + beta = FT(1), + α = FT(1), + area_fraction = ClimaCore.Fields.zeros(boundary_space), + phase = TD.Ice(), + thermo_params = thermo_params, + )) + + mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) +end + +#= +## Coupler Initialization +The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally +save online diagnostics. These are all initialized here and saved in a global `CouplerSimulation` struct, `cs`. +=# + +## coupler exchange fields +coupler_field_names = ( + :T_S, + :z0m_S, + :z0b_S, + :ρ_sfc, + :q_sfc, + :albedo, + :beta, + :F_turb_energy, + :F_turb_moisture, + :F_turb_ρτxz, + :F_turb_ρτyz, + :F_radiative, + :P_liq, + :P_snow, + :F_radiative_TOA, + :P_net, +) +coupler_fields = + NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) + +## model simulations +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); + +## dates +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) + +#= +### Online Diagnostics +User can write custom diagnostics in the `user_diagnostics.jl`. +=# +monthly_3d_diags = init_diagnostics( + (:T, :u, :q_tot, :q_liq_ice), + atmos_sim.domain.center_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_3d_", +) + +monthly_2d_diags = init_diagnostics( + (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), + boundary_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_2d_", +) + +diagnostics = (monthly_3d_diags, monthly_2d_diags) + +#= +## Initialize Conservation Checks +=# +## init conservation info collector +conservation_checks = nothing +if energy_check + @assert( + mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), + "Only non-distributed slabplanet allowable for energy_check" + ) + conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) +end + +dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) +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) # for BCReader +callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl index 62f1930f6a..ea7149398e 100644 --- a/calibration/coupler_driver_calibration.jl +++ b/calibration/coupler_driver_calibration.jl @@ -1,385 +1,6 @@ -redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) - -using ClimaComms -comms_ctx = ClimaComms.context() -const pid, nprocs = ClimaComms.init(comms_ctx) - - -import SciMLBase: ODEProblem, solve, step!, init, reinit! -using LinearAlgebra -import Test: @test -using Dates -using Plots -using Statistics: mean -import ClimaAtmos as CA -import YAML - -using ClimaCore.Utilities: half, PlusHalf -using ClimaCore: InputOutput, Fields -import ClimaCore.Spaces as Spaces - -## coupler specific imports -import ClimaCoupler -import ClimaCoupler.Regridder -import ClimaCoupler.Regridder: - update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask -import ClimaCoupler.ConservationChecker: - EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation -import ClimaCoupler.Utilities: swap_space! -import ClimaCoupler.BCReader: - bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily -import ClimaCoupler.TimeManager: - current_date, - datetime_to_strdate, - trigger_callback, - Monthly, - EveryTimestep, - HourlyCallback, - MonthlyCallback, - update_firstdayofmonth!, - trigger_callback! -import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean -import ClimaCoupler.PostProcessor: postprocess - -import ClimaCoupler.Interfacer: - CoupledSimulation, - float_type, - AtmosModelSimulation, - SurfaceModelSimulation, - SurfaceStub, - SeaIceModelSimulation, - LandModelSimulation, - OceanModelSimulation, - get_field, - update_field! -import ClimaCoupler.FluxCalculator: - PartitionedStateFluxes, - CombinedStateFluxes, - combined_turbulent_fluxes!, - MoninObukhovScheme, - partitioned_turbulent_fluxes! -import ClimaCoupler.FieldExchanger: - import_atmos_fields!, - import_combined_surface_fields!, - update_sim!, - update_model_sims!, - reinit_model_sims!, - step_model_sims! -import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! - -## helpers for component models -include("../experiments/AMIP/components/atmosphere/climaatmos_init.jl") -include("../experiments/AMIP/components/land/bucket_init.jl") -include("../experiments/AMIP/components/land/bucket_utils.jl") -include("../experiments/AMIP/components/ocean/slab_ocean_init.jl") -include("../experiments/AMIP/components/ocean/prescr_seaice_init.jl") -include("../experiments/AMIP/user_io/user_diagnostics.jl") -include("../experiments/AMIP/user_io/user_logging.jl") - -## coupler defaults -# get component model dictionaries -include("../experiments/AMIP/cli_options.jl") -parsed_args = parse_commandline(argparse_settings()) -config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") -config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")); -config_dict["t_end"] = "150secs"; -config_dict["output_dir"] = output_dir; -config_dict = merge(parsed_args, config_dict) -config_dict_atmos = get_atmos_config(config_dict) - -# merge dictionaries of command line arguments, coupler dictionary and component model dictionaries -# (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) -config_dict = merge(config_dict_atmos, config_dict) - - -## read in some parsed command line arguments -mode_name = config_dict["mode_name"] -run_name = config_dict["run_name"] -energy_check = config_dict["energy_check"] -FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 -land_sim_name = "bucket" -t_end = Float64(time_to_seconds(config_dict["t_end"])) -t_start = 0.0 -tspan = (t_start, t_end) -Δt_cpl = Float64(config_dict["dt_cpl"]) -saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) -date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd") -mono_surface = config_dict["mono_surface"] -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"] -config_dict["print_config_dict"] = false - -## I/O directory setup -COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" -mkpath(COUPLER_OUTPUT_DIR) - -REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") -mkpath(REGRID_DIR) - -COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" -isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) - -config_dict["print_config_dict"] ? @info(config_dict) : nothing - -# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration -include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) -sst_data = joinpath(sst_dataset_path(), "sst.nc") -sic_data = joinpath(sic_dataset_path(), "sic.nc") -co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") -land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") - -config_dict_atmos["output_dir"] = COUPLER_OUTPUT_DIR -atmos_sim = atmos_init(FT, config_dict_atmos); -thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models - -#= -We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both -the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the -atmosphere and surface are of the same horizontal resolution. -=# -## init a 2D boundary space at the surface -boundary_space = Spaces.horizontal_space(atmos_sim.domain.face_space) - -# init land-sea fraction -land_fraction = - FT.( - Regridder.land_fraction( - FT, - REGRID_DIR, - comms_ctx, - land_mask_data, - "LSMASK", - boundary_space, - mono = mono_surface, - ) - ) - -@info mode_name -if mode_name == "amip" - @info "AMIP boundary conditions - do not expect energy conservation" - - ## land - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - comms_ctx, - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean - SST_info = bcfile_info_init( - FT, - REGRID_DIR, - sst_data, - "SST", - boundary_space, - comms_ctx, - interpolate_daily = true, - scaling_function = clean_sst, ## convert to Kelvin - land_fraction = land_fraction, - date0 = date0, - mono = mono_surface, - ) - - update_midmonth_data!(date0, SST_info) - SST_init = interpolate_midmonth_to_daily(date0, SST_info) - ocean_sim = SurfaceStub((; - T_sfc = SST_init, - ρ_sfc = ClimaCore.Fields.zeros(boundary_space), - z0m = FT(1e-3), - z0b = FT(1e-3), - beta = FT(1), - α = FT(0.06), - area_fraction = (FT(1) .- land_fraction), - phase = TD.Liquid(), - thermo_params = thermo_params, - )) - - ## sea ice - SIC_info = bcfile_info_init( - FT, - REGRID_DIR, - sic_data, - "SEAICE", - boundary_space, - comms_ctx, - interpolate_daily = true, - scaling_function = clean_sic, ## convert to fraction - land_fraction = land_fraction, - date0 = date0, - mono = mono_surface, - ) - update_midmonth_data!(date0, SIC_info) - SIC_init = interpolate_midmonth_to_daily(date0, SIC_info) - ice_fraction = get_ice_fraction.(SIC_init, mono_surface) - ice_sim = ice_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = ice_fraction, - thermo_params = thermo_params, - ) - - ## CO2 concentration - CO2_info = bcfile_info_init( - FT, - REGRID_DIR, - co2_data, - "co2", - boundary_space, - comms_ctx, - interpolate_daily = true, - land_fraction = ones(boundary_space), - date0 = date0, - mono = mono_surface, - ) - - update_midmonth_data!(date0, CO2_info) - CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) - update_field!(atmos_sim, Val(:co2_gm), CO2_init) - - mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) - -elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") - - land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction - land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction - - ## land - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - comms_ctx, - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean - ocean_sim = ocean_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs) - thermo_params = thermo_params, - evolving = evolving_ocean, - ) - - ## sea ice (here set to zero area coverage) - ice_sim = SurfaceStub((; - T_sfc = ClimaCore.Fields.ones(boundary_space), - ρ_sfc = ClimaCore.Fields.zeros(boundary_space), - z0m = FT(0), - z0b = FT(0), - beta = FT(1), - α = FT(1), - area_fraction = ClimaCore.Fields.zeros(boundary_space), - phase = TD.Ice(), - thermo_params = thermo_params, - )) - - mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) -end - -#= -## Coupler Initialization -The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally -save online diagnostics. These are all initialized here and saved in a global `CouplerSimulation` struct, `cs`. -=# - -## coupler exchange fields -coupler_field_names = ( - :T_S, - :z0m_S, - :z0b_S, - :ρ_sfc, - :q_sfc, - :albedo, - :beta, - :F_turb_energy, - :F_turb_moisture, - :F_turb_ρτxz, - :F_turb_ρτyz, - :F_radiative, - :P_liq, - :P_snow, - :F_radiative_TOA, - :P_net, -) -coupler_fields = - NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) - -## model simulations -model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); - -## dates -dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) - -#= -### Online Diagnostics -User can write custom diagnostics in the `user_diagnostics.jl`. -=# -monthly_3d_diags = init_diagnostics( - (:T, :u, :q_tot, :q_liq_ice), - atmos_sim.domain.center_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_3d_", -) - -monthly_2d_diags = init_diagnostics( - (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), - boundary_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_2d_", -) - -diagnostics = (monthly_3d_diags, monthly_2d_diags) - -#= -## Initialize Conservation Checks -=# -## init conservation info collector -conservation_checks = nothing -if energy_check - @assert( - mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), - "Only non-distributed slabplanet allowable for energy_check" - ) - conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) -end - -dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) -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) # for BCReader -callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) +include("coupler_driver_init.jl") +include("coupler_parse_args.jl") +include("coupler_component_init.jl") ## coupler simulation cs = CoupledSimulation{FT}( diff --git a/calibration/coupler_driver_init.jl b/calibration/coupler_driver_init.jl new file mode 100644 index 0000000000..806a83ae1c --- /dev/null +++ b/calibration/coupler_driver_init.jl @@ -0,0 +1,77 @@ +redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) + +using ClimaComms +comms_ctx = ClimaComms.context() +const pid, nprocs = ClimaComms.init(comms_ctx) + + +import SciMLBase: ODEProblem, solve, step!, init, reinit! +using LinearAlgebra +import Test: @test +using Dates +using Plots +using Statistics: mean +import ClimaAtmos as CA +import YAML + +using ClimaCore.Utilities: half, PlusHalf +using ClimaCore: InputOutput, Fields +import ClimaCore.Spaces as Spaces + +## coupler specific imports +import ClimaCoupler +import ClimaCoupler.Regridder +import ClimaCoupler.Regridder: + update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask +import ClimaCoupler.ConservationChecker: + EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation +import ClimaCoupler.Utilities: swap_space! +import ClimaCoupler.BCReader: + bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily +import ClimaCoupler.TimeManager: + current_date, + datetime_to_strdate, + trigger_callback, + Monthly, + EveryTimestep, + HourlyCallback, + MonthlyCallback, + update_firstdayofmonth!, + trigger_callback! +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean +import ClimaCoupler.PostProcessor: postprocess + +import ClimaCoupler.Interfacer: + CoupledSimulation, + float_type, + AtmosModelSimulation, + SurfaceModelSimulation, + SurfaceStub, + SeaIceModelSimulation, + LandModelSimulation, + OceanModelSimulation, + get_field, + update_field! +import ClimaCoupler.FluxCalculator: + PartitionedStateFluxes, + CombinedStateFluxes, + combined_turbulent_fluxes!, + MoninObukhovScheme, + partitioned_turbulent_fluxes! +import ClimaCoupler.FieldExchanger: + import_atmos_fields!, + import_combined_surface_fields!, + update_sim!, + update_model_sims!, + reinit_model_sims!, + step_model_sims! +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! + +## helpers for component models +include("../experiments/AMIP/components/atmosphere/climaatmos_init.jl") +include("../experiments/AMIP/components/land/bucket_init.jl") +include("../experiments/AMIP/components/land/bucket_utils.jl") +include("../experiments/AMIP/components/ocean/slab_ocean_init.jl") +include("../experiments/AMIP/components/ocean/prescr_seaice_init.jl") +include("../experiments/AMIP/user_io/user_diagnostics.jl") +include("../experiments/AMIP/user_io/user_logging.jl") diff --git a/calibration/coupler_parse_args.jl b/calibration/coupler_parse_args.jl new file mode 100644 index 0000000000..1aa6121891 --- /dev/null +++ b/calibration/coupler_parse_args.jl @@ -0,0 +1,47 @@ +## coupler defaults +# get component model dictionaries +include("../experiments/AMIP/cli_options.jl") +parsed_args = parse_commandline(argparse_settings()) +config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") +config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")); +config_dict["t_end"] = "150secs"; +config_dict["output_dir"] = output_dir; +config_dict = merge(parsed_args, config_dict) +config_dict_atmos = get_atmos_config(config_dict) + +# merge dictionaries of command line arguments, coupler dictionary and component model dictionaries +# (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) +config_dict = merge(config_dict_atmos, config_dict) + + +## read in some parsed command line arguments +mode_name = config_dict["mode_name"] +run_name = config_dict["run_name"] +energy_check = config_dict["energy_check"] +FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 +land_sim_name = "bucket" +t_end = Float64(time_to_seconds(config_dict["t_end"])) +t_start = 0.0 +tspan = (t_start, t_end) +Δt_cpl = Float64(config_dict["dt_cpl"]) +saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) +date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd") +mono_surface = config_dict["mono_surface"] +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"] +config_dict["print_config_dict"] = false + +## I/O directory setup +COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" +mkpath(COUPLER_OUTPUT_DIR) + +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") +mkpath(REGRID_DIR) + +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) + +config_dict["print_config_dict"] ? @info(config_dict) : nothing +config_dict_atmos["output_dir"] = COUPLER_OUTPUT_DIR diff --git a/src/Regridder.jl b/src/Regridder.jl index ce166a9323..3fd81c2918 100644 --- a/src/Regridder.jl +++ b/src/Regridder.jl @@ -207,7 +207,7 @@ function hdwrite_regridfile_rll_to_cgll( # read the remapped file with sparse matrices offline_outvector, coords = NCDataset(datafile_cgll, "r") do ds_wt ( - offline_outvector = Array(ds_wt[varname])[:, :, :], # ncol, z, times + offline_outvector = nomissing(Array(ds_wt[varname])[:, :]), # ncol, times coords = get_coords(ds_wt, space), ) end From 1018f51b4d3db0d4f444d1887d497553cca2b200 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 17:58:28 -0800 Subject: [PATCH 11/23] modified: coupler_driver_calibration.jl modified: coupler_parse_args.jl new file: experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml new file: experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml modified: generate_observations.sbatch --- calibration/coupler_driver_calibration.jl | 19 +- calibration/coupler_parse_args.jl | 1 - .../target_amip_n1_shortrun.yml | 106 ++++ .../target_amip_n1_shortrun_parameters.toml | 487 ++++++++++++++++++ calibration/generate_observations.sbatch | 5 +- 5 files changed, 598 insertions(+), 20 deletions(-) create mode 100644 calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml create mode 100644 calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl index ea7149398e..cf423ead4a 100644 --- a/calibration/coupler_driver_calibration.jl +++ b/calibration/coupler_driver_calibration.jl @@ -1,6 +1,4 @@ -include("coupler_driver_init.jl") -include("coupler_parse_args.jl") -include("coupler_component_init.jl") + ## coupler simulation cs = CoupledSimulation{FT}( @@ -21,21 +19,6 @@ cs = CoupledSimulation{FT}( dir_paths, ); -#= -## Restart component model states if specified -=# -#if restart_dir !== "unspecified" -# for sim in cs.model_sims -# if get_model_state_vector(sim) !== nothing -# @skipping restart -# restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) -# end -# end -#end - -#= -## Initialize Component Model Exchange -=# turbulent_fluxes = nothing if config_dict["turb_flux_partition"] == "PartitionedStateFluxes" turbulent_fluxes = PartitionedStateFluxes() diff --git a/calibration/coupler_parse_args.jl b/calibration/coupler_parse_args.jl index 1aa6121891..de943a63da 100644 --- a/calibration/coupler_parse_args.jl +++ b/calibration/coupler_parse_args.jl @@ -34,7 +34,6 @@ evolving_ocean = config_dict["evolving_ocean"] config_dict["print_config_dict"] = false ## I/O directory setup -COUPLER_OUTPUT_DIR = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/output/amip/" mkpath(COUPLER_OUTPUT_DIR) REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") diff --git a/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml b/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml new file mode 100644 index 0000000000..ed7aa7ffb0 --- /dev/null +++ b/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml @@ -0,0 +1,106 @@ +surface_thermo_state_type: "GCMSurfaceThermoState" +topo_smoothing: false +warn_allocations_diagnostics: false +hyperdiff: "ClimaHyperdiffusion" +dt: "150secs" +output_dir: "experiments/amip_coupled/truth_simulation" +prognostic_tke: false +override_τ_precip: true +use_newton_rtol: false +netcdf_output_at_levels: false +device: "auto" +t_end: "150secs" +dz_top: 3000.0 +y_elem: 6 +z_stretch: false +bubble: true +ode_algo: "ARS343" +max_newton_iters_ode: 1 +start_date: "19790101" +check_precipitation: false +forcing: ~ +edmfx_nh_pressure: false +scalar_hyperdiffusion_coefficient: 1.5 +prognostic_surface: "false" +test_dycore_consistency: false +moist: "equil" +perf_mode: "PerfStandard" +edmf_coriolis: ~ +rad: "gray" +rayleigh_sponge: true +initial_condition: "DecayingProfile" +cloud_model: "quadrature" +krylov_rtol: 0.1 +divergence_damping_factor: 1.0 +edmfx_entr_model: ~ +eisenstat_walker_forcing_alpha: 2.0 +dt_cloud_fraction: "3hours" +smoothing_order: 3 +idealized_h2o: false +surface_setup: "PrescribedSurface" +perturb_initstate: true +jvp_step_adjustment: 1.0 +discrete_hydrostatic_balance: false +netcdf_interpolate_z_over_msl: false +log_progress: true +dz_bottom: 30.0 +h_elem: 16 +dt_save_state_to_disk: "Inf" +netcdf_interpolation_num_points: ~ +advection_test: false +z_max: 30000.0 +apply_limiter: false +topography: "NoWarp" +reference_job_id: ~ +precip_model: "0M" +perf_summary: false +vorticity_hyperdiffusion_coefficient: 1.5 +viscous_sponge: false +surface_temperature: "ZonallySymmetric" +diagnostics: + - short_name: + - "pfull" + - "wa" + - "va" + - "rv" + period: "150secs" + reduction: "average" +job_id: "target_amip_n1_shortrun" +orographic_gravity_wave: ~ +dt_rad: "1hours" +approximate_linear_solve_iters: 1 +edmfx_upwinding: "none" +tracer_upwinding: "none" +nh_poly: 3 +edmfx_sgs_diffusive_flux: false +y_max: 300000.0 +non_orographic_gravity_wave: false +use_reference_state: true +config: "sphere" +energy_upwinding: "none" +FLOAT_TYPE: "Float64" +updraft_number: 1 +split_ode: true +regression_test: false +check_conservation: false +ls_adv: ~ +output_default_diagnostics: true +implicit_diffusion: false +x_max: 300000.0 +edmfx_sgs_mass_flux: false +z_elem: 50 +newton_rtol: 1.0e-5 +fps: 5 +edmfx_sgsflux_upwinding: "none" +turbconv: ~ +x_elem: 6 +idealized_clouds: false +vert_diff: "true" +use_krylov_method: false +subsidence: ~ +use_dynamic_krylov_rtol: false +idealized_insolation: true +toml: + - "/Users/akshaysridhar/.julia/packages/ClimaCoupler/utcpx/toml/default_coarse.toml" +edmfx_detr_model: ~ +dt_save_to_sol: "1days" diff --git a/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml b/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml new file mode 100644 index 0000000000..1e2ece0d34 --- /dev/null +++ b/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml @@ -0,0 +1,487 @@ +[f_plane_coriolis_frequency] +used_in = ["ClimaAtmos"] +value = 0 +type = "float" + +[orbit_eccentricity_at_epoch] +used_in = ["Insolation"] +value = 0.016708634 +type = "float" + +[potential_temperature_reference_pressure] +used_in = ["Thermodynamics"] +value = 100000 +type = "float" +description = "Reference pressure used in potential temperature definition" + +[prandtl_number_0_businger] +used_in = ["SurfaceFluxes"] +value = 0.74 +type = "float" +description = "Pr_0 for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[mixing_length_tke_surf_scale] +used_in = ["ClimaAtmos"] +value = 3.75 +type = "float" +description = "Ratio of turbulence kinetic energy to squared friction velocity in the surface layer for the EDMF mixing length closure; denoted κ_*². See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1. Note: the square root, i.e. κ_*, is listed in the reference." + +[temperature_triple_point] +used_in = ["Thermodynamics"] +value = 273.16 +type = "float" + +[length_orbit_semi_major] +used_in = ["Insolation"] +value = 149597870000 +type = "float" +description = "derived: 1 * [astronomical_unit]" + +[isobaric_specific_heat_ice] +used_in = ["Thermodynamics"] +value = 2100 +type = "float" + +[mixing_length_smin_rm] +used_in = ["ClimaAtmos"] +value = 1.5 +type = "float" +description = "Upper ratio limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." + +[C_E] +used_in = ["ClimaAtmos"] +value = 0.044 +type = "float" +description = "vertical diffusion coefficient" + +[latent_heat_sublimation_at_reference] +used_in = ["Thermodynamics"] +value = 2834400 +type = "float" + +[day] +used_in = ["Insolation"] +value = 86400 +type = "float" + +[isobaric_specific_heat_vapor] +used_in = ["Thermodynamics"] +value = 1859 +type = "float" + +[EDMF_surface_area] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Combined updraft surface area fraction; used to compute boundary conditions for prognostic updraft variables. The surface area for each updraft is `surface_area / N_updrafts`. See Cohen et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 2." + +[c_smag] +used_in = ["ClimaAtmos"] +value = 0.2 +type = "float" +description = "Smagorinsky coefficient" + +[mixing_length_smin_ub] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Lower limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." + +[molar_mass_water] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.01801528 +type = "float" + +[most_stability_exponent_businger] +used_in = ["SurfaceFluxes"] +value = 4.42 +type = "float" +description = "γ for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[temperature_saturation_adjustment_min] +used_in = ["Thermodynamics"] +value = 150 +type = "float" + +[min_area_limiter_power] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Constant coefficient for the exponent in the minimum area limiter term in entrainment. Parameter not described in the literature." + +[pressure_normalmode_drag_coeff] +used_in = ["ClimaAtmos"] +value = 10.0 +type = "float" +description = "Updraft pressure drag coefficent in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." + +[held_suarez_T_equator_dry] +used_in = ["ClimaAtmos"] +value = 315 +type = "float" +description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[mixing_length_Prandtl_number_0] +used_in = ["ClimaAtmos"] +value = 0.74 +type = "float" +description = "Turbulent Prandtl number in neutral conditions; denoted Pr_{t,0}. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1 and Eq 36." + +[longitude_perihelion_at_epoch] +used_in = ["Insolation"] +value = 4.938188299449 +type = "float" +description = "(282.937348 degrees) in radians" + +[stefan_boltzmann_constant] +used_in = ["RRTMGP"] +value = 5.67e-8 +type = "float" + +[temperature_min_at_reference] +used_in = ["Thermodynamics"] +value = 220 +type = "float" + +[entropy_water_vapor] +used_in = ["Thermodynamics"] +value = 10513.6 +type = "float" + +[equator_pole_temperature_gradient_wet] +used_in = ["ClimaAtmos"] +value = 65 +type = "float" +description = "Temperature gradient between equator and pole for moist adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[held_suarez_T_equator_wet] +used_in = ["ClimaAtmos"] +value = 294 +type = "float" +description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[entropy_dry_air] +used_in = ["Thermodynamics"] +value = 6864.8 +type = "float" + +[zd_rayleigh] +used_in = ["ClimaAtmos"] +value = 15000.0 +type = "float" +description = "rayleigh sponge height" + +[coefficient_a_m_businger] +used_in = ["SurfaceFluxes"] +value = 4.7 +type = "float" +description = "a_m for Businger momentum universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[temperature_saturation_adjustment_max] +used_in = ["Thermodynamics"] +value = 1000 +type = "float" + +[mean_anomalistic_at_epoch] +used_in = ["Insolation"] +value = 6.24006014121 +type = "float" +description = "(357.52911 degrees) in radians" + +[mixing_length_diss_coeff] +used_in = ["ClimaAtmos"] +value = 0.22 +type = "float" +description = "Turbulence kinetic energy dissipation coefficient for the EDMF mixing length closure; denoted c_d. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[potential_temp_vertical_gradient] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Potential temperature gradient with height. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[EDMF_max_area] +used_in = ["ClimaAtmos"] +value = 0.9 +type = "float" +description = "Maximum area fraction per updraft. Parameter not described in the literature." + +[entr_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "TODO: Remove this. Constant entrainment coefficient used for testing EDMF" + +[mixing_length_Ri_crit] +used_in = ["ClimaAtmos"] +value = 0.25 +type = "float" +description = "Critical gradient Richardson number. It is an upper limit to the gradient Richardson number . See Li (2019) [https://doi.org/10.1016/j.atmosres.2018.09.015], Section 6.2 for details." + +[gas_constant] +used_in = ["Thermodynamics", "RRTMGP"] +value = 8.3144598 +type = "float" + +[orbit_obliquity_at_epoch] +used_in = ["Insolation"] +value = 0.408979125113246 +type = "float" +description = "(23.432777778 degrees) in radians" + +[drag_layer_vertical_extent] +used_in = ["ClimaAtmos"] +value = 0.7 +type = "float" +description = "Vertical extend of drag layer. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[temperature_mean_at_reference] +used_in = ["Thermodynamics"] +value = 290 +type = "float" + +[detr_inv_tau] +used_in = ["ClimaAtmos"] +value = 900 +type = "float" +description = "Detrainment timescale" + +[entr_inv_tau] +used_in = ["ClimaAtmos"] +value = 900 +type = "float" +description = "Entrainment timescale" + +[temperature_homogenous_nucleation] +used_in = ["Thermodynamics"] +value = 233 +type = "float" + +[pressure_normalmode_buoy_coeff1] +used_in = ["ClimaAtmos"] +value = 0.12 +type = "float" +description = "Pressure buoyancy coefficient (encapsulating virtual mass loading effect) in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." + +[mixing_length_static_stab_coeff] +used_in = ["ClimaAtmos"] +value = 0.4 +type = "float" +description = "Static stability coefficient for the EDMF mixing length closure; denoted c_b. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[held_suarez_minimum_temperature] +used_in = ["ClimaAtmos"] +value = 200 +type = "float" +description = "Minimum temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[angular_velocity_planet_rotation] +used_in = ["ClimaAtmos"] +value = 7.2921159e-5 +type = "float" + +[min_area_limiter_scale] +used_in = ["ClimaAtmos"] +value = 0.001 +type = "float" +description = "Constant coefficient that scales the minimum area limiter term in entrainment. Parameter not described in the literature." + +[entropy_reference_temperature] +used_in = ["Thermodynamics"] +value = 298.15 +type = "float" + +[most_stability_parameter_businger] +used_in = ["SurfaceFluxes"] +value = 2.5 +type = "float" +description = "ζ_a for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[molar_mass_dry_air] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.02897 +type = "float" + +[zd_viscous] +used_in = ["ClimaAtmos"] +value = 15000.0 +type = "float" +description = "viscous sponge height" + +[planet_radius] +used_in = ["ClimaAtmos"] +value = 6371000 +type = "float" + +[adiabatic_exponent_dry_air] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.28571428571 +type = "float" +description = "(2/7)" + +[epoch_time] +used_in = ["Insolation"] +value = 211813488000 +type = "float" +description = "derived: 2451545.0 * [day]" + +[detr_buoy_coeff] +used_in = ["ClimaAtmos"] +value = 0.12 +type = "float" +description = "Coefficient for the b/w^2 term in the detrainment closure. See Tan et al. (2018) [https://doi.org/10.1002/2017MS001162], Eq 27." + +[precipitation_timescale] +used_in = ["CloudMicrophysics"] +value = 150.0 +type = "float" + +[C_H] +used_in = ["ClimaAtmos"] +value = 0.0044 +type = "float" +description = "bulk transfer coefficient" + +[EDMF_min_area] +used_in = ["ClimaAtmos"] +value = 1.0e-5 +type = "float" +description = "Minimum area fraction per updraft. Parameter not described in the literature." + +[isobaric_specific_heat_liquid] +used_in = ["Thermodynamics"] +value = 4181 +type = "float" + +[latent_heat_vaporization_at_reference] +used_in = ["Thermodynamics"] +value = 2500800 +type = "float" + +[detr_vertdiv_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "Coefficient for the vertical divergence term in the detrainment closure. Parameter not described in the literature." + +[gravitational_acceleration] +used_in = ["Thermodynamics", "RRTMGP"] +value = 9.81 +type = "float" + +[equator_pole_temperature_gradient_dry] +used_in = ["ClimaAtmos"] +value = 60 +type = "float" +description = "Temperature gradient between equator and pole for dry adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[coefficient_a_h_businger] +used_in = ["SurfaceFluxes"] +value = 4.7 +type = "float" +description = "a_h for Businger heat universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[pow_icenuc] +used_in = ["Thermodynamics"] +value = 1 +type = "float" + +[max_area_limiter_scale] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Constant coefficient that scales the maximum area limiter term in detrainment. Parameter not described in the literature." + +[avogadro_constant] +used_in = ["RRTMGP"] +value = 6.02214076e23 +type = "float" + +[pressure_triple_point] +used_in = ["Thermodynamics"] +value = 611.657 +type = "float" + +[thermodynamics_temperature_reference] +used_in = ["Thermodynamics"] +value = 273.16 +type = "float" + +[temperature_water_freeze] +used_in = ["Thermodynamics"] +value = 273.15 +type = "float" + +[total_solar_irradiance] +used_in = ["Insolation"] +value = 1362 +type = "float" + +[detr_coeff] +used_in = ["ClimaAtmos"] +value = 0.001 +type = "float" +description = "TODO: Remove this. Constant detrainment coefficient used for testing EDMF" + +[minimum_updraft_top] +used_in = ["ClimaAtmos"] +value = 500.0 +type = "float" +description = "Minimum updraft height limiter to avoid zero division in pressure drag and entrainment/detrainment closures. Parameter not described in the literature." + +[von_karman_constant] +used_in = ["SurfaceFluxes"] +value = 0.4 +type = "float" + +[mixing_length_eddy_viscosity_coefficient] +used_in = ["ClimaAtmos"] +value = 0.14 +type = "float" +description = "Turbulence kinetic energy diffusivity coefficient for the EDMF mixing length closure; denoted c_m. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[alpha_rayleigh_w] +used_in = ["ClimaAtmos"] +value = 1.0 +type = "float" +description = "rayleigh sponge vert velocity coeff" + +[mean_sea_level_pressure] +used_in = ["Thermodynamics"] +value = 101325 +type = "float" + +[max_area_limiter_power] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Constant coefficient for the exponent in the maximum area limiter term in detrainment. Parameter not described in the literature." + +[anomalistic_year_length] +used_in = ["Insolation"] +value = 31558464 +type = "float" +description = "derived: 365.25 * [day]" + +[alpha_rayleigh_uh] +used_in = ["ClimaAtmos"] +value = 0.0 +type = "float" +description = "rayleigh sponge horizontal velocity coefficient" + +[kappa_2_sponge] +used_in = ["ClimaAtmos"] +value = 1.0e6 +type = "float" +description = "viscous sponge coefficient" + +[astronomical_unit] +used_in = ["ClimaAtmos"] +value = 149597870000 +type = "float" + +[mixing_length_Prandtl_number_scale] +used_in = ["ClimaAtmos"] +value = 4.076923076923077 +type = "float" +description = "Cospectral budget factor for turbulent Prandtl number for the EDMF mixing length closure, denoted ω_pr. In Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Eq. 36, it is described as a phenomenological constant, denoted by ω₂ and set to 53/13 ≈ 4.0769..." diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 00af05b297..4ef003a605 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -19,8 +19,11 @@ using NCDatasets import JLD2 experiment_dir = joinpath("experiments", "amip_coupled") -output_dir = joinpath(experiment_dir, "truth_simulation") +COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") +include("coupler_driver_init.jl") +include("coupler_parse_args.jl") +include("coupler_component_init.jl") include("coupler_driver_calibration.jl"); solve_coupler!(cs); # Integrate the coupled model From 1368b9096531bf357f4b269f47d5d7ee2ecff059 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 6 Mar 2024 18:20:44 -0800 Subject: [PATCH 12/23] renamed: ../../ekp_config.yml -> ekp_config.yml modified: ../../generate_observations.sbatch modified: ../../observation_map.jl --- .../amip_coupled}/ekp_config.yml | 0 calibration/generate_observations.sbatch | 3 +- calibration/observation_map.jl | 34 +++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) rename calibration/{ => experiments/amip_coupled}/ekp_config.yml (100%) diff --git a/calibration/ekp_config.yml b/calibration/experiments/amip_coupled/ekp_config.yml similarity index 100% rename from calibration/ekp_config.yml rename to calibration/experiments/amip_coupled/ekp_config.yml diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 4ef003a605..068be41bba 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -27,7 +27,8 @@ include("coupler_component_init.jl") include("coupler_driver_calibration.jl"); solve_coupler!(cs); # Integrate the coupled model -ta = ncread(joinpath(output_dir, "", "ta_150s_average.nc"), "ta") +testdir = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/experiments/amip_coupled/truth_simulation/" +wa = NCDataset(joinpath(testdir, "", "wa_inst.nc"))["wa"] include(joinpath(experiment_dir, "observation_map.jl")) (; observation, variance) = process_member_data(ta; output_variance = true) JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) diff --git a/calibration/observation_map.jl b/calibration/observation_map.jl index 71318c8d57..5c2a236a3b 100644 --- a/calibration/observation_map.jl +++ b/calibration/observation_map.jl @@ -1,2 +1,36 @@ ### Place holder for NCEP data from the ClimaCoupler outputs # + +function observation_map(iteration) + experiment_id = "amip_coupled" + config = YAML.load_file(joinpath("experiments", experiment_id, "ekp_config.yml")) + output_dir = config["output_dir"] + ensemble_size = config["ensemble_size"] + model_output = "wa_inst.nc" + dims = 1 + G_ensemble = Array{Float64}(undef, dims..., ensemble_size) + for m in 1:ensemble_size + member_path = + TOMLInterface.path_to_ensemble_member(output_dir, iteration, m) + ta = ncread(joinpath(member_path, model_output), "wa") + G_ensemble[:, m] = process_member_data(ta) + end + return G_ensemble +end + +function process_member_data(wa; output_variance = false) + # Cut off first 120 days to get equilibrium, take second level slice + level_slice = 2 + wa_second_height = wa[3:size(wa)[1], :, :, level_slice] + # Average over long and latitude + area_avg_wa_second_height = + longitudinal_avg(latitudinal_avg(wa_second_height)) + observation = Float64[area_avg_wa_second_height[3]] + if !(output_variance) + return observation + else + variance = Matrix{Float64}(undef, 1, 1) + variance[1] = var(area_avg_wa_second_height) + return (; observation, variance) + end +end \ No newline at end of file From 3ab51a8f215619b894b9bc505615534a31c19275 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Wed, 13 Mar 2024 16:54:25 -0700 Subject: [PATCH 13/23] new file: ../Manifest.toml new file: Manifest.toml modified: coupler_parse_args.jl modified: ../experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl --- Manifest.toml | 2565 +++++++++++++++ calibration/Manifest.toml | 2747 +++++++++++++++++ calibration/coupler_parse_args.jl | 2 +- .../atmosphere/climaatmos_extra_diags.jl | 138 +- 4 files changed, 5382 insertions(+), 70 deletions(-) create mode 100644 Manifest.toml create mode 100644 calibration/Manifest.toml diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 0000000000..d5af483995 --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,2565 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "ba6a9300ddb046bf2deb0e98a14dad33efd2ec5c" + +[[deps.ADTypes]] +git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.6" + +[[deps.AMD]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" +uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" +version = "0.5.3" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.7.2" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgParse]] +deps = ["Logging", "TextWrap"] +git-tree-sha1 = "d4eccacaa3a632e8717556479d45502af44b4c17" +uuid = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" +version = "1.1.5" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.7.1" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "64d582bcb9c93ac741234789eeb4f16812413efb" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.6.0" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + +[[deps.ArtifactWrappers]] +deps = ["Downloads", "Pkg"] +git-tree-sha1 = "760f4c06375735829b8c1b67560b608b9dba4c6a" +uuid = "a14bc488-3040-4b00-9dc1-f6467924858a" +version = "0.2.0" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.AtmosphericProfilesLibrary]] +deps = ["Dierckx", "LinearAlgebra"] +git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" +uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" +version = "0.1.4" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.BFloat16s]] +deps = ["LinearAlgebra", "Printf", "Random", "Test"] +git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" +uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" +version = "0.4.2" + +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] +git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "1.5.0" +weakdeps = ["SparseArrays"] + + [deps.BandedMatrices.extensions] + BandedMatricesSparseArraysExt = "SparseArrays" + +[[deps.BangBang]] +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.3.40" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BinaryProvider]] +deps = ["Libdl", "Logging", "SHA"] +git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058" +uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" +version = "0.5.10" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.5" + +[[deps.BlockArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] +git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" +uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" +version = "0.16.39" + +[[deps.Blosc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "19b98ee7e3db3b4eff74c5c9c72bf32144e24f10" +uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" +version = "1.21.5+0" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CFTime]] +deps = ["Dates", "Printf"] +git-tree-sha1 = "ed2e76c1c3c43fd9d0cb9248674620b29d71f2d1" +uuid = "179af706-886a-5703-950a-314cd64e0468" +version = "0.1.2" + +[[deps.CLIMAParameters]] +deps = ["DocStringExtensions", "TOML", "Test"] +git-tree-sha1 = "cf4f5ee75576ae855eca7da064540ce40b9a04c1" +uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" +version = "0.8.6" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.4" + +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "679e69c611fff422038e9e21e270c4197d49d918" +uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +version = "0.10.12" + +[[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" +uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" +version = "5.1.2" +weakdeps = ["ChainRulesCore", "SpecialFunctions"] + + [deps.CUDA.extensions] + ChainRulesCoreExt = "ChainRulesCore" + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.CUDA_Driver_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" +uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" +version = "0.7.0+1" + +[[deps.CUDA_Runtime_Discovery]] +deps = ["Libdl"] +git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" +uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" +version = "0.2.3" + +[[deps.CUDA_Runtime_jll]] +deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" +version = "0.10.1+0" + +[[deps.CUDNN_jll]] +deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "75923dce4275ead3799b238e10178a68c07dbd3b" +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" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "4e42872be98fa3343c4f8458cbda8c5c6a6fa97c" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.63.0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "ad25e7d21ce10e01de973cdc68ad0f850a953c52" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.21.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.ClimaAtmos]] +deps = ["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 = "fd438bb44bfdcdf146d70113f67d72a8b2494146" +uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" +version = "0.20.1" + +[[deps.ClimaComms]] +deps = ["CUDA", "MPI"] +git-tree-sha1 = "57c054ddd4280ca8e2b5915ef1cf1395c4edbc78" +uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" +version = "0.5.6" + +[[deps.ClimaCore]] +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "Unrolled"] +git-tree-sha1 = "541bf25a8adc3c7ddf8d45a96149964f5cfbb074" +uuid = "d414da3d-4745-48bb-8d80-42e94e092884" +version = "0.11.9" +weakdeps = ["Krylov"] + + [deps.ClimaCore.extensions] + KrylovExt = "Krylov" + +[[deps.ClimaCoreTempestRemap]] +deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] +git-tree-sha1 = "2267e018c34f44fa8300b8d550d59f3eecef6094" +uuid = "d934ef94-cdd4-4710-83d6-720549644b70" +version = "0.3.13" + +[[deps.ClimaLand]] +deps = ["Adapt", "ArtifactWrappers", "CFTime", "CSV", "CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "DataFrames", "Dates", "DocStringExtensions", "Flux", "HTTP", "IntervalSets", "JLD2", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] +git-tree-sha1 = "77a058f6962d15d3c4f259aa716a2e3e079a2ca8" +uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +version = "0.8.0" + +[[deps.ClimaTimeSteppers]] +deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] +git-tree-sha1 = "216385dda9966d820b484f399b90447f073893a6" +uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" +version = "0.7.16" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.12" + +[[deps.CloudMicrophysics]] +deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "0c0be34fad945b95fd3c94cca9003bacae990ccf" +uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" +version = "0.15.2" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.CommonDataModel]] +deps = ["CFTime", "DataStructures", "Dates", "Preferences", "Printf", "Statistics"] +git-tree-sha1 = "d7d7b58e149f19c322840a50d1bc20e8c23addb4" +uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" +version = "0.3.5" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.12.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.1" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.CubedSphere]] +deps = ["Elliptic", "FFTW", "Printf", "ProgressBars", "SpecialFunctions", "TaylorSeries", "Test"] +git-tree-sha1 = "10134667d7d3569b191a65801514271b8a93b292" +uuid = "7445602f-e544-4518-8976-18f8e8ae6cdb" +version = "0.2.5" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.1" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Dierckx]] +deps = ["Dierckx_jll"] +git-tree-sha1 = "d1ea9f433781bb6ff504f7d3cb70c4782c504a3a" +uuid = "39dd38d3-220a-591b-8e3c-4c3a8c710a94" +version = "0.5.3" + +[[deps.Dierckx_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6596b96fe1caff3db36415eeb6e9d3b50bfe40ee" +uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" +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 = "3089c8295ab6d7c728cd6929121c1b4567457306" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.147.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "ee954c8b9d348b7a8a6aec5f28288bf5adecd4ee" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "2.37.0" + + [deps.DiffEqCallbacks.weakdeps] + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DiskArrays]] +deps = ["LRUCache", "OffsetArrays"] +git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" +uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" +version = "0.3.23" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.Elliptic]] +git-tree-sha1 = "71c79e77221ab3a29918aaf6db4f217b89138608" +uuid = "b305315f-e792-5b7a-8f41-49f472929428" +version = "1.0.1" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.EnzymeCore]] +git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.5" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.FFMPEG]] +deps = ["BinaryProvider", "Libdl"] +git-tree-sha1 = "9143266ba77d3313a4cf61d8333a1970e8c5d8b6" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.2.4" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "ab3f7e1819dba9434a3a5126510c8fda3a4e7000" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "6.1.1+0" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.1" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.8" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastGaussQuadrature]] +deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] +git-tree-sha1 = "0f478d8bad6f52573fb7658a263af61f3d96e43a" +uuid = "442a2c76-b920-505d-bb47-c5924d526838" +version = "0.5.1" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.2" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + + [deps.FillArrays.weakdeps] + PDMats = "90014a1f-27ba-587c-ab20-58faa44d9150" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.22.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +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 = "39a9e46b4e92d5b56c0712adeb507555a2327240" +uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" +version = "0.14.11" + + [deps.Flux.extensions] + FluxAMDGPUExt = "AMDGPU" + FluxCUDAExt = "CUDA" + FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] + FluxMetalExt = "Metal" + + [deps.Flux.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.7" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GMP_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "781609d7-10c4-51f6-84f2-b8444358ff6d" +version = "6.2.1+6" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "9.1.0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.GPUCompiler]] +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +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" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.GaussQuadrature]] +deps = ["SpecialFunctions"] +git-tree-sha1 = "eb6f1f48aa994f3018cbd029a17863c6535a266d" +uuid = "d54b0c1a-921d-58e0-8e36-89d8069c0969" +version = "0.5.8" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.GilbertCurves]] +git-tree-sha1 = "3e076ca96e34a47e98a46657b2bec2655a366d80" +uuid = "88fa7841-ef32-4516-bb70-c6ec135699d9" +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" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.GnuTLS_jll]] +deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Nettle_jll", "P11Kit_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "266fe9b2335527cbf569ba4fd0979e3d8c6fd491" +uuid = "0951126a-58fd-58f1-b5b3-b08c7c4a876d" +version = "3.7.8+1" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HDF5]] +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "26407bd1c60129062cec9da63dc7d08251544d53" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.17.1" +weakdeps = ["MPI"] + + [deps.HDF5.extensions] + MPIExt = "MPI" + +[[deps.HDF5_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +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" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.10.0+0" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.12" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.0" + +[[deps.Insolation]] +deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] +git-tree-sha1 = "2aaf998568ab59643cefb0fc17eba42f9d5bef37" +uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" +version = "0.9.0" +weakdeps = ["CLIMAParameters"] + + [deps.Insolation.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.2+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" +weakdeps = ["Unitful"] + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + +[[deps.InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLD2]] +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" +uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +version = "0.4.46" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.JuliaNVTXCallbacks_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "af433a10f3942e882d3c671aacb203e006a5808f" +uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" +version = "0.2.1+0" + +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.16" +weakdeps = ["EnzymeCore"] + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.5" + +[[deps.KrylovKit]] +deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] +git-tree-sha1 = "5cebb47f472f086f7dd31fb8e738a8db728f1f84" +uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" +version = "0.6.1" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LDLFactorizations]] +deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "70f582b446a1c3ad82cf87e62b878668beef9d13" +uuid = "40e66cde-538c-5869-a4ad-c39174c6795b" +version = "0.10.1" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "9e70165cca7459d25406367f0c55e517a9a7bfe7" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "6.5.0" +weakdeps = ["BFloat16s"] + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "114e3a48f13d4c18ddd7fd6a00107b4b96f60f9c" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.28+0" + +[[deps.LLVMLoopInfo]] +git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" +uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" +version = "1.0.0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LRUCache]] +git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.1" +weakdeps = ["Serialization"] + + [deps.LRUCache.extensions] + SerializationExt = ["Serialization"] + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +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" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.15" + +[[deps.Lazy]] +deps = ["MacroTools"] +git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" +uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" +version = "0.15.1" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearOperators]] +deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "58e2ca62646a62e18f86253b9c2a2d821c2d934b" +uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" +version = "2.6.0" +weakdeps = ["ChainRulesCore"] + + [deps.LinearOperators.extensions] + LinearOperatorsChainRulesCoreExt = "ChainRulesCore" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.27" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.Lz4_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" +uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" +version = "1.9.4+0" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.4" + +[[deps.MPI]] +deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] +git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" +uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" +version = "0.20.19" + + [deps.MPI.extensions] + AMDGPUExt = "AMDGPU" + CUDAExt = "CUDA" + + [deps.MPI.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + +[[deps.MPICH_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" +version = "4.2.0+0" + +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.10" + +[[deps.MPItrampoline_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" +version = "5.3.2+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.MicroCollections]] +deps = ["BangBang", "InitialValues", "Setfield"] +git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.4" + +[[deps.MicrosoftMPI_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" +uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" +version = "10.1.4+2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.NCDatasets]] +deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] +git-tree-sha1 = "79400cceb1655e7b2fe528a7b114c785bc152e59" +uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" +version = "0.14.1" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "877f15c331337d54cf24c797d5bcb2e48ce21221" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +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]] +deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] +git-tree-sha1 = "53046f0483375e3ed78e49190f1154fa0a4083a1" +uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" +version = "0.3.4" + +[[deps.NVTX_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ce3269ed42816bf18d500c9f63418d4b0d9f5a3b" +uuid = "e98f9f5b-d649-5603-91fd-7774390e6439" +version = "3.1.0+2" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NameResolution]] +deps = ["PrettyPrint"] +git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" +uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" +version = "0.1.5" + +[[deps.NetCDF_jll]] +deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenMPI_jll", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] +git-tree-sha1 = "a8af1798e4eb9ff768ce7fdefc0e957097793f15" +uuid = "7243133f-43d8-5620-bbf4-c2c921802cf3" +version = "400.902.209+0" + +[[deps.Nettle_jll]] +deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "eca63e3847dad608cfa6a3329b95ef674c7160b4" +uuid = "4c82536e-c426-54e4-b420-14f461c4ed8b" +version = "3.7.2+0" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OneHotArrays]] +deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] +git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" +uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" +version = "0.2.5" + +[[deps.OpenBLAS32_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6065c4cff8fee6c6770b277af45d5082baacdba1" +uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" +version = "0.3.24+0" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenMPI_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" +uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" +version = "4.1.6+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "264b061c1903bc0fe9be77cb9050ebacff66bb63" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.3.2" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.P11Kit_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "2cd396108e178f3ae8dedbd8e938a18726ab2fbf" +uuid = "c2071276-7c44-58a7-b746-946036e04d0a" +version = "0.24.1+0" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.9" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff"] +git-tree-sha1 = "b6665214f2d0739f2d09a17474dd443b9139784a" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.20" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.3.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.ProgressBars]] +deps = ["Printf"] +git-tree-sha1 = "b437cdb0385ed38312d91d9c00c20f3798b30256" +uuid = "49802e3a-d2f1-5c88-81d8-b72133a6f568" +version = "1.5.1" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.4" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.RRTMGP]] +deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] +git-tree-sha1 = "3493869e9bbe529dfd8dada02b455847bdb46f27" +uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" +version = "0.11.0" +weakdeps = ["CLIMAParameters"] + + [deps.RRTMGP.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "c860e84651f58ce240dd79e5d9e055d55234c35a" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.6.2" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "09c906ce9fa905d40e0706cdb62422422091c22f" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.8.1" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.RootSolvers]] +deps = ["ForwardDiff"] +git-tree-sha1 = "a87fd671f7a298de98f2f3c5a9cd9890714eb9dd" +uuid = "7181ea78-2dcb-4de3-ab41-2b8ab5a31e74" +version = "0.4.2" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.12" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] +git-tree-sha1 = "a123011b1711f3449bc4e5d66746be5725af92fd" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.26.0" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseMakieExt = "Makie" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] +git-tree-sha1 = "51ae235ff058a64815e0a2c34b1db7578a06813d" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.7" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.2" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.10" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.5.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.2" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.2" + +[[deps.StringEncodings]] +deps = ["Libiconv_jll"] +git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" +uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" +version = "0.3.7" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.17" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.SurfaceFluxes]] +deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] +git-tree-sha1 = "6431256ee7c06ed2900fd46688f355e5a43e90eb" +uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" +version = "0.9.1" +weakdeps = ["CLIMAParameters"] + + [deps.SurfaceFluxes.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.SymbolicIndexingInterface]] +git-tree-sha1 = "dc7186d456f9ff2bef0cb754a59758920f0b2382" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TaylorSeries]] +deps = ["LinearAlgebra", "Markdown", "Requires", "SparseArrays"] +git-tree-sha1 = "1c7170668366821b0c4c4fe03ee78f8d6cf36e2c" +uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" +version = "0.16.0" + + [deps.TaylorSeries.extensions] + TaylorSeriesIAExt = "IntervalArithmetic" + + [deps.TaylorSeries.weakdeps] + IntervalArithmetic = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" + +[[deps.TempestRemap_jll]] +deps = ["Artifacts", "HDF5_jll", "JLLWrappers", "Libdl", "NetCDF_jll", "OpenBLAS32_jll"] +git-tree-sha1 = "723112218783928a20e0d865932694acfb7a7571" +uuid = "8573a8c5-1df0-515e-a024-abad257ee284" +version = "2.2.0+0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TextWrap]] +git-tree-sha1 = "9250ef9b01b66667380cf3275b3f7488d0e25faf" +uuid = "b718987f-49a8-5099-9789-dcd902bef87d" +version = "1.0.1" + +[[deps.Thermodynamics]] +deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] +git-tree-sha1 = "090a50e507242bd6c85267645186260fe89a1cfe" +uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" +version = "0.11.7" +weakdeps = ["CLIMAParameters"] + + [deps.Thermodynamics.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.Transducers]] +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "3064e780dbb8a9296ebb3af8f440f787bb5332af" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.80" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unrolled]] +deps = ["MacroTools"] +git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" +uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" +version = "0.1.5" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.1.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.WorkerUtilities]] +git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" +uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" +version = "1.6.1" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.YAML]] +deps = ["Base64", "Dates", "Printf", "StringEncodings"] +git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" +uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" +version = "0.4.9" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "4ddb4470e47b0094c93055a3bcae799165cc68f1" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.69" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.cuDNN]] +deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] +git-tree-sha1 = "d433ec29756895512190cac9c96666d879f07b92" +uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" +version = "1.3.0" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaec_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" +uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" +version = "1.0.6+1" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "873b4f805771d3e4bafe63af759a26ea8ca84d14" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.42+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.libzip_jll]] +deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "3282b7d16ae7ac3e57ec2f3fa8fafb564d8f9f7f" +uuid = "337d8026-41b4-5cde-a456-74a10e5b31d1" +version = "1.10.1+0" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/calibration/Manifest.toml b/calibration/Manifest.toml new file mode 100644 index 0000000000..9369531abb --- /dev/null +++ b/calibration/Manifest.toml @@ -0,0 +1,2747 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "aa02efee4d2f9469568a76d48bedca0313f3f7ac" + +[[deps.ADTypes]] +git-tree-sha1 = "41c37aa88889c171f1300ceac1313c06e891d245" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.6" + +[[deps.AMD]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" +uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" +version = "0.5.3" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "3.7.2" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgParse]] +deps = ["Logging", "TextWrap"] +git-tree-sha1 = "d4eccacaa3a632e8717556479d45502af44b4c17" +uuid = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" +version = "1.1.5" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Arpack]] +deps = ["Arpack_jll", "Libdl", "LinearAlgebra", "Logging"] +git-tree-sha1 = "9b9b347613394885fd1c8c7729bfc60528faa436" +uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" +version = "0.5.4" + +[[deps.Arpack_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg"] +git-tree-sha1 = "5ba6c757e8feccf03a1554dfaf3e26b3cfc7fd5e" +uuid = "68821587-b530-5797-8361-c406ea357684" +version = "3.5.1+1" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.7.1" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.6.1" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + +[[deps.ArtifactWrappers]] +deps = ["Downloads", "Pkg"] +git-tree-sha1 = "760f4c06375735829b8c1b67560b608b9dba4c6a" +uuid = "a14bc488-3040-4b00-9dc1-f6467924858a" +version = "0.2.0" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.AtmosphericProfilesLibrary]] +deps = ["Dierckx", "LinearAlgebra"] +git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" +uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" +version = "0.1.4" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.BFloat16s]] +deps = ["LinearAlgebra", "Printf", "Random", "Test"] +git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" +uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" +version = "0.4.2" + +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] +git-tree-sha1 = "931f3f49902e9b6b527fd7cd02d1cd7b4a84264c" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "1.5.0" +weakdeps = ["SparseArrays"] + + [deps.BandedMatrices.extensions] + BandedMatricesSparseArraysExt = "SparseArrays" + +[[deps.BangBang]] +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.3.40" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.5.0" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.5" + +[[deps.BlockArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] +git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" +uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" +version = "0.16.39" + +[[deps.Blosc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "19b98ee7e3db3b4eff74c5c9c72bf32144e24f10" +uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" +version = "1.21.5+0" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CFTime]] +deps = ["Dates", "Printf"] +git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" +uuid = "179af706-886a-5703-950a-314cd64e0468" +version = "0.1.3" + +[[deps.CLIMAParameters]] +deps = ["DocStringExtensions", "TOML", "Test"] +git-tree-sha1 = "cf4f5ee75576ae855eca7da064540ce40b9a04c1" +uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" +version = "0.8.6" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.4" + +[[deps.CSV]] +deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] +git-tree-sha1 = "a44910ceb69b0d44fe262dd451ab11ead3ed0be8" +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" +uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" +version = "5.1.2" +weakdeps = ["ChainRulesCore", "SpecialFunctions"] + + [deps.CUDA.extensions] + ChainRulesCoreExt = "ChainRulesCore" + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.CUDA_Driver_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" +uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" +version = "0.7.0+1" + +[[deps.CUDA_Runtime_Discovery]] +deps = ["Libdl"] +git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" +uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" +version = "0.2.3" + +[[deps.CUDA_Runtime_jll]] +deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" +version = "0.10.1+0" + +[[deps.CUDNN_jll]] +deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "75923dce4275ead3799b238e10178a68c07dbd3b" +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" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.CalibrateAtmos]] +deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoupler", "Distributions", "EnsembleKalmanProcesses", "JLD2", "LinearAlgebra", "Random", "SciMLBase", "TOML", "YAML"] +git-tree-sha1 = "c975fcf46b461bdfb1b7a2243612befcd4494a1b" +repo-rev = "as/coupler_calibrate" +repo-url = "/Users/akshaysridhar/Research/Codes/CalibrateAtmos.jl" +uuid = "4347a170-ebd6-470c-89d3-5c705c0cacc2" +version = "0.1.0" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "4e42872be98fa3343c4f8458cbda8c5c6a6fa97c" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.63.0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.23.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.ClimaAtmos]] +deps = ["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 = "fd438bb44bfdcdf146d70113f67d72a8b2494146" +uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" +version = "0.20.1" + +[[deps.ClimaComms]] +deps = ["CUDA", "MPI"] +git-tree-sha1 = "57c054ddd4280ca8e2b5915ef1cf1395c4edbc78" +uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" +version = "0.5.6" + +[[deps.ClimaCore]] +deps = ["Adapt", "BandedMatrices", "BlockArrays", "CUDA", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "Static", "StaticArrays", "Statistics", "Unrolled"] +git-tree-sha1 = "541bf25a8adc3c7ddf8d45a96149964f5cfbb074" +uuid = "d414da3d-4745-48bb-8d80-42e94e092884" +version = "0.11.9" +weakdeps = ["Krylov"] + + [deps.ClimaCore.extensions] + KrylovExt = "Krylov" + +[[deps.ClimaCorePlots]] +deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] +git-tree-sha1 = "e86fd9242e89b526c9fb29e05db3071ce64e3a8e" +uuid = "cf7c7e5a-b407-4c48-9047-11a94a308626" +version = "0.2.7" + +[[deps.ClimaCoreTempestRemap]] +deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] +git-tree-sha1 = "ac11cc8ad2c043ab753d6888c224c7e2f35f42c0" +uuid = "d934ef94-cdd4-4710-83d6-720549644b70" +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"] +git-tree-sha1 = "cc1c1ddb3f857554ac5f763e347dc0a01b079460" +repo-rev = "as/calibrate_expt" +repo-url = ".." +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", "IntervalSets", "JLD2", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] +git-tree-sha1 = "77a058f6962d15d3c4f259aa716a2e3e079a2ca8" +uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" +version = "0.8.0" + +[[deps.ClimaTimeSteppers]] +deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] +git-tree-sha1 = "216385dda9966d820b484f399b90447f073893a6" +uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" +version = "0.7.16" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.12" + +[[deps.CloudMicrophysics]] +deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "0c0be34fad945b95fd3c94cca9003bacae990ccf" +uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" +version = "0.15.2" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] +git-tree-sha1 = "9b1ca1aa6ce3f71b3d1840c538a8210a043625eb" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.8.2" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.CommonDataModel]] +deps = ["CFTime", "DataStructures", "Dates", "Preferences", "Printf", "Statistics"] +git-tree-sha1 = "d7d7b58e149f19c322840a50d1bc20e8c23addb4" +uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" +version = "0.3.5" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.14.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "9c4708e3ed2b799e6124b5673a712dda0b596a9b" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.1" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.Convex]] +deps = ["AbstractTrees", "BenchmarkTools", "LDLFactorizations", "LinearAlgebra", "MathOptInterface", "OrderedCollections", "SparseArrays", "Test"] +git-tree-sha1 = "e84e371b9206bdd678fe7a8cf809c7dec949e88f" +uuid = "f65535da-76fb-5f13-bab9-19810c17039a" +version = "0.15.4" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.CubedSphere]] +deps = ["Elliptic", "FFTW", "Printf", "ProgressBars", "SpecialFunctions", "TaylorSeries", "Test"] +git-tree-sha1 = "10134667d7d3569b191a65801514271b8a93b292" +uuid = "7445602f-e544-4518-8976-18f8e8ae6cdb" +version = "0.2.5" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "04c738083f29f86e62c8afc341f0967d8717bdb8" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.6.1" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.18" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Dierckx]] +deps = ["Dierckx_jll"] +git-tree-sha1 = "d1ea9f433781bb6ff504f7d3cb70c4782c504a3a" +uuid = "39dd38d3-220a-591b-8e3c-4c3a8c710a94" +version = "0.5.3" + +[[deps.Dierckx_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6596b96fe1caff3db36415eeb6e9d3b50bfe40ee" +uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" +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 = "3089c8295ab6d7c728cd6929121c1b4567457306" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.147.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "ee954c8b9d348b7a8a6aec5f28288bf5adecd4ee" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "2.37.0" + + [deps.DiffEqCallbacks.weakdeps] + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DiskArrays]] +deps = ["LRUCache", "OffsetArrays"] +git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" +uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" +version = "0.3.23" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.Elliptic]] +git-tree-sha1 = "71c79e77221ab3a29918aaf6db4f217b89138608" +uuid = "b305315f-e792-5b7a-8f41-49f472929428" +version = "1.0.1" + +[[deps.EnsembleKalmanProcesses]] +deps = ["Convex", "Distributions", "DocStringExtensions", "GaussianRandomFields", "LinearAlgebra", "MathOptInterface", "Optim", "QuadGK", "Random", "RecipesBase", "SCS", "SparseArrays", "Statistics", "StatsBase", "TOML"] +git-tree-sha1 = "b67e9cc4cd50415c17388696c4ec208b02fceba2" +uuid = "aa8a2aa5-91d8-4396-bcef-d4f2ec43552d" +version = "1.1.5" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.EnzymeCore]] +git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.5" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.1" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.8" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastGaussQuadrature]] +deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] +git-tree-sha1 = "0f478d8bad6f52573fb7658a263af61f3d96e43a" +uuid = "442a2c76-b920-505d-bb47-c5924d526838" +version = "0.5.1" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.2" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "73d1214fec245096717847c62d389a5d2ac86504" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.22.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +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" +uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" +version = "0.14.12" + + [deps.Flux.extensions] + FluxAMDGPUExt = "AMDGPU" + FluxCUDAExt = "CUDA" + FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] + FluxMetalExt = "Metal" + + [deps.Flux.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[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"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "166c544477f97bbadc7179ede1c1868e0e9b426b" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.7" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GMP_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "781609d7-10c4-51f6-84f2-b8444358ff6d" +version = "6.2.1+6" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "9.1.0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.5" + +[[deps.GPUCompiler]] +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +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" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.GaussQuadrature]] +deps = ["SpecialFunctions"] +git-tree-sha1 = "eb6f1f48aa994f3018cbd029a17863c6535a266d" +uuid = "d54b0c1a-921d-58e0-8e36-89d8069c0969" +version = "0.5.8" + +[[deps.GaussianRandomFields]] +deps = ["Arpack", "FFTW", "FastGaussQuadrature", "LinearAlgebra", "Random", "RecipesBase", "SpecialFunctions", "Statistics", "StatsBase"] +git-tree-sha1 = "055849d7a602c31eda477a0b0b86c9473a3e4fb9" +uuid = "e4b2fa32-6e09-5554-b718-106ed5adafe9" +version = "2.2.4" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.GilbertCurves]] +git-tree-sha1 = "3e076ca96e34a47e98a46657b2bec2655a366d80" +uuid = "88fa7841-ef32-4516-bb70-c6ec135699d9" +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" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.GnuTLS_jll]] +deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Nettle_jll", "P11Kit_jll", "Zlib_jll"] +git-tree-sha1 = "f3c0936dd685d57fa0b1eee7dbebf382b969ea63" +uuid = "0951126a-58fd-58f1-b5b3-b08c7c4a876d" +version = "3.8.3+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HDF5]] +deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] +git-tree-sha1 = "26407bd1c60129062cec9da63dc7d08251544d53" +uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" +version = "0.17.1" +weakdeps = ["MPI"] + + [deps.HDF5.extensions] + MPIExt = "MPI" + +[[deps.HDF5_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" +uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" +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" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.3" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.10.0+0" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.12" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.InlineStrings]] +deps = ["Parsers"] +git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.0" + +[[deps.Insolation]] +deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] +git-tree-sha1 = "2aaf998568ab59643cefb0fc17eba42f9d5bef37" +uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" +version = "0.9.0" +weakdeps = ["CLIMAParameters"] + + [deps.Insolation.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.2+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" +weakdeps = ["Unitful"] + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + +[[deps.InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLD2]] +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" +uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +version = "0.4.46" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.2+0" + +[[deps.JuliaNVTXCallbacks_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "af433a10f3942e882d3c671aacb203e006a5808f" +uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" +version = "0.2.1+0" + +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.18" +weakdeps = ["EnzymeCore"] + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.5" + +[[deps.KrylovKit]] +deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] +git-tree-sha1 = "5cebb47f472f086f7dd31fb8e738a8db728f1f84" +uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" +version = "0.6.1" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LDLFactorizations]] +deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "70f582b446a1c3ad82cf87e62b878668beef9d13" +uuid = "40e66cde-538c-5869-a4ad-c39174c6795b" +version = "0.10.1" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "ddab4d40513bce53c8e3157825e245224f74fae7" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "6.6.0" +weakdeps = ["BFloat16s"] + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "88b916503aac4fb7f701bb625cd84ca5dd1677bc" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.29+0" + +[[deps.LLVMLoopInfo]] +git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" +uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" +version = "1.0.0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LRUCache]] +git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.1" +weakdeps = ["Serialization"] + + [deps.LRUCache.extensions] + SerializationExt = ["Serialization"] + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.2" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.15" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e5edc369a598dfde567269dc6add5812cfa10cd5" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.39.3+0" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearOperators]] +deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "f06df3a46255879cbccae1b5b6dcb16994c31be7" +uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" +version = "2.7.0" +weakdeps = ["ChainRulesCore"] + + [deps.LinearOperators.extensions] + LinearOperatorsChainRulesCoreExt = "ChainRulesCore" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.27" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.Lz4_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" +uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" +version = "1.9.4+0" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.4" + +[[deps.MPI]] +deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] +git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" +uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" +version = "0.20.19" + + [deps.MPI.extensions] + AMDGPUExt = "AMDGPU" + CUDAExt = "CUDA" + + [deps.MPI.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + +[[deps.MPICH_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" +version = "4.2.0+0" + +[[deps.MPIPreferences]] +deps = ["Libdl", "Preferences"] +git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" +version = "0.1.10" + +[[deps.MPItrampoline_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" +version = "5.3.2+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] +git-tree-sha1 = "679c1aec6934d322783bd15db4d18f898653be4f" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.27.0" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.MicroCollections]] +deps = ["BangBang", "InitialValues", "Setfield"] +git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.4" + +[[deps.MicrosoftMPI_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" +uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" +version = "10.1.4+2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "302fd161eb1c439e4115b51ae456da4e9984f130" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.4.1" + +[[deps.NCDatasets]] +deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] +git-tree-sha1 = "79400cceb1655e7b2fe528a7b114c785bc152e59" +uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" +version = "0.14.1" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "877f15c331337d54cf24c797d5bcb2e48ce21221" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +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]] +deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] +git-tree-sha1 = "53046f0483375e3ed78e49190f1154fa0a4083a1" +uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" +version = "0.3.4" + +[[deps.NVTX_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ce3269ed42816bf18d500c9f63418d4b0d9f5a3b" +uuid = "e98f9f5b-d649-5603-91fd-7774390e6439" +version = "3.1.0+2" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NameResolution]] +deps = ["PrettyPrint"] +git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" +uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" +version = "0.1.5" + +[[deps.NetCDF_jll]] +deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenMPI_jll", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] +git-tree-sha1 = "a8af1798e4eb9ff768ce7fdefc0e957097793f15" +uuid = "7243133f-43d8-5620-bbf4-c2c921802cf3" +version = "400.902.209+0" + +[[deps.Nettle_jll]] +deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "eca63e3847dad608cfa6a3329b95ef674c7160b4" +uuid = "4c82536e-c426-54e4-b420-14f461c4ed8b" +version = "3.7.2+0" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OneHotArrays]] +deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] +git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" +uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" +version = "0.2.5" + +[[deps.OpenBLAS32_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6065c4cff8fee6c6770b277af45d5082baacdba1" +uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" +version = "0.3.24+0" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenMPI_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" +uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" +version = "4.1.6+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.2" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "MathOptInterface", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "d024bfb56144d947d4fafcd9cb5cafbe3410b133" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.9.2" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "264b061c1903bc0fe9be77cb9050ebacff66bb63" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.3.2" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.P11Kit_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "2cd396108e178f3ae8dedbd8e938a18726ab2fbf" +uuid = "c2071276-7c44-58a7-b746-946036e04d0a" +version = "0.24.1+0" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +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" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.9" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff"] +git-tree-sha1 = "b6665214f2d0739f2d09a17474dd443b9139784a" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.20" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.3.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.ProgressBars]] +deps = ["Printf"] +git-tree-sha1 = "b437cdb0385ed38312d91d9c00c20f3798b30256" +uuid = "49802e3a-d2f1-5c88-81d8-b72133a6f568" +version = "1.5.1" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.4" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.RRTMGP]] +deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] +git-tree-sha1 = "3493869e9bbe529dfd8dada02b455847bdb46f27" +uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" +version = "0.11.0" +weakdeps = ["CLIMAParameters"] + + [deps.RRTMGP.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.7.0" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "dc428bb59c20dafd1ec500c3432b9e3d7e78e7f3" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.10.1" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.RootSolvers]] +deps = ["ForwardDiff"] +git-tree-sha1 = "a87fd671f7a298de98f2f3c5a9cd9890714eb9dd" +uuid = "7181ea78-2dcb-4de3-ab41-2b8ab5a31e74" +version = "0.4.2" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.12" + +[[deps.SCS]] +deps = ["MathOptInterface", "Requires", "SCS_GPU_jll", "SCS_jll", "SparseArrays"] +git-tree-sha1 = "8d908b7c81e199ee92d17b6192849e8c43d2f31d" +uuid = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" +version = "1.1.2" + +[[deps.SCS_GPU_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenBLAS32_jll", "Pkg"] +git-tree-sha1 = "f912271ecccb00acaddfab2943e9b33d5ec36d3b" +uuid = "af6e375f-46ec-5fa0-b791-491b0dfa44a4" +version = "3.2.0+0" + +[[deps.SCS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenBLAS32_jll", "Pkg"] +git-tree-sha1 = "ba5c0d3b23220d3598d2877b4cf913e3fcf8add3" +uuid = "f4f2fc5b-1d94-523c-97ea-2ab488bedf4b" +version = "3.2.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] +git-tree-sha1 = "16dd1ea058e1c080d7f1ba47a9094f87a1c50e4c" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.26.2" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseMakieExt = "Makie" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools", "Setfield", "SparseArrays", "StaticArraysCore"] +git-tree-sha1 = "10499f619ef6e890f3f4a38914481cc868689cd5" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.8" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.2" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.10" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.5.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.3" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.1" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.2" + +[[deps.StringEncodings]] +deps = ["Libiconv_jll"] +git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" +uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" +version = "0.3.7" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.3.4" + +[[deps.StructArrays]] +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.SurfaceFluxes]] +deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] +git-tree-sha1 = "6431256ee7c06ed2900fd46688f355e5a43e90eb" +uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" +version = "0.9.1" +weakdeps = ["CLIMAParameters"] + + [deps.SurfaceFluxes.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.SymbolicIndexingInterface]] +git-tree-sha1 = "251bb311585143931a306175c3b7ced220300578" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.8" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TaylorSeries]] +deps = ["LinearAlgebra", "Markdown", "Requires", "SparseArrays"] +git-tree-sha1 = "1c7170668366821b0c4c4fe03ee78f8d6cf36e2c" +uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" +version = "0.16.0" + + [deps.TaylorSeries.extensions] + TaylorSeriesIAExt = "IntervalArithmetic" + + [deps.TaylorSeries.weakdeps] + IntervalArithmetic = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" + +[[deps.TempestRemap_jll]] +deps = ["Artifacts", "HDF5_jll", "JLLWrappers", "Libdl", "NetCDF_jll", "OpenBLAS32_jll"] +git-tree-sha1 = "723112218783928a20e0d865932694acfb7a7571" +uuid = "8573a8c5-1df0-515e-a024-abad257ee284" +version = "2.2.0+0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TextWrap]] +git-tree-sha1 = "9250ef9b01b66667380cf3275b3f7488d0e25faf" +uuid = "b718987f-49a8-5099-9789-dcd902bef87d" +version = "1.0.1" + +[[deps.Thermodynamics]] +deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] +git-tree-sha1 = "090a50e507242bd6c85267645186260fe89a1cfe" +uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" +version = "0.11.7" +weakdeps = ["CLIMAParameters"] + + [deps.Thermodynamics.extensions] + CreateParametersExt = "CLIMAParameters" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.4" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.Transducers]] +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "3064e780dbb8a9296ebb3af8f440f787bb5332af" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.80" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unrolled]] +deps = ["MacroTools"] +git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" +uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" +version = "0.1.5" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.1.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.WeakRefStrings]] +deps = ["DataAPI", "InlineStrings", "Parsers"] +git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" +uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" +version = "1.4.2" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.WorkerUtilities]] +git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" +uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" +version = "1.6.1" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.5+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "37195dcb94a5970397ad425b95a9a26d0befce3a" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.6.0+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.YAML]] +deps = ["Base64", "Dates", "Printf", "StringEncodings"] +git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" +uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" +version = "0.4.9" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "4ddb4470e47b0094c93055a3bcae799165cc68f1" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.69" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.cuDNN]] +deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] +git-tree-sha1 = "d433ec29756895512190cac9c96666d879f07b92" +uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" +version = "1.3.0" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaec_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "46bf7be2917b59b761247be3f317ddf75e50e997" +uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" +version = "1.1.2+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "1ea2ebe8ffa31f9c324e8c1d6e86b4165b84a024" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.43+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.libzip_jll]] +deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "3282b7d16ae7ac3e57ec2f3fa8fafb564d8f9f7f" +uuid = "337d8026-41b4-5cde-a456-74a10e5b31d1" +version = "1.10.1+0" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/calibration/coupler_parse_args.jl b/calibration/coupler_parse_args.jl index de943a63da..aa5a76513a 100644 --- a/calibration/coupler_parse_args.jl +++ b/calibration/coupler_parse_args.jl @@ -5,7 +5,7 @@ parsed_args = parse_commandline(argparse_settings()) config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")); config_dict["t_end"] = "150secs"; -config_dict["output_dir"] = output_dir; +config_dict["output_dir"] = COUPLER_OUTPUT_DIR; config_dict = merge(parsed_args, config_dict) config_dict_atmos = get_atmos_config(config_dict) diff --git a/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl b/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl index de3dd3f66a..9736c94474 100644 --- a/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl +++ b/experiments/AMIP/components/atmosphere/climaatmos_extra_diags.jl @@ -14,72 +14,72 @@ To output these variables, short_name needs to be specified under diagnostics in """ ### TODO This has been fixed in a recent update -add_diagnostic_variable!( - short_name = "mse", - long_name = "Moist static energy", - standard_name = "moist_static_energy", - units = "J/kg", - comments = "Moist static energy", - compute! = (out, state, cache, time) -> begin - (; params) = cache - (; ᶜts) = cache.precomputed - c_space = axes(state.c) - thermo_params = CAP.thermodynamics_params(params) - e_pot = CAP.grav(params) .* Fields.coordinate_field(c_space).z - if isnothing(out) - return TD.moist_static_energy.(thermo_params, ᶜts, e_pot) - else - out .= TD.moist_static_energy.(thermo_params, ᶜts, e_pot) - end - end, -) - -add_diagnostic_variable!( - short_name = "lr", - long_name = "Lapse rate", - standard_name = "lapse_rate", - units = "K/m", - comments = "Lapse rate", - compute! = (out, state, cache, time) -> begin - (; params) = cache - (; ᶜts) = cache.precomputed - thermo_params = CAP.thermodynamics_params(params) - ᶜT = @. TD.air_temperature(thermo_params, ᶜts) - if isnothing(out) - return ClimaCore.Geometry.WVector.(CAD.ᶜgradᵥ.(CAD.ᶠinterp.(ᶜT))).components.data.:1 - else - out .= ClimaCore.Geometry.WVector.(CAD.ᶜgradᵥ.(CAD.ᶠinterp.(ᶜT))).components.data.:1 - end - - end, -) - -add_diagnostic_variable!( - short_name = "ediff", - long_name = "Eddy diffusivity", - standard_name = "eddy_diffusivity", - units = "m2/s", - comments = "Eddy diffusivity consistent with the VerticalDiffusion scheme in ClimaAtmos", - compute! = (out, state, cache, time) -> begin - (; ᶜp) = cache.precomputed - (; C_E) = cache.atmos.vert_diff - interior_uₕ = Fields.level(state.c.uₕ, 1) - ᶠp = ᶠK_E = cache.scratch.ᶠtemp_scalar - Fields.bycolumn(axes(ᶜp)) do colidx - @. ᶠp[colidx] = CAD.ᶠinterp(ᶜp[colidx]) - ᶜΔz_surface = Fields.Δz_field(interior_uₕ) - @. ᶠK_E[colidx] = CA.eddy_diffusivity_coefficient( - C_E, - CA.norm(interior_uₕ[colidx]), - ᶜΔz_surface[colidx] / 2, - ᶠp[colidx], - ) - end - if isnothing(out) - return CAD.ᶜinterp.(ᶠK_E) - else - out .= CAD.ᶜinterp.(ᶠK_E) - end - - end, -) +#add_diagnostic_variable!( +# short_name = "mse", +# long_name = "Moist static energy", +# standard_name = "moist_static_energy", +# units = "J/kg", +# comments = "Moist static energy", +# compute! = (out, state, cache, time) -> begin +# (; params) = cache +# (; ᶜts) = cache.precomputed +# c_space = axes(state.c) +# thermo_params = CAP.thermodynamics_params(params) +# e_pot = CAP.grav(params) .* Fields.coordinate_field(c_space).z +# if isnothing(out) +# return TD.moist_static_energy.(thermo_params, ᶜts, e_pot) +# else +# out .= TD.moist_static_energy.(thermo_params, ᶜts, e_pot) +# end +# end, +#) +# +#add_diagnostic_variable!( +# short_name = "lr", +# long_name = "Lapse rate", +# standard_name = "lapse_rate", +# units = "K/m", +# comments = "Lapse rate", +# compute! = (out, state, cache, time) -> begin +# (; params) = cache +# (; ᶜts) = cache.precomputed +# thermo_params = CAP.thermodynamics_params(params) +# ᶜT = @. TD.air_temperature(thermo_params, ᶜts) +# if isnothing(out) +# return ClimaCore.Geometry.WVector.(CAD.ᶜgradᵥ.(CAD.ᶠinterp.(ᶜT))).components.data.:1 +# else +# out .= ClimaCore.Geometry.WVector.(CAD.ᶜgradᵥ.(CAD.ᶠinterp.(ᶜT))).components.data.:1 +# end +# +# end, +#) +# +#add_diagnostic_variable!( +# short_name = "ediff", +# long_name = "Eddy diffusivity", +# standard_name = "eddy_diffusivity", +# units = "m2/s", +# comments = "Eddy diffusivity consistent with the VerticalDiffusion scheme in ClimaAtmos", +# compute! = (out, state, cache, time) -> begin +# (; ᶜp) = cache.precomputed +# (; C_E) = cache.atmos.vert_diff +# interior_uₕ = Fields.level(state.c.uₕ, 1) +# ᶠp = ᶠK_E = cache.scratch.ᶠtemp_scalar +# Fields.bycolumn(axes(ᶜp)) do colidx +# @. ᶠp[colidx] = CAD.ᶠinterp(ᶜp[colidx]) +# ᶜΔz_surface = Fields.Δz_field(interior_uₕ) +# @. ᶠK_E[colidx] = CA.eddy_diffusivity_coefficient( +# C_E, +# CA.norm(interior_uₕ[colidx]), +# ᶜΔz_surface[colidx] / 2, +# ᶠp[colidx], +# ) +# end +# if isnothing(out) +# return CAD.ᶜinterp.(ᶠK_E) +# else +# out .= CAD.ᶜinterp.(ᶠK_E) +# end +# +# end, +#) From 187ed503d2679a38edb75c09995755347272e000 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 15 Mar 2024 14:15:32 -0700 Subject: [PATCH 14/23] modified: coupler_driver_calibration.jl modified: coupler_interface.jl modified: experiments/amip_coupled/prior.toml modified: generate_observations.sbatch modified: model_run.sbatch deleted: observation_map.jl --- calibration/coupler_driver_calibration.jl | 7 ++-- calibration/coupler_interface.jl | 2 +- .../experiments/amip_coupled/prior.toml | 2 +- calibration/generate_observations.sbatch | 6 ++-- calibration/model_run.sbatch | 5 ++- calibration/observation_map.jl | 36 ------------------- 6 files changed, 12 insertions(+), 46 deletions(-) delete mode 100644 calibration/observation_map.jl diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl index cf423ead4a..377434a7fb 100644 --- a/calibration/coupler_driver_calibration.jl +++ b/calibration/coupler_driver_calibration.jl @@ -1,7 +1,8 @@ +include("coupler_driver_init.jl") +include("coupler_parse_args.jl") - -## coupler simulation -cs = CoupledSimulation{FT}( +include("coupler_component_init.jl") +cs = ClimaCoupler.Interfacer.CoupledSimulation{FT}( comms_ctx, dates, boundary_space, diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl index 49698b3352..d0dd4fe36a 100644 --- a/calibration/coupler_interface.jl +++ b/calibration/coupler_interface.jl @@ -19,7 +19,7 @@ function get_coupler_sim(member, iteration, experiment_id::AbstractString) EKP.TOMLInterface.path_to_ensemble_member(output_dir, iteration, member) config_dict["output_dir"] = member_path # COPY Coupler Driver - include("../experiments/AMIP/coupler_driver_calibration.jl") + include("coupler_driver_calibration.jl") # END Coupler Driver parameter_path = joinpath(member_path, "parameters.toml") diff --git a/calibration/experiments/amip_coupled/prior.toml b/calibration/experiments/amip_coupled/prior.toml index 3f1519594e..dc85a8000c 100644 --- a/calibration/experiments/amip_coupled/prior.toml +++ b/calibration/experiments/amip_coupled/prior.toml @@ -20,4 +20,4 @@ alias = "businger_a_h" prior = "Parameterized(Normal(0.0, 16.0))" constraint = "[bounded_below(0)]" type = "float" -alias = "businger_b_h"" +alias = "businger_b_h" diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 068be41bba..8f75f75528 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -17,20 +17,18 @@ import ClimaCoupler as CCo import YAML using NCDatasets import JLD2 +using Statistics experiment_dir = joinpath("experiments", "amip_coupled") COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") -include("coupler_driver_init.jl") -include("coupler_parse_args.jl") -include("coupler_component_init.jl") include("coupler_driver_calibration.jl"); solve_coupler!(cs); # Integrate the coupled model testdir = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/experiments/amip_coupled/truth_simulation/" wa = NCDataset(joinpath(testdir, "", "wa_inst.nc"))["wa"] include(joinpath(experiment_dir, "observation_map.jl")) -(; observation, variance) = process_member_data(ta; output_variance = true) +(; observation, variance) = process_member_data(wa; output_variance = true) JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) ' diff --git a/calibration/model_run.sbatch b/calibration/model_run.sbatch index 8ea48f8028..60d67adcbc 100644 --- a/calibration/model_run.sbatch +++ b/calibration/model_run.sbatch @@ -10,7 +10,10 @@ iteration=$2 # Find output directory format_i=$(printf "iteration_%03d" "$iteration") member=$(printf "member_%03d" "$SLURM_ARRAY_TASK_ID") -output=output/$experiment_id/$format_i/$member/model_log.out +output="output/$experiment_id/$format_i/$member/model_log.out" + +experiment_dir = joinpath("experiments", "amip_coupled") +COUPLER_OUTPUT_DIR = joinpath("experiments","$format_i","$member") # Run the forward model srun --output=$output julia --color=no --project=experiments -e " diff --git a/calibration/observation_map.jl b/calibration/observation_map.jl deleted file mode 100644 index 5c2a236a3b..0000000000 --- a/calibration/observation_map.jl +++ /dev/null @@ -1,36 +0,0 @@ -### Place holder for NCEP data from the ClimaCoupler outputs -# - -function observation_map(iteration) - experiment_id = "amip_coupled" - config = YAML.load_file(joinpath("experiments", experiment_id, "ekp_config.yml")) - output_dir = config["output_dir"] - ensemble_size = config["ensemble_size"] - model_output = "wa_inst.nc" - dims = 1 - G_ensemble = Array{Float64}(undef, dims..., ensemble_size) - for m in 1:ensemble_size - member_path = - TOMLInterface.path_to_ensemble_member(output_dir, iteration, m) - ta = ncread(joinpath(member_path, model_output), "wa") - G_ensemble[:, m] = process_member_data(ta) - end - return G_ensemble -end - -function process_member_data(wa; output_variance = false) - # Cut off first 120 days to get equilibrium, take second level slice - level_slice = 2 - wa_second_height = wa[3:size(wa)[1], :, :, level_slice] - # Average over long and latitude - area_avg_wa_second_height = - longitudinal_avg(latitudinal_avg(wa_second_height)) - observation = Float64[area_avg_wa_second_height[3]] - if !(output_variance) - return observation - else - variance = Matrix{Float64}(undef, 1, 1) - variance[1] = var(area_avg_wa_second_height) - return (; observation, variance) - end -end \ No newline at end of file From 64815d871d0b1032b2062981d82a781b044ebf43 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 15 Mar 2024 14:15:42 -0700 Subject: [PATCH 15/23] new file: experiments/amip_coupled/observation_map.jl --- .../amip_coupled/observation_map.jl | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 calibration/experiments/amip_coupled/observation_map.jl diff --git a/calibration/experiments/amip_coupled/observation_map.jl b/calibration/experiments/amip_coupled/observation_map.jl new file mode 100644 index 0000000000..d455b318f9 --- /dev/null +++ b/calibration/experiments/amip_coupled/observation_map.jl @@ -0,0 +1,56 @@ +### Place holder for NCEP data from the ClimaCoupler outputs +# + +function longitudinal_avg(arr) + dims = 2 + for (idx, dim_size) in enumerate(size(arr)) + if dim_size == 180 + dims = idx + end + end + return dropdims(mean(arr; dims); dims) +end + +function latitudinal_avg(arr) + dims = 3 + for (idx, dim_size) in enumerate(size(arr)) + if dim_size == 80 + dims = idx + end + end + return dropdims(mean(arr; dims); dims) +end + +function observation_map(iteration) + experiment_id = "amip_coupled" + config = YAML.load_file(joinpath("experiments", experiment_id, "ekp_config.yml")) + output_dir = config["output_dir"] + ensemble_size = config["ensemble_size"] + model_output = "wa_inst.nc" + dims = 1 + G_ensemble = Array{Float64}(undef, dims..., ensemble_size) + for m in 1:ensemble_size + member_path = + TOMLInterface.path_to_ensemble_member(output_dir, iteration, m) + ta = ncread(joinpath(member_path, model_output), "wa") + G_ensemble[:, m] = process_member_data(ta) + end + return G_ensemble +end + +function process_member_data(wa; output_variance = false) + # Cut off first 120 days to get equilibrium, take second level slice + level_slice = 2 + wa_second_height = wa[3:size(wa)[1], :, :, level_slice] + # Average over long and latitude + area_avg_wa_second_height = + longitudinal_avg(latitudinal_avg(wa_second_height)) + observation = Float64[area_avg_wa_second_height[2]] + if !(output_variance) + return observation + else + variance = Matrix{Float64}(undef, 1, 1) + variance[1] = var(area_avg_wa_second_height) + return (; observation, variance) + end +end From 07d921fa21e382fd6aa14c568be92f643169958f Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 15 Mar 2024 14:31:51 -0700 Subject: [PATCH 16/23] new file: pipeline.jl --- calibration/pipeline.jl | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 calibration/pipeline.jl diff --git a/calibration/pipeline.jl b/calibration/pipeline.jl new file mode 100644 index 0000000000..d146e5d7ff --- /dev/null +++ b/calibration/pipeline.jl @@ -0,0 +1,46 @@ +### Generate synthetic truth datasets +@info "Generating synthetic truth data" +using ClimaComms +import CalibrateAtmos +ClimaComms.init(ClimaComms.context()) +import ClimaCoupler as CCo +import YAML +using NCDatasets +import JLD2 +using Statistics + +experiment_dir = joinpath("experiments", "amip_coupled") +COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") +include("coupler_driver_calibration.jl"); +solve_coupler!(cs); # Integrate the coupled model + + +### Process Observations -> Store in `testdir` +testdir = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/experiments/amip_coupled/truth_simulation/" +wa = NCDataset(joinpath(testdir, "", "wa_inst.nc"))["wa"] +include(joinpath(experiment_dir, "observation_map.jl")) +(; observation, variance) = process_member_data(wa; output_variance = true) +JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) +JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) + +### Run forward model iterations +experiment_id = "amip_coupled" +include("coupler_interface.jl") + +iteration = 1 +format_i = "iteration_$iteration" + +SLURM_ARRAY_TASK_ID = 1 +member = "member_$SLURM_ARRAY_TASK_ID" +output="output/$experiment_id/$format_i/$member/model_log.out" + +experiment_dir = joinpath("experiments", "amip_coupled") +COUPLER_OUTPUT_DIR = joinpath("experiments","$format_i","$member") +coupled_simulation = get_coupler_sim(SLURM_ARRAY_TASK_ID, iteration, "$experiment_id"); +run_forward_model(coupled_simulation); + +### Calibrate + +CalibrateAtmos.calibrate("amip_coupled") + +### Re-run target simulation \ No newline at end of file From 1602e021db514539cce1262769b0fb5eb3abc5fa Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 15 Mar 2024 15:45:37 -0700 Subject: [PATCH 17/23] Update to match ClimaCoupler v0.1.0 release modified: Manifest.toml modified: calibration/Manifest.toml modified: calibration/Project.toml modified: calibration/coupler_component_init.jl modified: calibration/coupler_driver_calibration.jl modified: calibration/coupler_driver_init.jl modified: calibration/coupler_parse_args.jl modified: calibration/pipeline.jl --- Manifest.toml | 351 +++++++++++----------- calibration/Manifest.toml | 219 +++++++------- calibration/Project.toml | 3 +- calibration/coupler_component_init.jl | 182 +++++------ calibration/coupler_driver_calibration.jl | 188 ++++++++++-- calibration/coupler_driver_init.jl | 82 +---- calibration/coupler_parse_args.jl | 55 +++- calibration/pipeline.jl | 2 +- 8 files changed, 593 insertions(+), 489 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index d5af483995..ac9e8bedf8 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,12 +2,12 @@ julia_version = "1.10.0" manifest_format = "2.0" -project_hash = "ba6a9300ddb046bf2deb0e98a14dad33efd2ec5c" +project_hash = "6f5f82aeb657de24ef9e2ba1e1fdf5cf560cf5ea" [[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"] @@ -28,9 +28,9 @@ weakdeps = ["ChainRulesCore", "Test"] [[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] @@ -52,16 +52,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" @@ -69,15 +71,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] @@ -118,9 +122,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] @@ -154,12 +158,6 @@ git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" uuid = "9718e550-a3fa-408a-8086-8db961cd8217" version = "0.1.1" -[[deps.BinaryProvider]] -deps = ["Libdl", "Logging", "SHA"] -git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058" -uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" -version = "0.5.10" - [[deps.BitFlags]] git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" @@ -196,15 +194,9 @@ version = "0.5.0" [[deps.CFTime]] deps = ["Dates", "Printf"] -git-tree-sha1 = "ed2e76c1c3c43fd9d0cb9248674620b29d71f2d1" +git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" -version = "0.1.2" - -[[deps.CLIMAParameters]] -deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "cf4f5ee75576ae855eca7da064540ce40b9a04c1" -uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.8.6" +version = "0.1.3" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] @@ -214,15 +206,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] @@ -243,9 +235,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"] @@ -254,10 +246,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"] @@ -267,31 +259,31 @@ version = "1.63.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "ad25e7d21ce10e01de973cdc68ad0f850a953c52" +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.21.1" +version = "1.23.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] ChainRulesCoreSparseArraysExt = "SparseArrays" [[deps.ClimaAtmos]] -deps = ["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 = "fd438bb44bfdcdf146d70113f67d72a8b2494146" +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.20.1" +version = "0.22.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] -git-tree-sha1 = "57c054ddd4280ca8e2b5915ef1cf1395c4edbc78" +git-tree-sha1 = "f0350e34c91c8f3b5a11b5e39990439303d727b1" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.5.6" +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 = "541bf25a8adc3c7ddf8d45a96149964f5cfbb074" +git-tree-sha1 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.11.9" +version = "0.13.2" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -299,21 +291,31 @@ weakdeps = ["Krylov"] [[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.ClimaLand]] -deps = ["Adapt", "ArtifactWrappers", "CFTime", "CSV", "CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "DataFrames", "Dates", "DocStringExtensions", "Flux", "HTTP", "IntervalSets", "JLD2", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] -git-tree-sha1 = "77a058f6962d15d3c4f259aa716a2e3e079a2ca8" +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 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.8.0" +version = "0.11.0" +weakdeps = ["ClimaParams"] + + [deps.ClimaLand.extensions] + 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 = "216385dda9966d820b484f399b90447f073893a6" +git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.16" +version = "0.7.19" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -322,10 +324,10 @@ uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "0c0be34fad945b95fd3c94cca9003bacae990ccf" +deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.15.2" +version = "0.18.0" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] @@ -380,9 +382,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.12.0" +version = "4.14.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -406,9 +408,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"] @@ -462,9 +464,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.16" +version = "0.18.18" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -500,9 +502,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 = "3089c8295ab6d7c728cd6929121c1b4567457306" +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.147.0" +version = "6.148.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -625,16 +627,16 @@ uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.10" [[deps.FFMPEG]] -deps = ["BinaryProvider", "Libdl"] -git-tree-sha1 = "9143266ba77d3313a4cf61d8333a1970e8c5d8b6" +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.2.4" +version = "0.4.1" [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "ab3f7e1819dba9434a3a5126510c8fda3a4e7000" +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "6.1.1+0" +version = "4.4.4+1" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] @@ -673,9 +675,9 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "0f478d8bad6f52573fb7658a263af61f3d96e43a" +git-tree-sha1 = "fd923962364b645f3719855c88f7074413a6ad92" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "0.5.1" +version = "1.0.2" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] @@ -710,9 +712,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" @@ -732,9 +734,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 = "39a9e46b4e92d5b56c0712adeb507555a2327240" +git-tree-sha1 = "5a626d6ef24ae0a8590c22dc12096fb65eb66325" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.11" +version = "0.14.13" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -754,11 +756,10 @@ git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" -[[deps.Formatting]] -deps = ["Printf"] -git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.2" +[[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"] @@ -795,9 +796,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"] @@ -816,15 +817,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"] @@ -834,15 +835,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"] @@ -863,15 +864,15 @@ 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", "Pkg", "Zlib_jll"] -git-tree-sha1 = "266fe9b2335527cbf569ba4fd0979e3d8c6fd491" +deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Nettle_jll", "P11Kit_jll", "Zlib_jll"] +git-tree-sha1 = "f3c0936dd685d57fa0b1eee7dbebf382b969ea63" uuid = "0951126a-58fd-58f1-b5b3-b08c7c4a876d" -version = "3.7.8+1" +version = "3.8.3+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -902,9 +903,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"] @@ -942,13 +943,13 @@ version = "1.4.0" [[deps.Insolation]] deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "2aaf998568ab59643cefb0fc17eba42f9d5bef37" +git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.0" -weakdeps = ["CLIMAParameters"] +version = "0.9.2" +weakdeps = ["ClimaParams"] [deps.Insolation.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1022,9 +1023,9 @@ version = "0.21.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.1+0" +version = "3.0.2+0" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1040,9 +1041,9 @@ version = "0.2.4" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.16" +version = "0.9.18" weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] @@ -1080,9 +1081,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "9e70165cca7459d25406367f0c55e517a9a7bfe7" +git-tree-sha1 = "7c6650580b4c3169d9905858160db895bff6d2e2" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.5.0" +version = "6.6.1" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1090,9 +1091,9 @@ weakdeps = ["BFloat16s"] [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "114e3a48f13d4c18ddd7fd6a00107b4b96f60f9c" +git-tree-sha1 = "88b916503aac4fb7f701bb625cd84ca5dd1677bc" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.28+0" +version = "0.0.29+0" [[deps.LLVMLoopInfo]] git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" @@ -1126,10 +1127,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" @@ -1145,12 +1146,6 @@ git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" version = "0.1.15" -[[deps.Lazy]] -deps = ["MacroTools"] -git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" -uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" -version = "0.15.1" - [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" @@ -1213,10 +1208,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"] @@ -1225,10 +1220,10 @@ uuid = "89763e89-9b03-5906-acba-b20f662cd828" version = "4.5.1+1" [[deps.Libuuid_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.36.0+0" +version = "2.39.3+1" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] @@ -1242,9 +1237,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LinearOperators]] deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "58e2ca62646a62e18f86253b9c2a2d821c2d934b" +git-tree-sha1 = "f06df3a46255879cbccae1b5b6dcb16994c31be7" uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.6.0" +version = "2.7.0" weakdeps = ["ChainRulesCore"] [deps.LinearOperators.extensions] @@ -1512,9 +1507,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"] @@ -1598,15 +1593,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" @@ -1654,15 +1649,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" @@ -1703,13 +1698,13 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "3493869e9bbe529dfd8dada02b455847bdb46f27" +git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.11.0" -weakdeps = ["CLIMAParameters"] +version = "0.13.1" +weakdeps = ["ClimaParams"] [deps.RRTMGP.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.Random]] deps = ["SHA"] @@ -1717,9 +1712,9 @@ uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[deps.Random123]] deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "c860e84651f58ce240dd79e5d9e055d55234c35a" +git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.2" +version = "1.7.0" [[deps.RandomNumbers]] deps = ["Random", "Requires"] @@ -1757,9 +1752,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "09c906ce9fa905d40e0706cdb62422422091c22f" +git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.8.1" +version = "3.12.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1818,10 +1813,10 @@ uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.0" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "a123011b1711f3449bc4e5d66746be5725af92fd" +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" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.26.0" +version = "2.29.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1843,10 +1838,10 @@ version = "2.26.0" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.SciMLOperators]] -deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] -git-tree-sha1 = "51ae235ff058a64815e0a2c34b1db7578a06813d" +deps = ["ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools", "Setfield", "SparseArrays", "StaticArraysCore"] +git-tree-sha1 = "10499f619ef6e890f3f4a38914481cc868689cd5" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.3.7" +version = "0.3.8" [[deps.Scratch]] deps = ["Dates"] @@ -1950,9 +1945,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" +git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.2" +version = "1.9.3" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -2000,10 +1995,17 @@ uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.4" [[deps.StructArrays]] -deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.17" +version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -2016,18 +2018,19 @@ version = "7.2.1+1" [[deps.SurfaceFluxes]] deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] -git-tree-sha1 = "6431256ee7c06ed2900fd46688f355e5a43e90eb" +git-tree-sha1 = "89c701c87f378ce95e7ddbcd69b8f1106ba8b968" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.9.1" -weakdeps = ["CLIMAParameters"] +version = "0.11.0" +weakdeps = ["ClimaParams"] [deps.SurfaceFluxes.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.SymbolicIndexingInterface]] -git-tree-sha1 = "dc7186d456f9ff2bef0cb754a59758920f0b2382" +deps = ["MacroTools", "RuntimeGeneratedFunctions"] +git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.6" +version = "0.3.11" [[deps.TOML]] deps = ["Dates"] @@ -2086,13 +2089,13 @@ version = "1.0.1" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "090a50e507242bd6c85267645186260fe89a1cfe" +git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.11.7" -weakdeps = ["CLIMAParameters"] +version = "0.12.5" +weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -2107,9 +2110,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] @@ -2248,9 +2251,9 @@ version = "1.6.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.2+0" +version = "2.12.5+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2260,9 +2263,9 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.4.5+0" +version = "5.6.1+0" [[deps.Xorg_libICE_jll]] deps = ["Libdl", "Pkg"] @@ -2473,9 +2476,9 @@ version = "3.1.1+0" [[deps.libaec_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" +git-tree-sha1 = "46bf7be2917b59b761247be3f317ddf75e50e997" uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" -version = "1.0.6+1" +version = "1.1.2+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2514,9 +2517,9 @@ version = "1.18.0+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "873b4f805771d3e4bafe63af759a26ea8ca84d14" +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.42+0" +version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] diff --git a/calibration/Manifest.toml b/calibration/Manifest.toml index 9369531abb..4e9f39bbe6 100644 --- a/calibration/Manifest.toml +++ b/calibration/Manifest.toml @@ -2,12 +2,12 @@ julia_version = "1.10.0" manifest_format = "2.0" -project_hash = "aa02efee4d2f9469568a76d48bedca0313f3f7ac" +project_hash = "9eca76c16371c14b943e5750e123200c4a9b3c96" [[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] @@ -69,16 +69,18 @@ uuid = "68821587-b530-5797-8361-c406ea357684" version = "3.5.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" @@ -86,7 +88,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" @@ -135,9 +139,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] @@ -217,12 +221,6 @@ git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.3" -[[deps.CLIMAParameters]] -deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "cf4f5ee75576ae855eca7da064540ce40b9a04c1" -uuid = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -version = "0.8.6" - [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" @@ -236,10 +234,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] @@ -260,9 +258,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"] @@ -271,10 +269,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.Calculus]] deps = ["LinearAlgebra"] @@ -282,14 +280,6 @@ git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" version = "0.5.1" -[[deps.CalibrateAtmos]] -deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoupler", "Distributions", "EnsembleKalmanProcesses", "JLD2", "LinearAlgebra", "Random", "SciMLBase", "TOML", "YAML"] -git-tree-sha1 = "c975fcf46b461bdfb1b7a2243612befcd4494a1b" -repo-rev = "as/coupler_calibrate" -repo-url = "/Users/akshaysridhar/Research/Codes/CalibrateAtmos.jl" -uuid = "4347a170-ebd6-470c-89d3-5c705c0cacc2" -version = "0.1.0" - [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] git-tree-sha1 = "4e42872be98fa3343c4f8458cbda8c5c6a6fa97c" @@ -307,22 +297,22 @@ weakdeps = ["SparseArrays"] ChainRulesCoreSparseArraysExt = "SparseArrays" [[deps.ClimaAtmos]] -deps = ["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 = "fd438bb44bfdcdf146d70113f67d72a8b2494146" +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.20.1" +version = "0.22.0" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] -git-tree-sha1 = "57c054ddd4280ca8e2b5915ef1cf1395c4edbc78" +git-tree-sha1 = "f0350e34c91c8f3b5a11b5e39990439303d727b1" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.5.6" +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 = "541bf25a8adc3c7ddf8d45a96149964f5cfbb074" +git-tree-sha1 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.11.9" +version = "0.13.2" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -330,9 +320,9 @@ 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"] @@ -341,24 +331,34 @@ uuid = "d934ef94-cdd4-4710-83d6-720549644b70" 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"] -git-tree-sha1 = "cc1c1ddb3f857554ac5f763e347dc0a01b079460" +deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] +git-tree-sha1 = "a63b287dde6ab18b083eeb357b7bb762c32b57a1" repo-rev = "as/calibrate_expt" repo-url = ".." 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", "IntervalSets", "JLD2", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "StatsBase", "SurfaceFluxes", "Thermodynamics", "cuDNN"] -git-tree-sha1 = "77a058f6962d15d3c4f259aa716a2e3e079a2ca8" +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 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.8.0" +version = "0.11.0" +weakdeps = ["ClimaParams"] + + [deps.ClimaLand.extensions] + 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 = "216385dda9966d820b484f399b90447f073893a6" +git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.16" +version = "0.7.19" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -367,10 +367,10 @@ uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.12" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "0c0be34fad945b95fd3c94cca9003bacae990ccf" +deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.15.2" +version = "0.18.0" [[deps.CodecBzip2]] deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] @@ -457,9 +457,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"] @@ -557,9 +557,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 = "3089c8295ab6d7c728cd6929121c1b4567457306" +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.147.0" +version = "6.148.0" [deps.DiffEqBase.extensions] DiffEqBaseChainRulesCoreExt = "ChainRulesCore" @@ -791,9 +791,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" @@ -813,9 +813,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" @@ -875,9 +875,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"] @@ -896,15 +896,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"] @@ -914,15 +914,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"] @@ -949,9 +949,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"] @@ -1034,13 +1034,13 @@ version = "1.4.0" [[deps.Insolation]] deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "2aaf998568ab59643cefb0fc17eba42f9d5bef37" +git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.0" -weakdeps = ["CLIMAParameters"] +version = "0.9.2" +weakdeps = ["ClimaParams"] [deps.Insolation.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1172,9 +1172,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] @@ -1299,10 +1299,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"] @@ -1312,9 +1312,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"] @@ -1714,9 +1714,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" @@ -1770,9 +1770,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"] @@ -1829,13 +1829,13 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "3493869e9bbe529dfd8dada02b455847bdb46f27" +git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.11.0" -weakdeps = ["CLIMAParameters"] +version = "0.13.1" +weakdeps = ["ClimaParams"] [deps.RRTMGP.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.Random]] deps = ["SHA"] @@ -1883,9 +1883,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" @@ -1974,10 +1974,10 @@ uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.0" [[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FillArrays", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "16dd1ea058e1c080d7f1ba47a9094f87a1c50e4c" +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" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.26.2" +version = "2.29.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2193,18 +2193,19 @@ version = "7.2.1+1" [[deps.SurfaceFluxes]] deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] -git-tree-sha1 = "6431256ee7c06ed2900fd46688f355e5a43e90eb" +git-tree-sha1 = "89c701c87f378ce95e7ddbcd69b8f1106ba8b968" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.9.1" -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"] @@ -2263,13 +2264,13 @@ version = "1.0.1" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "090a50e507242bd6c85267645186260fe89a1cfe" +git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.11.7" -weakdeps = ["CLIMAParameters"] +version = "0.12.5" +weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] - CreateParametersExt = "CLIMAParameters" + CreateParametersExt = "ClimaParams" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -2442,9 +2443,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"] @@ -2696,9 +2697,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/calibration/Project.toml b/calibration/Project.toml index 0b0817bd2a..b67840e8db 100644 --- a/calibration/Project.toml +++ b/calibration/Project.toml @@ -1,14 +1,13 @@ [deps] ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" -CalibrateAtmos = "4347a170-ebd6-470c-89d3-5c705c0cacc2" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" 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" EnsembleKalmanProcesses = "aa8a2aa5-91d8-4396-bcef-d4f2ec43552d" Insolation = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" diff --git a/calibration/coupler_component_init.jl b/calibration/coupler_component_init.jl index c90e8625a7..0505a2f79c 100644 --- a/calibration/coupler_component_init.jl +++ b/calibration/coupler_component_init.jl @@ -1,23 +1,46 @@ +#= +## Data File Paths +The data files are downloaded from the `ClimaCoupler` artifacts directory. If the data files are not present, they are downloaded from the +original sources. +=# -# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) sst_data = joinpath(sst_dataset_path(), "sst.nc") sic_data = joinpath(sic_dataset_path(), "sic.nc") co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") +#= +## Component Model Initialization +Here we set initial and boundary conditions for each component model. Each component model is required to have an `init` function that +returns a `ComponentModelSimulation` object (see `Interfacer` docs for more details). +=# + +#= +### Atmosphere +This uses the `ClimaAtmos.jl` model, with parameterization options specified in the `config_dict_atmos` dictionary. +=# + +## init atmos model component atmos_sim = atmos_init(FT, config_dict_atmos); -thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models #610 #= +### Boundary Space We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution. =# + ## init a 2D boundary space at the surface -boundary_space = Spaces.horizontal_space(atmos_sim.domain.face_space) +boundary_space = ClimaCore.Spaces.horizontal_space(atmos_sim.domain.face_space) # TODO: specify this in the coupler and pass it to all component models #665 + +#= +### Land-sea Fraction +This is a static field that contains the area fraction of land and sea, ranging from 0 to 1. If applicable, sea ice is included in the sea fraction. at this stage. +Note that land-sea area fraction is different to the land-sea mask, which is a binary field (masks are used internally by the coupler to indicate passive cells that are not populated by a given component model). +=# -# init land-sea fraction land_fraction = FT.( Regridder.land_fraction( @@ -31,18 +54,31 @@ land_fraction = ) ) -@info mode_name +#= +### Surface Models: AMIP and SlabPlanet Modes +Both modes evolve `ClimaLand.jl`'s bucket model. + +In the `AMIP` mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed +SIC and assuming a 2m thickness of the ice. + +In the `SlabPlanet` mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters. We have several `SlabPlanet` versions +- `slabplanet` = land + slab ocean +- `slabplanet_aqua` = slab ocean everywhere +- `slabplanet_terra` = land everywhere +- `slabplanet_eisenman` = land + slab ocean + slab sea ice with an evolving thickness +=# + +ClimaComms.iamroot(comms_ctx) ? @info(mode_name) : nothing if mode_name == "amip" - @info "AMIP boundary conditions - do not expect energy conservation" + ClimaComms.iamroot(comms_ctx) ? @info("AMIP boundary conditions - do not expect energy conservation") : nothing - ## land + ## land model land_sim = bucket_init( FT, tspan, config_dict["land_domain_type"], config_dict["land_albedo_type"], config_dict["land_temperature_anomaly"], - comms_ctx, REGRID_DIR; dt = Δt_cpl, space = boundary_space, @@ -52,7 +88,7 @@ if mode_name == "amip" t_start = t_start, ) - ## ocean + ## ocean stub SST_info = bcfile_info_init( FT, REGRID_DIR, @@ -61,7 +97,7 @@ if mode_name == "amip" boundary_space, comms_ctx, interpolate_daily = true, - scaling_function = clean_sst, ## convert to Kelvin + scaling_function = scale_sst, ## convert to Kelvin land_fraction = land_fraction, date0 = date0, mono = mono_surface, @@ -81,7 +117,7 @@ if mode_name == "amip" thermo_params = thermo_params, )) - ## sea ice + ## sea ice model SIC_info = bcfile_info_init( FT, REGRID_DIR, @@ -90,7 +126,7 @@ if mode_name == "amip" boundary_space, comms_ctx, interpolate_daily = true, - scaling_function = clean_sic, ## convert to fraction + scaling_function = scale_sic, ## convert to fraction land_fraction = land_fraction, date0 = date0, mono = mono_surface, @@ -108,7 +144,7 @@ if mode_name == "amip" thermo_params = thermo_params, ) - ## CO2 concentration + ## CO2 concentration from temporally varying file CO2_info = bcfile_info_init( FT, REGRID_DIR, @@ -124,23 +160,23 @@ if mode_name == "amip" update_midmonth_data!(date0, CO2_info) CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) - update_field!(atmos_sim, Val(:co2_gm), CO2_init) + update_field!(atmos_sim, Val(:co2), CO2_init) mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") + land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction - ## land + ## land model land_sim = bucket_init( FT, tspan, config_dict["land_domain_type"], config_dict["land_albedo_type"], config_dict["land_temperature_anomaly"], - comms_ctx, REGRID_DIR; dt = Δt_cpl, space = boundary_space, @@ -150,7 +186,7 @@ elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") t_start = t_start, ) - ## ocean + ## ocean model ocean_sim = ocean_init( FT; tspan = tspan, @@ -162,7 +198,7 @@ elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") evolving = evolving_ocean, ) - ## sea ice (here set to zero area coverage) + ## sea ice stub (here set to zero area coverage) ice_sim = SurfaceStub((; T_sfc = ClimaCore.Fields.ones(boundary_space), ρ_sfc = ClimaCore.Fields.zeros(boundary_space), @@ -176,82 +212,46 @@ elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") )) mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) -end - -#= -## Coupler Initialization -The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally -save online diagnostics. These are all initialized here and saved in a global `CouplerSimulation` struct, `cs`. -=# -## coupler exchange fields -coupler_field_names = ( - :T_S, - :z0m_S, - :z0b_S, - :ρ_sfc, - :q_sfc, - :albedo, - :beta, - :F_turb_energy, - :F_turb_moisture, - :F_turb_ρτxz, - :F_turb_ρτyz, - :F_radiative, - :P_liq, - :P_snow, - :F_radiative_TOA, - :P_net, -) -coupler_fields = - NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) +elseif mode_name == "slabplanet_eisenman" -## model simulations -model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); - -## dates -dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) - -#= -### Online Diagnostics -User can write custom diagnostics in the `user_diagnostics.jl`. -=# -monthly_3d_diags = init_diagnostics( - (:T, :u, :q_tot, :q_liq_ice), - atmos_sim.domain.center_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_3d_", -) - -monthly_2d_diags = init_diagnostics( - (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), - boundary_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_2d_", -) + ## land model + land_sim = bucket_init( + FT, + tspan, + config_dict["land_domain_type"], + config_dict["land_albedo_type"], + config_dict["land_temperature_anomaly"], + REGRID_DIR; + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = land_fraction, + date_ref = date0, + t_start = t_start, + ) -diagnostics = (monthly_3d_diags, monthly_2d_diags) + ## ocean stub (here set to zero area coverage) + ocean_sim = ocean_init( + FT; + tspan = tspan, + dt = Δt_cpl, + space = boundary_space, + saveat = saveat, + area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below + thermo_params = thermo_params, + ) -#= -## Initialize Conservation Checks -=# -## init conservation info collector -conservation_checks = nothing -if energy_check - @assert( - mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), - "Only non-distributed slabplanet allowable for energy_check" + ## sea ice + ocean model + ice_sim = eisenman_seaice_init( + FT, + tspan, + space = boundary_space, + area_fraction = (FT(1) .- land_fraction), + dt = Δt_cpl, + saveat = saveat, + thermo_params = thermo_params, ) - conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) -end -dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) -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) # for BCReader -callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) + mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) +end \ No newline at end of file diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl index 377434a7fb..35e77d5c7e 100644 --- a/calibration/coupler_driver_calibration.jl +++ b/calibration/coupler_driver_calibration.jl @@ -1,8 +1,117 @@ + include("coupler_driver_init.jl") include("coupler_parse_args.jl") - include("coupler_component_init.jl") -cs = ClimaCoupler.Interfacer.CoupledSimulation{FT}( + +#= +## Coupler Initialization +The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally +save online diagnostics. These are all initialized here and saved in a global `CoupledSimulation` struct, `cs`. +=# + +## coupler exchange fields +coupler_field_names = ( + :T_S, + :z0m_S, + :z0b_S, + :ρ_sfc, + :q_sfc, + :surface_albedo, + :beta, + :F_turb_energy, + :F_turb_moisture, + :F_turb_ρτxz, + :F_turb_ρτyz, + :F_radiative, + :P_liq, + :P_snow, + :radiative_energy_flux_toa, + :P_net, +) +coupler_fields = + NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) + +## model simulations +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); + +## dates +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) + +#= +### Online Diagnostics +User can write custom diagnostics in the `user_diagnostics.jl`. +Note, this will be replaced by the diagnostics framework currently in ClimaAtmos, once it is abstracted +into a more general package, so we can use it to save fields from surface models. +=# + +monthly_3d_diags = init_diagnostics( + (:T, :u, :q_tot, :q_liq_ice), + atmos_sim.domain.center_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_3d_", +) + +monthly_2d_diags = init_diagnostics( + (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), + boundary_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_2d_", +) + +diagnostics = (monthly_3d_diags, monthly_2d_diags) + +#= +## Initialize Conservation Checks + +The conservation checks are used to monitor the global energy and water conservation of the coupled system. The checks are only +applicable to the `slabplanet` mode, as the `amip` mode is not a closed system. The conservation checks are initialized here and +saved in a global `ConservationChecks` struct, `conservation_checks`. +=# + +## init conservation info collector +conservation_checks = nothing +if energy_check + @assert( + mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), + "Only non-distributed slabplanet allowable for energy_check" + ) + conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) +end + +#= +## Initialize Callbacks +Callbacks are used to update at a specified interval. The callbacks are initialized here and +saved in a global `Callbacks` struct, `callbacks`. The `trigger_callback!` function is used to call the callback during the simulation below. + +The frequency of the callbacks is specified in the `HourlyCallback` and `MonthlyCallback` structs. The `func` field specifies the function to be called, +the `ref_date` field specifies the reference (first) date for the callback, and the `active` field specifies whether the callback is active or not. + +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). +=# + +## 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) + +#= +## Initialize Coupled Simulation + +The coupled simulation is initialized here and saved in a global `CoupledSimulation` struct, `cs`. It contains all the information +required to run the coupled simulation, including the communication context, the dates, the boundary space, the coupler fields, the +configuration dictionary, the conservation checks, the time span, the time step, the land fraction, the model simulations, the mode +specifics, the diagnostics, the callbacks, and the directory paths. +=# + +cs = CoupledSimulation{FT}( comms_ctx, dates, boundary_space, @@ -20,6 +129,30 @@ cs = ClimaCoupler.Interfacer.CoupledSimulation{FT}( dir_paths, ); + +#= +## Restart component model states if specified +If a restart directory is specified and contains output files from the `checkpoint_cb` callback, the component model states are restarted from those files. The restart directory +is specified in the `config_dict` dictionary. The `restart_t` field specifies the time step at which the restart is performed. +=# + +if restart_dir !== "unspecified" + for sim in cs.model_sims + if get_model_prog_state(sim) !== nothing + restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) + end + end +end + +#= +## Initialize Component Model Exchange + +We need to ensure all models' initial conditions are shared to enable the coupler to calculate the first instance of surface fluxes. Some auxiliary variables (namely surface humidity and radiation fluxes) +depend on initial conditions of other component models than those in which the variables are calculated, which is why we need to step these models in time and/or reinitialize them. +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() @@ -29,38 +162,43 @@ else error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes") end -# 1) coupler combines surface states and calculates rho_sfc using surface and atmos variables +# 2.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. +# 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) -# 2) each surface component model calculates its own vapor specific humidity (q_sfc) -# TODO: the q_sfc calculation follows the design of the bucket q_sfc, but it would be neater to abstract this from step! +# 4.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) -# 3) coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions +# 5.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 - # calculate fluxes using combined surface states on the atmos grid + ## 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 + ## 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 - # calculate turbulent fluxes in surface models and save the weighted average in coupler fields + ## 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) - # update atmos sfc_conditions for surface temperature - # TODO: this is hard coded and needs to be simplified (need CA modification) + ## update atmos sfc_conditions for surface temperature + ## TODO: this is hard coded and needs to be simplified (req. CA modification) (#479) new_p = get_new_cache(atmos_sim, cs.fields) - CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) ## sets T_sfc (but SF calculation not necessary - requires split functionality in CA) atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions end -# 4) given the new sfc_conditions, atmos calls the radiative flux callback -reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux +# 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) +reinit_model_sims!(cs.model_sims) -# 5) coupler re-imports updated atmos fluxes (radiative fluxes for both `turbulent_fluxes` types +# 7.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. @@ -69,9 +207,13 @@ update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes) #= ## Coupling Loop + +The coupling loop is the main part of the simulation. It runs the component models sequentially for one coupling timestep (`Δt_cpl`), and exchanges combined fields and calculates fluxes using combined states. +Note that we want to implement this in a dispatchable function to allow for other forms of timestepping (e.g. leapfrog). (TODO: #610) =# -function solve_coupler!(cs::ClimaCoupler.Interfacer.CoupledSimulation) - @info "Starting coupling loop" + +function solve_coupler!(cs) + ClimaComms.iamroot(comms_ctx) ? @info("Starting coupling loop") : nothing (; model_sims, Δt_cpl, tspan) = cs (; atmos_sim, land_sim, ocean_sim, ice_sim) = model_sims @@ -79,7 +221,7 @@ function solve_coupler!(cs::ClimaCoupler.Interfacer.CoupledSimulation) ## step in time walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) - cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated. + cs.dates.date[1] = current_date(cs, t) ## print date on the first of month if cs.dates.date[1] >= cs.dates.date1[1] @@ -106,7 +248,7 @@ function solve_coupler!(cs::ClimaCoupler.Interfacer.CoupledSimulation) update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info) end CO2_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.CO2_info) - update_field!(atmos_sim, Val(:co2_gm), CO2_current) + update_field!(atmos_sim, Val(:co2), CO2_current) ## calculate and accumulate diagnostics at each timestep ClimaComms.barrier(comms_ctx) @@ -129,14 +271,14 @@ function solve_coupler!(cs::ClimaCoupler.Interfacer.CoupledSimulation) 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, albedo, z0, beta + 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 - # calculate turbulent fluxes in surfaces and save the weighted average in coupler fields + ## 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) - # update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification) + ## 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) CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification) atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions @@ -151,7 +293,7 @@ function solve_coupler!(cs::ClimaCoupler.Interfacer.CoupledSimulation) trigger_callback!(cs, cs.callbacks.checkpoint) end - @show walltime + ClimaComms.iamroot(comms_ctx) ? @show(walltime) : nothing return cs -end +end \ No newline at end of file diff --git a/calibration/coupler_driver_init.jl b/calibration/coupler_driver_init.jl index 806a83ae1c..daea9cde3b 100644 --- a/calibration/coupler_driver_init.jl +++ b/calibration/coupler_driver_init.jl @@ -1,77 +1,9 @@ -redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) +include("../experiments/AMIP/components/atmosphere/climaatmos.jl") +include("../experiments/AMIP/components/land/climaland_bucket.jl") +include("../experiments/AMIP/components/ocean/slab_ocean.jl") +include("../experiments/AMIP/components/ocean/prescr_seaice.jl") +include("../experiments/AMIP/components/ocean/eisenman_seaice.jl") -using ClimaComms -comms_ctx = ClimaComms.context() -const pid, nprocs = ClimaComms.init(comms_ctx) - - -import SciMLBase: ODEProblem, solve, step!, init, reinit! -using LinearAlgebra -import Test: @test -using Dates -using Plots -using Statistics: mean -import ClimaAtmos as CA -import YAML - -using ClimaCore.Utilities: half, PlusHalf -using ClimaCore: InputOutput, Fields -import ClimaCore.Spaces as Spaces - -## coupler specific imports -import ClimaCoupler -import ClimaCoupler.Regridder -import ClimaCoupler.Regridder: - update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask -import ClimaCoupler.ConservationChecker: - EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation -import ClimaCoupler.Utilities: swap_space! -import ClimaCoupler.BCReader: - bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily -import ClimaCoupler.TimeManager: - current_date, - datetime_to_strdate, - trigger_callback, - Monthly, - EveryTimestep, - HourlyCallback, - MonthlyCallback, - update_firstdayofmonth!, - trigger_callback! -import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean -import ClimaCoupler.PostProcessor: postprocess - -import ClimaCoupler.Interfacer: - CoupledSimulation, - float_type, - AtmosModelSimulation, - SurfaceModelSimulation, - SurfaceStub, - SeaIceModelSimulation, - LandModelSimulation, - OceanModelSimulation, - get_field, - update_field! -import ClimaCoupler.FluxCalculator: - PartitionedStateFluxes, - CombinedStateFluxes, - combined_turbulent_fluxes!, - MoninObukhovScheme, - partitioned_turbulent_fluxes! -import ClimaCoupler.FieldExchanger: - import_atmos_fields!, - import_combined_surface_fields!, - update_sim!, - update_model_sims!, - reinit_model_sims!, - step_model_sims! -import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state! - -## helpers for component models -include("../experiments/AMIP/components/atmosphere/climaatmos_init.jl") -include("../experiments/AMIP/components/land/bucket_init.jl") -include("../experiments/AMIP/components/land/bucket_utils.jl") -include("../experiments/AMIP/components/ocean/slab_ocean_init.jl") -include("../experiments/AMIP/components/ocean/prescr_seaice_init.jl") +## helper../experiments/AMIP/s for user-specified IO include("../experiments/AMIP/user_io/user_diagnostics.jl") -include("../experiments/AMIP/user_io/user_logging.jl") +include("../experiments/AMIP/user_io/user_logging.jl") \ No newline at end of file diff --git a/calibration/coupler_parse_args.jl b/calibration/coupler_parse_args.jl index aa5a76513a..fd60efa258 100644 --- a/calibration/coupler_parse_args.jl +++ b/calibration/coupler_parse_args.jl @@ -1,20 +1,27 @@ -## coupler defaults -# get component model dictionaries +#= +### Configuration Dictionaries +Each simulation mode has its own configuration dictionary. The `config_dict` of each simulation is a merge of the default configuration +dictionary and the simulation-specific configuration dictionary, which allows the user to override the default settings. + +We can additionally pass the configuration dictionary to the component model initializers, which will then override the default settings of the component models. +=# + +## coupler simulation default configuration include("../experiments/AMIP/cli_options.jl") parsed_args = parse_commandline(argparse_settings()) -config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") + +## read in config dictionary from file, overriding the coupler defaults config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")); -config_dict["t_end"] = "150secs"; -config_dict["output_dir"] = COUPLER_OUTPUT_DIR; config_dict = merge(parsed_args, config_dict) + +## get component model dictionaries (if applicable) config_dict_atmos = get_atmos_config(config_dict) -# merge dictionaries of command line arguments, coupler dictionary and component model dictionaries -# (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) +## merge dictionaries of command line arguments, coupler dictionary and component model dictionaries +## (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) config_dict = merge(config_dict_atmos, config_dict) - -## read in some parsed command line arguments +## read in some parsed command line arguments, required by this script mode_name = config_dict["mode_name"] run_name = config_dict["run_name"] energy_check = config_dict["energy_check"] @@ -25,15 +32,31 @@ t_start = 0.0 tspan = (t_start, t_end) Δt_cpl = Float64(config_dict["dt_cpl"]) saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) -date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd") +date0 = date = DateTime(config_dict["start_date"], "yyyymmdd") mono_surface = config_dict["mono_surface"] 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"] -config_dict["print_config_dict"] = false -## I/O directory setup +#= +## Setup Communication Context +We set up communication context for CPU single thread/CPU with MPI/GPU. If no device is passed to `ClimaComms.context()` +then `ClimaComms` automatically selects the device from which this code is called. +=# + +using ClimaComms +comms_ctx = ClimaCoupler.Utilities.get_comms_context(parsed_args) +const pid, nprocs = ClimaComms.init(comms_ctx) + +#= +### I/O Directory Setup +`COUPLER_OUTPUT_DIR` is the directory where the output of the simulation will be saved, and `COUPLER_ARTIFACTS_DIR` is the directory where +the plots (from postprocessing and the conservation checks) of the simulation will be saved. `REGRID_DIR` is the directory where the regridding +temporary files will be saved. +=# + +COUPLER_OUTPUT_DIR = joinpath(config_dict["coupler_output_dir"], joinpath(mode_name, run_name)) mkpath(COUPLER_OUTPUT_DIR) REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") @@ -42,5 +65,9 @@ mkpath(REGRID_DIR) COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) -config_dict["print_config_dict"] ? @info(config_dict) : nothing -config_dict_atmos["output_dir"] = COUPLER_OUTPUT_DIR +dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) + +if ClimaComms.iamroot(comms_ctx) + @info(COUPLER_OUTPUT_DIR) + config_dict["print_config_dict"] ? @info(config_dict) : nothing +end diff --git a/calibration/pipeline.jl b/calibration/pipeline.jl index d146e5d7ff..075e3fd0e1 100644 --- a/calibration/pipeline.jl +++ b/calibration/pipeline.jl @@ -3,7 +3,7 @@ using ClimaComms import CalibrateAtmos ClimaComms.init(ClimaComms.context()) -import ClimaCoupler as CCo +import ClimaCoupler import YAML using NCDatasets import JLD2 From 51cd3fe81a92aeadff1d4ab58ce227e1de22158b Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 15 Mar 2024 16:18:46 -0700 Subject: [PATCH 18/23] modified: Manifest.toml --- calibration/Manifest.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/calibration/Manifest.toml b/calibration/Manifest.toml index 4e9f39bbe6..b52bce405b 100644 --- a/calibration/Manifest.toml +++ b/calibration/Manifest.toml @@ -332,7 +332,7 @@ version = "0.3.14" [[deps.ClimaCoupler]] deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] -git-tree-sha1 = "a63b287dde6ab18b083eeb357b7bb762c32b57a1" +git-tree-sha1 = "7f6cf69babf77b7a387aff2f72720526be1fead5" repo-rev = "as/calibrate_expt" repo-url = ".." uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" From 92b69ef8231ba5ead626773c9472e3ab5a9dfb68 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 22 Mar 2024 10:47:01 -0700 Subject: [PATCH 19/23] working with local branches (compat relaxed in climaland) modified: ../Manifest.toml modified: Manifest.toml modified: Project.toml --- Manifest.toml | 27 +-- calibration/Manifest.toml | 389 +++++++++++++++++++++++++++++--------- calibration/Project.toml | 1 + 3 files changed, 321 insertions(+), 96 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index ac9e8bedf8..7d402a7d4e 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -122,9 +122,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "fe7ed7b33416db994f706f66e31bbd1b378f71b7" +git-tree-sha1 = "c946c5014cf4cdbfacacb363b110e7bffba3e742" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.6.0" +version = "1.6.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -681,9 +681,9 @@ version = "1.0.2" [[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.FilePathsBase]] deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] @@ -903,9 +903,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"] @@ -1813,10 +1813,10 @@ uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.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" @@ -1843,6 +1843,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" @@ -2110,9 +2115,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] diff --git a/calibration/Manifest.toml b/calibration/Manifest.toml index b52bce405b..5b4ad50906 100644 --- a/calibration/Manifest.toml +++ b/calibration/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.10.0" manifest_format = "2.0" -project_hash = "9eca76c16371c14b943e5750e123200c4a9b3c96" +project_hash = "c13b8d5f8a8478ad1ef794c8ad8d04e39e26e277" [[deps.ADTypes]] git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" @@ -26,6 +26,12 @@ weakdeps = ["ChainRulesCore", "Test"] AbstractFFTsChainRulesCoreExt = "ChainRulesCore" AbstractFFTsTestExt = "Test" +[[deps.AbstractMCMC]] +deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] +git-tree-sha1 = "87e63dcb990029346b091b170252f3c416568afc" +uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" +version = "4.4.2" + [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" @@ -33,14 +39,26 @@ version = "0.4.5" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" +git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.0.3" +version = "4.0.4" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" +[[deps.AdvancedMH]] +deps = ["AbstractMCMC", "Distributions", "FillArrays", "LinearAlgebra", "LogDensityProblems", "Random", "Requires"] +git-tree-sha1 = "b2a1602952739e589cf5e2daff1274a49f22c9a4" +uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" +version = "0.7.5" +weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] + + [deps.AdvancedMH.extensions] + AdvancedMHForwardDiffExt = ["DiffResults", "ForwardDiff"] + AdvancedMHMCMCChainsExt = "MCMCChains" + AdvancedMHStructArraysExt = "StructArrays" + [[deps.ArgCheck]] git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" @@ -96,9 +114,9 @@ version = "7.9.0" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" +git-tree-sha1 = "6404a564c24a994814106c374bec893195e19bac" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.6.1" +version = "1.8.0" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -131,6 +149,12 @@ git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" version = "1.1.0" +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + [[deps.BFloat16s]] deps = ["LinearAlgebra", "Printf", "Random", "Test"] git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" @@ -139,9 +163,9 @@ version = "0.4.2" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "fe7ed7b33416db994f706f66e31bbd1b378f71b7" +git-tree-sha1 = "c946c5014cf4cdbfacacb363b110e7bffba3e742" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.6.0" +version = "1.6.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -194,9 +218,9 @@ version = "0.1.5" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" +git-tree-sha1 = "3c62e3006c23082d2ae524b468298d27788a8502" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.39" +version = "0.16.40" [[deps.Blosc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] @@ -274,11 +298,17 @@ git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.18.0+1" -[[deps.Calculus]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" -uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" -version = "0.5.1" +[[deps.CalibrateAtmos]] +deps = ["CalibrateEmulateSample", "ClimaComms", "ClimaParams", "Distributions", "EnsembleKalmanProcesses", "JLD2", "PrecompileTools", "Random", "SciMLBase", "TOML", "YAML"] +path = "/Users/akshaysridhar/Research/Codes/CalibrateAtmos.jl" +uuid = "4347a170-ebd6-470c-89d3-5c705c0cacc2" +version = "0.1.0" + +[[deps.CalibrateEmulateSample]] +deps = ["AbstractMCMC", "AdvancedMH", "Conda", "Distributions", "DocStringExtensions", "EnsembleKalmanProcesses", "GaussianProcesses", "LinearAlgebra", "MCMCChains", "Pkg", "Printf", "ProgressBars", "PyCall", "Random", "RandomFeatures", "ScikitLearn", "StableRNGs", "Statistics", "StatsBase"] +git-tree-sha1 = "5fbe0e8be41107e4470cea36092a6c7b082c67d8" +uuid = "95e48a1f-0bec-4818-9538-3db4340308e3" +version = "0.5.0" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] @@ -310,9 +340,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 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" +git-tree-sha1 = "3c8ba2a248d30aaa7f0e72a3516b142521447377" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.13.2" +version = "0.13.3" weakdeps = ["Krylov"] [deps.ClimaCore.extensions] @@ -332,15 +362,13 @@ version = "0.3.14" [[deps.ClimaCoupler]] deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] -git-tree-sha1 = "7f6cf69babf77b7a387aff2f72720526be1fead5" -repo-rev = "as/calibrate_expt" -repo-url = ".." +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 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" +path = "/Users/akshaysridhar/Research/Codes/ClimaLand.jl" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" version = "0.11.0" weakdeps = ["ClimaParams"] @@ -448,24 +476,34 @@ version = "1.0.5+1" git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" version = "0.1.2" +weakdeps = ["InverseFunctions"] [deps.CompositionsBase.extensions] CompositionsBaseInverseFunctionsExt = "InverseFunctions" - [deps.CompositionsBase.weakdeps] - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" - [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.4.1" +[[deps.Conda]] +deps = ["Downloads", "JSON", "VersionParsing"] +git-tree-sha1 = "51cab8e982c5b598eea9c8ceaced4b58d9dd37c9" +uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" +version = "1.10.0" + +[[deps.ConsoleProgressMonitor]] +deps = ["Logging", "ProgressMeter"] +git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" +uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" +version = "0.1.2" + [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.4" +version = "1.5.5" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] @@ -655,11 +693,17 @@ deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" -[[deps.DualNumbers]] -deps = ["Calculus", "NaNMath", "SpecialFunctions"] -git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" -uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" -version = "0.6.8" +[[deps.ElasticArrays]] +deps = ["Adapt"] +git-tree-sha1 = "75e5697f521c9ab89816d3abeea806dfc5afb967" +uuid = "fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4" +version = "1.2.12" + +[[deps.ElasticPDMats]] +deps = ["LinearAlgebra", "MacroTools", "PDMats"] +git-tree-sha1 = "5157c93fe9431a041e4cd84265dfce3d53a52323" +uuid = "2904ab23-551e-5aed-883f-487f97af5226" +version = "0.2.2" [[deps.Elliptic]] git-tree-sha1 = "71c79e77221ab3a29918aaf6db4f217b89138608" @@ -758,15 +802,15 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "0f478d8bad6f52573fb7658a263af61f3d96e43a" +git-tree-sha1 = "58d83dd5a78a36205bdfddb82b1bb67682e64487" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "0.5.1" +version = "0.4.9" [[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.FilePathsBase]] deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] @@ -779,13 +823,12 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra", "Random"] -git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.9.3" -weakdeps = ["PDMats", "SparseArrays", "Statistics"] +version = "1.7.0" +weakdeps = ["SparseArrays", "Statistics"] [deps.FillArrays.extensions] - FillArraysPDMatsExt = "PDMats" FillArraysSparseArraysExt = "SparseArrays" FillArraysStatisticsExt = "Statistics" @@ -813,9 +856,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 = "a5475163b611812d073171583982c42ea48d22b0" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.13" +version = "0.14.15" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -840,6 +883,12 @@ git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" version = "1.3.6" +[[deps.Formatting]] +deps = ["Logging", "Printf"] +git-tree-sha1 = "fb409abab2caf118986fc597ba84b50cbaf00b87" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.3" + [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" @@ -930,11 +979,17 @@ git-tree-sha1 = "eb6f1f48aa994f3018cbd029a17863c6535a266d" uuid = "d54b0c1a-921d-58e0-8e36-89d8069c0969" version = "0.5.8" +[[deps.GaussianProcesses]] +deps = ["Distances", "Distributions", "ElasticArrays", "ElasticPDMats", "FastGaussQuadrature", "ForwardDiff", "LinearAlgebra", "Optim", "PDMats", "Printf", "ProgressMeter", "Random", "RecipesBase", "ScikitLearnBase", "SpecialFunctions", "StaticArrays", "Statistics", "StatsFuns"] +git-tree-sha1 = "31749ff6868caf6dd50902eec652a724071dbed3" +uuid = "891a1506-143c-57d2-908e-e1f8e92e6de9" +version = "0.12.5" + [[deps.GaussianRandomFields]] -deps = ["Arpack", "FFTW", "FastGaussQuadrature", "LinearAlgebra", "Random", "RecipesBase", "SpecialFunctions", "Statistics", "StatsBase"] -git-tree-sha1 = "055849d7a602c31eda477a0b0b86c9473a3e4fb9" +deps = ["Arpack", "FFTW", "FastGaussQuadrature", "LinearAlgebra", "RecipesBase", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "d9c335f2c06424029b2addf9abf602e0feb2f53e" uuid = "e4b2fa32-6e09-5554-b718-106ed5adafe9" -version = "2.2.4" +version = "2.1.6" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] @@ -988,9 +1043,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"] @@ -998,18 +1053,18 @@ git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.16" + [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" version = "2.10.0+0" -[[deps.HypergeometricFunctions]] -deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" -uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.23" - [[deps.IRTools]] deps = ["InteractiveUtils", "MacroTools", "Test"] git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" @@ -1073,15 +1128,30 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] IntervalSetsRecipesBaseExt = "RecipesBase" IntervalSetsStatisticsExt = "Statistics" +[[deps.InverseFunctions]] +deps = ["Test"] +git-tree-sha1 = "896385798a8d49a255c398bd49162062e4a4c435" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.13" +weakdeps = ["Dates"] + + [deps.InverseFunctions.extensions] + DatesExt = "Dates" + [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" version = "1.3.0" [[deps.IrrationalConstants]] -git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.2" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -1140,6 +1210,12 @@ weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "fee018a29b60733876eb557804b5b109dd3dd8a7" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.8" + [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" @@ -1172,9 +1248,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "7c6650580b4c3169d9905858160db895bff6d2e2" +git-tree-sha1 = "ab01dde107f21aa76144d0771dccc08f152ccac7" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.6.1" +version = "6.6.2" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1241,6 +1317,12 @@ version = "0.1.15" deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +[[deps.LeftChildRightSiblingTrees]] +deps = ["AbstractTrees"] +git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" +uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" +version = "0.2.0" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -1336,6 +1418,12 @@ weakdeps = ["ChainRulesCore"] [deps.LinearOperators.extensions] LinearOperatorsChainRulesCoreExt = "ChainRulesCore" +[[deps.LogDensityProblems]] +deps = ["ArgCheck", "DocStringExtensions", "Random"] +git-tree-sha1 = "f9a11237204bc137617194d79d813069838fcf61" +uuid = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" +version = "2.1.1" + [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" @@ -1361,18 +1449,47 @@ git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.3" +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.166" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + [[deps.Lz4_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" version = "1.9.4+0" +[[deps.MCMCChains]] +deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "Formatting", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Serialization", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] +git-tree-sha1 = "c659f7508035a7bdd5102aef2de028ab035f289a" +uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" +version = "5.7.1" + +[[deps.MCMCDiagnosticTools]] +deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "Tables"] +git-tree-sha1 = "d1737c39191aa26f42a64e320de313f1d1fd74b1" +uuid = "be115224-59cd-429b-ad48-344e309966f0" +version = "0.2.1" + [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2024.0.0+0" +[[deps.MLJModelInterface]] +deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] +git-tree-sha1 = "14bd8088cf7cd1676aa83a57004f8d23d43cd81e" +uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" +version = "1.9.5" + [[deps.MLStyle]] git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" uuid = "d8e11817-5142-5d16-987a-aa16d5891078" @@ -1549,6 +1666,11 @@ git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" version = "0.1.5" +[[deps.NaturalSort]] +git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" +uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +version = "1.0.0" + [[deps.NetCDF_jll]] deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenMPI_jll", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] git-tree-sha1 = "a8af1798e4eb9ff768ce7fdefc0e957097793f15" @@ -1627,10 +1749,14 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[deps.Optim]] -deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "MathOptInterface", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] -git-tree-sha1 = "d024bfb56144d947d4fafcd9cb5cafbe3410b133" +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "PackageExtensionCompat", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "d1223e69af90b6d26cea5b6f3b289b3148ba702c" uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.9.2" +version = "1.9.3" +weakdeps = ["MathOptInterface"] + + [deps.Optim.extensions] + OptimMOIExt = "MathOptInterface" [[deps.Optimisers]] deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] @@ -1661,10 +1787,16 @@ uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.42.0+1" [[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"] +git-tree-sha1 = "95a4038d1011dfdbde7cecd2ad0ac411e53ab1bc" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.31" +version = "0.10.1" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] @@ -1734,9 +1866,9 @@ version = "1.40.2" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" +git-tree-sha1 = "8df43bbe60029526dd628af7e9951f5af680d4d7" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.9" +version = "0.7.10" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1811,6 +1943,18 @@ git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" version = "0.1.4" +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "763a8ceb07833dd51bb9e3bbca372de32c0605ad" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.10.0" + +[[deps.PyCall]] +deps = ["Conda", "Dates", "Libdl", "LinearAlgebra", "MacroTools", "Serialization", "VersionParsing"] +git-tree-sha1 = "9816a3826b0ebf49ab4926e2b18842ad8b5c8f04" +uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" +version = "1.96.4" + [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" @@ -1847,12 +1991,23 @@ git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" uuid = "74087812-796a-5b5d-8853-05524746bad3" version = "1.7.0" +[[deps.RandomFeatures]] +deps = ["Distributions", "DocStringExtensions", "EnsembleKalmanProcesses", "LinearAlgebra", "LoopVectorization", "Random", "SpecialFunctions", "Statistics", "StatsBase", "Tullio"] +git-tree-sha1 = "592c96dd5cb2ebd635b551491cb3621bbe010ca0" +uuid = "36c3bae2-c0c3-419d-b3b4-eebadd35c5e5" +version = "0.3.2" + [[deps.RandomNumbers]] deps = ["Random", "Requires"] git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" version = "1.5.3" +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + [[deps.Ratios]] deps = ["Requires"] git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" @@ -1973,11 +2128,17 @@ git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.0" +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.42" + [[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 = "088123999a9a8fa7ff386a82048c6ed24b2b7d07" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.29.0" +version = "2.30.2" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2004,6 +2165,28 @@ 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.ScientificTypesBase]] +git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" +uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" +version = "3.0.0" + +[[deps.ScikitLearn]] +deps = ["Compat", "Conda", "DataFrames", "Distributed", "IterTools", "LinearAlgebra", "MacroTools", "Parameters", "Printf", "PyCall", "Random", "ScikitLearnBase", "SparseArrays", "StatsBase", "VersionParsing"] +git-tree-sha1 = "3df098033358431591827bb86cada0bed744105a" +uuid = "3646fa90-6ef7-5e7e-9f22-8aca16db6324" +version = "0.7.0" + +[[deps.ScikitLearnBase]] +deps = ["LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "7877e55c1523a4b336b433da39c8e8c08d2f221f" +uuid = "6e75b9c4-186b-50bd-896f-2d2496a4843e" +version = "0.5.0" + [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" @@ -2087,6 +2270,12 @@ git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" uuid = "171d559e-b47b-412a-8079-5efa626c420e" version = "0.1.15" +[[deps.StableRNGs]] +deps = ["Random", "Test"] +git-tree-sha1 = "ddc1a7b85e760b5285b50b882fa91e40c603be47" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.1" + [[deps.Static]] deps = ["IfElse"] git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" @@ -2120,6 +2309,12 @@ git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.2" +[[deps.StatisticalTraits]] +deps = ["ScientificTypesBase"] +git-tree-sha1 = "30b9236691858e13f167ce829490a68e1a597782" +uuid = "64bff920-2084-43da-a3e6-9bb72801c0c9" +version = "3.2.0" + [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" @@ -2133,23 +2328,15 @@ version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.2" +version = "0.33.21" [[deps.StatsFuns]] -deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +deps = ["ChainRulesCore", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "5950925ff997ed6fb3e985dcce8eb1ba42a0bbe7" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "1.3.1" - - [deps.StatsFuns.extensions] - StatsFunsChainRulesCoreExt = "ChainRulesCore" - StatsFunsInverseFunctionsExt = "InverseFunctions" - - [deps.StatsFuns.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.9.18" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] @@ -2253,6 +2440,12 @@ git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" version = "0.1.1" +[[deps.TerminalLoggers]] +deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] +git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" +uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" +version = "0.1.7" + [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -2285,9 +2478,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" +git-tree-sha1 = "14389d51751169994b2e1317d5c72f7dc4f21045" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.4" +version = "0.10.6" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2329,6 +2522,24 @@ git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" uuid = "781d530d-4396-4725-bb49-402e4bee1e77" version = "1.4.0" +[[deps.Tullio]] +deps = ["DiffRules", "LinearAlgebra", "Requires"] +git-tree-sha1 = "6d476962ba4e435d7f4101a403b1d3d72afe72f3" +uuid = "bc48ee85-29a4-5162-ae0b-a64e1601d4bc" +version = "0.3.7" + + [deps.Tullio.extensions] + TullioCUDAExt = "CUDA" + TullioChainRulesCoreExt = "ChainRulesCore" + TullioFillArraysExt = "FillArrays" + TullioTrackerExt = "Tracker" + + [deps.Tullio.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + [[deps.URIs]] git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -2357,15 +2568,12 @@ deps = ["Dates", "LinearAlgebra", "Random"] git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" version = "1.19.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] ConstructionBaseUnitfulExt = "ConstructionBase" InverseFunctionsUnitfulExt = "InverseFunctions" - [deps.Unitful.weakdeps] - ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" - [[deps.UnitfulLatexify]] deps = ["LaTeXStrings", "Latexify", "Unitful"] git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" @@ -2394,6 +2602,17 @@ git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" version = "0.2.0" +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "7209df901e6ed7489fe9b7aa3e46fb788e15db85" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.65" + +[[deps.VersionParsing]] +git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" +uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" +version = "1.3.0" + [[deps.Vulkan_Loader_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" diff --git a/calibration/Project.toml b/calibration/Project.toml index b67840e8db..57f2e0b02e 100644 --- a/calibration/Project.toml +++ b/calibration/Project.toml @@ -1,6 +1,7 @@ [deps] ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" +CalibrateAtmos = "4347a170-ebd6-470c-89d3-5c705c0cacc2" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" From e93d4be3705c25dea9f03f488450a393572ebb29 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Mon, 25 Mar 2024 15:52:48 -0700 Subject: [PATCH 20/23] modified: coupler_component_init.jl modified: coupler_driver_calibration.jl modified: coupler_interface.jl modified: coupler_parse_args.jl renamed: experiments/amip_coupled/coupler_config.yml -> experiments/amip_coupled/model_config.yml modified: generate_observations.sbatch modified: pipeline.jl --- calibration/coupler_component_init.jl | 2 + calibration/coupler_driver_calibration.jl | 423 ++++++++++-------- calibration/coupler_interface.jl | 73 +-- calibration/coupler_parse_args.jl | 5 +- .../{coupler_config.yml => model_config.yml} | 1 + calibration/generate_observations.sbatch | 2 +- calibration/pipeline.jl | 14 +- 7 files changed, 296 insertions(+), 224 deletions(-) rename calibration/experiments/amip_coupled/{coupler_config.yml => model_config.yml} (95%) diff --git a/calibration/coupler_component_init.jl b/calibration/coupler_component_init.jl index 0505a2f79c..73d3406da7 100644 --- a/calibration/coupler_component_init.jl +++ b/calibration/coupler_component_init.jl @@ -1,3 +1,5 @@ + + #= ## Data File Paths The data files are downloaded from the `ClimaCoupler` artifacts directory. If the data files are not present, they are downloaded from the diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl index 35e77d5c7e..86e68f9a99 100644 --- a/calibration/coupler_driver_calibration.jl +++ b/calibration/coupler_driver_calibration.jl @@ -1,210 +1,252 @@ +## standard packages +using Dates +import YAML + +# ## ClimaESM packages +import ClimaAtmos as CA +using ClimaCore + +# ## Coupler specific imports +using ClimaCoupler +using ClimaCoupler.BCReader: bcfile_info_init, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily +using ClimaCoupler.ConservationChecker: + EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation +using ClimaCoupler.Checkpointer: restart_model_state! +using ClimaCoupler.Diagnostics: init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean +using ClimaCoupler.FieldExchanger: + import_atmos_fields!, import_combined_surface_fields!, update_model_sims!, reinit_model_sims!, step_model_sims! +using ClimaCoupler.FluxCalculator: + PartitionedStateFluxes, + CombinedStateFluxes, + combined_turbulent_fluxes!, + MoninObukhovScheme, + partitioned_turbulent_fluxes! +using ClimaCoupler.Interfacer: CoupledSimulation, SurfaceStub, get_field, update_field! +using ClimaCoupler.Regridder +using ClimaCoupler.Regridder: update_surface_fractions!, combine_surfaces!, binary_mask +using ClimaCoupler.TimeManager: + current_date, Monthly, EveryTimestep, HourlyCallback, MonthlyCallback, update_firstdayofmonth!, trigger_callback! +import ClimaCoupler.Utilities: get_comms_context + +pkg_dir = pkgdir(ClimaCoupler) + include("coupler_driver_init.jl") include("coupler_parse_args.jl") include("coupler_component_init.jl") -#= -## Coupler Initialization -The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally -save online diagnostics. These are all initialized here and saved in a global `CoupledSimulation` struct, `cs`. -=# - -## coupler exchange fields -coupler_field_names = ( - :T_S, - :z0m_S, - :z0b_S, - :ρ_sfc, - :q_sfc, - :surface_albedo, - :beta, - :F_turb_energy, - :F_turb_moisture, - :F_turb_ρτxz, - :F_turb_ρτyz, - :F_radiative, - :P_liq, - :P_snow, - :radiative_energy_flux_toa, - :P_net, -) -coupler_fields = - NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) - -## model simulations -model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); - -## dates -dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) - -#= -### Online Diagnostics -User can write custom diagnostics in the `user_diagnostics.jl`. -Note, this will be replaced by the diagnostics framework currently in ClimaAtmos, once it is abstracted -into a more general package, so we can use it to save fields from surface models. -=# - -monthly_3d_diags = init_diagnostics( - (:T, :u, :q_tot, :q_liq_ice), - atmos_sim.domain.center_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_3d_", -) - -monthly_2d_diags = init_diagnostics( - (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), - boundary_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_2d_", -) - -diagnostics = (monthly_3d_diags, monthly_2d_diags) - -#= -## Initialize Conservation Checks -The conservation checks are used to monitor the global energy and water conservation of the coupled system. The checks are only -applicable to the `slabplanet` mode, as the `amip` mode is not a closed system. The conservation checks are initialized here and -saved in a global `ConservationChecks` struct, `conservation_checks`. -=# - -## init conservation info collector -conservation_checks = nothing -if energy_check - @assert( - mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), - "Only non-distributed slabplanet allowable for energy_check" +function get_simulation(config_dict) + #= + ## Coupler Initialization + The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally + save online diagnostics. These are all initialized here and saved in a global `CoupledSimulation` struct, `cs`. + =# + + ## coupler exchange fields + coupler_field_names = ( + :T_S, + :z0m_S, + :z0b_S, + :ρ_sfc, + :q_sfc, + :surface_albedo, + :beta, + :F_turb_energy, + :F_turb_moisture, + :F_turb_ρτxz, + :F_turb_ρτyz, + :F_radiative, + :P_liq, + :P_snow, + :radiative_energy_flux_toa, + :P_net, + ) + coupler_fields = + NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) + + ## model simulations + model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); + + ## dates + dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) + + #= + ### Online Diagnostics + User can write custom diagnostics in the `user_diagnostics.jl`. + Note, this will be replaced by the diagnostics framework currently in ClimaAtmos, once it is abstracted + into a more general package, so we can use it to save fields from surface models. + =# + + @info "output directory:" COUPLER_OUTPUT_DIR + + monthly_3d_diags = init_diagnostics( + (:T, :u, :q_tot, :q_liq_ice), + atmos_sim.domain.center_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_3d_", ) - conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) -end - -#= -## Initialize Callbacks -Callbacks are used to update at a specified interval. The callbacks are initialized here and -saved in a global `Callbacks` struct, `callbacks`. The `trigger_callback!` function is used to call the callback during the simulation below. - -The frequency of the callbacks is specified in the `HourlyCallback` and `MonthlyCallback` structs. The `func` field specifies the function to be called, -the `ref_date` field specifies the reference (first) date for the callback, and the `active` field specifies whether the callback is active or not. - -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). -=# - -## 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) -#= -## Initialize Coupled Simulation + monthly_2d_diags = init_diagnostics( + (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), + boundary_space; + save = Monthly(), + operations = (; accumulate = TimeMean([Int(0)])), + output_dir = COUPLER_OUTPUT_DIR, + name_tag = "monthly_mean_2d_", + ) -The coupled simulation is initialized here and saved in a global `CoupledSimulation` struct, `cs`. It contains all the information -required to run the coupled simulation, including the communication context, the dates, the boundary space, the coupler fields, the -configuration dictionary, the conservation checks, the time span, the time step, the land fraction, the model simulations, the mode -specifics, the diagnostics, the callbacks, and the directory paths. -=# + diagnostics = (monthly_3d_diags, monthly_2d_diags) -cs = CoupledSimulation{FT}( - comms_ctx, - dates, - boundary_space, - coupler_fields, - config_dict, - conservation_checks, - [tspan[1], tspan[2]], - atmos_sim.integrator.t, - Δt_cpl, - (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)), - model_sims, - mode_specifics, - diagnostics, - callbacks, - dir_paths, -); + #= + ## Initialize Conservation Checks + The conservation checks are used to monitor the global energy and water conservation of the coupled system. The checks are only + applicable to the `slabplanet` mode, as the `amip` mode is not a closed system. The conservation checks are initialized here and + saved in a global `ConservationChecks` struct, `conservation_checks`. + =# -#= -## Restart component model states if specified -If a restart directory is specified and contains output files from the `checkpoint_cb` callback, the component model states are restarted from those files. The restart directory -is specified in the `config_dict` dictionary. The `restart_t` field specifies the time step at which the restart is performed. -=# + ## init conservation info collector + conservation_checks = nothing + if energy_check + @assert( + mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), + "Only non-distributed slabplanet allowable for energy_check" + ) + conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) + end -if restart_dir !== "unspecified" - for sim in cs.model_sims - if get_model_prog_state(sim) !== nothing - restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) + #= + ## Initialize Callbacks + Callbacks are used to update at a specified interval. The callbacks are initialized here and + saved in a global `Callbacks` struct, `callbacks`. The `trigger_callback!` function is used to call the callback during the simulation below. + + The frequency of the callbacks is specified in the `HourlyCallback` and `MonthlyCallback` structs. The `func` field specifies the function to be called, + the `ref_date` field specifies the reference (first) date for the callback, and the `active` field specifies whether the callback is active or not. + + 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). + =# + + ## 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) + + #= + ## Initialize Coupled Simulation + + The coupled simulation is initialized here and saved in a global `CoupledSimulation` struct, `cs`. It contains all the information + required to run the coupled simulation, including the communication context, the dates, the boundary space, the coupler fields, the + configuration dictionary, the conservation checks, the time span, the time step, the land fraction, the model simulations, the mode + specifics, the diagnostics, the callbacks, and the directory paths. + =# + + cs = CoupledSimulation{FT}( + comms_ctx, + dates, + boundary_space, + coupler_fields, + config_dict, + conservation_checks, + [tspan[1], tspan[2]], + atmos_sim.integrator.t, + Δt_cpl, + (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)), + model_sims, + mode_specifics, + diagnostics, + callbacks, + dir_paths, + ); + + + + #= + ## Restart component model states if specified + If a restart directory is specified and contains output files from the `checkpoint_cb` callback, the component model states are restarted from those files. The restart directory + is specified in the `config_dict` dictionary. The `restart_t` field specifies the time step at which the restart is performed. + =# + + #= + if restart_dir !== "unspecified" + for sim in cs.model_sims + if get_model_prog_state(sim) !== nothing + restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) + end end end -end + =# + + #= + ## Initialize Component Model Exchange + + We need to ensure all models' initial conditions are shared to enable the coupler to calculate the first instance of surface fluxes. Some auxiliary variables (namely surface humidity and radiation fluxes) + depend on initial conditions of other component models than those in which the variables are calculated, which is why we need to step these models in time and/or reinitialize them. + 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 -#= -## Initialize Component Model Exchange + # 2.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. + # 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) + + # 4.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 + # or the partitioned state method + if 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 + ## 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 + ## 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) + + ## update atmos sfc_conditions for surface temperature + ## TODO: this is hard coded and needs to be simplified (req. CA modification) (#479) + new_p = get_new_cache(atmos_sim, cs.fields) + CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) ## sets T_sfc (but SF calculation not necessary - requires split functionality in CA) + atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions + end -We need to ensure all models' initial conditions are shared to enable the coupler to calculate the first instance of surface fluxes. Some auxiliary variables (namely surface humidity and radiation fluxes) -depend on initial conditions of other component models than those in which the variables are calculated, which is why we need to step these models in time and/or reinitialize them. -The concrete steps for proper initialization are: -=# + # 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) + reinit_model_sims!(cs.model_sims) -# 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 + # 7.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) -# 2.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. -# 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) - -# 4.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 -# or the partitioned state method -if 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 - ## 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 - ## 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) - - ## update atmos sfc_conditions for surface temperature - ## TODO: this is hard coded and needs to be simplified (req. CA modification) (#479) - new_p = get_new_cache(atmos_sim, cs.fields) - CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) ## sets T_sfc (but SF calculation not necessary - requires split functionality in CA) - atmos_sim.integrator.p.precomputed.sfc_conditions .= new_p.precomputed.sfc_conditions + return cs 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) -reinit_model_sims!(cs.model_sims) - -# 7.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) - #= ## Coupling Loop @@ -230,6 +272,15 @@ function solve_coupler!(cs) if cs.mode.name == "amip" + 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 + ## monthly read of boundary condition data for SST and SIC and CO2 if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info) update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info) diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl index d0dd4fe36a..ead53353dc 100644 --- a/calibration/coupler_interface.jl +++ b/calibration/coupler_interface.jl @@ -1,51 +1,68 @@ import EnsembleKalmanProcesses as EKP import ClimaCoupler as CCo import YAML +import CalibrateAtmos: get_forward_model, AbstractPhysicalModel, get_config -""" - get_coupler_sim(member, iteration, experiment_id::AbstractString) +struct CoupledModel <: AbstractPhysicalModel end -Returns a CouplerSimulation object for the given member and iteration. -If given an experiment id string, it will load the config from the corresponding YAML file. -Turns off default diagnostics and sets the TOML parameter file to the member's path. -This assumes that the config dictionary has `output_dir` and `restart_file` keys. -""" -function get_coupler_sim(member, iteration, experiment_id::AbstractString) +function get_forward_model( + experiment_id::Val{:amip_coupled} +) + return CoupledModel() +end + +function get_config( + model::CoupledModel, + member, + iteration, + experiment_id::AbstractString +) + config_dict = YAML.load_file("experiments/$experiment_id/model_config.yml") + return get_config(model, member, iteration, config_dict) +end + +function get_config( + ::CoupledModel, + member, + iteration, + config_dict::AbstractDict, +) # Specify member path for output_dir # Set TOML to use EKP parameter(s) - config_dict = YAML.load_file("./experiments/amip_coupled/coupler_config.yml") + config_dict = YAML.load_file("./experiments/amip_coupled/model_config.yml") output_dir = "output" member_path = EKP.TOMLInterface.path_to_ensemble_member(output_dir, iteration, member) - config_dict["output_dir"] = member_path + config_dict = merge(parsed_args, config_dict) + + ## get component model dictionaries (if applicable) + config_dict_atmos = get_atmos_config(config_dict) + + ## merge dictionaries of command line arguments, coupler dictionary and component model dictionaries + ## (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) + config_dict = merge(config_dict_atmos, config_dict) # COPY Coupler Driver + config_dict["output_dir"] = member_path include("coupler_driver_calibration.jl") + config_dict["output_dir"] = member_path # END Coupler Driver - parameter_path = joinpath(member_path, "parameters.toml") if haskey(config_dict, "toml") push!(config_dict["toml"], parameter_path) else config_dict["toml"] = [parameter_path] end - # Turn off default diagnostics config_dict["output_default_diagnostics"] = false - - # Set restart file for initial equilibrium state - return cs + return (;config_dict=config_dict) end -""" - run_forward_model(coupled_sim::CCo.CoupledSimulation) - -Runs the coupled model with the given a CoupledSimulation object. -Note that running an AtmosModel can be considered a special case -of running a CoupledSimulation. -Currently only has basic error handling. -""" -function run_forward_model(coupled_sim::CCo.Interfacer.CoupledSimulation) - sol_res = solve_coupler!(coupled_sim) - # Is there a return code in coupler sims? - # Can we get the atmos version instead ? -end +function run_forward_model( + ::CoupledModel, + config; + lk = nothing, +) + cs = get_simulation(config); + sol_res = solve_coupler!(cs); + return sol_res +end \ No newline at end of file diff --git a/calibration/coupler_parse_args.jl b/calibration/coupler_parse_args.jl index fd60efa258..4e7d71f86c 100644 --- a/calibration/coupler_parse_args.jl +++ b/calibration/coupler_parse_args.jl @@ -11,7 +11,7 @@ include("../experiments/AMIP/cli_options.jl") parsed_args = parse_commandline(argparse_settings()) ## read in config dictionary from file, overriding the coupler defaults -config_dict = YAML.load_file(joinpath(experiment_dir, "coupler_config.yml")); +config_dict = YAML.load_file(joinpath(experiment_dir, "model_config.yml")); config_dict = merge(parsed_args, config_dict) ## get component model dictionaries (if applicable) @@ -56,7 +56,6 @@ the plots (from postprocessing and the conservation checks) of the simulation wi temporary files will be saved. =# -COUPLER_OUTPUT_DIR = joinpath(config_dict["coupler_output_dir"], joinpath(mode_name, run_name)) mkpath(COUPLER_OUTPUT_DIR) REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") @@ -70,4 +69,4 @@ dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) if ClimaComms.iamroot(comms_ctx) @info(COUPLER_OUTPUT_DIR) config_dict["print_config_dict"] ? @info(config_dict) : nothing -end +end \ No newline at end of file diff --git a/calibration/experiments/amip_coupled/coupler_config.yml b/calibration/experiments/amip_coupled/model_config.yml similarity index 95% rename from calibration/experiments/amip_coupled/coupler_config.yml rename to calibration/experiments/amip_coupled/model_config.yml index 96b31dceda..1df63f4684 100644 --- a/calibration/experiments/amip_coupled/coupler_config.yml +++ b/calibration/experiments/amip_coupled/model_config.yml @@ -25,3 +25,4 @@ z_elem: 50 z_stretch: false dt_save_restart: "150secs" restart_dir: "./restart" +output_dir: output/amip_coupled \ No newline at end of file diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch index 8f75f75528..4bbd5eec9c 100644 --- a/calibration/generate_observations.sbatch +++ b/calibration/generate_observations.sbatch @@ -13,7 +13,7 @@ echo "Generating truth observations." srun --open-mode=append julia --project=experiments -e ' using ClimaComms ClimaComms.init(ClimaComms.context()) -import ClimaCoupler as CCo +import ClimaCoupler import YAML using NCDatasets import JLD2 diff --git a/calibration/pipeline.jl b/calibration/pipeline.jl index 075e3fd0e1..61bc96a254 100644 --- a/calibration/pipeline.jl +++ b/calibration/pipeline.jl @@ -9,13 +9,15 @@ using NCDatasets import JLD2 using Statistics +import CalibrateAtmos: AbstractPhysicalModel, get_forward_model + experiment_dir = joinpath("experiments", "amip_coupled") COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") include("coupler_driver_calibration.jl"); +cs = get_simulation(config_dict); solve_coupler!(cs); # Integrate the coupled model - -### Process Observations -> Store in `testdir` +### Process "Observations" -> Store in `testdir` testdir = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/experiments/amip_coupled/truth_simulation/" wa = NCDataset(joinpath(testdir, "", "wa_inst.nc"))["wa"] include(joinpath(experiment_dir, "observation_map.jl")) @@ -24,8 +26,8 @@ JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) ### Run forward model iterations -experiment_id = "amip_coupled" include("coupler_interface.jl") +experiment_id = "amip_coupled" iteration = 1 format_i = "iteration_$iteration" @@ -36,11 +38,11 @@ output="output/$experiment_id/$format_i/$member/model_log.out" experiment_dir = joinpath("experiments", "amip_coupled") COUPLER_OUTPUT_DIR = joinpath("experiments","$format_i","$member") -coupled_simulation = get_coupler_sim(SLURM_ARRAY_TASK_ID, iteration, "$experiment_id"); -run_forward_model(coupled_simulation); +(;config_dict) = get_config(CoupledModel(), 1, iteration, experiment_id); +run_forward_model(CoupledModel(), config_dict); +# This outputs in experiments/AMIP/output/amip/target_amip_n1_shortrun ### Calibrate - CalibrateAtmos.calibrate("amip_coupled") ### Re-run target simulation \ No newline at end of file From 535af0ea4ae65aa15aa64bba47ee30c37e1073eb Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Fri, 7 Jun 2024 08:21:45 -0700 Subject: [PATCH 21/23] Update to CalibrateAtmos -> ClimaCalibrate --- calibration/Manifest.toml | 820 +++++++++++++------------------ calibration/Project.toml | 2 +- calibration/coupler_interface.jl | 2 +- calibration/pipeline.jl | 8 +- 4 files changed, 343 insertions(+), 489 deletions(-) diff --git a/calibration/Manifest.toml b/calibration/Manifest.toml index 5b4ad50906..f4372a5743 100644 --- a/calibration/Manifest.toml +++ b/calibration/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.0" +julia_version = "1.10.3" manifest_format = "2.0" -project_hash = "c13b8d5f8a8478ad1ef794c8ad8d04e39e26e277" +project_hash = "61c0a88f22a2072b2907ea883112a449d364cffd" [[deps.ADTypes]] git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" @@ -26,17 +26,32 @@ weakdeps = ["ChainRulesCore", "Test"] AbstractFFTsChainRulesCoreExt = "ChainRulesCore" AbstractFFTsTestExt = "Test" -[[deps.AbstractMCMC]] -deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] -git-tree-sha1 = "87e63dcb990029346b091b170252f3c416568afc" -uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" -version = "4.4.2" - [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.5" +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] +git-tree-sha1 = "c0d491ef0b135fd7d63cbc6404286bc633329425" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.36" + + [deps.Accessors.extensions] + AccessorsAxisKeysExt = "AxisKeys" + AccessorsIntervalSetsExt = "IntervalSets" + AccessorsStaticArraysExt = "StaticArrays" + AccessorsStructArraysExt = "StructArrays" + AccessorsUnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + Requires = "ae029012-a4dd-5104-9daa-d747884805df" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" @@ -47,17 +62,11 @@ weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" -[[deps.AdvancedMH]] -deps = ["AbstractMCMC", "Distributions", "FillArrays", "LinearAlgebra", "LogDensityProblems", "Random", "Requires"] -git-tree-sha1 = "b2a1602952739e589cf5e2daff1274a49f22c9a4" -uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" -version = "0.7.5" -weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] - - [deps.AdvancedMH.extensions] - AdvancedMHForwardDiffExt = ["DiffResults", "ForwardDiff"] - AdvancedMHMCMCChainsExt = "MCMCChains" - AdvancedMHStructArraysExt = "StructArrays" +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" [[deps.ArgCheck]] git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" @@ -88,14 +97,15 @@ version = "3.5.1+1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" +git-tree-sha1 = "133a240faec6e074e07c31ee75619c90544179cf" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.9.0" +version = "7.10.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceCUDSSExt = "CUDSS" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" ArrayInterfaceReverseDiffExt = "ReverseDiff" @@ -106,6 +116,7 @@ version = "7.9.0" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" @@ -114,9 +125,9 @@ version = "7.9.0" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "6404a564c24a994814106c374bec893195e19bac" +git-tree-sha1 = "29649b61e0313db0a7ad5ecf41210e4e85aea234" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.8.0" +version = "1.9.3" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -149,23 +160,17 @@ git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" version = "1.1.0" -[[deps.AxisArrays]] -deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] -git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" -uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" -version = "0.4.7" - [[deps.BFloat16s]] deps = ["LinearAlgebra", "Printf", "Random", "Test"] -git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" +git-tree-sha1 = "2c7cc21e8678eff479978a0a2ef5ce2f51b63dff" uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.4.2" +version = "0.5.0" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "c946c5014cf4cdbfacacb363b110e7bffba3e742" +git-tree-sha1 = "4ec0289155eac14c057229395fa7a6a54ffea343" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.6.1" +version = "1.7.1" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] @@ -218,9 +223,9 @@ version = "0.1.5" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "3c62e3006c23082d2ae524b468298d27788a8502" +git-tree-sha1 = "9a9610fbe5779636f75229e423e367124034af41" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.40" +version = "0.16.43" [[deps.Blosc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] @@ -247,80 +252,75 @@ version = "0.1.3" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +git-tree-sha1 = "585a387a490f1c4bd88be67eea15b93da5e85db7" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.4" +version = "0.2.5" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "a44910ceb69b0d44fe262dd451ab11ead3ed0be8" +git-tree-sha1 = "6c834533dc1fabd820c1db03c839bf97e45a3fab" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.13" +version = "0.10.14" [[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", "StaticArrays", "Statistics"] -git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845" +git-tree-sha1 = "6e945e876652f2003e6ca74e19a3c45017d3e9f6" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.2.0" -weakdeps = ["ChainRulesCore", "SpecialFunctions"] +version = "5.4.2" +weakdeps = ["ChainRulesCore", "EnzymeCore", "SpecialFunctions"] [deps.CUDA.extensions] ChainRulesCoreExt = "ChainRulesCore" + EnzymeCoreExt = "EnzymeCore" SpecialFunctionsExt = "SpecialFunctions" [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" +git-tree-sha1 = "c48f9da18efd43b6b7adb7ee1f93fe5f2926c339" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.7.0+1" +version = "0.9.0+0" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" +git-tree-sha1 = "5db9da5fdeaa708c22ba86b82c49528f402497f2" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.3" +version = "0.3.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84" +git-tree-sha1 = "bcba305388e16aa5c879e896726db9e71b4942c6" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.11.1+0" +version = "0.14.0+1" [[deps.CUDNN_jll]] deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "75923dce4275ead3799b238e10178a68c07dbd3b" +git-tree-sha1 = "cbf7d75f8c58b147bdf6acea2e5bc96cececa6d4" uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" -version = "8.9.4+0" +version = "9.0.0+1" [[deps.Cairo_jll]] 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" +git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.0+1" +version = "1.18.0+2" -[[deps.CalibrateAtmos]] -deps = ["CalibrateEmulateSample", "ClimaComms", "ClimaParams", "Distributions", "EnsembleKalmanProcesses", "JLD2", "PrecompileTools", "Random", "SciMLBase", "TOML", "YAML"] -path = "/Users/akshaysridhar/Research/Codes/CalibrateAtmos.jl" -uuid = "4347a170-ebd6-470c-89d3-5c705c0cacc2" -version = "0.1.0" - -[[deps.CalibrateEmulateSample]] -deps = ["AbstractMCMC", "AdvancedMH", "Conda", "Distributions", "DocStringExtensions", "EnsembleKalmanProcesses", "GaussianProcesses", "LinearAlgebra", "MCMCChains", "Pkg", "Printf", "ProgressBars", "PyCall", "Random", "RandomFeatures", "ScikitLearn", "StableRNGs", "Statistics", "StatsBase"] -git-tree-sha1 = "5fbe0e8be41107e4470cea36092a6c7b082c67d8" -uuid = "95e48a1f-0bec-4818-9538-3db4340308e3" -version = "0.5.0" +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "4e42872be98fa3343c4f8458cbda8c5c6a6fa97c" +git-tree-sha1 = "5ec157747036038ec70b250f578362268f0472f1" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.63.0" +version = "1.68.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" +git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.23.0" +version = "1.24.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -332,6 +332,20 @@ git-tree-sha1 = "6f61041395606445cb1c69233b0451f395231cec" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" version = "0.22.0" +[[deps.ClimaCalibrate]] +deps = ["Distributions", "EnsembleKalmanProcesses", "JLD2", "Random", "TOML", "YAML"] +git-tree-sha1 = "7f304ff3ca24d417020dcdec5654f1fc91558b86" +repo-rev = "as/coupler_calibrate" +repo-url = "../../ClimaCalibrate.jl" +uuid = "4347a170-ebd6-470c-89d3-5c705c0cacc2" +version = "0.1.0" + + [deps.ClimaCalibrate.extensions] + CESExt = "CalibrateEmulateSample" + + [deps.ClimaCalibrate.weakdeps] + CalibrateEmulateSample = "95e48a1f-0bec-4818-9538-3db4340308e3" + [[deps.ClimaComms]] deps = ["CUDA", "MPI"] git-tree-sha1 = "f0350e34c91c8f3b5a11b5e39990439303d727b1" @@ -356,9 +370,9 @@ version = "0.2.8" [[deps.ClimaCoreTempestRemap]] deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] -git-tree-sha1 = "ac11cc8ad2c043ab753d6888c224c7e2f35f42c0" +git-tree-sha1 = "d85c3a7b457b6d8b54d82499aa6df3b34140ea4d" uuid = "d934ef94-cdd4-4710-83d6-720549644b70" -version = "0.3.14" +version = "0.3.15" [[deps.ClimaCoupler]] deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] @@ -414,15 +428,15 @@ version = "0.7.4" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.24.0" +version = "3.25.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.4" +version = "0.11.5" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] @@ -436,15 +450,15 @@ weakdeps = ["SpecialFunctions"] [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" +version = "0.12.11" [[deps.CommonDataModel]] deps = ["CFTime", "DataStructures", "Dates", "Preferences", "Printf", "Statistics"] -git-tree-sha1 = "d7d7b58e149f19c322840a50d1bc20e8c23addb4" +git-tree-sha1 = "d6fb5bf939a2753c74984b11434ea25d6c397a58" uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" -version = "0.3.5" +version = "0.3.6" [[deps.CommonSolve]] git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" @@ -459,9 +473,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.14.0" +version = "4.15.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -470,7 +484,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+1" +version = "1.1.1+0" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" @@ -481,24 +495,17 @@ weakdeps = ["InverseFunctions"] [deps.CompositionsBase.extensions] CompositionsBaseInverseFunctionsExt = "InverseFunctions" +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.4.1" -[[deps.Conda]] -deps = ["Downloads", "JSON", "VersionParsing"] -git-tree-sha1 = "51cab8e982c5b598eea9c8ceaced4b58d9dd37c9" -uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" -version = "1.10.0" - -[[deps.ConsoleProgressMonitor]] -deps = ["Logging", "ProgressMeter"] -git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" -uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" -version = "0.1.2" - [[deps.ConstructionBase]] deps = ["LinearAlgebra"] git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" @@ -517,9 +524,9 @@ uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" version = "0.1.3" [[deps.Contour]] -git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.6.2" +version = "0.6.3" [[deps.Convex]] deps = ["AbstractTrees", "BenchmarkTools", "LDLFactorizations", "LinearAlgebra", "MathOptInterface", "OrderedCollections", "SparseArrays", "Test"] @@ -557,9 +564,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.18" +version = "0.18.20" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -594,12 +601,13 @@ uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" 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 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" +deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "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 = "37d49a1f8eedfe68b7622075ff3ebe3dd0e8f327" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.148.0" +version = "6.151.2" [deps.DiffEqBase.extensions] + DiffEqBaseCUDAExt = "CUDA" DiffEqBaseChainRulesCoreExt = "ChainRulesCore" DiffEqBaseDistributionsExt = "Distributions" DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] @@ -612,6 +620,7 @@ version = "6.148.0" DiffEqBaseUnitfulExt = "Unitful" [deps.DiffEqBase.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" @@ -667,10 +676,10 @@ deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] -deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "9c405847cc7ecda2dc921ccf18b47ca150d7317e" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.107" +version = "0.25.109" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -693,17 +702,11 @@ deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" -[[deps.ElasticArrays]] -deps = ["Adapt"] -git-tree-sha1 = "75e5697f521c9ab89816d3abeea806dfc5afb967" -uuid = "fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4" -version = "1.2.12" - -[[deps.ElasticPDMats]] -deps = ["LinearAlgebra", "MacroTools", "PDMats"] -git-tree-sha1 = "5157c93fe9431a041e4cd84265dfce3d53a52323" -uuid = "2904ab23-551e-5aed-883f-487f97af5226" -version = "0.2.2" +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" [[deps.Elliptic]] git-tree-sha1 = "71c79e77221ab3a29918aaf6db4f217b89138608" @@ -722,9 +725,9 @@ uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" [[deps.EnzymeCore]] -git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" +git-tree-sha1 = "0910982db2490a20f81dc7db5d4bbea236c027b3" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.6.5" +version = "0.7.3" weakdeps = ["Adapt"] [deps.EnzymeCore.extensions] @@ -744,9 +747,9 @@ version = "0.1.10" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.5.0+0" +version = "2.6.2+0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -791,9 +794,9 @@ version = "0.1.1" [[deps.FastBroadcast]] deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" +git-tree-sha1 = "e17367f052035620d832499496080f792fa7ea47" uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.2.8" +version = "0.3.2" [[deps.FastClosures]] git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" @@ -802,9 +805,9 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "58d83dd5a78a36205bdfddb82b1bb67682e64487" +git-tree-sha1 = "0f478d8bad6f52573fb7658a263af61f3d96e43a" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "0.4.9" +version = "0.5.1" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] @@ -822,21 +825,22 @@ version = "0.9.21" uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] -deps = ["LinearAlgebra", "Random"] -git-tree-sha1 = "35f0c0f345bff2c6d636f95fdb136323b5a796ef" +deps = ["LinearAlgebra"] +git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.7.0" -weakdeps = ["SparseArrays", "Statistics"] +version = "1.11.0" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" FillArraysSparseArraysExt = "SparseArrays" FillArraysStatisticsExt = "Statistics" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" +git-tree-sha1 = "2de436b72c3422940cbe1367611d137008af7ec3" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.23.0" +version = "2.23.1" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -850,9 +854,9 @@ version = "2.23.0" [[deps.FixedPointNumbers]] deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" +version = "0.8.5" [[deps.Flux]] deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] @@ -873,21 +877,15 @@ version = "0.14.15" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.Fontconfig_jll]] -deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.93+0" +version = "2.13.96+0" [[deps.Format]] -git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" -version = "1.3.6" - -[[deps.Formatting]] -deps = ["Logging", "Printf"] -git-tree-sha1 = "fb409abab2caf118986fc597ba84b50cbaf00b87" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.3" +version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] @@ -901,15 +899,15 @@ weakdeps = ["StaticArrays"] [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.13.1+0" +version = "2.13.2+0" [[deps.FriBidi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.10+0" +version = "1.0.14+0" [[deps.FunctionWrappers]] git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" @@ -924,9 +922,9 @@ version = "0.1.3" [[deps.Functors]] deps = ["LinearAlgebra"] -git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" +git-tree-sha1 = "8a66c07630d6428eaab3506a0eabfcf4a9edea05" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.8" +version = "0.4.11" [[deps.Future]] deps = ["Random"] @@ -945,9 +943,9 @@ version = "6.2.1+6" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283" +git-tree-sha1 = "38cb19b8a3e600e509dc36a6396ac74266d108c1" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "10.0.2" +version = "10.1.1" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -957,21 +955,21 @@ version = "0.1.6" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +git-tree-sha1 = "518ebd058c9895de468a8c255797b0c53fdb44dd" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.25.0" +version = "0.26.5" [[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 = "3437ade7073682993e092ca570ad68a2aba26983" +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "ddda044ca260ee324c5fc07edb6d7cf3f0b9c350" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.3" +version = "0.73.5" [[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 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" +git-tree-sha1 = "278e5e0f820178e8a26df3184fcb2280717c79b1" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.3+0" +version = "0.73.5+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -979,17 +977,11 @@ git-tree-sha1 = "eb6f1f48aa994f3018cbd029a17863c6535a266d" uuid = "d54b0c1a-921d-58e0-8e36-89d8069c0969" version = "0.5.8" -[[deps.GaussianProcesses]] -deps = ["Distances", "Distributions", "ElasticArrays", "ElasticPDMats", "FastGaussQuadrature", "ForwardDiff", "LinearAlgebra", "Optim", "PDMats", "Printf", "ProgressMeter", "Random", "RecipesBase", "ScikitLearnBase", "SpecialFunctions", "StaticArrays", "Statistics", "StatsFuns"] -git-tree-sha1 = "31749ff6868caf6dd50902eec652a724071dbed3" -uuid = "891a1506-143c-57d2-908e-e1f8e92e6de9" -version = "0.12.5" - [[deps.GaussianRandomFields]] -deps = ["Arpack", "FFTW", "FastGaussQuadrature", "LinearAlgebra", "RecipesBase", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "d9c335f2c06424029b2addf9abf602e0feb2f53e" +deps = ["Arpack", "FFTW", "FastGaussQuadrature", "LinearAlgebra", "Random", "RecipesBase", "SpecialFunctions", "Statistics", "StatsBase"] +git-tree-sha1 = "055849d7a602c31eda477a0b0b86c9473a3e4fb9" uuid = "e4b2fa32-6e09-5554-b718-106ed5adafe9" -version = "2.1.6" +version = "2.2.4" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] @@ -1004,15 +996,15 @@ 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 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" +git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.80.0+0" +version = "2.80.2+0" [[deps.GnuTLS_jll]] deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Nettle_jll", "P11Kit_jll", "Zlib_jll"] -git-tree-sha1 = "f3c0936dd685d57fa0b1eee7dbebf382b969ea63" +git-tree-sha1 = "383db7d3f900f4c1f47a8a04115b053c095e48d3" uuid = "0951126a-58fd-58f1-b5b3-b08c7c4a876d" -version = "3.8.3+0" +version = "3.8.4+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1027,9 +1019,9 @@ version = "1.0.2" [[deps.HDF5]] deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "26407bd1c60129062cec9da63dc7d08251544d53" +git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.17.1" +version = "0.17.2" weakdeps = ["MPI"] [deps.HDF5.extensions] @@ -1037,15 +1029,15 @@ weakdeps = ["MPI"] [[deps.HDF5_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" +git-tree-sha1 = "82a471768b513dc39e471540fdadc84ff80ff997" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.3+1" +version = "1.14.3+3" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "995f762e0182ebc50548c434c171a5bb6635f8e4" +git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.4" +version = "1.10.8" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -1053,23 +1045,23 @@ git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" -[[deps.HostCPUFeatures]] -deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" -uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.16" - [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" version = "2.10.0+0" +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + [[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2" uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.12" +version = "0.4.14" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -1099,9 +1091,9 @@ weakdeps = ["ClimaParams"] [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +git-tree-sha1 = "be50fe8df3acbffa0274a744f1a99d29c45a57f4" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.0.2+0" +version = "2024.1.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -1130,9 +1122,9 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] [[deps.InverseFunctions]] deps = ["Test"] -git-tree-sha1 = "896385798a8d49a255c398bd49162062e4a4c435" +git-tree-sha1 = "e7cbed5032c4c397a6ac23d1493f3289e01231c4" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.13" +version = "0.1.14" weakdeps = ["Dates"] [deps.InverseFunctions.extensions] @@ -1144,14 +1136,9 @@ uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" version = "1.3.0" [[deps.IrrationalConstants]] -git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.1.1" - -[[deps.IterTools]] -git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" -uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.10.0" +version = "0.2.2" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -1184,9 +1171,9 @@ version = "0.21.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.2+0" +version = "3.0.3+0" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1202,25 +1189,19 @@ version = "0.2.4" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" +git-tree-sha1 = "db02395e4c374030c53dc28f3c1d33dec35f7272" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.18" +version = "0.9.19" weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" -[[deps.KernelDensity]] -deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] -git-tree-sha1 = "fee018a29b60733876eb557804b5b109dd3dd8a7" -uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" -version = "0.6.8" - [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" +git-tree-sha1 = "267dad6b4b7b5d529c76d40ff48d33f7e94cb834" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.5" +version = "0.9.6" [[deps.KrylovKit]] deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] @@ -1229,10 +1210,10 @@ uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" version = "0.6.1" [[deps.LAME_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.1+0" +version = "3.100.2+0" [[deps.LDLFactorizations]] deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] @@ -1248,9 +1229,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "ab01dde107f21aa76144d0771dccc08f152ccac7" +git-tree-sha1 = "065c36f95709dd4a676dc6839a35d6fa6f192f24" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.6.2" +version = "7.1.0" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1283,10 +1264,10 @@ weakdeps = ["Serialization"] SerializationExt = ["Serialization"] [[deps.LZO_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.1+0" +version = "2.10.2+0" [[deps.LaTeXStrings]] git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" @@ -1295,9 +1276,9 @@ version = "1.3.1" [[deps.Latexify]] deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] -git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" +git-tree-sha1 = "e0b5cd21dc1b44ec6e64f351976f961e6f31d6c4" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.2" +version = "0.16.3" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1317,12 +1298,6 @@ version = "0.1.15" deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" -[[deps.LeftChildRightSiblingTrees]] -deps = ["AbstractTrees"] -git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" -uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" -version = "0.2.0" - [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -1357,10 +1332,10 @@ uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" [[deps.Libgcrypt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] -git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.7+0" +version = "1.8.11+0" [[deps.Libglvnd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] @@ -1369,10 +1344,10 @@ uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" version = "1.6.0+0" [[deps.Libgpg_error_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.42.0+0" +version = "1.49.0+0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1382,9 +1357,9 @@ version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.39.3+0" +version = "2.40.1+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1394,9 +1369,9 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+1" +version = "2.40.1+0" [[deps.LineSearches]] deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] @@ -1409,26 +1384,22 @@ deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LinearOperators]] -deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "f06df3a46255879cbccae1b5b6dcb16994c31be7" +deps = ["FastClosures", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] +git-tree-sha1 = "ae5d90280094348c32fda8bc8b5a88bb16514d43" uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.7.0" -weakdeps = ["ChainRulesCore"] +version = "2.8.0" +weakdeps = ["CUDA", "ChainRulesCore", "LDLFactorizations"] [deps.LinearOperators.extensions] + LinearOperatorsCUDAExt = "CUDA" LinearOperatorsChainRulesCoreExt = "ChainRulesCore" - -[[deps.LogDensityProblems]] -deps = ["ArgCheck", "DocStringExtensions", "Random"] -git-tree-sha1 = "f9a11237204bc137617194d79d813069838fcf61" -uuid = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" -version = "2.1.1" + LinearOperatorsLDLFactorizationsExt = "LDLFactorizations" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.27" +version = "0.3.28" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1449,46 +1420,17 @@ git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.3" -[[deps.LoopVectorization]] -deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] -git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" -uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.166" -weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] - - [deps.LoopVectorization.extensions] - ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] - SpecialFunctionsExt = "SpecialFunctions" - [[deps.Lz4_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" version = "1.9.4+0" -[[deps.MCMCChains]] -deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "Formatting", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Serialization", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] -git-tree-sha1 = "c659f7508035a7bdd5102aef2de028ab035f289a" -uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -version = "5.7.1" - -[[deps.MCMCDiagnosticTools]] -deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "Tables"] -git-tree-sha1 = "d1737c39191aa26f42a64e320de313f1d1fd74b1" -uuid = "be115224-59cd-429b-ad48-344e309966f0" -version = "0.2.1" - [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "80b2833b56d466b3858d565adcd16a4a05f2089b" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.0.0+0" - -[[deps.MLJModelInterface]] -deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] -git-tree-sha1 = "14bd8088cf7cd1676aa83a57004f8d23d43cd81e" -uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" -version = "1.9.5" +version = "2024.1.0+0" [[deps.MLStyle]] git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" @@ -1517,21 +1459,21 @@ version = "0.20.19" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +git-tree-sha1 = "4099bb6809ac109bfc17d521dad33763bcf026b7" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.2.0+0" +version = "4.2.1+1" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +git-tree-sha1 = "c105fe467859e7f6e9a852cb15cb4301126fac07" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.10" +version = "0.1.11" [[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "8c35d5420193841b2f367e658540e8d9e0601ed0" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.2+0" +version = "5.4.0+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] @@ -1550,9 +1492,9 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "679c1aec6934d322783bd15db4d18f898653be4f" +git-tree-sha1 = "fffbbdbc10ba66885b7b4c06f4bd2c0efc5813d6" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.27.0" +version = "1.30.0" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] @@ -1584,9 +1526,9 @@ version = "10.1.4+2" [[deps.Missings]] deps = ["DataAPI"] -git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "1.1.0" +version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" @@ -1602,9 +1544,9 @@ version = "0.2.4" [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "302fd161eb1c439e4115b51ae456da4e9984f130" +git-tree-sha1 = "a3589efe0005fc4718775d8641b2de9060d23f73" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.4.1" +version = "1.4.4" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] @@ -1626,9 +1568,9 @@ version = "4.5.1" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "877f15c331337d54cf24c797d5bcb2e48ce21221" +git-tree-sha1 = "3d4617f943afe6410206a5294a95948c8d1b35bd" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.12" +version = "0.9.17" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" @@ -1666,11 +1608,6 @@ git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" version = "0.1.5" -[[deps.NaturalSort]] -git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" -uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" -version = "1.0.0" - [[deps.NetCDF_jll]] deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenMPI_jll", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] git-tree-sha1 = "a8af1798e4eb9ff768ce7fdefc0e957097793f15" @@ -1688,9 +1625,9 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.OffsetArrays]] -git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.13.0" +version = "1.14.0" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] @@ -1717,7 +1654,7 @@ version = "0.3.24+0" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+2" +version = "0.3.23+4" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -1732,15 +1669,15 @@ version = "4.1.6+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.2" +version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +git-tree-sha1 = "3da7367955dcc5c54c1ba4d402ccdc09a1a3e046" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.13+0" +version = "3.0.13+1" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1749,10 +1686,10 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[deps.Optim]] -deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "PackageExtensionCompat", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] -git-tree-sha1 = "d1223e69af90b6d26cea5b6f3b289b3148ba702c" +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "d9b79c4eed437421ac4285148fcadf42e0700e89" uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.9.3" +version = "1.9.4" weakdeps = ["MathOptInterface"] [deps.Optim.extensions] @@ -1760,9 +1697,9 @@ weakdeps = ["MathOptInterface"] [[deps.Optimisers]] deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "264b061c1903bc0fe9be77cb9050ebacff66bb63" +git-tree-sha1 = "6572fe0c5b74431aaeb0b18a4aa5ef03c84678be" uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.3.2" +version = "0.3.3" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1787,16 +1724,10 @@ uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.42.0+1" [[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"] -git-tree-sha1 = "95a4038d1011dfdbde7cecd2ad0ac411e53ab1bc" +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.10.1" - -[[deps.PackageExtensionCompat]] -git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" -uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" -version = "1.0.2" -weakdeps = ["Requires", "TOML"] +version = "0.11.31" [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] @@ -1817,9 +1748,9 @@ version = "1.3.0" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] -git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.42.2+0" +version = "0.43.4+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] @@ -1834,9 +1765,9 @@ version = "0.3.3" [[deps.PlotThemes]] deps = ["PlotUtils", "Statistics"] -git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +git-tree-sha1 = "6e55c6841ce3411ccb3457ee52fc48cb698d6fb0" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "3.1.0" +version = "3.2.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] @@ -1866,9 +1797,9 @@ version = "1.40.2" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "8df43bbe60029526dd628af7e9951f5af680d4d7" +git-tree-sha1 = "b3e2bae88cf07baf0a051fe09666b8ef97aefe93" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.10" +version = "0.7.14" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1890,9 +1821,9 @@ version = "0.2.4" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "ForwardDiff"] -git-tree-sha1 = "b6665214f2d0739f2d09a17474dd443b9139784a" +git-tree-sha1 = "406c29a7f46706d379a3bce45671b4e3a39ddfbc" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.20" +version = "0.4.22" [deps.PreallocationTools.extensions] PreallocationToolsReverseDiffExt = "ReverseDiff" @@ -1919,9 +1850,9 @@ version = "0.2.0" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +git-tree-sha1 = "66b20dd35966a748321d3b2537c4584cf40387c7" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.3.1" +version = "2.3.2" [[deps.Printf]] deps = ["Unicode"] @@ -1943,17 +1874,10 @@ git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" version = "0.1.4" -[[deps.ProgressMeter]] -deps = ["Distributed", "Printf"] -git-tree-sha1 = "763a8ceb07833dd51bb9e3bbca372de32c0605ad" -uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.10.0" - -[[deps.PyCall]] -deps = ["Conda", "Dates", "Libdl", "LinearAlgebra", "MacroTools", "Serialization", "VersionParsing"] -git-tree-sha1 = "9816a3826b0ebf49ab4926e2b18842ad8b5c8f04" -uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" -version = "1.96.4" +[[deps.PtrArrays]] +git-tree-sha1 = "f011fbb92c4d401059b2212c05c0601b70f8b759" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.2.0" [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] @@ -1973,9 +1897,9 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" +git-tree-sha1 = "43dba55be8b80a2af4b4e901537d9f29fcd0d2e2" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.13.1" +version = "0.13.4" weakdeps = ["ClimaParams"] [deps.RRTMGP.extensions] @@ -1991,23 +1915,12 @@ git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" uuid = "74087812-796a-5b5d-8853-05524746bad3" version = "1.7.0" -[[deps.RandomFeatures]] -deps = ["Distributions", "DocStringExtensions", "EnsembleKalmanProcesses", "LinearAlgebra", "LoopVectorization", "Random", "SpecialFunctions", "Statistics", "StatsBase", "Tullio"] -git-tree-sha1 = "592c96dd5cb2ebd635b551491cb3621bbe010ca0" -uuid = "36c3bae2-c0c3-419d-b3b4-eebadd35c5e5" -version = "0.3.2" - [[deps.RandomNumbers]] deps = ["Random", "Requires"] git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" version = "1.5.3" -[[deps.RangeArrays]] -git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" -uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" -version = "0.3.2" - [[deps.Ratios]] deps = ["Requires"] git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" @@ -2038,9 +1951,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" +git-tree-sha1 = "2cea01606a852c2431ded77293eb533b511b19e6" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.12.0" +version = "3.22.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -2084,10 +1997,10 @@ uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" version = "0.7.1" [[deps.Rmath_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d483cd324ce5cf5d61b77930f0bbd6cb61927d21" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" -version = "0.4.0+0" +version = "0.4.2+0" [[deps.RootSolvers]] deps = ["ForwardDiff"] @@ -2097,9 +2010,9 @@ version = "0.4.2" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +git-tree-sha1 = "04c968137612c4a5629fa531334bb81ad5680f00" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.12" +version = "0.5.13" [[deps.SCS]] deps = ["MathOptInterface", "Requires", "SCS_GPU_jll", "SCS_jll", "SparseArrays"] @@ -2128,12 +2041,6 @@ git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.0" -[[deps.SLEEFPirates]] -deps = ["IfElse", "Static", "VectorizationBase"] -git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" -uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.42" - [[deps.SciMLBase]] 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 = "088123999a9a8fa7ff386a82048c6ed24b2b7d07" @@ -2166,26 +2073,9 @@ uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" version = "0.3.8" [[deps.SciMLStructures]] -git-tree-sha1 = "5833c10ce83d690c124beedfe5f621b50b02ba4d" +git-tree-sha1 = "d778a74df2f64059c38453b34abad1953b2b8722" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.1.0" - -[[deps.ScientificTypesBase]] -git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" -uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" -version = "3.0.0" - -[[deps.ScikitLearn]] -deps = ["Compat", "Conda", "DataFrames", "Distributed", "IterTools", "LinearAlgebra", "MacroTools", "Parameters", "Printf", "PyCall", "Random", "ScikitLearnBase", "SparseArrays", "StatsBase", "VersionParsing"] -git-tree-sha1 = "3df098033358431591827bb86cada0bed744105a" -uuid = "3646fa90-6ef7-5e7e-9f22-8aca16db6324" -version = "0.7.0" - -[[deps.ScikitLearnBase]] -deps = ["LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "7877e55c1523a4b336b433da39c8e8c08d2f221f" -uuid = "6e75b9c4-186b-50bd-896f-2d2496a4843e" -version = "0.5.0" +version = "1.2.0" [[deps.Scratch]] deps = ["Dates"] @@ -2195,9 +2085,9 @@ version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +git-tree-sha1 = "90b4f68892337554d31cdcdbe19e48989f26c7e6" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.1" +version = "1.4.3" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -2256,9 +2146,9 @@ version = "0.1.2" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.1" +version = "2.4.0" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -2270,12 +2160,6 @@ git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" uuid = "171d559e-b47b-412a-8079-5efa626c420e" version = "0.1.15" -[[deps.StableRNGs]] -deps = ["Random", "Test"] -git-tree-sha1 = "ddc1a7b85e760b5285b50b882fa91e40c603be47" -uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" -version = "1.0.1" - [[deps.Static]] deps = ["IfElse"] git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" @@ -2295,9 +2179,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +git-tree-sha1 = "9ae599cd7529cfce7fea36cf00a62cfc56f0f37c" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.3" +version = "1.9.4" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -2309,12 +2193,6 @@ git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.2" -[[deps.StatisticalTraits]] -deps = ["ScientificTypesBase"] -git-tree-sha1 = "30b9236691858e13f167ce829490a68e1a597782" -uuid = "64bff920-2084-43da-a3e6-9bb72801c0c9" -version = "3.2.0" - [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" @@ -2328,21 +2206,26 @@ version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.21" +version = "0.34.3" [[deps.StatsFuns]] -deps = ["ChainRulesCore", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "5950925ff997ed6fb3e985dcce8eb1ba42a0bbe7" +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "0.9.18" +version = "1.3.1" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" [[deps.StrideArraysCore]] -deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "25349bf8f63aa36acbff5e3550a86e9f5b0ef682" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.5.2" +version = "0.5.6" [[deps.StringEncodings]] deps = ["Libiconv_jll"] @@ -2389,10 +2272,10 @@ weakdeps = ["ClimaParams"] CreateParametersExt = "ClimaParams" [[deps.SymbolicIndexingInterface]] -deps = ["MacroTools", "RuntimeGeneratedFunctions"] -git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" +deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] +git-tree-sha1 = "a5f6f138b740c9d93d76f0feddd3092e6ef002b7" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.11" +version = "0.3.22" [[deps.TOML]] deps = ["Dates"] @@ -2440,20 +2323,14 @@ git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" version = "0.1.1" -[[deps.TerminalLoggers]] -deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] -git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" -uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" -version = "0.1.7" - [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.TextWrap]] -git-tree-sha1 = "9250ef9b01b66667380cf3275b3f7488d0e25faf" +git-tree-sha1 = "43044b737fa70bc12f6105061d3da38f881a3e3c" uuid = "b718987f-49a8-5099-9789-dcd902bef87d" -version = "1.0.1" +version = "1.0.2" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] @@ -2473,14 +2350,14 @@ version = "0.5.2" [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.23" +version = "0.5.24" [[deps.TranscodingStreams]] -git-tree-sha1 = "14389d51751169994b2e1317d5c72f7dc4f21045" +git-tree-sha1 = "a947ea21087caba0a798c5e494d0bb78e3a1a3a0" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.6" +version = "0.10.9" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -2522,24 +2399,6 @@ git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" uuid = "781d530d-4396-4725-bb49-402e4bee1e77" version = "1.4.0" -[[deps.Tullio]] -deps = ["DiffRules", "LinearAlgebra", "Requires"] -git-tree-sha1 = "6d476962ba4e435d7f4101a403b1d3d72afe72f3" -uuid = "bc48ee85-29a4-5162-ae0b-a64e1601d4bc" -version = "0.3.7" - - [deps.Tullio.extensions] - TullioCUDAExt = "CUDA" - TullioChainRulesCoreExt = "ChainRulesCore" - TullioFillArraysExt = "FillArrays" - TullioTrackerExt = "Tracker" - - [deps.Tullio.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - [[deps.URIs]] git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -2565,9 +2424,9 @@ version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +git-tree-sha1 = "dd260903fdabea27d9b6021689b3cd5401a57748" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.19.0" +version = "1.20.0" weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] @@ -2593,26 +2452,15 @@ version = "0.2.1" [[deps.UnsafeAtomicsLLVM]] deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +git-tree-sha1 = "d9f5962fecd5ccece07db1ff006fb0b5271bdfdd" uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.1.3" +version = "0.1.4" [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" version = "0.2.0" -[[deps.VectorizationBase]] -deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "7209df901e6ed7489fe9b7aa3e46fb788e15db85" -uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.21.65" - -[[deps.VersionParsing]] -git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" -uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" -version = "1.3.0" - [[deps.Vulkan_Loader_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" @@ -2650,9 +2498,9 @@ version = "1.6.1" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" +git-tree-sha1 = "52ff2af32e591541550bd753c0da8b9bc92bb9d9" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.5+0" +version = "2.12.7+0" [[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] @@ -2662,21 +2510,21 @@ version = "1.1.34+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" +git-tree-sha1 = "ac88fb95ae6447c8dda6a5503f3bafd496ae8632" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.6.1+0" +version = "5.4.6+0" [[deps.Xorg_libICE_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "326b4fea307b0b39892b3e85fa451692eda8d46c" uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" -version = "1.0.10+1" +version = "1.1.1+0" [[deps.Xorg_libSM_jll]] -deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] -git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libICE_jll"] +git-tree-sha1 = "3796722887072218eabafb494a13c963209754ce" uuid = "c834827a-8449-5923-a945-d239c165b7dd" -version = "1.2.3+0" +version = "1.2.4+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] @@ -2703,10 +2551,10 @@ uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.4+0" [[deps.Xorg_libXext_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.4+4" +version = "1.3.6+0" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] @@ -2733,10 +2581,10 @@ uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" [[deps.Xorg_libXrender_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.10+4" +version = "0.9.11+0" [[deps.Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -2823,15 +2671,15 @@ version = "1.2.13+1" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +git-tree-sha1 = "e678132f07ddb5bfa46857f0d7620fb9be675d3b" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.5+0" +version = "1.5.6+0" [[deps.Zygote]] deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "4ddb4470e47b0094c93055a3bcae799165cc68f1" +git-tree-sha1 = "19c586905e78a26f7e4e97f81716057bd6b1bc54" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.69" +version = "0.6.70" [deps.Zygote.extensions] ZygoteColorsExt = "Colors" @@ -2851,9 +2699,9 @@ version = "0.2.5" [[deps.cuDNN]] deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] -git-tree-sha1 = "d433ec29756895512190cac9c96666d879f07b92" +git-tree-sha1 = "4909e87d6d62c29a897d54d9001c63932e41cb0e" uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" -version = "1.3.0" +version = "1.3.2" [[deps.eudev_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] @@ -2880,10 +2728,10 @@ uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" version = "1.1.2+0" [[deps.libaom_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.4.0+0" +version = "3.9.0+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] @@ -2943,6 +2791,12 @@ deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.52.0+1" +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2021.12.0+0" + [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" diff --git a/calibration/Project.toml b/calibration/Project.toml index 57f2e0b02e..df10812b6a 100644 --- a/calibration/Project.toml +++ b/calibration/Project.toml @@ -1,8 +1,8 @@ [deps] ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" -CalibrateAtmos = "4347a170-ebd6-470c-89d3-5c705c0cacc2" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" +ClimaCalibrate = "4347a170-ebd6-470c-89d3-5c705c0cacc2" ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" ClimaCorePlots = "cf7c7e5a-b407-4c48-9047-11a94a308626" diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl index ead53353dc..c24ad37789 100644 --- a/calibration/coupler_interface.jl +++ b/calibration/coupler_interface.jl @@ -65,4 +65,4 @@ function run_forward_model( cs = get_simulation(config); sol_res = solve_coupler!(cs); return sol_res -end \ No newline at end of file +end diff --git a/calibration/pipeline.jl b/calibration/pipeline.jl index 61bc96a254..63215ace0c 100644 --- a/calibration/pipeline.jl +++ b/calibration/pipeline.jl @@ -1,7 +1,7 @@ ### Generate synthetic truth datasets @info "Generating synthetic truth data" using ClimaComms -import CalibrateAtmos +import ClimaCalibrate ClimaComms.init(ClimaComms.context()) import ClimaCoupler import YAML @@ -9,7 +9,7 @@ using NCDatasets import JLD2 using Statistics -import CalibrateAtmos: AbstractPhysicalModel, get_forward_model +import ClimaCalibrate: get_forward_model experiment_dir = joinpath("experiments", "amip_coupled") COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") @@ -43,6 +43,6 @@ run_forward_model(CoupledModel(), config_dict); # This outputs in experiments/AMIP/output/amip/target_amip_n1_shortrun ### Calibrate -CalibrateAtmos.calibrate("amip_coupled") +ClimaCalibrate.calibrate("amip_coupled") -### Re-run target simulation \ No newline at end of file +### Re-run target simulation From 29525da4a6e88fb613cb2d5d91257e3b3375b2e3 Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Tue, 23 Jul 2024 16:36:56 -0700 Subject: [PATCH 22/23] modified: ../../../Manifest.toml modified: ../../../artifacts/Project.toml modified: ../../Manifest.toml modified: ../../Project.toml deleted: ../../coupler_component_init.jl deleted: ../../coupler_driver_calibration.jl deleted: ../../coupler_driver_init.jl deleted: ../../coupler_interface.jl deleted: ../../coupler_parse_args.jl deleted: ../amip_coupled/ekp_config.yml deleted: ../amip_coupled/model_config.yml deleted: ../amip_coupled/observation_map.jl deleted: ../amip_coupled/prior.toml deleted: ../amip_coupled/truth_simulation/target_amip_n1_shortrun.yml deleted: ../amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml deleted: ../../generate_observations.sbatch deleted: ../../model_run.sbatch deleted: ../../pipeline.jl modified: ../../../experiments/ClimaEarth/Manifest.toml modified: ../../../experiments/ClimaEarth/run_moist_held_suarez.jl modified: ../../../perf/Manifest.toml --- Manifest.toml | 1333 +++++------------ artifacts/Project.toml | 1 + calibration/Manifest.toml | 1097 +++++++------- calibration/Project.toml | 1 + calibration/coupler_component_init.jl | 259 ---- calibration/coupler_driver_calibration.jl | 350 ----- calibration/coupler_driver_init.jl | 9 - calibration/coupler_interface.jl | 68 - calibration/coupler_parse_args.jl | 72 - .../experiments/amip_coupled/ekp_config.yml | 7 - .../experiments/amip_coupled/model_config.yml | 28 - .../amip_coupled/observation_map.jl | 56 - .../experiments/amip_coupled/prior.toml | 23 - .../target_amip_n1_shortrun.yml | 106 -- .../target_amip_n1_shortrun_parameters.toml | 487 ------ calibration/generate_observations.sbatch | 34 - calibration/model_run.sbatch | 27 - calibration/pipeline.jl | 48 - experiments/ClimaEarth/Manifest.toml | 56 +- .../ClimaEarth/run_moist_held_suarez.jl | 2 +- perf/Manifest.toml | 54 +- 21 files changed, 1039 insertions(+), 3079 deletions(-) delete mode 100644 calibration/coupler_component_init.jl delete mode 100644 calibration/coupler_driver_calibration.jl delete mode 100644 calibration/coupler_driver_init.jl delete mode 100644 calibration/coupler_interface.jl delete mode 100644 calibration/coupler_parse_args.jl delete mode 100644 calibration/experiments/amip_coupled/ekp_config.yml delete mode 100644 calibration/experiments/amip_coupled/model_config.yml delete mode 100644 calibration/experiments/amip_coupled/observation_map.jl delete mode 100644 calibration/experiments/amip_coupled/prior.toml delete mode 100644 calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml delete mode 100644 calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml delete mode 100644 calibration/generate_observations.sbatch delete mode 100644 calibration/model_run.sbatch delete mode 100644 calibration/pipeline.jl diff --git a/Manifest.toml b/Manifest.toml index 7d402a7d4e..3b9c676a4f 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,66 +1,82 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.0" +julia_version = "1.10.4" manifest_format = "2.0" -project_hash = "6f5f82aeb657de24ef9e2ba1e1fdf5cf560cf5ea" +project_hash = "72d472c6f40d66191022c11f76a80fa1fabfcfaa" [[deps.ADTypes]] -git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" +git-tree-sha1 = "aa4d425271a914d8c4af6ad9fccb6eb3aec662c7" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.7" +version = "1.6.1" + + [deps.ADTypes.extensions] + ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesEnzymeCoreExt = "EnzymeCore" -[[deps.AMD]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "45a1272e3f809d36431e57ab22703c6896b8908f" -uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" -version = "0.5.3" + [deps.ADTypes.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" version = "1.5.0" -weakdeps = ["ChainRulesCore", "Test"] [deps.AbstractFFTs.extensions] AbstractFFTsChainRulesCoreExt = "ChainRulesCore" AbstractFFTsTestExt = "Test" + [deps.AbstractFFTs.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] +git-tree-sha1 = "f61b15be1d76846c0ce31d3fcfac5380ae53db6a" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.37" + + [deps.Accessors.extensions] + AccessorsAxisKeysExt = "AxisKeys" + AccessorsIntervalSetsExt = "IntervalSets" + AccessorsStaticArraysExt = "StaticArrays" + AccessorsStructArraysExt = "StructArrays" + AccessorsUnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + Requires = "ae029012-a4dd-5104-9daa-d747884805df" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" +git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.0.3" +version = "4.0.4" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] AdaptStaticArraysExt = "StaticArrays" -[[deps.ArgCheck]] -git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" -uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" -version = "2.3.0" - -[[deps.ArgParse]] -deps = ["Logging", "TextWrap"] -git-tree-sha1 = "d4eccacaa3a632e8717556479d45502af44b4c17" -uuid = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" -version = "1.1.5" - [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" +git-tree-sha1 = "5c9b74c973181571deb6442d41e5c902e6b9f38e" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.9.0" +version = "7.12.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceCUDSSExt = "CUDSS" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" ArrayInterfaceReverseDiffExt = "ReverseDiff" @@ -71,6 +87,7 @@ version = "7.9.0" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" @@ -79,101 +96,56 @@ version = "7.9.0" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" +git-tree-sha1 = "ce2ca959f932f5dad70697dd93133d1167cf1e4e" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.6.1" +version = "1.10.2" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] ArrayLayoutsSparseArraysExt = "SparseArrays" -[[deps.ArtifactWrappers]] -deps = ["Downloads", "Pkg"] -git-tree-sha1 = "760f4c06375735829b8c1b67560b608b9dba4c6a" -uuid = "a14bc488-3040-4b00-9dc1-f6467924858a" -version = "0.2.0" - [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" -[[deps.AtmosphericProfilesLibrary]] -deps = ["Dierckx", "LinearAlgebra"] -git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" -uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" -version = "0.1.4" - [[deps.Atomix]] deps = ["UnsafeAtomics"] git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" version = "0.1.0" -[[deps.AxisAlgorithms]] -deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] -git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" -uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" -version = "1.1.0" - [[deps.BFloat16s]] deps = ["LinearAlgebra", "Printf", "Random", "Test"] -git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66" +git-tree-sha1 = "2c7cc21e8678eff479978a0a2ef5ce2f51b63dff" uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.4.2" +version = "0.5.0" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "c946c5014cf4cdbfacacb363b110e7bffba3e742" +git-tree-sha1 = "71f605effb24081b09cae943ba39ef9ca90c04f4" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.6.1" +version = "1.7.2" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] BandedMatricesSparseArraysExt = "SparseArrays" -[[deps.BangBang]] -deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] -git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3" -uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.3.40" - - [deps.BangBang.extensions] - BangBangChainRulesCoreExt = "ChainRulesCore" - BangBangDataFramesExt = "DataFrames" - BangBangStaticArraysExt = "StaticArrays" - BangBangStructArraysExt = "StructArrays" - BangBangTypedTablesExt = "TypedTables" - - [deps.BangBang.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" - TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" - [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[deps.Baselet]] -git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" -uuid = "9718e550-a3fa-408a-8086-8db961cd8217" -version = "0.1.1" - [[deps.BitFlags]] -git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.8" - -[[deps.BitTwiddlingConvenienceFunctions]] -deps = ["Static"] -git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" -uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" -version = "0.1.5" +version = "0.1.9" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "fc69cbdb4277042f72c6e59cbc7024fbe3034b89" +git-tree-sha1 = "5c0ffe1dff8cb7112de075f1b1cb32191675fcba" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.39" +version = "1.1.0" +weakdeps = ["BandedMatrices"] + + [deps.BlockArrays.extensions] + BlockArraysBandedMatricesExt = "BandedMatrices" [[deps.Blosc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] @@ -198,154 +170,96 @@ git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.3" -[[deps.CPUSummary]] -deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" -uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.4" - -[[deps.CSV]] -deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "a44910ceb69b0d44fe262dd451ab11ead3ed0be8" -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", "StaticArrays", "Statistics"] -git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845" +git-tree-sha1 = "fdd9dfb67dfefd548f51000cc400bb51003de247" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.2.0" -weakdeps = ["ChainRulesCore", "SpecialFunctions"] +version = "5.4.3" [deps.CUDA.extensions] ChainRulesCoreExt = "ChainRulesCore" + EnzymeCoreExt = "EnzymeCore" SpecialFunctionsExt = "SpecialFunctions" + [deps.CUDA.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" +git-tree-sha1 = "97df9d4d6be8ac6270cb8fd3b8fc413690820cbd" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.7.0+1" +version = "0.9.1+1" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" +git-tree-sha1 = "f3b237289a5a77c759b2dd5d4c2ff641d67c4030" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.3" +version = "0.3.4" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84" +git-tree-sha1 = "afea94249b821dc754a8ca6695d3daed851e1f5a" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.11.1+0" - -[[deps.CUDNN_jll]] -deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "75923dce4275ead3799b238e10178a68c07dbd3b" -uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" -version = "8.9.4+0" +version = "0.14.1+0" [[deps.Cairo_jll]] 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" +git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.0+1" - -[[deps.ChainRules]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "4e42872be98fa3343c4f8458cbda8c5c6a6fa97c" -uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.63.0" - -[[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.23.0" -weakdeps = ["SparseArrays"] - - [deps.ChainRulesCore.extensions] - ChainRulesCoreSparseArraysExt = "SparseArrays" - -[[deps.ClimaAtmos]] -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.22.0" +version = "1.18.0+2" [[deps.ClimaComms]] -deps = ["CUDA", "MPI"] -git-tree-sha1 = "f0350e34c91c8f3b5a11b5e39990439303d727b1" +git-tree-sha1 = "2ca8c9ca6131a7be8ca262e6db79bc7aa94ab597" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.5.7" +version = "0.6.3" + + [deps.ClimaComms.extensions] + ClimaCommsCUDAExt = "CUDA" + ClimaCommsMPIExt = "MPI" + + [deps.ClimaComms.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" [[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 = "bc6a0154e3bcc1657d3a75f697e216fb70121969" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "MultiBroadcastFusion", "NVTX", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "StaticArrays", "Statistics", "Unrolled"] +git-tree-sha1 = "fa5335ad4b4596c70882c42366172b52aad7a499" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.13.2" -weakdeps = ["Krylov"] +version = "0.14.10" [deps.ClimaCore.extensions] + ClimaCoreCUDAExt = "CUDA" KrylovExt = "Krylov" + [deps.ClimaCore.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Krylov = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" + [[deps.ClimaCoreTempestRemap]] deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] -git-tree-sha1 = "ac11cc8ad2c043ab753d6888c224c7e2f35f42c0" +git-tree-sha1 = "d85c3a7b457b6d8b54d82499aa6df3b34140ea4d" uuid = "d934ef94-cdd4-4710-83d6-720549644b70" -version = "0.3.14" - -[[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 = "ee8d018563e6d0a84a56436b846ee886fbff34b1" -uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.11.0" -weakdeps = ["ClimaParams"] - - [deps.ClimaLand.extensions] - 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 = "9c203f39784c968700c55f555754a7771b3410df" -uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.19" - -[[deps.CloseOpenIntervals]] -deps = ["Static", "StaticArrayInterface"] -git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" -uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.12" - -[[deps.CloudMicrophysics]] -deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" -uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.18.0" +version = "0.3.15" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +git-tree-sha1 = "b8fe8546d52ca154ac556809e10c75e6e7430ac8" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.4" +version = "0.7.5" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.24.0" +version = "3.26.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.4" +version = "0.11.5" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] @@ -359,15 +273,15 @@ weakdeps = ["SpecialFunctions"] [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" +version = "0.12.11" [[deps.CommonDataModel]] deps = ["CFTime", "DataStructures", "Dates", "Preferences", "Printf", "Statistics"] -git-tree-sha1 = "d7d7b58e149f19c322840a50d1bc20e8c23addb4" +git-tree-sha1 = "d6fb5bf939a2753c74984b11434ea25d6c397a58" uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" -version = "0.3.5" +version = "0.3.6" [[deps.CommonSolve]] git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" @@ -382,9 +296,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.14.0" +version = "4.15.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -393,52 +307,38 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+1" +version = "1.1.1+0" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" version = "0.1.2" +weakdeps = ["InverseFunctions"] [deps.CompositionsBase.extensions] CompositionsBaseInverseFunctionsExt = "InverseFunctions" - [deps.CompositionsBase.weakdeps] - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" - [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.4.1" +version = "2.4.2" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +git-tree-sha1 = "d8a9c0b6ac2d9081bf76324b39c78ca3ce4f0c98" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.4" +version = "1.5.6" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] ConstructionBaseIntervalSetsExt = "IntervalSets" ConstructionBaseStaticArraysExt = "StaticArrays" -[[deps.ContextVariablesX]] -deps = ["Compat", "Logging", "UUIDs"] -git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" -uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" -version = "0.1.3" - [[deps.Contour]] -git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" -version = "0.6.2" - -[[deps.CpuId]] -deps = ["Markdown"] -git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" -uuid = "adafc99b-e345-5852-983c-f28acb93d879" -version = "0.3.1" +version = "0.6.3" [[deps.Crayons]] git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" @@ -464,9 +364,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.18" +version = "0.18.20" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -477,69 +377,12 @@ version = "1.0.0" deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" -[[deps.DefineSingletons]] -git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" -uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" -version = "0.1.2" - [[deps.DelimitedFiles]] deps = ["Mmap"] git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" -[[deps.Dierckx]] -deps = ["Dierckx_jll"] -git-tree-sha1 = "d1ea9f433781bb6ff504f7d3cb70c4782c504a3a" -uuid = "39dd38d3-220a-591b-8e3c-4c3a8c710a94" -version = "0.5.3" - -[[deps.Dierckx_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6596b96fe1caff3db36415eeb6e9d3b50bfe40ee" -uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" -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 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" -uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.148.0" - - [deps.DiffEqBase.extensions] - DiffEqBaseChainRulesCoreExt = "ChainRulesCore" - DiffEqBaseDistributionsExt = "Distributions" - DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] - DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" - DiffEqBaseMPIExt = "MPI" - DiffEqBaseMeasurementsExt = "Measurements" - DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" - DiffEqBaseReverseDiffExt = "ReverseDiff" - DiffEqBaseTrackerExt = "Tracker" - DiffEqBaseUnitfulExt = "Unitful" - - [deps.DiffEqBase.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" - MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" - Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" - MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" - -[[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "ee954c8b9d348b7a8a6aec5f28288bf5adecd4ee" -uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.37.0" - - [deps.DiffEqCallbacks.weakdeps] - OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" - [[deps.DiffResults]] deps = ["StaticArraysCore"] git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" @@ -558,17 +401,6 @@ git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" version = "0.3.23" -[[deps.Distances]] -deps = ["LinearAlgebra", "Statistics", "StatsAPI"] -git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" -uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.11" -weakdeps = ["ChainRulesCore", "SparseArrays"] - - [deps.Distances.extensions] - DistancesChainRulesCoreExt = "ChainRulesCore" - DistancesSparseArraysExt = "SparseArrays" - [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" @@ -594,15 +426,6 @@ git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" -[[deps.EnzymeCore]] -git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" -uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.6.5" -weakdeps = ["Adapt"] - - [deps.EnzymeCore.extensions] - AdaptExt = "Adapt" - [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" @@ -617,9 +440,9 @@ version = "0.1.10" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.5.0+0" +version = "2.6.2+0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -650,55 +473,20 @@ git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.10+0" -[[deps.FLoops]] -deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] -git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" -uuid = "cc61a311-1640-44b5-9fba-1b764f453329" -version = "0.2.1" - -[[deps.FLoopsBase]] -deps = ["ContextVariablesX"] -git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" -uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" -version = "0.1.1" - -[[deps.FastBroadcast]] -deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" -uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.2.8" - -[[deps.FastClosures]] -git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" -uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" -version = "0.3.2" - -[[deps.FastGaussQuadrature]] -deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "fd923962364b645f3719855c88f7074413a6ad92" -uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "1.0.2" - [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.16.3" -[[deps.FilePathsBase]] -deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] -git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" -uuid = "48062228-2e41-5def-b9a4-89aafe57970f" -version = "0.9.21" - [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] -deps = ["LinearAlgebra", "Random"] -git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +deps = ["LinearAlgebra"] +git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.9.3" +version = "1.11.0" [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" @@ -710,56 +498,22 @@ version = "1.9.3" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -[[deps.FiniteDiff]] -deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] -git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" -uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.23.0" - - [deps.FiniteDiff.extensions] - FiniteDiffBandedMatricesExt = "BandedMatrices" - FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" - FiniteDiffStaticArraysExt = "StaticArrays" - - [deps.FiniteDiff.weakdeps] - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.FixedPointNumbers]] deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -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" -uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.13" - - [deps.Flux.extensions] - FluxAMDGPUExt = "AMDGPU" - FluxCUDAExt = "CUDA" - FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] - FluxMetalExt = "Metal" - - [deps.Flux.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" +version = "0.8.5" [[deps.Fontconfig_jll]] -deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.93+0" +version = "2.13.96+0" [[deps.Format]] -git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" -version = "1.3.6" +version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] @@ -773,15 +527,15 @@ weakdeps = ["StaticArrays"] [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.13.1+0" +version = "2.13.2+0" [[deps.FriBidi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.10+0" +version = "1.0.14+0" [[deps.FunctionWrappers]] git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" @@ -794,21 +548,15 @@ git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" version = "0.1.3" -[[deps.Functors]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" -uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.8" - [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[deps.GLFW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] -git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "3f74912a156096bd8fdbef211eff66ab446e7297" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" -version = "3.3.9+0" +version = "3.4.0+0" [[deps.GMP_jll]] deps = ["Artifacts", "Libdl"] @@ -817,9 +565,9 @@ version = "6.2.1+6" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283" +git-tree-sha1 = "a74c3f1cf56a3dfcdef0605f8cdb7015926aae30" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "10.0.2" +version = "10.3.0" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -828,22 +576,22 @@ uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.1.6" [[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Preferences", "Scratch", "Serialization", "TOML", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "ab29216184312f99ff957b32cd63c2fe9c928b91" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.25.0" +version = "0.26.7" [[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 = "3437ade7073682993e092ca570ad68a2aba26983" +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "629693584cef594c3f6f99e76e7a7ad17e60e8d5" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.3" +version = "0.73.7" [[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 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" +git-tree-sha1 = "a8863b69c2a0859f2c2c87ebdc4c6712e88bdf0d" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.3+0" +version = "0.73.7+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -864,15 +612,15 @@ 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 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" +git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.80.0+0" +version = "2.80.2+0" [[deps.GnuTLS_jll]] deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Nettle_jll", "P11Kit_jll", "Zlib_jll"] -git-tree-sha1 = "f3c0936dd685d57fa0b1eee7dbebf382b969ea63" +git-tree-sha1 = "383db7d3f900f4c1f47a8a04115b053c095e48d3" uuid = "0951126a-58fd-58f1-b5b3-b08c7c4a876d" -version = "3.8.3+0" +version = "3.8.4+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -887,25 +635,27 @@ version = "1.0.2" [[deps.HDF5]] deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "26407bd1c60129062cec9da63dc7d08251544d53" +git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.17.1" -weakdeps = ["MPI"] +version = "0.17.2" [deps.HDF5.extensions] MPIExt = "MPI" + [deps.HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + [[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.3+1" +version = "1.14.2+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "995f762e0182ebc50548c434c171a5bb6635f8e4" +git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.4" +version = "1.10.8" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -915,62 +665,33 @@ version = "2.8.1+1" [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +git-tree-sha1 = "5e19e1e4fa3e71b774ce746274364aef0234634e" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.10.0+0" - -[[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.12" - -[[deps.IfElse]] -git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" -uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" -version = "0.1.1" - -[[deps.InitialValues]] -git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" -uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" -version = "0.3.1" +version = "2.11.1+0" [[deps.InlineStrings]] -deps = ["Parsers"] -git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" -version = "1.4.0" +version = "1.4.2" -[[deps.Insolation]] -deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" -uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.2" -weakdeps = ["ClimaParams"] + [deps.InlineStrings.extensions] + ArrowTypesExt = "ArrowTypes" + ParsersExt = "Parsers" - [deps.Insolation.extensions] - CreateParametersExt = "ClimaParams" + [deps.InlineStrings.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" + Parsers = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +git-tree-sha1 = "14eb2b542e748570b56446f4c50fbfb2306ebc45" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.0.2+0" +version = "2024.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -[[deps.Interpolations]] -deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] -git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" -uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.15.1" -weakdeps = ["Unitful"] - - [deps.Interpolations.extensions] - InterpolationsUnitfulExt = "Unitful" - [[deps.IntervalSets]] git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" uuid = "8197267c-284f-5f27-9208-e0e47529a953" @@ -982,6 +703,16 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] IntervalSetsRecipesBaseExt = "RecipesBase" IntervalSetsStatisticsExt = "Statistics" +[[deps.InverseFunctions]] +deps = ["Test"] +git-tree-sha1 = "18c59411ece4838b18cd7f537e56cf5e41ce5bfd" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.15" +weakdeps = ["Dates"] + + [deps.InverseFunctions.extensions] + DatesExt = "Dates" + [[deps.InvertedIndices]] git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" @@ -998,10 +729,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Reexport", "Requires", "TranscodingStreams", "UUIDs", "Unicode"] +git-tree-sha1 = "5fe858cb863e211c6dedc8cce2dc0752d4ab6e2b" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.46" +version = "0.4.50" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -1023,9 +754,9 @@ version = "0.21.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.2+0" +version = "3.0.3+0" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1033,45 +764,35 @@ git-tree-sha1 = "af433a10f3942e882d3c671aacb203e006a5808f" uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" version = "0.2.1+0" -[[deps.JuliaVariables]] -deps = ["MLStyle", "NameResolution"] -git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" -uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" -version = "0.2.4" - [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" +git-tree-sha1 = "d0448cebd5919e06ca5edc7a264631790de810ec" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.18" -weakdeps = ["EnzymeCore"] +version = "0.9.22" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" -[[deps.Krylov]] -deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" -uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.5" + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.KrylovKit]] -deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] -git-tree-sha1 = "5cebb47f472f086f7dd31fb8e738a8db728f1f84" +deps = ["GPUArraysCore", "LinearAlgebra", "PackageExtensionCompat", "Printf", "VectorInterface"] +git-tree-sha1 = "3c2a016489c38f35160a246c91a3f3353c47bb68" uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" -version = "0.6.1" +version = "0.8.1" + + [deps.KrylovKit.extensions] + KrylovKitChainRulesCoreExt = "ChainRulesCore" + + [deps.KrylovKit.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" [[deps.LAME_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.1+0" - -[[deps.LDLFactorizations]] -deps = ["AMD", "LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "70f582b446a1c3ad82cf87e62b878668beef9d13" -uuid = "40e66cde-538c-5869-a4ad-c39174c6795b" -version = "0.10.1" +version = "3.100.2+0" [[deps.LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1081,9 +802,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "7c6650580b4c3169d9905858160db895bff6d2e2" +git-tree-sha1 = "020abd49586480c1be84f57da0017b5d3db73f7c" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.6.1" +version = "8.0.0" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1091,9 +812,9 @@ weakdeps = ["BFloat16s"] [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "88b916503aac4fb7f701bb625cd84ca5dd1677bc" +git-tree-sha1 = "c2636c264861edc6d305e6b4d528f09566d24c5e" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.29+0" +version = "0.0.30+0" [[deps.LLVMLoopInfo]] git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" @@ -1116,10 +837,10 @@ weakdeps = ["Serialization"] SerializationExt = ["Serialization"] [[deps.LZO_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.1+0" +version = "2.10.2+0" [[deps.LaTeXStrings]] git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" @@ -1128,9 +849,9 @@ version = "1.3.1" [[deps.Latexify]] deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] -git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" +git-tree-sha1 = "5b0d630f3020b82c0775a51d05895852f8506f50" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.2" +version = "0.16.4" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1140,12 +861,6 @@ version = "0.16.2" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" -[[deps.LayoutPointers]] -deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" -uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.15" - [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" @@ -1184,10 +899,10 @@ uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" [[deps.Libgcrypt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] -git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.7+0" +version = "1.8.11+0" [[deps.Libglvnd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] @@ -1196,10 +911,10 @@ uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" version = "1.6.0+0" [[deps.Libgpg_error_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.42.0+0" +version = "1.49.0+0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1209,9 +924,9 @@ version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.39.3+0" +version = "2.40.1+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1221,35 +936,19 @@ version = "4.5.1+1" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+1" - -[[deps.LineSearches]] -deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] -git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" -uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" -version = "7.2.0" +version = "2.40.1+0" [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -[[deps.LinearOperators]] -deps = ["FastClosures", "LDLFactorizations", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "f06df3a46255879cbccae1b5b6dcb16994c31be7" -uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.7.0" -weakdeps = ["ChainRulesCore"] - - [deps.LinearOperators.extensions] - LinearOperatorsChainRulesCoreExt = "ChainRulesCore" - [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.27" +version = "0.3.28" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1277,53 +976,28 @@ uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" version = "1.9.4+0" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.0.0+0" - -[[deps.MLStyle]] -git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" -uuid = "d8e11817-5142-5d16-987a-aa16d5891078" -version = "0.4.17" - -[[deps.MLUtils]] -deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] -git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" -uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" -version = "0.4.4" - -[[deps.MPI]] -deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] -git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" -uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" -version = "0.20.19" - - [deps.MPI.extensions] - AMDGPUExt = "AMDGPU" - CUDAExt = "CUDA" - - [deps.MPI.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +version = "2024.2.0+0" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +git-tree-sha1 = "19d4bd098928a3263693991500d05d74dbdc2004" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.2.0+0" +version = "4.2.2+0" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +git-tree-sha1 = "c105fe467859e7f6e9a852cb15cb4301126fac07" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.10" +version = "0.1.11" [[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "8c35d5420193841b2f367e658540e8d9e0601ed0" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.2+0" +version = "5.4.0+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] @@ -1331,11 +1005,6 @@ git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.13" -[[deps.ManualMemory]] -git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" -uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" -version = "0.1.8" - [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" @@ -1356,12 +1025,6 @@ git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" version = "0.3.2" -[[deps.MicroCollections]] -deps = ["BangBang", "InitialValues", "Setfield"] -git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" -uuid = "128add7d-3638-4c79-886c-908ea0c25c34" -version = "0.1.4" - [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" @@ -1370,9 +1033,9 @@ version = "10.1.4+2" [[deps.Missings]] deps = ["DataAPI"] -git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "1.1.0" +version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" @@ -1381,46 +1044,20 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804" uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2023.1.10" -[[deps.MuladdMacro]] -git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" -uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -version = "0.2.4" +[[deps.MultiBroadcastFusion]] +git-tree-sha1 = "19b2f184b5882538bee0d5355b152212110e0fd2" +uuid = "c3c07f87-98de-43f2-a76f-835b330b2cbb" +version = "0.3.1" +weakdeps = ["Adapt", "CUDA"] + + [deps.MultiBroadcastFusion.extensions] + MultiBroadcastFusionCUDAExt = ["CUDA", "Adapt"] [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "79400cceb1655e7b2fe528a7b114c785bc152e59" +git-tree-sha1 = "a640912695952b074672edb5f9aaee2f7f9fd59a" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.14.1" - -[[deps.NLSolversBase]] -deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] -git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" -uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" -version = "7.8.3" - -[[deps.NLsolve]] -deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] -git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" -uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" -version = "4.5.1" - -[[deps.NNlib]] -deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "877f15c331337d54cf24c797d5bcb2e48ce21221" -uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -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" +version = "0.14.4" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] @@ -1440,12 +1077,6 @@ git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" -[[deps.NameResolution]] -deps = ["PrettyPrint"] -git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" -uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" -version = "0.1.5" - [[deps.NetCDF_jll]] deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenMPI_jll", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] git-tree-sha1 = "a8af1798e4eb9ff768ce7fdefc0e957097793f15" @@ -1463,9 +1094,9 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.OffsetArrays]] -git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.13.0" +version = "1.14.1" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] @@ -1477,12 +1108,6 @@ git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" -[[deps.OneHotArrays]] -deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] -git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" -uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" -version = "0.2.5" - [[deps.OpenBLAS32_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] git-tree-sha1 = "6065c4cff8fee6c6770b277af45d5082baacdba1" @@ -1492,7 +1117,7 @@ version = "0.3.24+0" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+2" +version = "0.3.23+4" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -1500,22 +1125,22 @@ uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+2" [[deps.OpenMPI_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML", "Zlib_jll"] +git-tree-sha1 = "2f0a1d8c79bc385ec3fcda12830c9d0e72b30e71" uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" -version = "4.1.6+0" +version = "5.0.4+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.2" +version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +git-tree-sha1 = "a028ee3cb5641cccc4c24e90c36b0a4f7707bdf5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.13+0" +version = "3.0.14+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1523,12 +1148,6 @@ git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" -[[deps.Optimisers]] -deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "264b061c1903bc0fe9be77cb9050ebacff66bb63" -uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.3.2" - [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" @@ -1551,11 +1170,11 @@ deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.42.0+1" -[[deps.Parameters]] -deps = ["OrderedCollections", "UnPack"] -git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" -uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" -version = "0.12.3" +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] @@ -1570,9 +1189,9 @@ version = "1.3.0" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] -git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.42.2+0" +version = "0.43.4+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] @@ -1587,9 +1206,9 @@ version = "0.3.3" [[deps.PlotThemes]] deps = ["PlotUtils", "Statistics"] -git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +git-tree-sha1 = "6e55c6841ce3411ccb3457ee52fc48cb698d6fb0" uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" -version = "3.1.0" +version = "3.2.0" [[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] @@ -1598,10 +1217,10 @@ uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 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 = "3c403c6590dd93b36752634115e20137e79ab4df" +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", "TOML", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "082f0c4b70c202c37784ce4bfbc33c9f437685bf" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.2" +version = "1.40.5" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1617,36 +1236,12 @@ version = "1.40.2" ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" -[[deps.Polyester]] -deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" -uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.9" - -[[deps.PolyesterWeave]] -deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] -git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" -uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" -version = "0.2.1" - [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" version = "1.4.3" -[[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "ForwardDiff"] -git-tree-sha1 = "b6665214f2d0739f2d09a17474dd443b9139784a" -uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.20" - - [deps.PreallocationTools.extensions] - PreallocationToolsReverseDiffExt = "ReverseDiff" - - [deps.PreallocationTools.weakdeps] - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" @@ -1659,16 +1254,11 @@ git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.3" -[[deps.PrettyPrint]] -git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" -uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" -version = "0.2.0" - [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +git-tree-sha1 = "66b20dd35966a748321d3b2537c4584cf40387c7" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.3.1" +version = "2.3.2" [[deps.Printf]] deps = ["Unicode"] @@ -1680,32 +1270,34 @@ git-tree-sha1 = "b437cdb0385ed38312d91d9c00c20f3798b30256" uuid = "49802e3a-d2f1-5c88-81d8-b72133a6f568" version = "1.5.1" -[[deps.ProgressLogging]] -deps = ["Logging", "SHA", "UUIDs"] -git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" -uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" -version = "0.1.4" - [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] -git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +git-tree-sha1 = "492601870742dcd38f233b23c3ec629628c1d724" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" -version = "6.5.3+1" +version = "6.7.1+1" + +[[deps.Qt6Declarative_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] +git-tree-sha1 = "e5dd466bf2569fe08c91a2cc29c1003f4797ac3b" +uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" +version = "6.7.1+2" + +[[deps.Qt6ShaderTools_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "1a180aeced866700d4bebc3120ea1451201f16bc" +uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" +version = "6.7.1+1" + +[[deps.Qt6Wayland_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] +git-tree-sha1 = "729927532d48cf79f49070341e1d918a65aba6b0" +uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" +version = "6.7.1+1" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" -[[deps.RRTMGP]] -deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "af4b414b2c57927e0be6ba49c137f30df7889a1c" -uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.13.1" -weakdeps = ["ClimaParams"] - - [deps.RRTMGP.extensions] - CreateParametersExt = "ClimaParams" - [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -1722,22 +1314,6 @@ git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" version = "1.5.3" -[[deps.Ratios]] -deps = ["Requires"] -git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" -uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" -version = "0.4.5" -weakdeps = ["FixedPointNumbers"] - - [deps.Ratios.extensions] - RatiosFixedPointNumbersExt = "FixedPointNumbers" - -[[deps.RealDot]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" -uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" -version = "0.1.0" - [[deps.RecipesBase]] deps = ["PrecompileTools"] git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" @@ -1752,9 +1328,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" +git-tree-sha1 = "b450d967a770fb13d0e26358f58375e20361cf9c" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.12.0" +version = "3.26.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1799,24 +1375,19 @@ version = "0.4.2" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +git-tree-sha1 = "04c968137612c4a5629fa531334bb81ad5680f00" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.12" +version = "0.5.13" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" -[[deps.SIMDTypes]] -git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" -uuid = "94e857df-77ce-4151-89e5-788b33177be4" -version = "0.1.0" - [[deps.SciMLBase]] -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" +deps = ["ADTypes", "Accessors", "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 = "ddb59473b85372c4a71b082e6862503e550fd97c" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.30.0" +version = "2.44.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1844,9 +1415,10 @@ uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" version = "0.3.8" [[deps.SciMLStructures]] -git-tree-sha1 = "5833c10ce83d690c124beedfe5f621b50b02ba4d" +deps = ["ArrayInterface"] +git-tree-sha1 = "cfdd1200d150df1d3c055cc72ee6850742e982d7" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.1.0" +version = "1.4.1" [[deps.Scratch]] deps = ["Dates"] @@ -1856,9 +1428,9 @@ version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +git-tree-sha1 = "ff11acffdb082493657550959d4feb4b6149e73a" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.1" +version = "1.4.5" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -1869,15 +1441,6 @@ git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" version = "1.1.1" -[[deps.SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[deps.ShowCases]] -git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" -uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" -version = "0.1.0" - [[deps.Showoff]] deps = ["Dates", "Grisu"] git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" @@ -1889,12 +1452,6 @@ git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" -[[deps.SimpleTraits]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" -uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.4" - [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" @@ -1909,60 +1466,36 @@ deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.10.0" -[[deps.SparseInverseSubset]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" -uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" -version = "0.1.2" - [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.1" -weakdeps = ["ChainRulesCore"] +version = "2.4.0" [deps.SpecialFunctions.extensions] SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" -[[deps.SplittablesBase]] -deps = ["Setfield", "Test"] -git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" -uuid = "171d559e-b47b-412a-8079-5efa626c420e" -version = "0.1.15" - -[[deps.Static]] -deps = ["IfElse"] -git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" -uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.10" - -[[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" -uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.5.0" -weakdeps = ["OffsetArrays", "StaticArrays"] - - [deps.StaticArrayInterface.extensions] - StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" - StaticArrayInterfaceStaticArraysExt = "StaticArrays" + [deps.SpecialFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.3" -weakdeps = ["ChainRulesCore", "Statistics"] +version = "1.9.7" [deps.StaticArrays.extensions] StaticArraysChainRulesCoreExt = "ChainRulesCore" StaticArraysStatisticsExt = "Statistics" + [deps.StaticArrays.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + [[deps.StaticArraysCore]] -git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.2" +version = "1.4.3" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -1977,21 +1510,9 @@ version = "1.7.0" [[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.2" - -[[deps.StrideArraysCore]] -deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" -uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.5.2" - -[[deps.StringEncodings]] -deps = ["Libiconv_jll"] -git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" -uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" -version = "0.3.7" +version = "0.34.3" [[deps.StringManipulation]] deps = ["PrecompileTools"] @@ -1999,19 +1520,6 @@ git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.4" -[[deps.StructArrays]] -deps = ["ConstructionBase", "DataAPI", "Tables"] -git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" -uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.18" -weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] - - [deps.StructArrays.extensions] - StructArraysAdaptExt = "Adapt" - StructArraysGPUArraysCoreExt = "GPUArraysCore" - StructArraysSparseArraysExt = "SparseArrays" - StructArraysStaticArraysExt = "StaticArrays" - [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" @@ -2026,16 +1534,18 @@ deps = ["DocStringExtensions", "RootSolvers", "Thermodynamics"] git-tree-sha1 = "89c701c87f378ce95e7ddbcd69b8f1106ba8b968" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" version = "0.11.0" -weakdeps = ["ClimaParams"] [deps.SurfaceFluxes.extensions] CreateParametersExt = "ClimaParams" + [deps.SurfaceFluxes.weakdeps] + ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" + [[deps.SymbolicIndexingInterface]] -deps = ["MacroTools", "RuntimeGeneratedFunctions"] -git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" +deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] +git-tree-sha1 = "9c490ee01823dc443da25bf9225827e3cdd2d7e9" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.11" +version = "0.3.26" [[deps.TOML]] deps = ["Dates"] @@ -2049,10 +1559,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.1" +version = "1.12.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -2087,73 +1597,33 @@ version = "0.1.1" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -[[deps.TextWrap]] -git-tree-sha1 = "9250ef9b01b66667380cf3275b3f7488d0e25faf" -uuid = "b718987f-49a8-5099-9789-dcd902bef87d" -version = "1.0.1" - [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" +git-tree-sha1 = "80b13ddc5ae7b8605ef5a055e7f23c5b5f4775cf" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.5" -weakdeps = ["ClimaParams"] +version = "0.12.7" [deps.Thermodynamics.extensions] CreateParametersExt = "ClimaParams" -[[deps.ThreadingUtilities]] -deps = ["ManualMemory"] -git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" -uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" -version = "0.5.2" + [deps.Thermodynamics.weakdeps] + ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" [[deps.TimerOutputs]] deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.23" +version = "0.5.24" [[deps.TranscodingStreams]] -git-tree-sha1 = "a09c933bebed12501890d8e92946bbab6a1690f1" +git-tree-sha1 = "96612ac5365777520c3c5396314c8cf7408f436a" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.5" +version = "0.11.1" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] TestExt = ["Test", "Random"] -[[deps.Transducers]] -deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "3064e780dbb8a9296ebb3af8f440f787bb5332af" -uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.80" - - [deps.Transducers.extensions] - TransducersBlockArraysExt = "BlockArrays" - TransducersDataFramesExt = "DataFrames" - TransducersLazyArraysExt = "LazyArrays" - TransducersOnlineStatsBaseExt = "OnlineStatsBase" - TransducersReferenceablesExt = "Referenceables" - - [deps.Transducers.weakdeps] - BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" - OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" - Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" - -[[deps.Tricks]] -git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" -uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.8" - -[[deps.TruncatedStacktraces]] -deps = ["InteractiveUtils", "MacroTools", "Preferences"] -git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" -uuid = "781d530d-4396-4725-bb49-402e4bee1e77" -version = "1.4.0" - [[deps.URIs]] git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" @@ -2163,11 +1633,6 @@ version = "1.5.1" deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" -[[deps.UnPack]] -git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" -uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -version = "1.0.2" - [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" @@ -2179,23 +1644,20 @@ version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.19.0" +version = "1.21.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] ConstructionBaseUnitfulExt = "ConstructionBase" InverseFunctionsUnitfulExt = "InverseFunctions" - [deps.Unitful.weakdeps] - ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" - InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" - [[deps.UnitfulLatexify]] deps = ["LaTeXStrings", "Latexify", "Unitful"] -git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +git-tree-sha1 = "975c354fcd5f7e1ddcc1f1a23e6e091d99e99bc8" uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" -version = "1.6.3" +version = "1.6.4" [[deps.Unrolled]] deps = ["MacroTools"] @@ -2210,15 +1672,21 @@ version = "0.2.1" [[deps.UnsafeAtomicsLLVM]] deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +git-tree-sha1 = "bf2c553f25e954a9b38c9c0593a59bb13113f9e5" uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.1.3" +version = "0.1.5" [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" version = "0.2.0" +[[deps.VectorInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "7aff7d62bffad9bba9928eb6ab55226b32a351eb" +uuid = "409d34a3-91d5-4945-b6ec-7529ddf182d8" +version = "0.4.6" + [[deps.Vulkan_Loader_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" @@ -2237,52 +1705,35 @@ git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" version = "1.31.0+0" -[[deps.WeakRefStrings]] -deps = ["DataAPI", "InlineStrings", "Parsers"] -git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" -uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" -version = "1.4.2" - -[[deps.WoodburyMatrices]] -deps = ["LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" -uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" -version = "1.0.0" - -[[deps.WorkerUtilities]] -git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" -uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" -version = "1.6.1" - [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" +git-tree-sha1 = "d9717ce3518dc68a99e6b96300813760d887a01d" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.5+0" +version = "2.13.1+0" [[deps.XSLT_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] -git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" -version = "1.1.34+0" +version = "1.1.41+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" +git-tree-sha1 = "ac88fb95ae6447c8dda6a5503f3bafd496ae8632" uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" -version = "5.6.1+0" +version = "5.4.6+0" [[deps.Xorg_libICE_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "326b4fea307b0b39892b3e85fa451692eda8d46c" uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" -version = "1.0.10+1" +version = "1.1.1+0" [[deps.Xorg_libSM_jll]] -deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] -git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libICE_jll"] +git-tree-sha1 = "3796722887072218eabafb494a13c963209754ce" uuid = "c834827a-8449-5923-a945-d239c165b7dd" -version = "1.2.3+0" +version = "1.2.4+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] @@ -2309,10 +1760,10 @@ uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.4+0" [[deps.Xorg_libXext_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.4+4" +version = "1.3.6+0" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] @@ -2339,10 +1790,10 @@ uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" [[deps.Xorg_libXrender_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.10+4" +version = "0.9.11+0" [[deps.Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -2352,9 +1803,9 @@ version = "0.1.1+0" [[deps.Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.15.0+0" +version = "1.17.0+0" [[deps.Xorg_libxkbfile_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] @@ -2416,12 +1867,6 @@ git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" version = "1.5.0+0" -[[deps.YAML]] -deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" -uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.9" - [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" @@ -2429,37 +1874,9 @@ version = "1.2.13+1" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +git-tree-sha1 = "e678132f07ddb5bfa46857f0d7620fb9be675d3b" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.5.5+0" - -[[deps.Zygote]] -deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "4ddb4470e47b0094c93055a3bcae799165cc68f1" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.69" - - [deps.Zygote.extensions] - ZygoteColorsExt = "Colors" - ZygoteDistancesExt = "Distances" - ZygoteTrackerExt = "Tracker" - - [deps.Zygote.weakdeps] - Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" - Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - -[[deps.ZygoteRules]] -deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.5" - -[[deps.cuDNN]] -deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] -git-tree-sha1 = "d433ec29756895512190cac9c96666d879f07b92" -uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" -version = "1.3.0" +version = "1.5.6+0" [[deps.eudev_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] @@ -2486,10 +1903,10 @@ uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" version = "1.1.2+0" [[deps.libaom_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.4.0+0" +version = "3.9.0+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] @@ -2528,9 +1945,9 @@ version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] -git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.7+1" +version = "1.3.7+2" [[deps.libzip_jll]] deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -2549,6 +1966,12 @@ deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.52.0+1" +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2021.12.0+0" + [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" diff --git a/artifacts/Project.toml b/artifacts/Project.toml index a12f5a5b7b..3b8169daba 100644 --- a/artifacts/Project.toml +++ b/artifacts/Project.toml @@ -1,5 +1,6 @@ [deps] ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" ClimaAtmos = "b2c96348-7fb7-4fe0-8da9-78d88439e717" +ClimaCoupler = "4ade58fe-a8da-486c-bd89-46df092ec0c7" ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" diff --git a/calibration/Manifest.toml b/calibration/Manifest.toml index f4372a5743..f2fa1e1332 100644 --- a/calibration/Manifest.toml +++ b/calibration/Manifest.toml @@ -1,13 +1,18 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.3" +julia_version = "1.10.4" manifest_format = "2.0" -project_hash = "61c0a88f22a2072b2907ea883112a449d364cffd" +project_hash = "6698e749995e6f2b0fb8dd510e31064a0dee01ad" [[deps.ADTypes]] -git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" +git-tree-sha1 = "aa4d425271a914d8c4af6ad9fccb6eb3aec662c7" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.2.7" +version = "1.6.1" +weakdeps = ["ChainRulesCore", "EnzymeCore"] + + [deps.ADTypes.extensions] + ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesEnzymeCoreExt = "EnzymeCore" [[deps.AMD]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] @@ -33,9 +38,9 @@ version = "0.4.5" [[deps.Accessors]] deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] -git-tree-sha1 = "c0d491ef0b135fd7d63cbc6404286bc633329425" +git-tree-sha1 = "f61b15be1d76846c0ce31d3fcfac5380ae53db6a" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.36" +version = "0.1.37" [deps.Accessors.extensions] AccessorsAxisKeysExt = "AxisKeys" @@ -68,21 +73,22 @@ git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" version = "1.1.3" -[[deps.ArgCheck]] -git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" -uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" -version = "2.3.0" - [[deps.ArgParse]] deps = ["Logging", "TextWrap"] -git-tree-sha1 = "d4eccacaa3a632e8717556479d45502af44b4c17" +git-tree-sha1 = "22cf435ac22956a7b45b0168abbc871176e7eecc" uuid = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" -version = "1.1.5" +version = "1.2.0" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "d57bd3762d308bded22c3b82d033bff85f6195c6" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.4.0" + [[deps.Arpack]] deps = ["Arpack_jll", "Libdl", "LinearAlgebra", "Logging"] git-tree-sha1 = "9b9b347613394885fd1c8c7729bfc60528faa436" @@ -97,9 +103,9 @@ version = "3.5.1+1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "133a240faec6e074e07c31ee75619c90544179cf" +git-tree-sha1 = "5c9b74c973181571deb6442d41e5c902e6b9f38e" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.10.0" +version = "7.12.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -125,9 +131,9 @@ version = "7.10.0" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "29649b61e0313db0a7ad5ecf41210e4e85aea234" +git-tree-sha1 = "ce2ca959f932f5dad70697dd93133d1167cf1e4e" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.9.3" +version = "1.10.2" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -143,10 +149,10 @@ version = "0.2.0" uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.AtmosphericProfilesLibrary]] -deps = ["Dierckx", "LinearAlgebra"] -git-tree-sha1 = "c6be1ce28b7870a60400c51c75dc1b08d6a8dd73" +deps = ["Interpolations", "LinearAlgebra"] +git-tree-sha1 = "4f5654bb77c179b6021c21c25ad336fe886258f6" uuid = "86bc3604-9858-485a-bdbe-831ec50de11d" -version = "0.1.4" +version = "0.1.7" [[deps.Atomix]] deps = ["UnsafeAtomics"] @@ -168,42 +174,17 @@ version = "0.5.0" [[deps.BandedMatrices]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "4ec0289155eac14c057229395fa7a6a54ffea343" +git-tree-sha1 = "71f605effb24081b09cae943ba39ef9ca90c04f4" uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.7.1" +version = "1.7.2" weakdeps = ["SparseArrays"] [deps.BandedMatrices.extensions] BandedMatricesSparseArraysExt = "SparseArrays" -[[deps.BangBang]] -deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] -git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3" -uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.3.40" - - [deps.BangBang.extensions] - BangBangChainRulesCoreExt = "ChainRulesCore" - BangBangDataFramesExt = "DataFrames" - BangBangStaticArraysExt = "StaticArrays" - BangBangStructArraysExt = "StructArrays" - BangBangTypedTablesExt = "TypedTables" - - [deps.BangBang.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" - TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" - [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[deps.Baselet]] -git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" -uuid = "9718e550-a3fa-408a-8086-8db961cd8217" -version = "0.1.1" - [[deps.BenchmarkTools]] deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" @@ -211,21 +192,25 @@ uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" version = "1.5.0" [[deps.BitFlags]] -git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.8" +version = "0.1.9" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] -git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +git-tree-sha1 = "f21cfd4950cb9f0587d5067e69405ad2acd27b87" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" -version = "0.1.5" +version = "0.1.6" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "9a9610fbe5779636f75229e423e367124034af41" +git-tree-sha1 = "5c0ffe1dff8cb7112de075f1b1cb32191675fcba" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.43" +version = "1.1.0" +weakdeps = ["BandedMatrices"] + + [deps.BlockArrays.extensions] + BlockArraysBandedMatricesExt = "BandedMatrices" [[deps.Blosc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] @@ -252,21 +237,15 @@ version = "0.1.3" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "585a387a490f1c4bd88be67eea15b93da5e85db7" +git-tree-sha1 = "5a97e67919535d6841172016c9530fd69494e5ec" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.5" - -[[deps.CSV]] -deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "6c834533dc1fabd820c1db03c839bf97e45a3fab" -uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.14" +version = "0.2.6" [[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", "StaticArrays", "Statistics"] -git-tree-sha1 = "6e945e876652f2003e6ca74e19a3c45017d3e9f6" +git-tree-sha1 = "fdd9dfb67dfefd548f51000cc400bb51003de247" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.4.2" +version = "5.4.3" weakdeps = ["ChainRulesCore", "EnzymeCore", "SpecialFunctions"] [deps.CUDA.extensions] @@ -276,27 +255,21 @@ weakdeps = ["ChainRulesCore", "EnzymeCore", "SpecialFunctions"] [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "c48f9da18efd43b6b7adb7ee1f93fe5f2926c339" +git-tree-sha1 = "97df9d4d6be8ac6270cb8fd3b8fc413690820cbd" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.9.0+0" +version = "0.9.1+1" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "5db9da5fdeaa708c22ba86b82c49528f402497f2" +git-tree-sha1 = "f3b237289a5a77c759b2dd5d4c2ff641d67c4030" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.3.3" +version = "0.3.4" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "bcba305388e16aa5c879e896726db9e71b4942c6" +git-tree-sha1 = "afea94249b821dc754a8ca6695d3daed851e1f5a" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.14.0+1" - -[[deps.CUDNN_jll]] -deps = ["Artifacts", "CUDA_Runtime_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "cbf7d75f8c58b147bdf6acea2e5bc96cececa6d4" -uuid = "62b44479-cb7b-5706-934f-f13b2eb2e645" -version = "9.0.0+1" +version = "0.14.1+0" [[deps.Cairo_jll]] 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"] @@ -310,12 +283,6 @@ git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" version = "0.5.1" -[[deps.ChainRules]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "5ec157747036038ec70b250f578362268f0472f1" -uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.68.0" - [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" @@ -327,18 +294,16 @@ weakdeps = ["SparseArrays"] ChainRulesCoreSparseArraysExt = "SparseArrays" [[deps.ClimaAtmos]] -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" +deps = ["Adapt", "ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "ClimaComms", "ClimaCore", "ClimaDiagnostics", "ClimaParams", "ClimaTimeSteppers", "ClimaUtilities", "CloudMicrophysics", "Colors", "Dates", "DiffEqBase", "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 = "30a8cf4d288f9e2d63619ca3f8510f7d3ce5082d" uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.22.0" +version = "0.27.1" [[deps.ClimaCalibrate]] deps = ["Distributions", "EnsembleKalmanProcesses", "JLD2", "Random", "TOML", "YAML"] -git-tree-sha1 = "7f304ff3ca24d417020dcdec5654f1fc91558b86" -repo-rev = "as/coupler_calibrate" -repo-url = "../../ClimaCalibrate.jl" +git-tree-sha1 = "39a5164998bb7b9f54c9504975551525ec0be2d5" uuid = "4347a170-ebd6-470c-89d3-5c705c0cacc2" -version = "0.1.0" +version = "0.0.1" [deps.ClimaCalibrate.extensions] CESExt = "CalibrateEmulateSample" @@ -347,26 +312,34 @@ version = "0.1.0" CalibrateEmulateSample = "95e48a1f-0bec-4818-9538-3db4340308e3" [[deps.ClimaComms]] -deps = ["CUDA", "MPI"] -git-tree-sha1 = "f0350e34c91c8f3b5a11b5e39990439303d727b1" +git-tree-sha1 = "2ca8c9ca6131a7be8ca262e6db79bc7aa94ab597" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.5.7" +version = "0.6.3" + + [deps.ClimaComms.extensions] + ClimaCommsCUDAExt = "CUDA" + ClimaCommsMPIExt = "MPI" + + [deps.ClimaComms.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" [[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 = "3c8ba2a248d30aaa7f0e72a3516b142521447377" +deps = ["Adapt", "BandedMatrices", "BlockArrays", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "MultiBroadcastFusion", "NVTX", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "StaticArrays", "Statistics", "Unrolled"] +git-tree-sha1 = "fa5335ad4b4596c70882c42366172b52aad7a499" uuid = "d414da3d-4745-48bb-8d80-42e94e092884" -version = "0.13.3" -weakdeps = ["Krylov"] +version = "0.14.10" +weakdeps = ["CUDA", "Krylov"] [deps.ClimaCore.extensions] + ClimaCoreCUDAExt = "CUDA" KrylovExt = "Krylov" [[deps.ClimaCorePlots]] deps = ["ClimaCore", "RecipesBase", "StaticArrays", "TriplotBase"] -git-tree-sha1 = "ded3e0f3e7069f7c807f7b56caff232921bc2f5f" +git-tree-sha1 = "4fc0c2a0845fc34a8d6c0e0a276d62a0d4e50286" uuid = "cf7c7e5a-b407-4c48-9047-11a94a308626" -version = "0.2.8" +version = "0.2.10" [[deps.ClimaCoreTempestRemap]] deps = ["ClimaComms", "ClimaCore", "CommonDataModel", "Dates", "LinearAlgebra", "NCDatasets", "PkgVersion", "TempestRemap_jll"] @@ -375,62 +348,104 @@ uuid = "d934ef94-cdd4-4710-83d6-720549644b70" version = "0.3.15" [[deps.ClimaCoupler]] -deps = ["ClimaAtmos", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "ClimaLand", "ClimaParams", "Dates", "DocStringExtensions", "Insolation", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] +deps = ["CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "Dates", "DocStringExtensions", "JLD2", "NCDatasets", "Plots", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "TempestRemap_jll", "Thermodynamics"] path = ".." uuid = "4ade58fe-a8da-486c-bd89-46df092ec0c7" version = "0.1.0" +[[deps.ClimaDiagnostics]] +deps = ["Accessors", "ClimaComms", "ClimaCore", "Dates", "NCDatasets", "SciMLBase"] +git-tree-sha1 = "228ff3bc4dbd7329ef054f9bfbbe34075234ca25" +uuid = "1ecacbb8-0713-4841-9a07-eb5aa8a2d53f" +version = "0.2.3" + [[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"] -path = "/Users/akshaysridhar/Research/Codes/ClimaLand.jl" +deps = ["Adapt", "ArtifactWrappers", "ClimaComms", "ClimaCore", "ClimaDiagnostics", "ClimaUtilities", "DataFrames", "Dates", "DocStringExtensions", "Insolation", "Interpolations", "IntervalSets", "LazyArtifacts", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "SurfaceFluxes", "Thermodynamics", "UnrolledUtilities"] +git-tree-sha1 = "b1e7a5ada14110be3e15684d72f95edb3727a547" uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" -version = "0.11.0" -weakdeps = ["ClimaParams"] +version = "0.14.0" [deps.ClimaLand.extensions] CreateParametersExt = "ClimaParams" + NeuralSnowExt = ["CSV", "HTTP", "Flux", "StatsBase", "cuDNN"] + + [deps.ClimaLand.weakdeps] + CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" + Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" + HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3" + StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.ClimaParams]] deps = ["DocStringExtensions", "TOML", "Test"] -git-tree-sha1 = "1a3d2455fff201bcf130bbd5a71ac16fc3c21fd1" +git-tree-sha1 = "b9ab261e1e35437b5a2afdd86c734f40b89fc641" uuid = "5c42b081-d73a-476f-9059-fd94b934656c" -version = "0.10.4" +version = "0.10.9" [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "9c203f39784c968700c55f555754a7771b3410df" +git-tree-sha1 = "56d5c0e5181281e86d4cc4b109b980882c30af3d" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.19" +version = "0.7.33" +weakdeps = ["BenchmarkTools", "CUDA", "OrderedCollections", "PrettyTables", "StatsBase"] + + [deps.ClimaTimeSteppers.extensions] + ClimaTimeSteppersBenchmarkToolsExt = ["CUDA", "BenchmarkTools", "OrderedCollections", "StatsBase", "PrettyTables"] + +[[deps.ClimaUtilities]] +deps = ["Artifacts", "Dates"] +git-tree-sha1 = "2e171face2f5ee218ebaa9aee7b5e14a28b14366" +uuid = "b3f4f4ca-9299-4f7f-bd9b-81e1242a7513" +version = "0.1.10" +weakdeps = ["Adapt", "CUDA", "ClimaComms", "ClimaCore", "ClimaCoreTempestRemap", "Interpolations", "NCDatasets"] + + [deps.ClimaUtilities.extensions] + ClimaUtilitiesClimaCommsCUDAExt = ["ClimaComms", "CUDA"] + ClimaUtilitiesClimaCommsExt = "ClimaComms" + ClimaUtilitiesClimaCoreExt = "ClimaCore" + ClimaUtilitiesClimaCoreInterpolationsExt = ["ClimaCore", "Interpolations"] + ClimaUtilitiesClimaCoreNCDatasetsExt = ["ClimaCore", "NCDatasets"] + ClimaUtilitiesClimaCoreTempestRemapExt = "ClimaCoreTempestRemap" + ClimaUtilitiesNCDatasetsExt = "NCDatasets" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] -git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +git-tree-sha1 = "05ba0d07cd4fd8b7a39541e31a7b0254704ea581" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.12" +version = "0.1.13" [[deps.CloudMicrophysics]] -deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "RootSolvers", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "4d6c1e67ff8924b14313d71edd3fed6cf9586ae7" +deps = ["ClimaParams", "DocStringExtensions", "ForwardDiff", "HCubature", "LazyArtifacts", "QuadGK", "RootSolvers", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "5d20d3452be63e6c6da766052ddce072e23b425e" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.18.0" +version = "0.22.1" + + [deps.CloudMicrophysics.extensions] + EmulatorModelsExt = ["DataFrames", "MLJ"] + + [deps.CloudMicrophysics.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + MLJ = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7" [[deps.CodecBzip2]] deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] -git-tree-sha1 = "9b1ca1aa6ce3f71b3d1840c538a8210a043625eb" +git-tree-sha1 = "f8889d1770addf59d0a015c49a473fa2bdb9f809" uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" -version = "0.8.2" +version = "0.8.3" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +git-tree-sha1 = "b8fe8546d52ca154ac556809e10c75e6e7430ac8" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.4" +version = "0.7.5" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2" +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.25.0" +version = "3.26.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -454,6 +469,11 @@ git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.11" +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + [[deps.CommonDataModel]] deps = ["CFTime", "DataStructures", "Dates", "Preferences", "Printf", "Statistics"] git-tree-sha1 = "d6fb5bf939a2753c74984b11434ea25d6c397a58" @@ -471,6 +491,11 @@ git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" version = "0.3.0" +[[deps.CommonWorldInvalidations]] +git-tree-sha1 = "ae52d1c52048455e85a387fbee9be553ec2b68d0" +uuid = "f70d9fcc-98c5-4d4a-abd7-e4cdeebd8ca8" +version = "1.0.0" + [[deps.Compat]] deps = ["TOML", "UUIDs"] git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248" @@ -502,27 +527,21 @@ version = "0.2.3" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.4.1" +version = "2.4.2" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" +git-tree-sha1 = "d8a9c0b6ac2d9081bf76324b39c78ca3ce4f0c98" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.5" +version = "1.5.6" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] ConstructionBaseIntervalSetsExt = "IntervalSets" ConstructionBaseStaticArraysExt = "StaticArrays" -[[deps.ContextVariablesX]] -deps = ["Compat", "Logging", "UUIDs"] -git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" -uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" -version = "0.1.3" - [[deps.Contour]] git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" @@ -577,34 +596,17 @@ version = "1.0.0" deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" -[[deps.DefineSingletons]] -git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" -uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" -version = "0.1.2" - [[deps.DelimitedFiles]] deps = ["Mmap"] git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" -[[deps.Dierckx]] -deps = ["Dierckx_jll"] -git-tree-sha1 = "d1ea9f433781bb6ff504f7d3cb70c4782c504a3a" -uuid = "39dd38d3-220a-591b-8e3c-4c3a8c710a94" -version = "0.5.3" - -[[deps.Dierckx_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6596b96fe1caff3db36415eeb6e9d3b50bfe40ee" -uuid = "cd4c43a9-7502-52ba-aa6d-59fb2a88580b" -version = "0.1.0+0" - [[deps.DiffEqBase]] deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "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 = "37d49a1f8eedfe68b7622075ff3ebe3dd0e8f327" +git-tree-sha1 = "d1e8a4642e28b0945bde6e2e1ac569b9e0abd728" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.151.2" +version = "6.151.5" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -633,10 +635,10 @@ version = "6.151.2" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "ee954c8b9d348b7a8a6aec5f28288bf5adecd4ee" +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NonlinearSolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "c959cfd2657d16beada157a74d52269e8556500e" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.37.0" +version = "3.6.2" [deps.DiffEqCallbacks.weakdeps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" @@ -654,23 +656,48 @@ git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.15.1" +[[deps.DifferentiationInterface]] +deps = ["ADTypes", "Compat", "DocStringExtensions", "FillArrays", "LinearAlgebra", "PackageExtensionCompat", "SparseArrays", "SparseMatrixColorings"] +git-tree-sha1 = "c81579b549a00edf31582d318fec06523e0b607a" +uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" +version = "0.5.9" + + [deps.DifferentiationInterface.extensions] + DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" + DifferentiationInterfaceDiffractorExt = "Diffractor" + DifferentiationInterfaceEnzymeExt = "Enzyme" + DifferentiationInterfaceFastDifferentiationExt = "FastDifferentiation" + DifferentiationInterfaceFiniteDiffExt = "FiniteDiff" + DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences" + DifferentiationInterfaceForwardDiffExt = "ForwardDiff" + DifferentiationInterfacePolyesterForwardDiffExt = "PolyesterForwardDiff" + DifferentiationInterfaceReverseDiffExt = "ReverseDiff" + DifferentiationInterfaceSymbolicsExt = "Symbolics" + DifferentiationInterfaceTapirExt = "Tapir" + DifferentiationInterfaceTrackerExt = "Tracker" + DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] + + [deps.DifferentiationInterface.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Diffractor = "9f5e2b26-1114-432f-b630-d3fe2085c51c" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FastDifferentiation = "eb9bf01b-bf85-4b60-bf87-ee5de06c00be" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Tapir = "07d77754-e150-4737-8c94-cd238a1fb45b" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + [[deps.DiskArrays]] deps = ["LRUCache", "OffsetArrays"] git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" version = "0.3.23" -[[deps.Distances]] -deps = ["LinearAlgebra", "Statistics", "StatsAPI"] -git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" -uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.11" -weakdeps = ["ChainRulesCore", "SparseArrays"] - - [deps.Distances.extensions] - DistancesChainRulesCoreExt = "ChainRulesCore" - DistancesSparseArraysExt = "SparseArrays" - [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" @@ -725,9 +752,9 @@ uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" [[deps.EnzymeCore]] -git-tree-sha1 = "0910982db2490a20f81dc7db5d4bbea236c027b3" +git-tree-sha1 = "d445df66dd8761a4c27df950db89c6a3a0629fe7" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.7.3" +version = "0.7.7" weakdeps = ["Adapt"] [deps.EnzymeCore.extensions] @@ -780,23 +807,11 @@ git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.10+0" -[[deps.FLoops]] -deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] -git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" -uuid = "cc61a311-1640-44b5-9fba-1b764f453329" -version = "0.2.1" - -[[deps.FLoopsBase]] -deps = ["ContextVariablesX"] -git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" -uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" -version = "0.1.1" - [[deps.FastBroadcast]] deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "e17367f052035620d832499496080f792fa7ea47" +git-tree-sha1 = "bd19de6fe8a3b18888f35e79832f97544684caa7" uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.3.2" +version = "0.3.4" [[deps.FastClosures]] git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" @@ -809,18 +824,18 @@ git-tree-sha1 = "0f478d8bad6f52573fb7658a263af61f3d96e43a" uuid = "442a2c76-b920-505d-bb47-c5924d526838" version = "0.5.1" +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "cbf5edddb61a43669710cbc2241bc08b36d9e660" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.4" + [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.16.3" -[[deps.FilePathsBase]] -deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] -git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" -uuid = "48062228-2e41-5def-b9a4-89aafe57970f" -version = "0.9.21" - [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" @@ -858,24 +873,6 @@ git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.5" -[[deps.Flux]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] -git-tree-sha1 = "a5475163b611812d073171583982c42ea48d22b0" -uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.15" - - [deps.Flux.extensions] - FluxAMDGPUExt = "AMDGPU" - FluxCUDAExt = "CUDA" - FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] - FluxMetalExt = "Metal" - - [deps.Flux.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" - [[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" @@ -931,10 +928,10 @@ deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[deps.GLFW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] -git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "3f74912a156096bd8fdbef211eff66ab446e7297" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" -version = "3.3.9+0" +version = "3.4.0+0" [[deps.GMP_jll]] deps = ["Artifacts", "Libdl"] @@ -943,9 +940,9 @@ version = "6.2.1+6" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "38cb19b8a3e600e509dc36a6396ac74266d108c1" +git-tree-sha1 = "a74c3f1cf56a3dfcdef0605f8cdb7015926aae30" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "10.1.1" +version = "10.3.0" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -954,22 +951,22 @@ uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.1.6" [[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "518ebd058c9895de468a8c255797b0c53fdb44dd" +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Preferences", "Scratch", "Serialization", "TOML", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "ab29216184312f99ff957b32cd63c2fe9c928b91" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.26.5" +version = "0.26.7" [[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] -git-tree-sha1 = "ddda044ca260ee324c5fc07edb6d7cf3f0b9c350" +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "629693584cef594c3f6f99e76e7a7ad17e60e8d5" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.5" +version = "0.73.7" [[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 = "278e5e0f820178e8a26df3184fcb2280717c79b1" +git-tree-sha1 = "a8863b69c2a0859f2c2c87ebdc4c6712e88bdf0d" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.5+0" +version = "0.73.7+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -1012,26 +1009,40 @@ git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.14+0" +[[deps.Graphs]] +deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "ebd18c326fa6cee1efb7da9a3b45cf69da2ed4d9" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.11.2" + [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" +[[deps.HCubature]] +deps = ["Combinatorics", "DataStructures", "LinearAlgebra", "QuadGK", "StaticArrays"] +git-tree-sha1 = "10f37537bbd83e52c63abf6393f209dbd641fedc" +uuid = "19dc6840-f33b-545b-b366-655c7e3ffd49" +version = "1.6.0" + [[deps.HDF5]] deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" version = "0.17.2" -weakdeps = ["MPI"] [deps.HDF5.extensions] MPIExt = "MPI" + [deps.HDF5.weakdeps] + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + [[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "82a471768b513dc39e471540fdadc84ff80ff997" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.3+3" +version = "1.14.2+1" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] @@ -1045,11 +1056,17 @@ git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "8e070b599339d622e9a081d17230d74a5c473293" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.17" + [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +git-tree-sha1 = "5e19e1e4fa3e71b774ce746274364aef0234634e" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.10.0+0" +version = "2.11.1+0" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] @@ -1057,33 +1074,34 @@ git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.23" -[[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.14" - [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" version = "0.1.1" -[[deps.InitialValues]] -git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" -uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" -version = "0.3.1" +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" [[deps.InlineStrings]] -deps = ["Parsers"] -git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" +git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" -version = "1.4.0" +version = "1.4.2" + + [deps.InlineStrings.extensions] + ArrowTypesExt = "ArrowTypes" + ParsersExt = "Parsers" + + [deps.InlineStrings.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" + Parsers = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" [[deps.Insolation]] deps = ["Artifacts", "Dates", "DelimitedFiles", "Interpolations"] -git-tree-sha1 = "1a2a8e1f202523619225fb54adf458b9345cee9b" +git-tree-sha1 = "16912df0f91cf8bb100a4fe0730b7befab55f0d0" uuid = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" -version = "0.9.2" +version = "0.9.3" weakdeps = ["ClimaParams"] [deps.Insolation.extensions] @@ -1091,9 +1109,9 @@ weakdeps = ["ClimaParams"] [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "be50fe8df3acbffa0274a744f1a99d29c45a57f4" +git-tree-sha1 = "14eb2b542e748570b56446f4c50fbfb2306ebc45" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.1.0+0" +version = "2024.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -1122,9 +1140,9 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] [[deps.InverseFunctions]] deps = ["Test"] -git-tree-sha1 = "e7cbed5032c4c397a6ac23d1493f3289e01231c4" +git-tree-sha1 = "18c59411ece4838b18cd7f537e56cf5e41ce5bfd" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.14" +version = "0.1.15" weakdeps = ["Dates"] [deps.InverseFunctions.extensions] @@ -1146,10 +1164,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Reexport", "Requires", "TranscodingStreams", "UUIDs", "Unicode"] +git-tree-sha1 = "5fe858cb863e211c6dedc8cce2dc0752d4ab6e2b" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.46" +version = "0.4.50" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -1181,17 +1199,17 @@ git-tree-sha1 = "af433a10f3942e882d3c671aacb203e006a5808f" uuid = "9c1d0b0a-7046-5b2e-a33f-ea22f176ac7e" version = "0.2.1+0" -[[deps.JuliaVariables]] -deps = ["MLStyle", "NameResolution"] -git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" -uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" -version = "0.2.4" +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "07649c499349dad9f08dde4243a4c597064663e9" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.6.0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "db02395e4c374030c53dc28f3c1d33dec35f7272" +git-tree-sha1 = "d0448cebd5919e06ca5edc7a264631790de810ec" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.19" +version = "0.9.22" weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] @@ -1204,10 +1222,14 @@ uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" version = "0.9.6" [[deps.KrylovKit]] -deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] -git-tree-sha1 = "5cebb47f472f086f7dd31fb8e738a8db728f1f84" +deps = ["GPUArraysCore", "LinearAlgebra", "PackageExtensionCompat", "Printf", "VectorInterface"] +git-tree-sha1 = "3c2a016489c38f35160a246c91a3f3353c47bb68" uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" -version = "0.6.1" +version = "0.8.1" +weakdeps = ["ChainRulesCore"] + + [deps.KrylovKit.extensions] + KrylovKitChainRulesCoreExt = "ChainRulesCore" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1229,9 +1251,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "065c36f95709dd4a676dc6839a35d6fa6f192f24" +git-tree-sha1 = "020abd49586480c1be84f57da0017b5d3db73f7c" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "7.1.0" +version = "8.0.0" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1239,9 +1261,9 @@ weakdeps = ["BFloat16s"] [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "88b916503aac4fb7f701bb625cd84ca5dd1677bc" +git-tree-sha1 = "c2636c264861edc6d305e6b4d528f09566d24c5e" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.29+0" +version = "0.0.30+0" [[deps.LLVMLoopInfo]] git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" @@ -1276,9 +1298,9 @@ version = "1.3.1" [[deps.Latexify]] deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] -git-tree-sha1 = "e0b5cd21dc1b44ec6e64f351976f961e6f31d6c4" +git-tree-sha1 = "5b0d630f3020b82c0775a51d05895852f8506f50" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.3" +version = "0.16.4" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1290,9 +1312,27 @@ version = "0.16.3" [[deps.LayoutPointers]] deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +git-tree-sha1 = "a9eaadb366f5493a5654e843864c13d8b107548c" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.15" +version = "0.1.17" + +[[deps.LazyArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] +git-tree-sha1 = "b8ea0abe6cc872996e87356951d286d25d485aba" +uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" +version = "2.1.9" + + [deps.LazyArrays.extensions] + LazyArraysBandedMatricesExt = "BandedMatrices" + LazyArraysBlockArraysExt = "BlockArrays" + LazyArraysBlockBandedMatricesExt = "BlockBandedMatrices" + LazyArraysStaticArraysExt = "StaticArrays" + + [deps.LazyArrays.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -1395,6 +1435,43 @@ weakdeps = ["CUDA", "ChainRulesCore", "LDLFactorizations"] LinearOperatorsChainRulesCoreExt = "ChainRulesCore" LinearOperatorsLDLFactorizationsExt = "LDLFactorizations" +[[deps.LinearSolve]] +deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "b2e2dba60642e07c062eb3143770d7e234316772" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.30.2" + + [deps.LinearSolve.extensions] + LinearSolveBandedMatricesExt = "BandedMatrices" + LinearSolveBlockDiagonalsExt = "BlockDiagonals" + LinearSolveCUDAExt = "CUDA" + LinearSolveCUDSSExt = "CUDSS" + LinearSolveEnzymeExt = ["Enzyme", "EnzymeCore"] + LinearSolveFastAlmostBandedMatricesExt = ["FastAlmostBandedMatrices"] + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKernelAbstractionsExt = "KernelAbstractions" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMetalExt = "Metal" + LinearSolvePardisoExt = "Pardiso" + LinearSolveRecursiveArrayToolsExt = "RecursiveArrayTools" + + [deps.LinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" @@ -1420,6 +1497,17 @@ git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.3" +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "8084c25a250e00ae427a379a5b607e7aed96a2dd" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.171" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + [[deps.Lz4_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "6c26c5e8a4203d43b5497be3ec5d4e0c3cde240a" @@ -1428,40 +1516,15 @@ version = "1.9.4+0" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "80b2833b56d466b3858d565adcd16a4a05f2089b" +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.1.0+0" - -[[deps.MLStyle]] -git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" -uuid = "d8e11817-5142-5d16-987a-aa16d5891078" -version = "0.4.17" - -[[deps.MLUtils]] -deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] -git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" -uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" -version = "0.4.4" - -[[deps.MPI]] -deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] -git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" -uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" -version = "0.20.19" - - [deps.MPI.extensions] - AMDGPUExt = "AMDGPU" - CUDAExt = "CUDA" - - [deps.MPI.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +version = "2024.2.0+0" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "4099bb6809ac109bfc17d521dad33763bcf026b7" +git-tree-sha1 = "19d4bd098928a3263693991500d05d74dbdc2004" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.2.1+1" +version = "4.2.2+0" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] @@ -1492,9 +1555,15 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] -git-tree-sha1 = "fffbbdbc10ba66885b7b4c06f4bd2c0efc5813d6" +git-tree-sha1 = "91b08d27a27d83cf1e63e50837403e7f53a0fd74" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.30.0" +version = "1.31.0" + +[[deps.MaybeInplace]] +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "SparseArrays"] +git-tree-sha1 = "1b9e613f2ca3b6cdcbfe36381e17ca2b66d4b3a1" +uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" +version = "0.1.3" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] @@ -1512,12 +1581,6 @@ git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" version = "0.3.2" -[[deps.MicroCollections]] -deps = ["BangBang", "InitialValues", "Setfield"] -git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" -uuid = "128add7d-3638-4c79-886c-908ea0c25c34" -version = "0.1.4" - [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" @@ -1542,17 +1605,26 @@ git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" version = "0.2.4" +[[deps.MultiBroadcastFusion]] +git-tree-sha1 = "19b2f184b5882538bee0d5355b152212110e0fd2" +uuid = "c3c07f87-98de-43f2-a76f-835b330b2cbb" +version = "0.3.1" +weakdeps = ["Adapt", "CUDA"] + + [deps.MultiBroadcastFusion.extensions] + MultiBroadcastFusionCUDAExt = ["CUDA", "Adapt"] + [[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "a3589efe0005fc4718775d8641b2de9060d23f73" +git-tree-sha1 = "898c56fbf8bf71afb0c02146ef26f3a454e88873" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.4.4" +version = "1.4.5" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "79400cceb1655e7b2fe528a7b114c785bc152e59" +git-tree-sha1 = "a640912695952b074672edb5f9aaee2f7f9fd59a" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.14.1" +version = "0.14.4" [[deps.NLSolversBase]] deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] @@ -1560,30 +1632,6 @@ git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" version = "7.8.3" -[[deps.NLsolve]] -deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] -git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" -uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" -version = "4.5.1" - -[[deps.NNlib]] -deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "3d4617f943afe6410206a5294a95948c8d1b35bd" -uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.17" - - [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]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] git-tree-sha1 = "53046f0483375e3ed78e49190f1154fa0a4083a1" @@ -1602,12 +1650,6 @@ git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" -[[deps.NameResolution]] -deps = ["PrettyPrint"] -git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" -uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" -version = "0.1.5" - [[deps.NetCDF_jll]] deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "OpenMPI_jll", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] git-tree-sha1 = "a8af1798e4eb9ff768ce7fdefc0e957097793f15" @@ -1624,10 +1666,42 @@ version = "3.7.2+0" uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" +[[deps.NonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] +git-tree-sha1 = "3adb1e5945b5a6b1eaee754077f25ccc402edd7f" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "3.13.1" + + [deps.NonlinearSolve.extensions] + NonlinearSolveBandedMatricesExt = "BandedMatrices" + NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" + NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration" + NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim" + NonlinearSolveMINPACKExt = "MINPACK" + NonlinearSolveNLSolversExt = "NLSolvers" + NonlinearSolveNLsolveExt = "NLsolve" + NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" + NonlinearSolveSpeedMappingExt = "SpeedMapping" + NonlinearSolveSymbolicsExt = "Symbolics" + NonlinearSolveZygoteExt = "Zygote" + + [deps.NonlinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" + FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" + LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891" + MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9" + NLSolvers = "337daf1e-9722-11e9-073e-8b9effe078ba" + NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" + SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" + SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + [[deps.OffsetArrays]] -git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e" +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.14.0" +version = "1.14.1" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] @@ -1639,12 +1713,6 @@ git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" -[[deps.OneHotArrays]] -deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] -git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" -uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" -version = "0.2.5" - [[deps.OpenBLAS32_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] git-tree-sha1 = "6065c4cff8fee6c6770b277af45d5082baacdba1" @@ -1662,10 +1730,10 @@ uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+2" [[deps.OpenMPI_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "e25c1778a98e34219a00455d6e4384e017ea9762" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML", "Zlib_jll"] +git-tree-sha1 = "2f0a1d8c79bc385ec3fcda12830c9d0e72b30e71" uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" -version = "4.1.6+0" +version = "5.0.4+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] @@ -1675,9 +1743,9 @@ version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3da7367955dcc5c54c1ba4d402ccdc09a1a3e046" +git-tree-sha1 = "a028ee3cb5641cccc4c24e90c36b0a4f7707bdf5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.13+1" +version = "3.0.14+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1695,12 +1763,6 @@ weakdeps = ["MathOptInterface"] [deps.Optim.extensions] OptimMOIExt = "MathOptInterface" -[[deps.Optimisers]] -deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "6572fe0c5b74431aaeb0b18a4aa5ef03c84678be" -uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.3.3" - [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" @@ -1729,6 +1791,12 @@ git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" version = "0.11.31" +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" @@ -1776,10 +1844,10 @@ uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 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 = "3c403c6590dd93b36752634115e20137e79ab4df" +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", "TOML", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "082f0c4b70c202c37784ce4bfbc33c9f437685bf" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.2" +version = "1.40.5" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1797,15 +1865,15 @@ version = "1.40.2" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "b3e2bae88cf07baf0a051fe09666b8ef97aefe93" +git-tree-sha1 = "9ff799e8fb8ed6717710feee3be3bc20645daa97" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.14" +version = "0.7.15" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] -git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +git-tree-sha1 = "645bed98cd47f72f67316fd42fc47dee771aefcd" uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" -version = "0.2.1" +version = "0.2.2" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] @@ -1843,11 +1911,6 @@ git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.3" -[[deps.PrettyPrint]] -git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" -uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" -version = "0.2.0" - [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] git-tree-sha1 = "66b20dd35966a748321d3b2537c4584cf40387c7" @@ -1868,12 +1931,6 @@ git-tree-sha1 = "b437cdb0385ed38312d91d9c00c20f3798b30256" uuid = "49802e3a-d2f1-5c88-81d8-b72133a6f568" version = "1.5.1" -[[deps.ProgressLogging]] -deps = ["Logging", "SHA", "UUIDs"] -git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" -uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" -version = "0.1.4" - [[deps.PtrArrays]] git-tree-sha1 = "f011fbb92c4d401059b2212c05c0601b70f8b759" uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" @@ -1881,9 +1938,27 @@ version = "1.2.0" [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] -git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +git-tree-sha1 = "492601870742dcd38f233b23c3ec629628c1d724" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" -version = "6.5.3+1" +version = "6.7.1+1" + +[[deps.Qt6Declarative_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] +git-tree-sha1 = "e5dd466bf2569fe08c91a2cc29c1003f4797ac3b" +uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" +version = "6.7.1+2" + +[[deps.Qt6ShaderTools_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "1a180aeced866700d4bebc3120ea1451201f16bc" +uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" +version = "6.7.1+1" + +[[deps.Qt6Wayland_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] +git-tree-sha1 = "729927532d48cf79f49070341e1d918a65aba6b0" +uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" +version = "6.7.1+1" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] @@ -1896,14 +1971,15 @@ deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.RRTMGP]] -deps = ["Adapt", "Artifacts", "CUDA", "ClimaComms", "DocStringExtensions", "GaussQuadrature", "Random", "StaticArrays"] -git-tree-sha1 = "43dba55be8b80a2af4b4e901537d9f29fcd0d2e2" +deps = ["Adapt", "Artifacts", "ClimaComms", "DocStringExtensions", "Random"] +git-tree-sha1 = "866d94b4cf46fe3a0ffd35d1414a3a4181c9db08" uuid = "a01a1ee8-cea4-48fc-987c-fc7878d79da1" -version = "0.13.4" -weakdeps = ["ClimaParams"] +version = "0.17.0" +weakdeps = ["CUDA", "ClimaParams"] [deps.RRTMGP.extensions] CreateParametersExt = "ClimaParams" + RRTMGPCUDAExt = "CUDA" [[deps.Random]] deps = ["SHA"] @@ -1931,12 +2007,6 @@ weakdeps = ["FixedPointNumbers"] [deps.Ratios.extensions] RatiosFixedPointNumbersExt = "FixedPointNumbers" -[[deps.RealDot]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" -uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" -version = "0.1.0" - [[deps.RecipesBase]] deps = ["PrecompileTools"] git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" @@ -1951,9 +2021,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "2cea01606a852c2431ded77293eb533b511b19e6" +git-tree-sha1 = "b450d967a770fb13d0e26358f58375e20361cf9c" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.22.0" +version = "3.26.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1973,6 +2043,12 @@ version = "3.22.0" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "6db1a75507051bc18bfa131fbc7c3f169cc4b2f6" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.23" + [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" @@ -2041,11 +2117,17 @@ git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" uuid = "94e857df-77ce-4151-89e5-788b33177be4" version = "0.1.0" +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "456f610ca2fbd1c14f5fcf31c6bfadc55e7d66e0" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.43" + [[deps.SciMLBase]] -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 = "088123999a9a8fa7ff386a82048c6ed24b2b7d07" +deps = ["ADTypes", "Accessors", "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 = "ddb59473b85372c4a71b082e6862503e550fd97c" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.30.2" +version = "2.44.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2073,9 +2155,10 @@ uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" version = "0.3.8" [[deps.SciMLStructures]] -git-tree-sha1 = "d778a74df2f64059c38453b34abad1953b2b8722" +deps = ["ArrayInterface"] +git-tree-sha1 = "cfdd1200d150df1d3c055cc72ee6850742e982d7" uuid = "53ae85a6-f571-4167-b2af-e1d143709226" -version = "1.2.0" +version = "1.4.1" [[deps.Scratch]] deps = ["Dates"] @@ -2085,9 +2168,9 @@ version = "1.2.1" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "90b4f68892337554d31cdcdbe19e48989f26c7e6" +git-tree-sha1 = "ff11acffdb082493657550959d4feb4b6149e73a" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.3" +version = "1.4.5" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -2102,11 +2185,6 @@ version = "1.1.1" deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" -[[deps.ShowCases]] -git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" -uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" -version = "0.1.0" - [[deps.Showoff]] deps = ["Dates", "Grisu"] git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" @@ -2118,6 +2196,24 @@ git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.1.0" +[[deps.SimpleNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DiffResults", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] +git-tree-sha1 = "03c21a4c373c7c3aa77611430068badaa073d740" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "1.11.0" + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" + SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" + SimpleNonlinearSolveTrackerExt = "Tracker" + SimpleNonlinearSolveZygoteExt = "Zygote" + + [deps.SimpleNonlinearSolve.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" @@ -2138,11 +2234,37 @@ deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.10.0" -[[deps.SparseInverseSubset]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" -uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" -version = "0.1.2" +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "469f51f8c4741ce944be2c0b65423b518b1405b0" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.19.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterExt = "Polyester" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SparseMatrixColorings]] +deps = ["ADTypes", "Compat", "DocStringExtensions", "LinearAlgebra", "Random", "SparseArrays"] +git-tree-sha1 = "277e10c002cd780a752bded3b95a8cbc791d646b" +uuid = "0a514795-09f3-496d-8182-132a7b665d35" +version = "0.3.5" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -2154,23 +2276,17 @@ weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" -[[deps.SplittablesBase]] -deps = ["Setfield", "Test"] -git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" -uuid = "171d559e-b47b-412a-8079-5efa626c420e" -version = "0.1.15" - [[deps.Static]] -deps = ["IfElse"] -git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" +deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools"] +git-tree-sha1 = "87d51a3ee9a4b0d2fe054bdd3fc2436258db2603" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.10" +version = "1.1.1" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +git-tree-sha1 = "8963e5a083c837531298fc41599182a759a87a6d" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.5.0" +version = "1.5.1" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -2179,9 +2295,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "9ae599cd7529cfce7fea36cf00a62cfc56f0f37c" +git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.4" +version = "1.9.7" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -2189,9 +2305,9 @@ weakdeps = ["ChainRulesCore", "Statistics"] StaticArraysStatisticsExt = "Statistics" [[deps.StaticArraysCore]] -git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.2" +version = "1.4.3" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -2223,9 +2339,9 @@ weakdeps = ["ChainRulesCore", "InverseFunctions"] [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "25349bf8f63aa36acbff5e3550a86e9f5b0ef682" +git-tree-sha1 = "f35f6ab602df8413a50c4a25ca14de821e8605fb" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.5.6" +version = "0.5.7" [[deps.StringEncodings]] deps = ["Libiconv_jll"] @@ -2239,19 +2355,6 @@ git-tree-sha1 = "a04cabe79c5f01f4d723cc6704070ada0b9d46d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.4" -[[deps.StructArrays]] -deps = ["ConstructionBase", "DataAPI", "Tables"] -git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" -uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.18" -weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] - - [deps.StructArrays.extensions] - StructArraysAdaptExt = "Adapt" - StructArraysGPUArraysCoreExt = "GPUArraysCore" - StructArraysSparseArraysExt = "SparseArrays" - StructArraysStaticArraysExt = "StaticArrays" - [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" @@ -2273,9 +2376,9 @@ weakdeps = ["ClimaParams"] [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "a5f6f138b740c9d93d76f0feddd3092e6ef002b7" +git-tree-sha1 = "9c490ee01823dc443da25bf9225827e3cdd2d7e9" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.22" +version = "0.3.26" [[deps.TOML]] deps = ["Dates"] @@ -2289,10 +2392,10 @@ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.1" +version = "1.12.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -2334,9 +2437,9 @@ version = "1.0.2" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "6098c65a2ad62312ac74cb1627c8fb33efe33287" +git-tree-sha1 = "80b13ddc5ae7b8605ef5a055e7f23c5b5f4775cf" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.5" +version = "0.12.7" weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] @@ -2355,33 +2458,19 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.24" [[deps.TranscodingStreams]] -git-tree-sha1 = "a947ea21087caba0a798c5e494d0bb78e3a1a3a0" +git-tree-sha1 = "96612ac5365777520c3c5396314c8cf7408f436a" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.9" +version = "0.11.1" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] TestExt = ["Test", "Random"] -[[deps.Transducers]] -deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] -git-tree-sha1 = "3064e780dbb8a9296ebb3af8f440f787bb5332af" -uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.80" - - [deps.Transducers.extensions] - TransducersBlockArraysExt = "BlockArrays" - TransducersDataFramesExt = "DataFrames" - TransducersLazyArraysExt = "LazyArrays" - TransducersOnlineStatsBaseExt = "OnlineStatsBase" - TransducersReferenceablesExt = "Referenceables" - - [deps.Transducers.weakdeps] - BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" - DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" - LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" - OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" - Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "be986ad9dac14888ba338c2554dcfec6939e1393" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.2.1" [[deps.Tricks]] git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" @@ -2424,9 +2513,9 @@ version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "dd260903fdabea27d9b6021689b3cd5401a57748" +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.20.0" +version = "1.21.0" weakdeps = ["ConstructionBase", "InverseFunctions"] [deps.Unitful.extensions] @@ -2435,9 +2524,9 @@ weakdeps = ["ConstructionBase", "InverseFunctions"] [[deps.UnitfulLatexify]] deps = ["LaTeXStrings", "Latexify", "Unitful"] -git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +git-tree-sha1 = "975c354fcd5f7e1ddcc1f1a23e6e091d99e99bc8" uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" -version = "1.6.3" +version = "1.6.4" [[deps.Unrolled]] deps = ["MacroTools"] @@ -2445,6 +2534,11 @@ git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" version = "0.1.5" +[[deps.UnrolledUtilities]] +git-tree-sha1 = "b73f7a7c25a2618c5052c80ed32b07e471cc6cb0" +uuid = "0fe1646c-419e-43be-ac14-22321958931b" +version = "0.1.2" + [[deps.UnsafeAtomics]] git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" @@ -2452,15 +2546,33 @@ version = "0.2.1" [[deps.UnsafeAtomicsLLVM]] deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "d9f5962fecd5ccece07db1ff006fb0b5271bdfdd" +git-tree-sha1 = "bf2c553f25e954a9b38c9c0593a59bb13113f9e5" uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.1.4" +version = "0.1.5" [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" version = "0.2.0" +[[deps.VectorInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "7aff7d62bffad9bba9928eb6ab55226b32a351eb" +uuid = "409d34a3-91d5-4945-b6ec-7529ddf182d8" +version = "0.4.6" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "e7f5b81c65eb858bed630fe006837b935518aca5" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.70" + +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + [[deps.Vulkan_Loader_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" @@ -2479,34 +2591,23 @@ git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" version = "1.31.0+0" -[[deps.WeakRefStrings]] -deps = ["DataAPI", "InlineStrings", "Parsers"] -git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" -uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" -version = "1.4.2" - [[deps.WoodburyMatrices]] deps = ["LinearAlgebra", "SparseArrays"] git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" version = "1.0.0" -[[deps.WorkerUtilities]] -git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" -uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" -version = "1.6.1" - [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "52ff2af32e591541550bd753c0da8b9bc92bb9d9" +git-tree-sha1 = "d9717ce3518dc68a99e6b96300813760d887a01d" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.7+0" +version = "2.13.1+0" [[deps.XSLT_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] -git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" -version = "1.1.34+0" +version = "1.1.41+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -2594,9 +2695,9 @@ version = "0.1.1+0" [[deps.Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.15.0+0" +version = "1.17.0+0" [[deps.Xorg_libxkbfile_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] @@ -2660,9 +2761,9 @@ version = "1.5.0+0" [[deps.YAML]] deps = ["Base64", "Dates", "Printf", "StringEncodings"] -git-tree-sha1 = "e6330e4b731a6af7959673621e91645eb1356884" +git-tree-sha1 = "80c3218f29cbc47111ac87e7be5e69cc05c6dd36" uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" -version = "0.4.9" +version = "0.4.11" [[deps.Zlib_jll]] deps = ["Libdl"] @@ -2675,34 +2776,6 @@ git-tree-sha1 = "e678132f07ddb5bfa46857f0d7620fb9be675d3b" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.6+0" -[[deps.Zygote]] -deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "19c586905e78a26f7e4e97f81716057bd6b1bc54" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.70" - - [deps.Zygote.extensions] - ZygoteColorsExt = "Colors" - ZygoteDistancesExt = "Distances" - ZygoteTrackerExt = "Tracker" - - [deps.Zygote.weakdeps] - Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" - Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - -[[deps.ZygoteRules]] -deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.5" - -[[deps.cuDNN]] -deps = ["CEnum", "CUDA", "CUDA_Runtime_Discovery", "CUDNN_jll"] -git-tree-sha1 = "4909e87d6d62c29a897d54d9001c63932e41cb0e" -uuid = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" -version = "1.3.2" - [[deps.eudev_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" @@ -2770,9 +2843,9 @@ version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] -git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.7+1" +version = "1.3.7+2" [[deps.libzip_jll]] deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] diff --git a/calibration/Project.toml b/calibration/Project.toml index df10812b6a..aaf267d997 100644 --- a/calibration/Project.toml +++ b/calibration/Project.toml @@ -10,6 +10,7 @@ ClimaCoupler = "4ade58fe-a8da-486c-bd89-46df092ec0c7" ClimaLand = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c" ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" +ClimaUtilities = "b3f4f4ca-9299-4f7f-bd9b-81e1242a7513" EnsembleKalmanProcesses = "aa8a2aa5-91d8-4396-bcef-d4f2ec43552d" Insolation = "e98cc03f-d57e-4e3c-b70c-8d51efe9e0d8" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" diff --git a/calibration/coupler_component_init.jl b/calibration/coupler_component_init.jl deleted file mode 100644 index 73d3406da7..0000000000 --- a/calibration/coupler_component_init.jl +++ /dev/null @@ -1,259 +0,0 @@ - - -#= -## Data File Paths -The data files are downloaded from the `ClimaCoupler` artifacts directory. If the data files are not present, they are downloaded from the -original sources. -=# - -include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl")) -sst_data = joinpath(sst_dataset_path(), "sst.nc") -sic_data = joinpath(sic_dataset_path(), "sic.nc") -co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc") -land_mask_data = joinpath(mask_dataset_path(), "seamask.nc") - -#= -## Component Model Initialization -Here we set initial and boundary conditions for each component model. Each component model is required to have an `init` function that -returns a `ComponentModelSimulation` object (see `Interfacer` docs for more details). -=# - -#= -### Atmosphere -This uses the `ClimaAtmos.jl` model, with parameterization options specified in the `config_dict_atmos` dictionary. -=# - -## init atmos model component -atmos_sim = atmos_init(FT, config_dict_atmos); -thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models #610 - -#= -### Boundary Space -We use a common `Space` for all global surfaces. This enables the MPI processes to operate on the same columns in both -the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the -atmosphere and surface are of the same horizontal resolution. -=# - -## init a 2D boundary space at the surface -boundary_space = ClimaCore.Spaces.horizontal_space(atmos_sim.domain.face_space) # TODO: specify this in the coupler and pass it to all component models #665 - -#= -### Land-sea Fraction -This is a static field that contains the area fraction of land and sea, ranging from 0 to 1. If applicable, sea ice is included in the sea fraction. at this stage. -Note that land-sea area fraction is different to the land-sea mask, which is a binary field (masks are used internally by the coupler to indicate passive cells that are not populated by a given component model). -=# - -land_fraction = - FT.( - Regridder.land_fraction( - FT, - REGRID_DIR, - comms_ctx, - land_mask_data, - "LSMASK", - boundary_space, - mono = mono_surface, - ) - ) - -#= -### Surface Models: AMIP and SlabPlanet Modes -Both modes evolve `ClimaLand.jl`'s bucket model. - -In the `AMIP` mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed -SIC and assuming a 2m thickness of the ice. - -In the `SlabPlanet` mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters. We have several `SlabPlanet` versions -- `slabplanet` = land + slab ocean -- `slabplanet_aqua` = slab ocean everywhere -- `slabplanet_terra` = land everywhere -- `slabplanet_eisenman` = land + slab ocean + slab sea ice with an evolving thickness -=# - -ClimaComms.iamroot(comms_ctx) ? @info(mode_name) : nothing -if mode_name == "amip" - ClimaComms.iamroot(comms_ctx) ? @info("AMIP boundary conditions - do not expect energy conservation") : nothing - - ## land model - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean stub - SST_info = bcfile_info_init( - FT, - REGRID_DIR, - sst_data, - "SST", - boundary_space, - comms_ctx, - interpolate_daily = true, - scaling_function = scale_sst, ## convert to Kelvin - land_fraction = land_fraction, - date0 = date0, - mono = mono_surface, - ) - - update_midmonth_data!(date0, SST_info) - SST_init = interpolate_midmonth_to_daily(date0, SST_info) - ocean_sim = SurfaceStub((; - T_sfc = SST_init, - ρ_sfc = ClimaCore.Fields.zeros(boundary_space), - z0m = FT(1e-3), - z0b = FT(1e-3), - beta = FT(1), - α = FT(0.06), - area_fraction = (FT(1) .- land_fraction), - phase = TD.Liquid(), - thermo_params = thermo_params, - )) - - ## sea ice model - SIC_info = bcfile_info_init( - FT, - REGRID_DIR, - sic_data, - "SEAICE", - boundary_space, - comms_ctx, - interpolate_daily = true, - scaling_function = scale_sic, ## convert to fraction - land_fraction = land_fraction, - date0 = date0, - mono = mono_surface, - ) - update_midmonth_data!(date0, SIC_info) - SIC_init = interpolate_midmonth_to_daily(date0, SIC_info) - ice_fraction = get_ice_fraction.(SIC_init, mono_surface) - ice_sim = ice_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = ice_fraction, - thermo_params = thermo_params, - ) - - ## CO2 concentration from temporally varying file - CO2_info = bcfile_info_init( - FT, - REGRID_DIR, - co2_data, - "co2", - boundary_space, - comms_ctx, - interpolate_daily = true, - land_fraction = ones(boundary_space), - date0 = date0, - mono = mono_surface, - ) - - update_midmonth_data!(date0, CO2_info) - CO2_init = interpolate_midmonth_to_daily(date0, CO2_info) - update_field!(atmos_sim, Val(:co2), CO2_init) - - mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info) - -elseif mode_name in ("slabplanet", "slabplanet_aqua", "slabplanet_terra") - - - land_fraction = mode_name == "slabplanet_aqua" ? land_fraction .* 0 : land_fraction - land_fraction = mode_name == "slabplanet_terra" ? land_fraction .* 0 .+ 1 : land_fraction - - ## land model - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean model - ocean_sim = ocean_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs) - thermo_params = thermo_params, - evolving = evolving_ocean, - ) - - ## sea ice stub (here set to zero area coverage) - ice_sim = SurfaceStub((; - T_sfc = ClimaCore.Fields.ones(boundary_space), - ρ_sfc = ClimaCore.Fields.zeros(boundary_space), - z0m = FT(0), - z0b = FT(0), - beta = FT(1), - α = FT(1), - area_fraction = ClimaCore.Fields.zeros(boundary_space), - phase = TD.Ice(), - thermo_params = thermo_params, - )) - - mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) - -elseif mode_name == "slabplanet_eisenman" - - ## land model - land_sim = bucket_init( - FT, - tspan, - config_dict["land_domain_type"], - config_dict["land_albedo_type"], - config_dict["land_temperature_anomaly"], - REGRID_DIR; - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = land_fraction, - date_ref = date0, - t_start = t_start, - ) - - ## ocean stub (here set to zero area coverage) - ocean_sim = ocean_init( - FT; - tspan = tspan, - dt = Δt_cpl, - space = boundary_space, - saveat = saveat, - area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below - thermo_params = thermo_params, - ) - - ## sea ice + ocean model - ice_sim = eisenman_seaice_init( - FT, - tspan, - space = boundary_space, - area_fraction = (FT(1) .- land_fraction), - dt = Δt_cpl, - saveat = saveat, - thermo_params = thermo_params, - ) - - mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing) -end \ No newline at end of file diff --git a/calibration/coupler_driver_calibration.jl b/calibration/coupler_driver_calibration.jl deleted file mode 100644 index 86e68f9a99..0000000000 --- a/calibration/coupler_driver_calibration.jl +++ /dev/null @@ -1,350 +0,0 @@ -## standard packages -using Dates -import YAML - -# ## ClimaESM packages -import ClimaAtmos as CA -using ClimaCore - -# ## Coupler specific imports -using ClimaCoupler -using ClimaCoupler.BCReader: bcfile_info_init, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily -using ClimaCoupler.ConservationChecker: - EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation -using ClimaCoupler.Checkpointer: restart_model_state! -using ClimaCoupler.Diagnostics: init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean -using ClimaCoupler.FieldExchanger: - import_atmos_fields!, import_combined_surface_fields!, update_model_sims!, reinit_model_sims!, step_model_sims! -using ClimaCoupler.FluxCalculator: - PartitionedStateFluxes, - CombinedStateFluxes, - combined_turbulent_fluxes!, - MoninObukhovScheme, - partitioned_turbulent_fluxes! -using ClimaCoupler.Interfacer: CoupledSimulation, SurfaceStub, get_field, update_field! -using ClimaCoupler.Regridder -using ClimaCoupler.Regridder: update_surface_fractions!, combine_surfaces!, binary_mask -using ClimaCoupler.TimeManager: - current_date, Monthly, EveryTimestep, HourlyCallback, MonthlyCallback, update_firstdayofmonth!, trigger_callback! -import ClimaCoupler.Utilities: get_comms_context - -pkg_dir = pkgdir(ClimaCoupler) - - -include("coupler_driver_init.jl") -include("coupler_parse_args.jl") -include("coupler_component_init.jl") - - -function get_simulation(config_dict) - #= - ## Coupler Initialization - The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally - save online diagnostics. These are all initialized here and saved in a global `CoupledSimulation` struct, `cs`. - =# - - ## coupler exchange fields - coupler_field_names = ( - :T_S, - :z0m_S, - :z0b_S, - :ρ_sfc, - :q_sfc, - :surface_albedo, - :beta, - :F_turb_energy, - :F_turb_moisture, - :F_turb_ρτxz, - :F_turb_ρτyz, - :F_radiative, - :P_liq, - :P_snow, - :radiative_energy_flux_toa, - :P_net, - ) - coupler_fields = - NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names))) - - ## model simulations - model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim); - - ## dates - dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) - - #= - ### Online Diagnostics - User can write custom diagnostics in the `user_diagnostics.jl`. - Note, this will be replaced by the diagnostics framework currently in ClimaAtmos, once it is abstracted - into a more general package, so we can use it to save fields from surface models. - =# - - @info "output directory:" COUPLER_OUTPUT_DIR - - monthly_3d_diags = init_diagnostics( - (:T, :u, :q_tot, :q_liq_ice), - atmos_sim.domain.center_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_3d_", - ) - - monthly_2d_diags = init_diagnostics( - (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes), - boundary_space; - save = Monthly(), - operations = (; accumulate = TimeMean([Int(0)])), - output_dir = COUPLER_OUTPUT_DIR, - name_tag = "monthly_mean_2d_", - ) - - diagnostics = (monthly_3d_diags, monthly_2d_diags) - - #= - ## Initialize Conservation Checks - - The conservation checks are used to monitor the global energy and water conservation of the coupled system. The checks are only - applicable to the `slabplanet` mode, as the `amip` mode is not a closed system. The conservation checks are initialized here and - saved in a global `ConservationChecks` struct, `conservation_checks`. - =# - - ## init conservation info collector - conservation_checks = nothing - if energy_check - @assert( - mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)), - "Only non-distributed slabplanet allowable for energy_check" - ) - conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims)) - end - - #= - ## Initialize Callbacks - Callbacks are used to update at a specified interval. The callbacks are initialized here and - saved in a global `Callbacks` struct, `callbacks`. The `trigger_callback!` function is used to call the callback during the simulation below. - - The frequency of the callbacks is specified in the `HourlyCallback` and `MonthlyCallback` structs. The `func` field specifies the function to be called, - the `ref_date` field specifies the reference (first) date for the callback, and the `active` field specifies whether the callback is active or not. - - 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). - =# - - ## 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) - - #= - ## Initialize Coupled Simulation - - The coupled simulation is initialized here and saved in a global `CoupledSimulation` struct, `cs`. It contains all the information - required to run the coupled simulation, including the communication context, the dates, the boundary space, the coupler fields, the - configuration dictionary, the conservation checks, the time span, the time step, the land fraction, the model simulations, the mode - specifics, the diagnostics, the callbacks, and the directory paths. - =# - - cs = CoupledSimulation{FT}( - comms_ctx, - dates, - boundary_space, - coupler_fields, - config_dict, - conservation_checks, - [tspan[1], tspan[2]], - atmos_sim.integrator.t, - Δt_cpl, - (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)), - model_sims, - mode_specifics, - diagnostics, - callbacks, - dir_paths, - ); - - - - #= - ## Restart component model states if specified - If a restart directory is specified and contains output files from the `checkpoint_cb` callback, the component model states are restarted from those files. The restart directory - is specified in the `config_dict` dictionary. The `restart_t` field specifies the time step at which the restart is performed. - =# - - #= - if restart_dir !== "unspecified" - for sim in cs.model_sims - if get_model_prog_state(sim) !== nothing - restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) - end - end - end - =# - - #= - ## Initialize Component Model Exchange - - We need to ensure all models' initial conditions are shared to enable the coupler to calculate the first instance of surface fluxes. Some auxiliary variables (namely surface humidity and radiation fluxes) - depend on initial conditions of other component models than those in which the variables are calculated, which is why we need to step these models in time and/or reinitialize them. - 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 - update_surface_fractions!(cs) - - # 3.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) - - # 4.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 - # or the partitioned state method - if 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 - ## 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 - ## 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) - - ## update atmos sfc_conditions for surface temperature - ## TODO: this is hard coded and needs to be simplified (req. CA modification) (#479) - new_p = get_new_cache(atmos_sim, cs.fields) - CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) ## sets T_sfc (but SF calculation not necessary - requires split functionality in CA) - 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) - reinit_model_sims!(cs.model_sims) - - # 7.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) - - return cs -end - -#= -## Coupling Loop - -The coupling loop is the main part of the simulation. It runs the component models sequentially for one coupling timestep (`Δt_cpl`), and exchanges combined fields and calculates fluxes using combined states. -Note that we want to implement this in a dispatchable function to allow for other forms of timestepping (e.g. leapfrog). (TODO: #610) -=# - -function solve_coupler!(cs) - ClimaComms.iamroot(comms_ctx) ? @info("Starting coupling loop") : nothing - - (; model_sims, Δt_cpl, tspan) = cs - (; atmos_sim, land_sim, ocean_sim, ice_sim) = model_sims - - ## step in time - walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end]) - - cs.dates.date[1] = current_date(cs, t) - - ## print date on the first of month - if cs.dates.date[1] >= cs.dates.date1[1] - ClimaComms.iamroot(comms_ctx) ? @show(cs.dates.date[1]) : nothing - end - - if cs.mode.name == "amip" - - 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 - - ## monthly read of boundary condition data for SST and SIC and CO2 - if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info) - update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info) - end - SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info) - update_field!(ocean_sim, Val(:surface_temperature), SST_current) - - if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info) - 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) - update_field!(ice_sim, Val(:area_fraction), SIC_current) - - if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info) - update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info) - end - CO2_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.CO2_info) - update_field!(atmos_sim, Val(:co2), CO2_current) - - ## calculate and accumulate diagnostics at each timestep - ClimaComms.barrier(comms_ctx) - accumulate_diagnostics!(cs) - - ## save and reset monthly averages - save_diagnostics(cs) - - end - - ## compute global energy - !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing - - ## 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) - - ## 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 - ## 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) - - ## 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) - CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification) - 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 - - ## callback to update the fist day of month if needed (for BCReader) - trigger_callback!(cs, cs.callbacks.update_firstdayofmonth!) - - ## callback to checkpoint model state - trigger_callback!(cs, cs.callbacks.checkpoint) - - end - ClimaComms.iamroot(comms_ctx) ? @show(walltime) : nothing - - return cs -end \ No newline at end of file diff --git a/calibration/coupler_driver_init.jl b/calibration/coupler_driver_init.jl deleted file mode 100644 index daea9cde3b..0000000000 --- a/calibration/coupler_driver_init.jl +++ /dev/null @@ -1,9 +0,0 @@ -include("../experiments/AMIP/components/atmosphere/climaatmos.jl") -include("../experiments/AMIP/components/land/climaland_bucket.jl") -include("../experiments/AMIP/components/ocean/slab_ocean.jl") -include("../experiments/AMIP/components/ocean/prescr_seaice.jl") -include("../experiments/AMIP/components/ocean/eisenman_seaice.jl") - -## helper../experiments/AMIP/s for user-specified IO -include("../experiments/AMIP/user_io/user_diagnostics.jl") -include("../experiments/AMIP/user_io/user_logging.jl") \ No newline at end of file diff --git a/calibration/coupler_interface.jl b/calibration/coupler_interface.jl deleted file mode 100644 index c24ad37789..0000000000 --- a/calibration/coupler_interface.jl +++ /dev/null @@ -1,68 +0,0 @@ -import EnsembleKalmanProcesses as EKP -import ClimaCoupler as CCo -import YAML -import CalibrateAtmos: get_forward_model, AbstractPhysicalModel, get_config - -struct CoupledModel <: AbstractPhysicalModel end - -function get_forward_model( - experiment_id::Val{:amip_coupled} -) - return CoupledModel() -end - -function get_config( - model::CoupledModel, - member, - iteration, - experiment_id::AbstractString -) - config_dict = YAML.load_file("experiments/$experiment_id/model_config.yml") - return get_config(model, member, iteration, config_dict) -end - -function get_config( - ::CoupledModel, - member, - iteration, - config_dict::AbstractDict, -) - # Specify member path for output_dir - # Set TOML to use EKP parameter(s) - config_dict = YAML.load_file("./experiments/amip_coupled/model_config.yml") - output_dir = "output" - member_path = - EKP.TOMLInterface.path_to_ensemble_member(output_dir, iteration, member) - config_dict = merge(parsed_args, config_dict) - - ## get component model dictionaries (if applicable) - config_dict_atmos = get_atmos_config(config_dict) - - ## merge dictionaries of command line arguments, coupler dictionary and component model dictionaries - ## (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) - config_dict = merge(config_dict_atmos, config_dict) - # COPY Coupler Driver - config_dict["output_dir"] = member_path - include("coupler_driver_calibration.jl") - config_dict["output_dir"] = member_path - # END Coupler Driver - parameter_path = joinpath(member_path, "parameters.toml") - if haskey(config_dict, "toml") - push!(config_dict["toml"], parameter_path) - else - config_dict["toml"] = [parameter_path] - end - # Turn off default diagnostics - config_dict["output_default_diagnostics"] = false - return (;config_dict=config_dict) -end - -function run_forward_model( - ::CoupledModel, - config; - lk = nothing, -) - cs = get_simulation(config); - sol_res = solve_coupler!(cs); - return sol_res -end diff --git a/calibration/coupler_parse_args.jl b/calibration/coupler_parse_args.jl deleted file mode 100644 index 4e7d71f86c..0000000000 --- a/calibration/coupler_parse_args.jl +++ /dev/null @@ -1,72 +0,0 @@ -#= -### Configuration Dictionaries -Each simulation mode has its own configuration dictionary. The `config_dict` of each simulation is a merge of the default configuration -dictionary and the simulation-specific configuration dictionary, which allows the user to override the default settings. - -We can additionally pass the configuration dictionary to the component model initializers, which will then override the default settings of the component models. -=# - -## coupler simulation default configuration -include("../experiments/AMIP/cli_options.jl") -parsed_args = parse_commandline(argparse_settings()) - -## read in config dictionary from file, overriding the coupler defaults -config_dict = YAML.load_file(joinpath(experiment_dir, "model_config.yml")); -config_dict = merge(parsed_args, config_dict) - -## get component model dictionaries (if applicable) -config_dict_atmos = get_atmos_config(config_dict) - -## merge dictionaries of command line arguments, coupler dictionary and component model dictionaries -## (if there are common keys, the last dictorionary in the `merge` arguments takes precedence) -config_dict = merge(config_dict_atmos, config_dict) - -## read in some parsed command line arguments, required by this script -mode_name = config_dict["mode_name"] -run_name = config_dict["run_name"] -energy_check = config_dict["energy_check"] -FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32 -land_sim_name = "bucket" -t_end = Float64(time_to_seconds(config_dict["t_end"])) -t_start = 0.0 -tspan = (t_start, t_end) -Δt_cpl = Float64(config_dict["dt_cpl"]) -saveat = Float64(time_to_seconds(config_dict["dt_save_to_sol"])) -date0 = date = DateTime(config_dict["start_date"], "yyyymmdd") -mono_surface = config_dict["mono_surface"] -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"] - -#= -## Setup Communication Context -We set up communication context for CPU single thread/CPU with MPI/GPU. If no device is passed to `ClimaComms.context()` -then `ClimaComms` automatically selects the device from which this code is called. -=# - -using ClimaComms -comms_ctx = ClimaCoupler.Utilities.get_comms_context(parsed_args) -const pid, nprocs = ClimaComms.init(comms_ctx) - -#= -### I/O Directory Setup -`COUPLER_OUTPUT_DIR` is the directory where the output of the simulation will be saved, and `COUPLER_ARTIFACTS_DIR` is the directory where -the plots (from postprocessing and the conservation checks) of the simulation will be saved. `REGRID_DIR` is the directory where the regridding -temporary files will be saved. -=# - -mkpath(COUPLER_OUTPUT_DIR) - -REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/") -mkpath(REGRID_DIR) - -COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts" -isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR) - -dir_paths = (; output = COUPLER_OUTPUT_DIR, artifacts = COUPLER_ARTIFACTS_DIR) - -if ClimaComms.iamroot(comms_ctx) - @info(COUPLER_OUTPUT_DIR) - config_dict["print_config_dict"] ? @info(config_dict) : nothing -end \ No newline at end of file diff --git a/calibration/experiments/amip_coupled/ekp_config.yml b/calibration/experiments/amip_coupled/ekp_config.yml deleted file mode 100644 index c17c09fe54..0000000000 --- a/calibration/experiments/amip_coupled/ekp_config.yml +++ /dev/null @@ -1,7 +0,0 @@ -output_dir: output/amip_coupled -prior_path: experiments/amip_coupled/prior.toml -parameter_names: ["coefficient_a_m_businger", "coefficient_b_m_businger", "coefficient_a_h_businger", "coefficient_b_h_businger"] -ensemble_size: 10 -n_iterations: 3 -truth_data: experiments/amip_coupled/obs_mean.jld2 -truth_noise: experiments/amip_coupled/obs_noise_cov.jld2 diff --git a/calibration/experiments/amip_coupled/model_config.yml b/calibration/experiments/amip_coupled/model_config.yml deleted file mode 100644 index 1df63f4684..0000000000 --- a/calibration/experiments/amip_coupled/model_config.yml +++ /dev/null @@ -1,28 +0,0 @@ -alpha_rayleigh_uh: 0 -alpha_rayleigh_w: 10 -apply_limiter: false -atmos_config_file: "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/config/longrun_configs/amip_n1_shortrun.yml" -dt: "150secs" -dt_cpl: 150 -dt_rad: "1hours" -dt_save_to_sol: "1days" -dz_bottom: 30 -dz_top: 3000 -energy_check: false -h_elem: 16 -job_id: "target_amip_n1_shortrun" -kappa_4: 1e16 -mode_name: "amip" -moist: "equil" -mono_surface: false -precip_model: "0M" -rad: "gray" -rayleigh_sponge: true -run_name: "target_amip_n1_shortrun" -t_end: "150secs" -vert_diff: "true" -z_elem: 50 -z_stretch: false -dt_save_restart: "150secs" -restart_dir: "./restart" -output_dir: output/amip_coupled \ No newline at end of file diff --git a/calibration/experiments/amip_coupled/observation_map.jl b/calibration/experiments/amip_coupled/observation_map.jl deleted file mode 100644 index d455b318f9..0000000000 --- a/calibration/experiments/amip_coupled/observation_map.jl +++ /dev/null @@ -1,56 +0,0 @@ -### Place holder for NCEP data from the ClimaCoupler outputs -# - -function longitudinal_avg(arr) - dims = 2 - for (idx, dim_size) in enumerate(size(arr)) - if dim_size == 180 - dims = idx - end - end - return dropdims(mean(arr; dims); dims) -end - -function latitudinal_avg(arr) - dims = 3 - for (idx, dim_size) in enumerate(size(arr)) - if dim_size == 80 - dims = idx - end - end - return dropdims(mean(arr; dims); dims) -end - -function observation_map(iteration) - experiment_id = "amip_coupled" - config = YAML.load_file(joinpath("experiments", experiment_id, "ekp_config.yml")) - output_dir = config["output_dir"] - ensemble_size = config["ensemble_size"] - model_output = "wa_inst.nc" - dims = 1 - G_ensemble = Array{Float64}(undef, dims..., ensemble_size) - for m in 1:ensemble_size - member_path = - TOMLInterface.path_to_ensemble_member(output_dir, iteration, m) - ta = ncread(joinpath(member_path, model_output), "wa") - G_ensemble[:, m] = process_member_data(ta) - end - return G_ensemble -end - -function process_member_data(wa; output_variance = false) - # Cut off first 120 days to get equilibrium, take second level slice - level_slice = 2 - wa_second_height = wa[3:size(wa)[1], :, :, level_slice] - # Average over long and latitude - area_avg_wa_second_height = - longitudinal_avg(latitudinal_avg(wa_second_height)) - observation = Float64[area_avg_wa_second_height[2]] - if !(output_variance) - return observation - else - variance = Matrix{Float64}(undef, 1, 1) - variance[1] = var(area_avg_wa_second_height) - return (; observation, variance) - end -end diff --git a/calibration/experiments/amip_coupled/prior.toml b/calibration/experiments/amip_coupled/prior.toml deleted file mode 100644 index dc85a8000c..0000000000 --- a/calibration/experiments/amip_coupled/prior.toml +++ /dev/null @@ -1,23 +0,0 @@ -["coefficient_a_m_businger"] -prior = "Parameterized(Normal(0.0, 2.0))" -constraint = "[bounded_below(0)]" -type = "float" -alias = "businger_a_m" - -["coefficient_b_m_businger"] -prior = "Parameterized(Normal(0.0, 16.0))" -constraint = "[bounded_below(0)]" -type = "float" -alias = "businger_b_m" - -["coefficient_a_h_businger"] -prior = "Parameterized(Normal(0.0, 16.0))" -constraint = "[bounded_below(0)]" -type = "float" -alias = "businger_a_h" - -["coefficient_b_h_businger"] -prior = "Parameterized(Normal(0.0, 16.0))" -constraint = "[bounded_below(0)]" -type = "float" -alias = "businger_b_h" diff --git a/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml b/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml deleted file mode 100644 index ed7aa7ffb0..0000000000 --- a/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun.yml +++ /dev/null @@ -1,106 +0,0 @@ -surface_thermo_state_type: "GCMSurfaceThermoState" -topo_smoothing: false -warn_allocations_diagnostics: false -hyperdiff: "ClimaHyperdiffusion" -dt: "150secs" -output_dir: "experiments/amip_coupled/truth_simulation" -prognostic_tke: false -override_τ_precip: true -use_newton_rtol: false -netcdf_output_at_levels: false -device: "auto" -t_end: "150secs" -dz_top: 3000.0 -y_elem: 6 -z_stretch: false -bubble: true -ode_algo: "ARS343" -max_newton_iters_ode: 1 -start_date: "19790101" -check_precipitation: false -forcing: ~ -edmfx_nh_pressure: false -scalar_hyperdiffusion_coefficient: 1.5 -prognostic_surface: "false" -test_dycore_consistency: false -moist: "equil" -perf_mode: "PerfStandard" -edmf_coriolis: ~ -rad: "gray" -rayleigh_sponge: true -initial_condition: "DecayingProfile" -cloud_model: "quadrature" -krylov_rtol: 0.1 -divergence_damping_factor: 1.0 -edmfx_entr_model: ~ -eisenstat_walker_forcing_alpha: 2.0 -dt_cloud_fraction: "3hours" -smoothing_order: 3 -idealized_h2o: false -surface_setup: "PrescribedSurface" -perturb_initstate: true -jvp_step_adjustment: 1.0 -discrete_hydrostatic_balance: false -netcdf_interpolate_z_over_msl: false -log_progress: true -dz_bottom: 30.0 -h_elem: 16 -dt_save_state_to_disk: "Inf" -netcdf_interpolation_num_points: ~ -advection_test: false -z_max: 30000.0 -apply_limiter: false -topography: "NoWarp" -reference_job_id: ~ -precip_model: "0M" -perf_summary: false -vorticity_hyperdiffusion_coefficient: 1.5 -viscous_sponge: false -surface_temperature: "ZonallySymmetric" -diagnostics: - - short_name: - - "pfull" - - "wa" - - "va" - - "rv" - period: "150secs" - reduction: "average" -job_id: "target_amip_n1_shortrun" -orographic_gravity_wave: ~ -dt_rad: "1hours" -approximate_linear_solve_iters: 1 -edmfx_upwinding: "none" -tracer_upwinding: "none" -nh_poly: 3 -edmfx_sgs_diffusive_flux: false -y_max: 300000.0 -non_orographic_gravity_wave: false -use_reference_state: true -config: "sphere" -energy_upwinding: "none" -FLOAT_TYPE: "Float64" -updraft_number: 1 -split_ode: true -regression_test: false -check_conservation: false -ls_adv: ~ -output_default_diagnostics: true -implicit_diffusion: false -x_max: 300000.0 -edmfx_sgs_mass_flux: false -z_elem: 50 -newton_rtol: 1.0e-5 -fps: 5 -edmfx_sgsflux_upwinding: "none" -turbconv: ~ -x_elem: 6 -idealized_clouds: false -vert_diff: "true" -use_krylov_method: false -subsidence: ~ -use_dynamic_krylov_rtol: false -idealized_insolation: true -toml: - - "/Users/akshaysridhar/.julia/packages/ClimaCoupler/utcpx/toml/default_coarse.toml" -edmfx_detr_model: ~ -dt_save_to_sol: "1days" diff --git a/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml b/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml deleted file mode 100644 index 1e2ece0d34..0000000000 --- a/calibration/experiments/amip_coupled/truth_simulation/target_amip_n1_shortrun_parameters.toml +++ /dev/null @@ -1,487 +0,0 @@ -[f_plane_coriolis_frequency] -used_in = ["ClimaAtmos"] -value = 0 -type = "float" - -[orbit_eccentricity_at_epoch] -used_in = ["Insolation"] -value = 0.016708634 -type = "float" - -[potential_temperature_reference_pressure] -used_in = ["Thermodynamics"] -value = 100000 -type = "float" -description = "Reference pressure used in potential temperature definition" - -[prandtl_number_0_businger] -used_in = ["SurfaceFluxes"] -value = 0.74 -type = "float" -description = "Pr_0 for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[mixing_length_tke_surf_scale] -used_in = ["ClimaAtmos"] -value = 3.75 -type = "float" -description = "Ratio of turbulence kinetic energy to squared friction velocity in the surface layer for the EDMF mixing length closure; denoted κ_*². See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1. Note: the square root, i.e. κ_*, is listed in the reference." - -[temperature_triple_point] -used_in = ["Thermodynamics"] -value = 273.16 -type = "float" - -[length_orbit_semi_major] -used_in = ["Insolation"] -value = 149597870000 -type = "float" -description = "derived: 1 * [astronomical_unit]" - -[isobaric_specific_heat_ice] -used_in = ["Thermodynamics"] -value = 2100 -type = "float" - -[mixing_length_smin_rm] -used_in = ["ClimaAtmos"] -value = 1.5 -type = "float" -description = "Upper ratio limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." - -[C_E] -used_in = ["ClimaAtmos"] -value = 0.044 -type = "float" -description = "vertical diffusion coefficient" - -[latent_heat_sublimation_at_reference] -used_in = ["Thermodynamics"] -value = 2834400 -type = "float" - -[day] -used_in = ["Insolation"] -value = 86400 -type = "float" - -[isobaric_specific_heat_vapor] -used_in = ["Thermodynamics"] -value = 1859 -type = "float" - -[EDMF_surface_area] -used_in = ["ClimaAtmos"] -value = 0.1 -type = "float" -description = "Combined updraft surface area fraction; used to compute boundary conditions for prognostic updraft variables. The surface area for each updraft is `surface_area / N_updrafts`. See Cohen et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 2." - -[c_smag] -used_in = ["ClimaAtmos"] -value = 0.2 -type = "float" -description = "Smagorinsky coefficient" - -[mixing_length_smin_ub] -used_in = ["ClimaAtmos"] -value = 0.1 -type = "float" -description = "Lower limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." - -[molar_mass_water] -used_in = ["Thermodynamics", "RRTMGP"] -value = 0.01801528 -type = "float" - -[most_stability_exponent_businger] -used_in = ["SurfaceFluxes"] -value = 4.42 -type = "float" -description = "γ for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[temperature_saturation_adjustment_min] -used_in = ["Thermodynamics"] -value = 150 -type = "float" - -[min_area_limiter_power] -used_in = ["ClimaAtmos"] -value = 10 -type = "float" -description = "Constant coefficient for the exponent in the minimum area limiter term in entrainment. Parameter not described in the literature." - -[pressure_normalmode_drag_coeff] -used_in = ["ClimaAtmos"] -value = 10.0 -type = "float" -description = "Updraft pressure drag coefficent in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." - -[held_suarez_T_equator_dry] -used_in = ["ClimaAtmos"] -value = 315 -type = "float" -description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[mixing_length_Prandtl_number_0] -used_in = ["ClimaAtmos"] -value = 0.74 -type = "float" -description = "Turbulent Prandtl number in neutral conditions; denoted Pr_{t,0}. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1 and Eq 36." - -[longitude_perihelion_at_epoch] -used_in = ["Insolation"] -value = 4.938188299449 -type = "float" -description = "(282.937348 degrees) in radians" - -[stefan_boltzmann_constant] -used_in = ["RRTMGP"] -value = 5.67e-8 -type = "float" - -[temperature_min_at_reference] -used_in = ["Thermodynamics"] -value = 220 -type = "float" - -[entropy_water_vapor] -used_in = ["Thermodynamics"] -value = 10513.6 -type = "float" - -[equator_pole_temperature_gradient_wet] -used_in = ["ClimaAtmos"] -value = 65 -type = "float" -description = "Temperature gradient between equator and pole for moist adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[held_suarez_T_equator_wet] -used_in = ["ClimaAtmos"] -value = 294 -type = "float" -description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[entropy_dry_air] -used_in = ["Thermodynamics"] -value = 6864.8 -type = "float" - -[zd_rayleigh] -used_in = ["ClimaAtmos"] -value = 15000.0 -type = "float" -description = "rayleigh sponge height" - -[coefficient_a_m_businger] -used_in = ["SurfaceFluxes"] -value = 4.7 -type = "float" -description = "a_m for Businger momentum universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[temperature_saturation_adjustment_max] -used_in = ["Thermodynamics"] -value = 1000 -type = "float" - -[mean_anomalistic_at_epoch] -used_in = ["Insolation"] -value = 6.24006014121 -type = "float" -description = "(357.52911 degrees) in radians" - -[mixing_length_diss_coeff] -used_in = ["ClimaAtmos"] -value = 0.22 -type = "float" -description = "Turbulence kinetic energy dissipation coefficient for the EDMF mixing length closure; denoted c_d. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." - -[potential_temp_vertical_gradient] -used_in = ["ClimaAtmos"] -value = 10 -type = "float" -description = "Potential temperature gradient with height. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[EDMF_max_area] -used_in = ["ClimaAtmos"] -value = 0.9 -type = "float" -description = "Maximum area fraction per updraft. Parameter not described in the literature." - -[entr_coeff] -used_in = ["ClimaAtmos"] -value = 1 -type = "float" -description = "TODO: Remove this. Constant entrainment coefficient used for testing EDMF" - -[mixing_length_Ri_crit] -used_in = ["ClimaAtmos"] -value = 0.25 -type = "float" -description = "Critical gradient Richardson number. It is an upper limit to the gradient Richardson number . See Li (2019) [https://doi.org/10.1016/j.atmosres.2018.09.015], Section 6.2 for details." - -[gas_constant] -used_in = ["Thermodynamics", "RRTMGP"] -value = 8.3144598 -type = "float" - -[orbit_obliquity_at_epoch] -used_in = ["Insolation"] -value = 0.408979125113246 -type = "float" -description = "(23.432777778 degrees) in radians" - -[drag_layer_vertical_extent] -used_in = ["ClimaAtmos"] -value = 0.7 -type = "float" -description = "Vertical extend of drag layer. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[temperature_mean_at_reference] -used_in = ["Thermodynamics"] -value = 290 -type = "float" - -[detr_inv_tau] -used_in = ["ClimaAtmos"] -value = 900 -type = "float" -description = "Detrainment timescale" - -[entr_inv_tau] -used_in = ["ClimaAtmos"] -value = 900 -type = "float" -description = "Entrainment timescale" - -[temperature_homogenous_nucleation] -used_in = ["Thermodynamics"] -value = 233 -type = "float" - -[pressure_normalmode_buoy_coeff1] -used_in = ["ClimaAtmos"] -value = 0.12 -type = "float" -description = "Pressure buoyancy coefficient (encapsulating virtual mass loading effect) in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." - -[mixing_length_static_stab_coeff] -used_in = ["ClimaAtmos"] -value = 0.4 -type = "float" -description = "Static stability coefficient for the EDMF mixing length closure; denoted c_b. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." - -[held_suarez_minimum_temperature] -used_in = ["ClimaAtmos"] -value = 200 -type = "float" -description = "Minimum temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[angular_velocity_planet_rotation] -used_in = ["ClimaAtmos"] -value = 7.2921159e-5 -type = "float" - -[min_area_limiter_scale] -used_in = ["ClimaAtmos"] -value = 0.001 -type = "float" -description = "Constant coefficient that scales the minimum area limiter term in entrainment. Parameter not described in the literature." - -[entropy_reference_temperature] -used_in = ["Thermodynamics"] -value = 298.15 -type = "float" - -[most_stability_parameter_businger] -used_in = ["SurfaceFluxes"] -value = 2.5 -type = "float" -description = "ζ_a for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[molar_mass_dry_air] -used_in = ["Thermodynamics", "RRTMGP"] -value = 0.02897 -type = "float" - -[zd_viscous] -used_in = ["ClimaAtmos"] -value = 15000.0 -type = "float" -description = "viscous sponge height" - -[planet_radius] -used_in = ["ClimaAtmos"] -value = 6371000 -type = "float" - -[adiabatic_exponent_dry_air] -used_in = ["Thermodynamics", "RRTMGP"] -value = 0.28571428571 -type = "float" -description = "(2/7)" - -[epoch_time] -used_in = ["Insolation"] -value = 211813488000 -type = "float" -description = "derived: 2451545.0 * [day]" - -[detr_buoy_coeff] -used_in = ["ClimaAtmos"] -value = 0.12 -type = "float" -description = "Coefficient for the b/w^2 term in the detrainment closure. See Tan et al. (2018) [https://doi.org/10.1002/2017MS001162], Eq 27." - -[precipitation_timescale] -used_in = ["CloudMicrophysics"] -value = 150.0 -type = "float" - -[C_H] -used_in = ["ClimaAtmos"] -value = 0.0044 -type = "float" -description = "bulk transfer coefficient" - -[EDMF_min_area] -used_in = ["ClimaAtmos"] -value = 1.0e-5 -type = "float" -description = "Minimum area fraction per updraft. Parameter not described in the literature." - -[isobaric_specific_heat_liquid] -used_in = ["Thermodynamics"] -value = 4181 -type = "float" - -[latent_heat_vaporization_at_reference] -used_in = ["Thermodynamics"] -value = 2500800 -type = "float" - -[detr_vertdiv_coeff] -used_in = ["ClimaAtmos"] -value = 1 -type = "float" -description = "Coefficient for the vertical divergence term in the detrainment closure. Parameter not described in the literature." - -[gravitational_acceleration] -used_in = ["Thermodynamics", "RRTMGP"] -value = 9.81 -type = "float" - -[equator_pole_temperature_gradient_dry] -used_in = ["ClimaAtmos"] -value = 60 -type = "float" -description = "Temperature gradient between equator and pole for dry adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" - -[coefficient_a_h_businger] -used_in = ["SurfaceFluxes"] -value = 4.7 -type = "float" -description = "a_h for Businger heat universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." - -[pow_icenuc] -used_in = ["Thermodynamics"] -value = 1 -type = "float" - -[max_area_limiter_scale] -used_in = ["ClimaAtmos"] -value = 0.1 -type = "float" -description = "Constant coefficient that scales the maximum area limiter term in detrainment. Parameter not described in the literature." - -[avogadro_constant] -used_in = ["RRTMGP"] -value = 6.02214076e23 -type = "float" - -[pressure_triple_point] -used_in = ["Thermodynamics"] -value = 611.657 -type = "float" - -[thermodynamics_temperature_reference] -used_in = ["Thermodynamics"] -value = 273.16 -type = "float" - -[temperature_water_freeze] -used_in = ["Thermodynamics"] -value = 273.15 -type = "float" - -[total_solar_irradiance] -used_in = ["Insolation"] -value = 1362 -type = "float" - -[detr_coeff] -used_in = ["ClimaAtmos"] -value = 0.001 -type = "float" -description = "TODO: Remove this. Constant detrainment coefficient used for testing EDMF" - -[minimum_updraft_top] -used_in = ["ClimaAtmos"] -value = 500.0 -type = "float" -description = "Minimum updraft height limiter to avoid zero division in pressure drag and entrainment/detrainment closures. Parameter not described in the literature." - -[von_karman_constant] -used_in = ["SurfaceFluxes"] -value = 0.4 -type = "float" - -[mixing_length_eddy_viscosity_coefficient] -used_in = ["ClimaAtmos"] -value = 0.14 -type = "float" -description = "Turbulence kinetic energy diffusivity coefficient for the EDMF mixing length closure; denoted c_m. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." - -[alpha_rayleigh_w] -used_in = ["ClimaAtmos"] -value = 1.0 -type = "float" -description = "rayleigh sponge vert velocity coeff" - -[mean_sea_level_pressure] -used_in = ["Thermodynamics"] -value = 101325 -type = "float" - -[max_area_limiter_power] -used_in = ["ClimaAtmos"] -value = 10 -type = "float" -description = "Constant coefficient for the exponent in the maximum area limiter term in detrainment. Parameter not described in the literature." - -[anomalistic_year_length] -used_in = ["Insolation"] -value = 31558464 -type = "float" -description = "derived: 365.25 * [day]" - -[alpha_rayleigh_uh] -used_in = ["ClimaAtmos"] -value = 0.0 -type = "float" -description = "rayleigh sponge horizontal velocity coefficient" - -[kappa_2_sponge] -used_in = ["ClimaAtmos"] -value = 1.0e6 -type = "float" -description = "viscous sponge coefficient" - -[astronomical_unit] -used_in = ["ClimaAtmos"] -value = 149597870000 -type = "float" - -[mixing_length_Prandtl_number_scale] -used_in = ["ClimaAtmos"] -value = 4.076923076923077 -type = "float" -description = "Cospectral budget factor for turbulent Prandtl number for the EDMF mixing length closure, denoted ω_pr. In Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Eq. 36, it is described as a phenomenological constant, denoted by ω₂ and set to 53/13 ≈ 4.0769..." diff --git a/calibration/generate_observations.sbatch b/calibration/generate_observations.sbatch deleted file mode 100644 index 4bbd5eec9c..0000000000 --- a/calibration/generate_observations.sbatch +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -#SBATCH --time=24:00:00 -#SBATCH --ntasks=32 -#SBATCH --cpus-per-task=8 -#SBATCH --output="experiments/amip_coupled/truth_simulation/model_log.out" - -# Configure the environment -export MODULEPATH=/groups/esm/modules:$MODULEPATH -module load climacommon/2024_02_27 - -echo "Generating truth observations." - -srun --open-mode=append julia --project=experiments -e ' -using ClimaComms -ClimaComms.init(ClimaComms.context()) -import ClimaCoupler -import YAML -using NCDatasets -import JLD2 -using Statistics - -experiment_dir = joinpath("experiments", "amip_coupled") -COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") - -include("coupler_driver_calibration.jl"); -solve_coupler!(cs); # Integrate the coupled model - -testdir = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/experiments/amip_coupled/truth_simulation/" -wa = NCDataset(joinpath(testdir, "", "wa_inst.nc"))["wa"] -include(joinpath(experiment_dir, "observation_map.jl")) -(; observation, variance) = process_member_data(wa; output_variance = true) -JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) -JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) -' diff --git a/calibration/model_run.sbatch b/calibration/model_run.sbatch deleted file mode 100644 index 60d67adcbc..0000000000 --- a/calibration/model_run.sbatch +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -#SBATCH --time=2:00:00 -#SBATCH --cpus-per-task=8 -#SBATCH --mem-per-cpu=8G - -# Extract command-line arguments -experiment_id=$1 -iteration=$2 - -# Find output directory -format_i=$(printf "iteration_%03d" "$iteration") -member=$(printf "member_%03d" "$SLURM_ARRAY_TASK_ID") -output="output/$experiment_id/$format_i/$member/model_log.out" - -experiment_dir = joinpath("experiments", "amip_coupled") -COUPLER_OUTPUT_DIR = joinpath("experiments","$format_i","$member") - -# Run the forward model -srun --output=$output julia --color=no --project=experiments -e " - using ClimaComms - using ClimaCoupler - ClimaComms.init(ClimaComms.context()) - include(\"coupler_interface.jl\") - import CalibrateAtmos - coupled_simulation = get_coupler_sim($SLURM_ARRAY_TASK_ID, $iteration, \"$experiment_id\"); - run_forward_model(coupled_simulation); -" diff --git a/calibration/pipeline.jl b/calibration/pipeline.jl deleted file mode 100644 index 63215ace0c..0000000000 --- a/calibration/pipeline.jl +++ /dev/null @@ -1,48 +0,0 @@ -### Generate synthetic truth datasets -@info "Generating synthetic truth data" -using ClimaComms -import ClimaCalibrate -ClimaComms.init(ClimaComms.context()) -import ClimaCoupler -import YAML -using NCDatasets -import JLD2 -using Statistics - -import ClimaCalibrate: get_forward_model - -experiment_dir = joinpath("experiments", "amip_coupled") -COUPLER_OUTPUT_DIR = joinpath(experiment_dir, "truth_simulation") -include("coupler_driver_calibration.jl"); -cs = get_simulation(config_dict); -solve_coupler!(cs); # Integrate the coupled model - -### Process "Observations" -> Store in `testdir` -testdir = "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/calibration/experiments/amip_coupled/truth_simulation/" -wa = NCDataset(joinpath(testdir, "", "wa_inst.nc"))["wa"] -include(joinpath(experiment_dir, "observation_map.jl")) -(; observation, variance) = process_member_data(wa; output_variance = true) -JLD2.save_object(joinpath(experiment_dir, "obs_mean.jld2"), observation) -JLD2.save_object(joinpath(experiment_dir, "obs_noise_cov.jld2"), variance) - -### Run forward model iterations -include("coupler_interface.jl") -experiment_id = "amip_coupled" - -iteration = 1 -format_i = "iteration_$iteration" - -SLURM_ARRAY_TASK_ID = 1 -member = "member_$SLURM_ARRAY_TASK_ID" -output="output/$experiment_id/$format_i/$member/model_log.out" - -experiment_dir = joinpath("experiments", "amip_coupled") -COUPLER_OUTPUT_DIR = joinpath("experiments","$format_i","$member") -(;config_dict) = get_config(CoupledModel(), 1, iteration, experiment_id); -run_forward_model(CoupledModel(), config_dict); -# This outputs in experiments/AMIP/output/amip/target_amip_n1_shortrun - -### Calibrate -ClimaCalibrate.calibrate("amip_coupled") - -### Re-run target simulation diff --git a/experiments/ClimaEarth/Manifest.toml b/experiments/ClimaEarth/Manifest.toml index cc54d7f495..d98b2c089d 100644 --- a/experiments/ClimaEarth/Manifest.toml +++ b/experiments/ClimaEarth/Manifest.toml @@ -32,9 +32,9 @@ version = "0.4.5" [[deps.Accessors]] deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] -git-tree-sha1 = "c0d491ef0b135fd7d63cbc6404286bc633329425" +git-tree-sha1 = "f61b15be1d76846c0ce31d3fcfac5380ae53db6a" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.36" +version = "0.1.37" [deps.Accessors.extensions] AccessorsAxisKeysExt = "AxisKeys" @@ -472,9 +472,9 @@ version = "0.4.0" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2" +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.25.0" +version = "3.26.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -562,9 +562,9 @@ version = "2.4.2" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" +git-tree-sha1 = "d8a9c0b6ac2d9081bf76324b39c78ca3ce4f0c98" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.5" +version = "1.5.6" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] @@ -1050,16 +1050,16 @@ uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" version = "0.26.7" [[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] -git-tree-sha1 = "3e527447a45901ea392fe12120783ad6ec222803" +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "629693584cef594c3f6f99e76e7a7ad17e60e8d5" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.6" +version = "0.73.7" [[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 = "182c478a179b267dd7a741b6f8f4c3e0803795d6" +git-tree-sha1 = "a8863b69c2a0859f2c2c87ebdc4c6712e88bdf0d" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.6+0" +version = "0.73.7+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -2297,6 +2297,24 @@ git-tree-sha1 = "492601870742dcd38f233b23c3ec629628c1d724" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" version = "6.7.1+1" +[[deps.Qt6Declarative_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] +git-tree-sha1 = "e5dd466bf2569fe08c91a2cc29c1003f4797ac3b" +uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" +version = "6.7.1+2" + +[[deps.Qt6ShaderTools_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "1a180aeced866700d4bebc3120ea1451201f16bc" +uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" +version = "6.7.1+1" + +[[deps.Qt6Wayland_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] +git-tree-sha1 = "729927532d48cf79f49070341e1d918a65aba6b0" +uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" +version = "6.7.1+1" + [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" @@ -2466,9 +2484,9 @@ version = "3.45.3+0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "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 = "7a38aa94aaf425ab68b96f373cd036a204eaf04b" +git-tree-sha1 = "ddb59473b85372c4a71b082e6862503e550fd97c" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.43.0" +version = "2.44.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2556,9 +2574,9 @@ version = "1.1.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DiffResults", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "58b144f34e44252b2de0acb5a9dbbb7ea5cd75d7" +git-tree-sha1 = "03c21a4c373c7c3aa77611430068badaa073d740" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "1.10.1" +version = "1.11.0" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" @@ -2857,9 +2875,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.24" [[deps.TranscodingStreams]] -git-tree-sha1 = "60df3f8126263c0d6b357b9a1017bb94f53e3582" +git-tree-sha1 = "96612ac5365777520c3c5396314c8cf7408f436a" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.11.0" +version = "0.11.1" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -3254,9 +3272,9 @@ version = "1.10.3+0" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] -git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.7+1" +version = "1.3.7+2" [[deps.libzip_jll]] deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] diff --git a/experiments/ClimaEarth/run_moist_held_suarez.jl b/experiments/ClimaEarth/run_moist_held_suarez.jl index cb0f830e9d..ea6f716370 100644 --- a/experiments/ClimaEarth/run_moist_held_suarez.jl +++ b/experiments/ClimaEarth/run_moist_held_suarez.jl @@ -354,4 +354,4 @@ function solve_coupler!(cs) end ## run the coupled simulation -solve_coupler!(cs); +#solve_coupler!(cs); diff --git a/perf/Manifest.toml b/perf/Manifest.toml index 37615619ae..28b401a3fc 100644 --- a/perf/Manifest.toml +++ b/perf/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.10.4" manifest_format = "2.0" -project_hash = "302422306467d2326750e939162edbd82fdbb61b" +project_hash = "c9f4bf3697b7ea6a30d48bb382aa6b79e19cbe91" [[deps.ADTypes]] git-tree-sha1 = "aa4d425271a914d8c4af6ad9fccb6eb3aec662c7" @@ -32,9 +32,9 @@ version = "0.4.5" [[deps.Accessors]] deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] -git-tree-sha1 = "c0d491ef0b135fd7d63cbc6404286bc633329425" +git-tree-sha1 = "f61b15be1d76846c0ce31d3fcfac5380ae53db6a" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.36" +version = "0.1.37" [deps.Accessors.extensions] AccessorsAxisKeysExt = "AxisKeys" @@ -392,9 +392,9 @@ version = "0.7.5" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2" +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.25.0" +version = "3.26.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -482,9 +482,9 @@ version = "2.4.2" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] -git-tree-sha1 = "260fd2400ed2dab602a7c15cf10c1933c59930a2" +git-tree-sha1 = "d8a9c0b6ac2d9081bf76324b39c78ca3ce4f0c98" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.5" +version = "1.5.6" weakdeps = ["IntervalSets", "StaticArrays"] [deps.ConstructionBase.extensions] @@ -888,16 +888,16 @@ uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" version = "0.26.7" [[deps.GR]] -deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] -git-tree-sha1 = "3e527447a45901ea392fe12120783ad6ec222803" +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] +git-tree-sha1 = "629693584cef594c3f6f99e76e7a7ad17e60e8d5" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.6" +version = "0.73.7" [[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 = "182c478a179b267dd7a741b6f8f4c3e0803795d6" +git-tree-sha1 = "a8863b69c2a0859f2c2c87ebdc4c6712e88bdf0d" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.6+0" +version = "0.73.7+0" [[deps.GaussQuadrature]] deps = ["SpecialFunctions"] @@ -1855,6 +1855,24 @@ git-tree-sha1 = "492601870742dcd38f233b23c3ec629628c1d724" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" version = "6.7.1+1" +[[deps.Qt6Declarative_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] +git-tree-sha1 = "e5dd466bf2569fe08c91a2cc29c1003f4797ac3b" +uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" +version = "6.7.1+2" + +[[deps.Qt6ShaderTools_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "1a180aeced866700d4bebc3120ea1451201f16bc" +uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" +version = "6.7.1+1" + +[[deps.Qt6Wayland_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] +git-tree-sha1 = "729927532d48cf79f49070341e1d918a65aba6b0" +uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" +version = "6.7.1+1" + [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" @@ -1990,9 +2008,9 @@ version = "0.6.43" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "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 = "7a38aa94aaf425ab68b96f373cd036a204eaf04b" +git-tree-sha1 = "ddb59473b85372c4a71b082e6862503e550fd97c" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.43.0" +version = "2.44.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2063,9 +2081,9 @@ version = "1.1.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DiffResults", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "58b144f34e44252b2de0acb5a9dbbb7ea5cd75d7" +git-tree-sha1 = "03c21a4c373c7c3aa77611430068badaa073d740" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "1.10.1" +version = "1.11.0" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" @@ -2703,9 +2721,9 @@ version = "1.6.43+1" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] -git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.7+1" +version = "1.3.7+2" [[deps.libzip_jll]] deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] From 4920dcc17f45cc4c1d3857e4e0da63ff43ff30bf Mon Sep 17 00:00:00 2001 From: akshaysridhar Date: Tue, 23 Jul 2024 16:37:20 -0700 Subject: [PATCH 23/23] new file: calibration/experiments/coupled_held_suarez/Artifacts.toml new file: calibration/experiments/coupled_held_suarez/forward_model.jl new file: calibration/experiments/coupled_held_suarez/model_interface.jl new file: calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/.yml new file: calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/_parameters.toml new file: calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_active new file: calibration/experiments/coupled_held_suarez/observation_map.jl new file: calibration/experiments/coupled_held_suarez/pipeline.sbatch new file: calibration/experiments/coupled_held_suarez/postprocessing.jl new file: calibration/experiments/coupled_held_suarez/prior.toml --- .../coupled_held_suarez/Artifacts.toml | 6 + .../coupled_held_suarez/forward_model.jl | 352 +++++++++++ .../coupled_held_suarez/model_interface.jl | 32 + .../clima_atmos/output_0000/.yml | 125 ++++ .../clima_atmos/output_0000/_parameters.toml | 581 ++++++++++++++++++ .../clima_atmos/output_active | 1 + .../coupled_held_suarez/observation_map.jl | 34 + .../coupled_held_suarez/pipeline.sbatch | 33 + .../coupled_held_suarez/postprocessing.jl | 91 +++ .../coupled_held_suarez/prior.toml | 4 + 10 files changed, 1259 insertions(+) create mode 100644 calibration/experiments/coupled_held_suarez/Artifacts.toml create mode 100644 calibration/experiments/coupled_held_suarez/forward_model.jl create mode 100644 calibration/experiments/coupled_held_suarez/model_interface.jl create mode 100644 calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/.yml create mode 100644 calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/_parameters.toml create mode 120000 calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_active create mode 100644 calibration/experiments/coupled_held_suarez/observation_map.jl create mode 100644 calibration/experiments/coupled_held_suarez/pipeline.sbatch create mode 100644 calibration/experiments/coupled_held_suarez/postprocessing.jl create mode 100644 calibration/experiments/coupled_held_suarez/prior.toml diff --git a/calibration/experiments/coupled_held_suarez/Artifacts.toml b/calibration/experiments/coupled_held_suarez/Artifacts.toml new file mode 100644 index 0000000000..c57306fc7e --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/Artifacts.toml @@ -0,0 +1,6 @@ +[atmos_held_suarez_obs] +git-tree-sha1 = "d93ff2958e12d6bba6e8343bfa73554390df52e4" + + [[atmos_held_suarez_obs.download]] + sha256 = "f5d63df2bab849632bd2fcd5a4e3165465d1898e1a5fbee6e5fe07f5b3e57fc3" + url = "https://caltech.box.com/shared/static/sbn6afsgn2xzxi5n0ffs928otstshjvi.gz" diff --git a/calibration/experiments/coupled_held_suarez/forward_model.jl b/calibration/experiments/coupled_held_suarez/forward_model.jl new file mode 100644 index 0000000000..c5bea8bc8b --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/forward_model.jl @@ -0,0 +1,352 @@ +# # Moist Held-Suarez +## This script runs an idealized global circulation model, as in Thatcher and Jablonowski (2016). +## As in the dry Held-Suarez case, this case implements a Newtonian cooling scheme for radiation +## (though with modified parameters), and a Rayleigh damping scheme for dissipation. +## Additionally to the dry case, the model includes moisture with a 0-moment microphysics scheme, +## a prescribed ocean surface and a turbulent surface flux scheme. + +redirect_stderr(IOContext(stderr, :stacktrace_types_limited => Ref(false))) + +#= +## Configuration initialization +=# + +#= +### Package Import +=# + +## standard packages +import Dates +import YAML + +# ## ClimaESM packages +import ClimaComms +@static pkgversion(ClimaComms) >= v"0.6" && ClimaComms.@import_required_backends +import ClimaAtmos as CA +import ClimaCore as CC + +# ## Coupler specific imports +import ClimaCoupler +import ClimaCoupler: + BCReader, + ConservationChecker, + Checkpointer, + Diagnostics, + FieldExchanger, + FluxCalculator, + Interfacer, + Regridder, + TimeManager, + Utilities + +pkg_dir = pkgdir(ClimaCoupler) + +#= +### Helper Functions +=# + +## helpers for component models +include("../../../experiments/ClimaEarth/components/atmosphere/climaatmos.jl") +## helpers for user-specified IO +include("../../../experiments/ClimaEarth/user_io/user_diagnostics.jl") +include("../../../experiments/ClimaEarth/user_io/user_logging.jl") +include("../../../experiments/ClimaEarth/user_io/io_helpers.jl") + +#= +### Setup simulation parameters +Here we follow Thatcher and Jablonowski (2016). +=# + +## run names +job_id = "moist_held_suarez" +coupler_output_dir = "$job_id" +const FT = Float64 +restart_dir = "unspecified" +restart_t = Int(0) + +## coupler simulation specific configuration +Δt_cpl = Float64(400) +t_end = "1000days" +tspan = (Float64(0.0), Float64(time_to_seconds(t_end))) +start_date = "19790301" +hourly_checkpoint = true + +## namelist +config_dict = Dict( + # general + "FLOAT_TYPE" => string(FT), + # file paths + "atmos_config_file" => nothing, + "coupler_toml_file" => nothing, + "coupler_output_dir" => coupler_output_dir, + "mode_name" => "", + "job_id" => job_id, + "atmos_config_repo" => "ClimaAtmos", + # timestepping + "dt" => "$(Δt_cpl)secs", + "dt_save_to_sol" => "1days", + "t_end" => t_end, + "start_date" => "19790301", + # domain + "h_elem" => 4, + "z_elem" => 10, + "z_max" => 30000.0, # semi-high top + "dz_bottom" => 300.0, + "nh_poly" => 4, + # output + "dt_save_to_sol" => "1days", + # numerics + "apply_limiter" => false, + "viscous_sponge" => false, + "rayleigh_sponge" => false, + "vert_diff" => "true", + "hyperdiff" => "CAM_SE", + # run + "surface_setup" => "PrescribedSurface", + # diagnostic (nested with period and short_name) + "output_default_diagnostics" => false, + "diagnostics" => [ + Dict( + "short_name" => + ["mse", "lr", "mass_strf", "stab", "vt", "egr", "ua", "va", "wa", "ta", "rhoa", "pfull"], + "period" => "6hours", + "reduction" => "inst", + ), + ], + # held-suarez specific + "forcing" => "held_suarez", # Newtonian cooling already modified for moisture internally in Atmos + "precip_model" => "0M", + "moist" => "equil", + "prognostic_surface" => "PrescribedSurfaceTemperature", + "turb_flux_partition" => "CombinedStateFluxesMOST", +) +# TODO: may need to switch to Bulk fluxes + +## merge dictionaries of command line arguments, coupler dictionary and component model dictionaries +atmos_config_dict, config_dict = get_atmos_config_dict(config_dict, job_id) +atmos_config_object = CA.AtmosConfig(atmos_config_dict) + +#= +## Setup Communication Context +=# + +comms_ctx = Utilities.get_comms_context(Dict("device" => "auto")) +ClimaComms.init(comms_ctx) + +#= +### I/O Directory Setup +=# + +dir_paths = setup_output_dirs(output_dir = coupler_output_dir, comms_ctx = comms_ctx) +ClimaComms.iamroot(comms_ctx) ? @info(config_dict) : nothing + +#= +## Component Model Initialization +=# + +#= +### Atmosphere +This uses the `ClimaAtmos.jl` model, with parameterization options specified in the `atmos_config_object` dictionary. +=# + +## init atmos model component +atmos_sim = atmos_init(atmos_config_object); +thermo_params = get_thermo_params(atmos_sim) + +#= +### Boundary Space +=# + +## init a 2D boundary space at the surface +boundary_space = CC.Spaces.horizontal_space(atmos_sim.domain.face_space) + +#= +### Surface Model: Prescribed Ocean +=# + +# could overload surface_temperature in atmos as well, but this is more transparent +## idealized SST profile +sst_tj16(ϕ::FT; Δϕ² = FT(26)^2, ΔT = FT(29), T_min = FT(271)) = T_min + ΔT * exp(-ϕ^2 / 2Δϕ²) +ϕ = CC.Fields.coordinate_field(boundary_space).lat + +ocean_sim = Interfacer.SurfaceStub((; + T_sfc = sst_tj16.(ϕ), + ρ_sfc = CC.Fields.zeros(boundary_space), + z0m = FT(5e-4), + z0b = FT(5e-4), + beta = FT(1), + α_direct = CC.Fields.ones(boundary_space) .* FT(1), + α_diffuse = CC.Fields.ones(boundary_space) .* FT(1), + area_fraction = CC.Fields.ones(boundary_space), + phase = TD.Liquid(), + thermo_params = thermo_params, +)) + +#= +## Coupler Initialization +=# + +## coupler exchange fields +coupler_field_names = ( + :T_S, + :z0m_S, + :z0b_S, + :ρ_sfc, + :q_sfc, + :surface_direct_albedo, + :surface_diffuse_albedo, + :beta, + :F_turb_energy, + :F_turb_moisture, + :F_turb_ρτxz, + :F_turb_ρτyz, + :F_radiative, + :P_liq, + :P_snow, + :radiative_energy_flux_toa, + :P_net, + :temp1, + :temp2, +) +coupler_fields = + NamedTuple{coupler_field_names}(ntuple(i -> CC.Fields.zeros(boundary_space), length(coupler_field_names))) +Utilities.show_memory_usage(comms_ctx) + +## model simulations +model_sims = (atmos_sim = atmos_sim, ocean_sim = ocean_sim); + +## dates +date0 = date = Dates.DateTime(start_date, Dates.dateformat"yyyymmdd") +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false]) + +#= +## Initialize Callbacks +=# + +checkpoint_cb = TimeManager.HourlyCallback( + dt = FT(480), + func = checkpoint_sims, + ref_date = [dates.date[1]], + active = hourly_checkpoint, +) +update_firstdayofmonth!_cb = TimeManager.MonthlyCallback( + dt = FT(1), + func = TimeManager.update_firstdayofmonth!, + ref_date = [dates.date1[1]], + active = true, +) +callbacks = (; checkpoint = checkpoint_cb, update_firstdayofmonth! = update_firstdayofmonth!_cb) + +#= +## Initialize turbulent fluxes +=# +turbulent_fluxes = nothing +if config_dict["turb_flux_partition"] == "CombinedStateFluxesMOST" + turbulent_fluxes = FluxCalculator.CombinedStateFluxesMOST() +else + error("turb_flux_partition must be CombinedStateFluxesMOST") +end + +#= +## Initialize Coupled Simulation +=# + +cs = Interfacer.CoupledSimulation{FT}( + comms_ctx, + dates, + boundary_space, + coupler_fields, + config_dict, + nothing, # conservation checks + [tspan[1], tspan[2]], + atmos_sim.integrator.t, + Δt_cpl, + (; land = zeros(boundary_space), ocean = ones(boundary_space), ice = zeros(boundary_space)), + model_sims, + (;), # mode_specifics + (), # coupler diagnostics + callbacks, + dir_paths, + turbulent_fluxes, + thermo_params, +); + +#= +## Restart component model states if specified in the config_dict +=# + +if restart_dir !== "unspecified" + for sim in cs.model_sims + if Checkpointer.get_model_prog_state(sim) !== nothing + Checkpointer.restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir) + end + end +end + +#= +## Initialize Component Model Exchange +=# + +# 1.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. +FieldExchanger.import_combined_surface_fields!(cs.fields, cs.model_sims, cs.turbulent_fluxes) +FieldExchanger.import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) +FieldExchanger.update_model_sims!(cs.model_sims, cs.fields, cs.turbulent_fluxes) + +# 2.surface vapor specific humidity (`q_sfc`): step surface models with the new surface density to calculate their respective `q_sfc` internally +Interfacer.step!(ocean_sim, Δt_cpl) + +# 3.turbulent fluxes +## import the new surface properties into the coupler (note the atmos state was also imported in step 3.) +FieldExchanger.import_combined_surface_fields!(cs.fields, cs.model_sims, 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 +FluxCalculator.combined_turbulent_fluxes!(cs.model_sims, cs.fields, cs.turbulent_fluxes) # this updates the atmos thermo state, sfc_ts + +# 4.reinitialize models + radiative flux: prognostic states and time are set to their initial conditions. +FieldExchanger.reinit_model_sims!(cs.model_sims) + +# 5.update all fluxes: coupler re-imports updated atmos fluxes +FieldExchanger.import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) +FieldExchanger.update_model_sims!(cs.model_sims, cs.fields, cs.turbulent_fluxes) + +#= +## Coupling Loop +=# + +function solve_coupler!(cs) + (; model_sims, Δt_cpl, tspan, comms_ctx) = cs + + ClimaComms.iamroot(comms_ctx) && @info("Starting coupling loop") + ## step in time + for t in ((tspan[begin] + Δt_cpl):Δt_cpl:tspan[end]) + + cs.dates.date[1] = TimeManager.current_date(cs, t) + + ## print date on the first of month + if cs.dates.date[1] >= cs.dates.date1[1] + ClimaComms.iamroot(comms_ctx) && @show(cs.dates.date[1]) + end + ClimaComms.barrier(comms_ctx) + + ## run component models sequentially for one coupling timestep (Δt_cpl) + FieldExchanger.update_model_sims!(cs.model_sims, cs.fields, cs.turbulent_fluxes) + + ## step sims + FieldExchanger.step_model_sims!(cs.model_sims, t) + + ## exchange combined fields and (if specified) calculate fluxes using combined states + FieldExchanger.import_combined_surface_fields!(cs.fields, cs.model_sims, cs.turbulent_fluxes) # i.e. T_sfc, surface_albedo, z0, beta + FluxCalculator.combined_turbulent_fluxes!(cs.model_sims, cs.fields, cs.turbulent_fluxes) + + FieldExchanger.import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, cs.turbulent_fluxes) + + ## callback to update the fist day of month + TimeManager.trigger_callback!(cs, cs.callbacks.update_firstdayofmonth!) + + ## callback to checkpoint model state + TimeManager.trigger_callback!(cs, cs.callbacks.checkpoint) + + end + + return nothing +end diff --git a/calibration/experiments/coupled_held_suarez/model_interface.jl b/calibration/experiments/coupled_held_suarez/model_interface.jl new file mode 100644 index 0000000000..0d1de2f3c7 --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/model_interface.jl @@ -0,0 +1,32 @@ +import ClimaCalibrate: set_up_forward_model, run_forward_model, path_to_ensemble_member, ExperimentConfig +import ClimaComms +@static pkgversion(ClimaComms) >= v"0.6" && ClimaComms.@import_required_backends +using ClimaUtilities.ClimaArtifacts +import YAML + +using ClimaCoupler + +""" + set_up_forward_model(member, iteration, experiment_dir::AbstractString) + +Return CoupledSimulation object for the given member and iteration. + +Turns off default diagnostics and sets the TOML parameter file to the member's path. +""" +function set_up_forward_model(member, iteration, experiment_dir::AbstractString) + include(joinpath(experiment_dir,"forward_model.jl")); + output_dir = cs.parsed_args["coupler_output_dir"] + cs.parsed_args["coupler_output_dir"] = joinpath(experiment_dir,"output", output_dir); + return cs +end + +""" + run_forward_model(coupled_simulation) + +Run the coupled model with the given a coupled simulation object. +Currently only has basic error handling. +""" +function run_forward_model(cs) + sol_res = solve_coupler!(cs); + return sol_res +end diff --git a/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/.yml b/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/.yml new file mode 100644 index 0000000000..cadd6349ad --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/.yml @@ -0,0 +1,125 @@ +sleve_eta: 0.7 +surface_thermo_state_type: "GCMSurfaceThermoState" +external_forcing_file: ~ +topo_smoothing: false +hyperdiff: "CAM_SE" +dt: "400.0secs" +output_dir: "moist_held_suarez/moist_held_suarez/clima_atmos" +prognostic_tke: false +override_τ_precip: true +use_newton_rtol: false +netcdf_output_at_levels: true +output_dir_style: "ActiveLink" +external_forcing: ~ +device: "auto" +t_end: "1000days" +dz_top: 5000.0 +y_elem: 6 +z_stretch: true +bubble: true +ode_algo: "SSPKnoth" +max_newton_iters_ode: 1 +start_date: "19790301" +forcing: "held_suarez" +edmfx_nh_pressure: false +scalar_hyperdiffusion_coefficient: 1.5 +prognostic_surface: "PrescribedSurfaceTemperature" +test_dycore_consistency: false +add_isothermal_boundary_layer: true +restart_file: ~ +rad: ~ +edmf_coriolis: ~ +moist: "equil" +rayleigh_sponge: false +initial_condition: "DecayingProfile" +cloud_model: "quadrature" +krylov_rtol: 0.1 +divergence_damping_factor: 1.0 +edmfx_entr_model: ~ +eisenstat_walker_forcing_alpha: 2.0 +dt_cloud_fraction: "3hours" +smoothing_order: 3 +idealized_h2o: false +surface_setup: "PrescribedSurface" +perturb_initstate: true +implicit_sgs_advection: false +jvp_step_adjustment: 1.0 +discrete_hydrostatic_balance: false +insolation: "idealized" +log_progress: true +dz_bottom: 300.0 +h_elem: 4 +dt_save_state_to_disk: "Inf" +netcdf_interpolation_num_points: ~ +advection_test: false +z_max: 30000.0 +apply_limiter: false +topography: "NoWarp" +aerosol_radiation: false +reference_job_id: ~ +precip_model: "0M" +vorticity_hyperdiffusion_coefficient: 1.5 +perf_summary: false +call_cloud_diagnostics_per_stage: false +viscous_sponge: false +surface_temperature: "ZonallySymmetric" +edmfx_filter: false +diagnostics: + - short_name: + - "mse" + - "lr" + - "mass_strf" + - "stab" + - "vt" + - "egr" + - "ua" + - "va" + - "wa" + - "ta" + - "rhoa" + - "pfull" + period: "6hours" + reduction: "inst" +orographic_gravity_wave: ~ +dt_rad: "6hours" +approximate_linear_solve_iters: 1 +edmfx_upwinding: "none" +tracer_upwinding: "none" +enable_diagnostics: true +nh_poly: 4 +edmfx_sgs_diffusive_flux: false +y_max: 300000.0 +non_orographic_gravity_wave: false +albedo_model: "ConstantAlbedo" +config: "sphere" +energy_upwinding: "none" +FLOAT_TYPE: "Float64" +deep_atmosphere: false +split_ode: true +updraft_number: 1 +regression_test: false +check_conservation: false +ls_adv: ~ +prescribed_aerosols: [] +output_default_diagnostics: false +implicit_diffusion: false +x_max: 300000.0 +edmfx_sgs_mass_flux: false +z_elem: 10 +newton_rtol: 1.0e-5 +edmfx_sgsflux_upwinding: "none" +turbconv: ~ +x_elem: 6 +idealized_clouds: false +vert_diff: "true" +check_nan_every: 1024 +use_krylov_method: false +subsidence: ~ +sleve_s: 10.0 +use_dynamic_krylov_rtol: false +toml: + - "/Users/akshaysridhar/Research/Codes/ClimaCoupler.jl/toml/default_coarse.toml" +mesh_warp_type: "Linear" +edmfx_detr_model: ~ +zero_tendency: ~ +dt_save_to_sol: "1days" diff --git a/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/_parameters.toml b/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/_parameters.toml new file mode 100644 index 0000000000..3580b40d09 --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_0000/_parameters.toml @@ -0,0 +1,581 @@ +[optics_lookup_temperature_min] +used_in = ["ClimaAtmos"] +value = 160 +type = "float" +description = "Miminum temperature in the lookup table for optical properties in RRTMGP" + +[f_plane_coriolis_frequency] +used_in = ["ClimaAtmos"] +value = 0 +type = "float" + +[orbit_eccentricity_at_epoch] +used_in = ["Insolation"] +value = 0.016708634 +type = "float" + +[potential_temperature_reference_pressure] +used_in = ["Thermodynamics"] +value = 100000 +type = "float" +description = "Reference pressure used in potential temperature definition" + +[prandtl_number_0_businger] +used_in = ["SurfaceFluxes"] +value = 0.74 +type = "float" +description = "Pr_0 for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[mixing_length_tke_surf_scale] +used_in = ["ClimaAtmos"] +value = 3.75 +type = "float" +description = "Ratio of turbulence kinetic energy to squared friction velocity in the surface layer for the EDMF mixing length closure; denoted κ_*². See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1. Note: the square root, i.e. κ_*, is listed in the reference." + +[temperature_triple_point] +used_in = ["Thermodynamics"] +value = 273.16 +type = "float" + +[length_orbit_semi_major] +used_in = ["Insolation"] +value = 149597870000 +type = "float" +description = "derived: 1 * [astronomical_unit]" + +[SST_wavelength] +used_in = ["ClimaAtmos"] +value = 6000000 +type = "float" +description = "Wavelength of the sea surface temperature sinusoid for RCEMIPII box models. See Wing et al. (2018) [https://gmd.copernicus.org/articles/11/793/2018/]" + +[isobaric_specific_heat_ice] +used_in = ["Thermodynamics"] +value = 2100 +type = "float" + +[mixing_length_smin_rm] +used_in = ["ClimaAtmos"] +value = 1.5 +type = "float" +description = "Upper ratio limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." + +[C_E] +used_in = ["ClimaAtmos"] +value = 0.044 +type = "float" +description = "vertical diffusion coefficient" + +[latent_heat_sublimation_at_reference] +used_in = ["Thermodynamics"] +value = 2834400 +type = "float" + +[day] +used_in = ["Insolation"] +value = 86400 +type = "float" + +[isobaric_specific_heat_vapor] +used_in = ["Thermodynamics"] +value = 1859 +type = "float" + +[EDMF_surface_area] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Combined updraft surface area fraction; used to compute boundary conditions for prognostic updraft variables. The surface area for each updraft is `surface_area / N_updrafts`. See Cohen et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 2." + +[c_smag] +used_in = ["ClimaAtmos"] +value = 0.2 +type = "float" +description = "Smagorinsky coefficient" + +[mixing_length_smin_ub] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Lower limit for smooth minimum function in mixing length closure. See Lopez-Gomez et al. (2020) Eq 40 [https://doi.org/10.1029/2020MS002161]." + +[molar_mass_water] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.01801528 +type = "float" + +[most_stability_exponent_businger] +used_in = ["SurfaceFluxes"] +value = 4.42 +type = "float" +description = "γ for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[temperature_saturation_adjustment_min] +used_in = ["Thermodynamics"] +value = 1 +type = "float" + +[SST_wavelength_latitude] +used_in = ["ClimaAtmos"] +value = 54 +type = "float" +description = "Wavelength of the sea surface temperature sinusoid for RCEMIPII sphere models. See Wing et al. (2018) [https://gmd.copernicus.org/articles/11/793/2018/]" + +[min_area_limiter_power] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Constant coefficient for the exponent in the minimum area limiter term in entrainment. Parameter not described in the literature." + +[pressure_normalmode_drag_coeff] +used_in = ["ClimaAtmos"] +value = 10.0 +type = "float" +description = "Updraft pressure drag coefficent in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." + +[held_suarez_T_equator_dry] +used_in = ["ClimaAtmos"] +value = 315 +type = "float" +description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[mixing_length_Prandtl_number_0] +used_in = ["ClimaAtmos"] +value = 0.74 +type = "float" +description = "Turbulent Prandtl number in neutral conditions; denoted Pr_{t,0}. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1 and Eq 36." + +[longitude_perihelion_at_epoch] +used_in = ["Insolation"] +value = 4.938188299449 +type = "float" +description = "(282.937348 degrees) in radians" + +[stefan_boltzmann_constant] +used_in = ["RRTMGP"] +value = 5.67e-8 +type = "float" + +[temperature_min_at_reference] +used_in = ["Thermodynamics"] +value = 220 +type = "float" + +[entropy_water_vapor] +used_in = ["Thermodynamics"] +value = 10513.6 +type = "float" + +[equator_pole_temperature_gradient_wet] +used_in = ["ClimaAtmos"] +value = 65 +type = "float" +description = "Temperature gradient between equator and pole for moist adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[held_suarez_T_equator_wet] +used_in = ["ClimaAtmos"] +value = 294 +type = "float" +description = "Equator temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[entropy_dry_air] +used_in = ["Thermodynamics"] +value = 6864.8 +type = "float" + +[zd_rayleigh] +used_in = ["ClimaAtmos"] +value = 15000.0 +type = "float" +description = "rayleigh sponge height" + +[coefficient_a_m_businger] +used_in = ["SurfaceFluxes"] +value = 4.7 +type = "float" +description = "a_m for Businger momentum universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[temperature_saturation_adjustment_max] +used_in = ["Thermodynamics"] +value = 1000 +type = "float" + +[density_ice_water] +used_in = ["CloudMicrophysics"] +value = 916.7 +type = "float" + +[mean_anomalistic_at_epoch] +used_in = ["Insolation"] +value = 6.24006014121 +type = "float" +description = "(357.52911 degrees) in radians" + +[mixing_length_diss_coeff] +used_in = ["ClimaAtmos"] +value = 0.22 +type = "float" +description = "Turbulence kinetic energy dissipation coefficient for the EDMF mixing length closure; denoted c_d. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[potential_temp_vertical_gradient] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Potential temperature gradient with height. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[EDMF_max_area] +used_in = ["ClimaAtmos"] +value = 0.9 +type = "float" +description = "Maximum area fraction per updraft. Parameter not described in the literature." + +[entr_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "TODO: Remove this. Constant entrainment coefficient used for testing EDMF" + +[mixing_length_Ri_crit] +used_in = ["ClimaAtmos"] +value = 0.25 +type = "float" +description = "Critical gradient Richardson number. It is an upper limit to the gradient Richardson number . See Li (2019) [https://doi.org/10.1016/j.atmosres.2018.09.015], Section 6.2 for details." + +[temperature_saturation_adjustment_init_min] +used_in = ["Thermodynamics"] +value = 150 +type = "float" + +[optics_lookup_temperature_max] +used_in = ["ClimaAtmos"] +value = 355 +type = "float" +description = "Maximum temperature in the lookup table for optical properties in RRTMGP" + +[gas_constant] +used_in = ["Thermodynamics", "RRTMGP"] +value = 8.3144598 +type = "float" + +[orbit_obliquity_at_epoch] +used_in = ["Insolation"] +value = 0.408979125113246 +type = "float" +description = "(23.432777778 degrees) in radians" + +[drag_layer_vertical_extent] +used_in = ["ClimaAtmos"] +value = 0.7 +type = "float" +description = "Vertical extend of drag layer. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[temperature_mean_at_reference] +used_in = ["Thermodynamics"] +value = 290 +type = "float" + +[detr_inv_tau] +used_in = ["ClimaAtmos"] +value = 900 +type = "float" +description = "Detrainment timescale" + +[entr_inv_tau] +used_in = ["ClimaAtmos"] +value = 900 +type = "float" +description = "Entrainment timescale" + +[temperature_homogenous_nucleation] +used_in = ["Thermodynamics"] +value = 233 +type = "float" + +[mixing_length_static_stab_coeff] +used_in = ["ClimaAtmos"] +value = 0.4 +type = "float" +description = "Static stability coefficient for the EDMF mixing length closure; denoted c_b. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[pressure_normalmode_buoy_coeff1] +used_in = ["ClimaAtmos"] +value = 0.12 +type = "float" +description = "Pressure buoyancy coefficient (encapsulating virtual mass loading effect) in perturbation pressure closure. See He et al. 2022 Eq 34 [https://doi.org/10.1002/essoar.10505084.2]." + +[held_suarez_minimum_temperature] +used_in = ["ClimaAtmos"] +value = 200 +type = "float" +description = "Minimum temperature. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[angular_velocity_planet_rotation] +used_in = ["ClimaAtmos"] +value = 7.2921159e-5 +type = "float" + +[min_area_limiter_scale] +used_in = ["ClimaAtmos"] +value = 0.001 +type = "float" +description = "Constant coefficient that scales the minimum area limiter term in entrainment. Parameter not described in the literature." + +[entropy_reference_temperature] +used_in = ["Thermodynamics"] +value = 298.15 +type = "float" + +[most_stability_parameter_businger] +used_in = ["SurfaceFluxes"] +value = 2.5 +type = "float" +description = "ζ_a for Businger universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[molar_mass_dry_air] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.02897 +type = "float" + +[zd_viscous] +used_in = ["ClimaAtmos"] +value = 15000.0 +type = "float" +description = "viscous sponge height" + +[planet_radius] +used_in = ["ClimaAtmos"] +value = 6371000 +type = "float" + +[water_refractive_index] +used_in = ["ClimaAtmos"] +value = 1.34 +type = "float" +description = "The relative refractive index of water and air for broadband ocean surface albedo calculation. See Jin et al. (2011) [https://opg.optica.org/oe/fulltext.cfm?uri=oe-19-27-26429&id=225797]" + +[adiabatic_exponent_dry_air] +used_in = ["Thermodynamics", "RRTMGP"] +value = 0.28571428571 +type = "float" +description = "(2/7)" + +[epoch_time] +used_in = ["Insolation"] +value = 211813488000 +type = "float" +description = "derived: 2451545.0 * [day]" + +[detr_buoy_coeff] +used_in = ["ClimaAtmos"] +value = 0.12 +type = "float" +description = "Coefficient for the b/w^2 term in the detrainment closure. See Tan et al. (2018) [https://doi.org/10.1002/2017MS001162], Eq 27." + +[specific_humidity_precipitation_threshold] +used_in = ["CloudMicrophysics"] +value = 5.0e-6 +type = "float" +description = "0-moment microphysics precipitation formation threshold as specific humidity [-]" + +[density_liquid_water] +used_in = ["CloudMicrophysics"] +value = 1000 +type = "float" + +[supersaturation_precipitation_threshold] +used_in = ["CloudMicrophysics"] +value = 0.02 +type = "float" +description = "0-moment microphysics precipitation formation threshold as supersaturation [-]" + +[detr_massflux_vertdiv_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "Coefficient for the mass flux vertical divergence term in the detrainment closure. Parameter not described in the literature." + +[coefficient_b_m_businger] +used_in = ["SurfaceFluxes"] +value = 15.0 +type = "float" +description = "b_m for Businger momentum universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[precipitation_timescale] +used_in = ["CloudMicrophysics"] +value = 400.0 +type = "float" +description = "0-moment microphysics precipitation formation timescale [s]" + +[C_H] +used_in = ["ClimaAtmos"] +value = 0.0044 +type = "float" +description = "bulk transfer coefficient" + +[EDMF_min_area] +used_in = ["ClimaAtmos"] +value = 1.0e-5 +type = "float" +description = "Minimum area fraction per updraft. Parameter not described in the literature." + +[isobaric_specific_heat_liquid] +used_in = ["Thermodynamics"] +value = 4181 +type = "float" + +[latent_heat_vaporization_at_reference] +used_in = ["Thermodynamics"] +value = 2500800 +type = "float" + +[detr_vertdiv_coeff] +used_in = ["ClimaAtmos"] +value = 1 +type = "float" +description = "Coefficient for the vertical divergence term in the detrainment closure. Parameter not described in the literature." + +[SST_delta] +used_in = ["ClimaAtmos"] +value = 1.25 +type = "float" +description = "Twice the amplitude of sea surface temperarture sinusoid for RCEMIPII surface conditions. See Wing et al. (2018) [https://gmd.copernicus.org/articles/11/793/2018/]" + +[gravitational_acceleration] +used_in = ["Thermodynamics", "RRTMGP"] +value = 9.81 +type = "float" + +[equator_pole_temperature_gradient_dry] +used_in = ["ClimaAtmos"] +value = 60 +type = "float" +description = "Temperature gradient between equator and pole for dry adiabatic atmosphere. See Held and Suarez (1994) https://doi.org/10.1175/1520-0477(1994)075%3C1825:APFTIO%3E2.0.CO;2" + +[ocean_surface_albedo] +used_in = ["ClimaAtmos"] +value = 0.38 +type = "float" +description = "Ocean surface albedo for idealized simulations. See O'Gorman and Schneider (2008) [https://journals.ametsoc.org/view/journals/clim/21/15/2007jcli2065.1.xml]" + +[coefficient_b_h_businger] +used_in = ["SurfaceFluxes"] +value = 9.0 +type = "float" +description = "b_h for Businger heat universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[coefficient_a_h_businger] +used_in = ["SurfaceFluxes"] +value = 4.7 +type = "float" +description = "a_h for Businger heat universal functions. From Businger et al, 1971. DOI: 10.1175/1520-0469(1971)028<0181:FPRITA>2.0.CO;2." + +[pow_icenuc] +used_in = ["Thermodynamics"] +value = 1 +type = "float" + +[max_area_limiter_scale] +used_in = ["ClimaAtmos"] +value = 0.1 +type = "float" +description = "Constant coefficient that scales the maximum area limiter term in detrainment. Parameter not described in the literature." + +[avogadro_constant] +used_in = ["RRTMGP"] +value = 6.02214076e23 +type = "float" + +[pressure_triple_point] +used_in = ["Thermodynamics"] +value = 611.657 +type = "float" + +[thermodynamics_temperature_reference] +used_in = ["Thermodynamics"] +value = 273.16 +type = "float" + +[temperature_water_freeze] +used_in = ["Thermodynamics"] +value = 273.15 +type = "float" + +[total_solar_irradiance] +used_in = ["Insolation"] +value = 1362 +type = "float" + +[SST_mean] +used_in = ["ClimaAtmos"] +value = 300 +type = "float" +description = "Mean sea surface temperature for RCEMIPII surface conditions. See Wing et al. (2018) [https://gmd.copernicus.org/articles/11/793/2018/]" + +[detr_coeff] +used_in = ["ClimaAtmos"] +value = 0.001 +type = "float" +description = "TODO: Remove this. Constant detrainment coefficient used for testing EDMF" + +[minimum_updraft_top] +used_in = ["ClimaAtmos"] +value = 500.0 +type = "float" +description = "Minimum updraft height limiter to avoid zero division in pressure drag and entrainment/detrainment closures. Parameter not described in the literature." + +[von_karman_constant] +used_in = ["SurfaceFluxes"] +value = 0.4 +type = "float" + +[mixing_length_eddy_viscosity_coefficient] +used_in = ["ClimaAtmos"] +value = 0.14 +type = "float" +description = "Turbulence kinetic energy diffusivity coefficient for the EDMF mixing length closure; denoted c_m. See Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Table 1." + +[alpha_rayleigh_w] +used_in = ["ClimaAtmos"] +value = 1.0 +type = "float" +description = "rayleigh sponge vert velocity coeff" + +[mean_sea_level_pressure] +used_in = ["Thermodynamics"] +value = 101325 +type = "float" + +[max_area_limiter_power] +used_in = ["ClimaAtmos"] +value = 10 +type = "float" +description = "Constant coefficient for the exponent in the maximum area limiter term in detrainment. Parameter not described in the literature." + +[anomalistic_year_length] +used_in = ["Insolation"] +value = 31558464 +type = "float" +description = "derived: 365.25 * [day]" + +[alpha_rayleigh_uh] +used_in = ["ClimaAtmos"] +value = 0.0 +type = "float" +description = "rayleigh sponge horizontal velocity coefficient" + +[kappa_2_sponge] +used_in = ["ClimaAtmos"] +value = 1.0e6 +type = "float" +description = "viscous sponge coefficient" + +[astronomical_unit] +used_in = ["ClimaAtmos"] +value = 149597870000 +type = "float" + +[mixing_length_Prandtl_number_scale] +used_in = ["ClimaAtmos"] +value = 4.076923076923077 +type = "float" +description = "Cospectral budget factor for turbulent Prandtl number for the EDMF mixing length closure, denoted ω_pr. In Lopez-Gomez et al. (2020) [https://doi.org/10.1029/2020MS002162], Eq. 36, it is described as a phenomenological constant, denoted by ω₂ and set to 53/13 ≈ 4.0769..." diff --git a/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_active b/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_active new file mode 120000 index 0000000000..ca6c61394e --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/moist_held_suarez/moist_held_suarez/clima_atmos/output_active @@ -0,0 +1 @@ +output_0000 \ No newline at end of file diff --git a/calibration/experiments/coupled_held_suarez/observation_map.jl b/calibration/experiments/coupled_held_suarez/observation_map.jl new file mode 100644 index 0000000000..937eadb178 --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/observation_map.jl @@ -0,0 +1,34 @@ +import EnsembleKalmanProcesses: TOMLInterface +import ClimaCalibrate: observation_map, ExperimentConfig +import ClimaAnalysis: SimDir, get, slice, average_lat, average_lon + +function observation_map(iteration) + ensemble_size = 10 + output_dir = joinpath("output", "sphere_held_suarez_rhoe_equilmoist") + single_member_dims = (1,) + G_ensemble = Array{Float64}(undef, single_member_dims..., ensemble_size) + + for m in 1:ensemble_size + member_path = + TOMLInterface.path_to_ensemble_member(output_dir, iteration, m) + simdir_path = joinpath(member_path, "output_active") + if isdir(simdir_path) + simdir = SimDir(simdir_path) + G_ensemble[:, m] .= process_member_data(simdir) + else + G_ensemble[:, m] .= NaN + end + end + return G_ensemble +end + +const meters = 1.0 +const days = 86400.0 +# Cut off first 120 day to get equilibrium, take second level slice +function process_member_data(simdir::SimDir) + isempty(simdir.vars) && return NaN + ta = get(simdir; short_name = "ta", reduction = "average", period = "60d") + zonal_avg_temp_observations = + slice(average_lat(average_lon(ta)), z = 242meters) + return slice(zonal_avg_temp_observations, time = 240days).data +end diff --git a/calibration/experiments/coupled_held_suarez/pipeline.sbatch b/calibration/experiments/coupled_held_suarez/pipeline.sbatch new file mode 100644 index 0000000000..2ca1ce78af --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/pipeline.sbatch @@ -0,0 +1,33 @@ +#!/bin/bash +#SBATCH --time=3:00:00 +#SBATCH --output=coupled_moist_held_suarez.txt + +julia --project=calibration/experiments/coupled_held_suarez -e ' +import Pkg; Pkg.instantiate(;verbose=true) +import JLD2 +using ClimaUtilities.ClimaArtifacts +import ClimaCalibrate: calibrate, ExperimentConfig, CaltechHPCBackend, get_prior, kwargs + +experiment_dir = dirname(Base.active_project()) +include(joinpath(experiment_dir, "observation_map.jl")) +artifact_path = @clima_artifact("atmos_held_suarez_obs") +model_interface = joinpath(experiment_dir, "model_interface.jl") + +# Load data and configurations +n_iterations = 2 +ensemble_size = 10 +observations = JLD2.load_object(joinpath(artifact_path, "obs_mean.jld2")) +noise = JLD2.load_object(joinpath(artifact_path, "obs_noise_cov.jld2")) +prior = get_prior(joinpath(experiment_dir, "prior.toml")) +output_dir = joinpath("output", "coupled_held_suarez_rhoe_equilmoist") + +experiment_config = ExperimentConfig(; n_iterations, ensemble_size, + observations, noise, output_dir, prior) +slurm_kwargs = kwargs(time = 50, ntasks = 16, mem_per_cpu = "8G") +eki = calibrate(CaltechHPCBackend, experiment_config; model_interface, slurm_kwargs, verbose=true) + +include(joinpath(experiment_dir, "postprocessing.jl")) +prior = get_prior(joinpath(experiment_dir, "prior.toml")) +convergence_plot(eki, prior) +scatter_plot(eki) +' diff --git a/calibration/experiments/coupled_held_suarez/postprocessing.jl b/calibration/experiments/coupled_held_suarez/postprocessing.jl new file mode 100644 index 0000000000..8764dd521d --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/postprocessing.jl @@ -0,0 +1,91 @@ +import EnsembleKalmanProcesses as EKP +using EnsembleKalmanProcesses.ParameterDistributions +using EnsembleKalmanProcesses.TOMLInterface +using Distributions +import Statistics: mean +import CairoMakie: Makie +import ClimaCalibrate + +function convergence_plot( + eki::EKP.EnsembleKalmanProcess, + prior::ParameterDistribution; + theta_star = 65.0, + output = joinpath("output", "sphere_held_suarez_rhoe_equilmoist"), +) + u_vec = EKP.get_u(eki) + meanabsdiff²(x, e) = sum(i -> abs(i - x)^2, e) / length(e) + error_vec = map(ensemble -> meanabsdiff²(theta_star, ensemble), u_vec) + spread_vec = map(ensemble -> meanabsdiff²(mean(ensemble), ensemble), u_vec) + phi_vec = transform_unconstrained_to_constrained(prior, u_vec) + u_series = eachcol(reduce(vcat, u_vec)) + phi_series = eachcol(reduce(vcat, phi_vec)) + + f = Makie.Figure(title = "Convergence Plot", resolution = (800, 800)) + + ax = Makie.Axis( + f[1, 1], + xlabel = "Iteration", + ylabel = "Error", + xticks = 0:50, + ) + Makie.lines!(ax, 0.0:(length(error_vec) - 1), error_vec) + + ax = Makie.Axis( + f[1, 2], + xlabel = "Iteration", + ylabel = "Spread", + xticks = 0:50, + ) + Makie.lines!(ax, 0.0:(length(spread_vec) - 1), spread_vec) + + ax = Makie.Axis( + f[2, 1], + xlabel = "Iteration", + ylabel = "Unconstrained Parameters", + xticks = 0:50, + ) + Makie.lines!.(ax, tuple(0.0:(length(u_series[1]) - 1)), u_series) + + ax = Makie.Axis( + f[2, 2], + xlabel = "Iteration", + ylabel = "Constrained Parameters", + xticks = 0:50, + ) + Makie.lines!.(ax, tuple(0.0:(length(phi_series[1]) - 1)), phi_series) + Makie.hlines!(ax, [theta_star], color = :red, linestyle = :dash) + Makie.save(joinpath(output, "convergence.png"), f) +end + +function scatter_plot( + eki, + output = joinpath("output", "sphere_held_suarez_rhoe_equilmoist"), +) + # Define figure with explicit size + f = Makie.Figure(resolution = (800, 600)) + a = Makie.Axis( + f[1, 1], + title = "60-Day Zonal Avg Temp at 242m versus Unconstrained Equator-Pole Temp Gradient", + ylabel = "Parameter Value", + xlabel = "Temperature (K)", + ) + + g = vec.(EKP.get_g(eki; return_array = true)) + u = vec.(EKP.get_u(eki; return_array = true)) + + for (gg, uu) in zip(g, u) + Makie.scatter!(a, gg, uu) + end + + # Save the figure + Makie.save(joinpath(output, "scatter.png"), f) +end + +# Uncomment for easy plotting +# import JLD2 +# iteration = 2 +# output_dir = joinpath("output", "sphere_held_suarez_rhoe_equilmoist") +# eki_filepath = joinpath(ClimaCalibrate.path_to_iteration(output_dir, iteration), "eki_file.jld2") +# eki = JLD2.load_object(eki_filepath) +# prior_path = joinpath("calibration", "experiments", "sphere_held_suarez_rhoe_equilmoist", "prior.toml") +# prior = ClimaCalibrate.get_prior(prior_path) diff --git a/calibration/experiments/coupled_held_suarez/prior.toml b/calibration/experiments/coupled_held_suarez/prior.toml new file mode 100644 index 0000000000..e3f9f6a2f0 --- /dev/null +++ b/calibration/experiments/coupled_held_suarez/prior.toml @@ -0,0 +1,4 @@ +["equator_pole_temperature_gradient_wet"] +prior = "constrained_gaussian(\"equator_pole_temperature_gradient_wet\", 125, 40, 0, Inf)" +constraint = "[bounded_below(0)]" +type = "float"