Skip to content

Commit 9684580

Browse files
authored
Merge pull request #3883 from CliMA/j/ecmwf_init
Add WeatherQuest Atmos IC
2 parents ac4e605 + 52923b2 commit 9684580

18 files changed

+427
-16
lines changed

.buildkite/Manifest-v1.11.toml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ version = "0.5.18"
363363
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
364364

365365
[[deps.ClimaAtmos]]
366-
deps = ["Adapt", "ArgParse", "Artifacts", "AtmosphericProfilesLibrary", "ClimaComms", "ClimaCore", "ClimaDiagnostics", "ClimaParams", "ClimaTimeSteppers", "ClimaUtilities", "CloudMicrophysics", "Dates", "ForwardDiff", "Insolation", "Interpolations", "LazyArtifacts", "LazyBroadcast", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "NullBroadcasts", "RRTMGP", "Random", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "Thermodynamics", "UnrolledUtilities", "YAML"]
366+
deps = ["Adapt", "ArgParse", "Artifacts", "AtmosphericProfilesLibrary", "ClimaComms", "ClimaCore", "ClimaDiagnostics", "ClimaInterpolations", "ClimaParams", "ClimaTimeSteppers", "ClimaUtilities", "CloudMicrophysics", "Dates", "ForwardDiff", "Insolation", "Interpolations", "LazyArtifacts", "LazyBroadcast", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "NullBroadcasts", "RRTMGP", "Random", "SciMLBase", "StaticArrays", "Statistics", "SurfaceFluxes", "Thermodynamics", "UnrolledUtilities", "YAML"]
367367
path = ".."
368368
uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717"
369369
version = "0.30.4"
@@ -408,6 +408,16 @@ git-tree-sha1 = "5c031f4fc0c044e3da65c7cbc173962cc1489074"
408408
uuid = "1ecacbb8-0713-4841-9a07-eb5aa8a2d53f"
409409
version = "0.2.15"
410410

411+
[[deps.ClimaInterpolations]]
412+
deps = ["DocStringExtensions"]
413+
git-tree-sha1 = "e62662cfbf368f7d9cdb1876dcb6e328437cb676"
414+
uuid = "dd0f122e-fa3b-47f3-bcf0-93bbc60d885e"
415+
version = "0.1.0"
416+
weakdeps = ["CUDA"]
417+
418+
[deps.ClimaInterpolations.extensions]
419+
ClimaInterpolationsCUDAExt = "CUDA"
420+
411421
[[deps.ClimaParams]]
412422
deps = ["TOML"]
413423
git-tree-sha1 = "8f76fb84975762ac8e12fadcb87992b2a92e3966"

.buildkite/pipeline.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,18 @@ steps:
10351035
agents:
10361036
slurm_gpus: 1
10371037
slurm_mem: 16GB
1038+
1039+
- label: ":earth_americas: GPU: Diagnostic EDMFX ERA5 Weather Model Initial Condition"
1040+
command: >
1041+
julia --color=yes --project=.buildkite .buildkite/ci_driver.jl
1042+
--config_file $CONFIG_PATH/diagnostic_edmfx_era5_initial_condition.yml
1043+
--job_id diagnostic_edmfx_era5_initial_condition
1044+
artifact_paths: "diagnostic_edmfx_era5_initial_condition/output_active/*"
1045+
env:
1046+
CLIMACOMMS_DEVICE: "CUDA"
1047+
agents:
1048+
slurm_gpus: 1
1049+
slurm_mem: 16GB
10381050

10391051
- label: "GPU: EDOnly EDMFX aquaplanet"
10401052
command: >

Artifacts.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,6 @@ lazy = true
7777

7878
[DYAMOND_SUMMER_ICS_p14deg]
7979
git-tree-sha1 = "789c8dd160b022a6c714a102c1495530c7a9d20c"
80+
81+
[weather_model_ic]
82+
git-tree-sha1 = "1c05bc305e79ceaab8c537be4f8c4a26465996a3"

NEWS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ ClimaAtmos.jl Release Notes
44
main
55
-------
66

7+
PR [#3883](https://github.com/CliMA/ClimaAtmos.jl/pull/3883) adds atmosphere initial condition for WeatherQuest from ERA5
8+
79
PR [#3870](https://github.com/CliMA/ClimaAtmos.jl/pull/3870) adds externally driven SCM models forced by monthly-averaged ERA5
810
reanalysis which are less data intensive and more stable. The simulation also employs the new implicit solver yielding a several
911
factor speedup. The associated documentation section, "Single Column Model", was also improved.

Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ AtmosphericProfilesLibrary = "86bc3604-9858-485a-bdbe-831ec50de11d"
1111
ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d"
1212
ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884"
1313
ClimaDiagnostics = "1ecacbb8-0713-4841-9a07-eb5aa8a2d53f"
14+
ClimaInterpolations = "dd0f122e-fa3b-47f3-bcf0-93bbc60d885e"
1415
ClimaParams = "5c42b081-d73a-476f-9059-fd94b934656c"
1516
ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79"
1617
ClimaUtilities = "b3f4f4ca-9299-4f7f-bd9b-81e1242a7513"
@@ -44,6 +45,7 @@ AtmosphericProfilesLibrary = "0.1.7"
4445
ClimaComms = "0.6.8"
4546
ClimaCore = "0.14.35"
4647
ClimaDiagnostics = "0.2.12"
48+
ClimaInterpolations = "0.1.0"
4749
ClimaParams = "0.10.35"
4850
ClimaTimeSteppers = "0.8.2"
4951
ClimaUtilities = "0.1.22"

config/default_configs/default_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ bubble:
161161
help: "Enable bubble correction for more accurate surface areas"
162162
value: false
163163
start_date:
164-
help: "Start date of the simulation"
164+
help: "Start date and time of the simulation. Specified as either yyyymmdd (defaults to midnight) or yyyymmdd-HHMM. Examples: [`20100101`, `20100101-0000`]"
165165
value: "20100101"
166166
forcing:
167167
help: "Forcing [`nothing` (default), `held_suarez`]"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
z_max: 48000.0
2+
z_elem: 63
3+
h_elem: 15
4+
dz_bottom: 30.0
5+
start_date: "20250627-0000"
6+
initial_condition: "WeatherModel"
7+
discrete_hydrostatic_balance: false # TODO: change to true once we fix discrete hydrostatic balance to work with orography
8+
topo_smoothing: true
9+
topography: "Earth"
10+
rayleigh_sponge: true
11+
12+
hyperdiff: ClimaHyperdiffusion
13+
divergence_damping_factor: 50.0 # large value to damp IC waves
14+
scalar_hyperdiffusion_coefficient: 0.929738
15+
vorticity_hyperdiffusion_coefficient: 0.1857
16+
17+
insolation: "timevarying"
18+
surface_setup: DefaultMoninObukhov
19+
rad: allskywithclear
20+
co2_model: fixed
21+
turbconv: diagnostic_edmfx
22+
implicit_diffusion: true
23+
approximate_linear_solve_iters: 2
24+
prognostic_tke: true
25+
edmfx_upwinding: first_order
26+
edmfx_entr_model: "Generalized"
27+
edmfx_detr_model: "Generalized"
28+
edmfx_nh_pressure: true
29+
edmfx_sgs_mass_flux: true
30+
edmfx_sgs_diffusive_flux: true
31+
moist: equil
32+
cloud_model: "grid_scale"
33+
precip_model: 0M
34+
dt: 120secs
35+
t_end: 12hours
36+
toml: [toml/diagnostic_edmfx_era5_ic.toml]
37+
use_itime: true
38+
output_default_diagnostics: false
39+
diagnostics:
40+
- short_name: [ta, ua, wa, va, rhoa, hur, hus, clw, cli]
41+
period: 60mins
42+
- short_name: [rsut, rlut, ts, pr]
43+
period: 60mins

src/ClimaAtmos.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ include(joinpath("utils", "debug_utils.jl"))
2323
include(joinpath("utils", "variable_manipulations.jl"))
2424
include(joinpath("utils", "read_gcm_driven_scm_data.jl"))
2525
include(joinpath("utils", "era5_observations_to_forcing_file.jl"))
26+
include(joinpath("utils", "weather_model.jl"))
2627

2728
include(joinpath("utils", "AtmosArtifacts.jl"))
2829
import .AtmosArtifacts as AA

src/callbacks/callbacks.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ function set_insolation_variables!(Y, p, t, tvi::TimeVaryingInsolation)
215215
max_zenith_angle = FT(π) / 2 - eps(FT)
216216
irradiance = FT(CAP.tot_solar_irrad(params))
217217
au = FT(CAP.astro_unit(params))
218-
# TODO: Where does this date0 come from?
218+
# date0 references the start of the astronomial epoch J2000
219219
date0 = DateTime("2000-01-01T11:58:56.816")
220220
d, δ, η_UTC =
221221
FT.(

src/initial_conditions/InitialConditions.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import ..gcm_driven_profile
2323
import ..gcm_height
2424
import ..gcm_driven_profile_tmean
2525
import ..constant_buoyancy_frequency_initial_state
26+
import ..weather_model_data_path
2627

2728
import Thermodynamics.TemperatureProfiles:
2829
DecayingTemperatureProfile, DryAdiabaticProfile

0 commit comments

Comments
 (0)