cstar-forge 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cstar_forge/__init__.py +26 -0
- cstar_forge/catalog/DomainSpec/GoA-10th_deg/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/GoA-10th_deg/Domain.yaml +30 -0
- cstar_forge/catalog/DomainSpec/NEP-4th_deg/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/NEP-4th_deg/Domain.yaml +31 -0
- cstar_forge/catalog/DomainSpec/PAC_2fth_deg/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/PAC_2fth_deg/Domain.yaml +26 -0
- cstar_forge/catalog/DomainSpec/ccs-12km/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/ccs-12km/Domain.yaml +27 -0
- cstar_forge/catalog/DomainSpec/gulf-guinea-toy/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/gulf-guinea-toy/Domain.yaml +22 -0
- cstar_forge/catalog/DomainSpec/hvalfjordur-0/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/hvalfjordur-0/Domain.yaml +23 -0
- cstar_forge/catalog/DomainSpec/wio-toy/Assets/.gitkeep +0 -0
- cstar_forge/catalog/DomainSpec/wio-toy/Domain.yaml +22 -0
- cstar_forge/catalog/ForcingSpec/glorys-era5-unified/Forcing.yaml +54 -0
- cstar_forge/catalog/Machines/MacOS.yaml +4 -0
- cstar_forge/catalog/Machines/NERSC_perlmutter.yaml +6 -0
- cstar_forge/catalog/Machines/RCAC_anvil.yaml +5 -0
- cstar_forge/catalog/ModelSpec/cson_roms-marbl_v0.1/model.yaml +196 -0
- cstar_forge/catalog/ModelSpec/pio-dev/model.yaml +104 -0
- cstar_forge/catalog/OutputSpec/standard/Output.yaml +135 -0
- cstar_forge/catalog/blueprints/cson_roms-marbl_v0.1_wio-toy_10procs.forge_blueprint.yaml +554 -0
- cstar_forge/catalog.py +53 -0
- cstar_forge/config.py +639 -0
- cstar_forge/diagnostics/__init__.py +28 -0
- cstar_forge/diagnostics/glodap.py +186 -0
- cstar_forge/domain_catalog.py +1127 -0
- cstar_forge/forge/__init__.py +7 -0
- cstar_forge/forge/_yaml_representers.py +36 -0
- cstar_forge/forge/app.py +125 -0
- cstar_forge/forge/executor.py +2034 -0
- cstar_forge/forge/forge_blueprint.py +1036 -0
- cstar_forge/forge/forge_blueprint_engine.py +427 -0
- cstar_forge/forge/glorys_subchunk.py +335 -0
- cstar_forge/forge/host.py +54 -0
- cstar_forge/forge/input_data.py +1844 -0
- cstar_forge/forge/namelist_model.py +599 -0
- cstar_forge/forge/settings.py +365 -0
- cstar_forge/forge/source_data.py +843 -0
- cstar_forge/forge/source_registry.py +126 -0
- cstar_forge/forge/util.py +180 -0
- cstar_forge/forge-blueprint-wizard-app.ipynb +37 -0
- cstar_forge/forge-blueprint-wizard.ipynb +63 -0
- cstar_forge/forge_blueprint_resolve.py +952 -0
- cstar_forge/forge_blueprint_wizard.py +4365 -0
- cstar_forge/models.py +256 -0
- cstar_forge/parsers.py +545 -0
- cstar_forge/run.py +324 -0
- cstar_forge/utils.py +118 -0
- cstar_forge-0.3.0.dist-info/METADATA +175 -0
- cstar_forge-0.3.0.dist-info/RECORD +55 -0
- cstar_forge-0.3.0.dist-info/WHEEL +5 -0
- cstar_forge-0.3.0.dist-info/licenses/LICENSE +201 -0
- cstar_forge-0.3.0.dist-info/top_level.txt +1 -0
cstar_forge/__init__.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""
|
|
2
|
+
cstar_forge: A utility for generating regional oceanographic modeling domains
|
|
3
|
+
and spawning reproducible C-Star workflows.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# silence UCX warnings
|
|
7
|
+
import os
|
|
8
|
+
|
|
9
|
+
os.environ["UCX_LOG_LEVEL"] = "error"
|
|
10
|
+
|
|
11
|
+
from cstar_forge import catalog, config, diagnostics, models
|
|
12
|
+
from cstar_forge.domain_catalog import DomainCatalog, default_catalog
|
|
13
|
+
from cstar_forge.forge import settings, source_data
|
|
14
|
+
from cstar_forge.forge.executor import ForgeExecutor
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"DomainCatalog",
|
|
18
|
+
"ForgeExecutor",
|
|
19
|
+
"catalog",
|
|
20
|
+
"config",
|
|
21
|
+
"default_catalog",
|
|
22
|
+
"diagnostics",
|
|
23
|
+
"models",
|
|
24
|
+
"settings",
|
|
25
|
+
"source_data",
|
|
26
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
description: "Gulf of Alaska 1/10 deg (nested)"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "GoA-10th_deg"
|
|
4
|
+
start_time: "2012-01-01"
|
|
5
|
+
end_time: "2012-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 208
|
|
8
|
+
ny: 192
|
|
9
|
+
size_x: 1460
|
|
10
|
+
size_y: 2220
|
|
11
|
+
center_lon: -135
|
|
12
|
+
center_lat: 52.6
|
|
13
|
+
rot: -105
|
|
14
|
+
N: 10
|
|
15
|
+
theta_s: 6.0
|
|
16
|
+
theta_b: 3.0
|
|
17
|
+
hc: 250.0
|
|
18
|
+
metadata:
|
|
19
|
+
prefix: "child"
|
|
20
|
+
period: 3600.0
|
|
21
|
+
include_bgc: true
|
|
22
|
+
open_boundaries:
|
|
23
|
+
south: true
|
|
24
|
+
east: false
|
|
25
|
+
north: true
|
|
26
|
+
west: true
|
|
27
|
+
partitioning:
|
|
28
|
+
n_procs_x: 16
|
|
29
|
+
n_procs_y: 8
|
|
30
|
+
_parent_grid_name: "NEP-4th_deg"
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
description: "Northeast Pacific 1/4 deg (nested)"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "NEP-4th_deg"
|
|
4
|
+
start_time: "2012-01-01"
|
|
5
|
+
end_time: "2012-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 208
|
|
8
|
+
ny: 192
|
|
9
|
+
size_x: 4380
|
|
10
|
+
size_y: 6660
|
|
11
|
+
center_lon: -155
|
|
12
|
+
center_lat: 42
|
|
13
|
+
rot: -90
|
|
14
|
+
N: 10
|
|
15
|
+
theta_s: 6.0
|
|
16
|
+
theta_b: 3.0
|
|
17
|
+
hc: 250.0
|
|
18
|
+
metadata:
|
|
19
|
+
prefix: "child"
|
|
20
|
+
period: 3600.0
|
|
21
|
+
include_bgc: true
|
|
22
|
+
open_boundaries:
|
|
23
|
+
south: true
|
|
24
|
+
east: false
|
|
25
|
+
north: true
|
|
26
|
+
west: true
|
|
27
|
+
partitioning:
|
|
28
|
+
n_procs_x: 16
|
|
29
|
+
n_procs_y: 8
|
|
30
|
+
_parent_grid_name: "PAC_2fth_deg"
|
|
31
|
+
_child_grid_name: "GoA-10th_deg"
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
description: "Pacific 2/15 deg (nested)"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "PAC_2fth_deg"
|
|
4
|
+
start_time: "2012-01-01"
|
|
5
|
+
end_time: "2012-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 208
|
|
8
|
+
ny: 192
|
|
9
|
+
size_x: 7300
|
|
10
|
+
size_y: 11100
|
|
11
|
+
center_lon: -165
|
|
12
|
+
center_lat: 40
|
|
13
|
+
rot: -90
|
|
14
|
+
N: 10
|
|
15
|
+
theta_s: 6.0
|
|
16
|
+
theta_b: 3.0
|
|
17
|
+
hc: 250.0
|
|
18
|
+
open_boundaries:
|
|
19
|
+
south: true
|
|
20
|
+
east: false
|
|
21
|
+
north: true
|
|
22
|
+
west: true
|
|
23
|
+
partitioning:
|
|
24
|
+
n_procs_x: 16
|
|
25
|
+
n_procs_y: 8
|
|
26
|
+
_child_grid_name: "NEP-4th_deg"
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
description: "California Current System"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "ccs-12km"
|
|
4
|
+
start_time: "2024-01-01"
|
|
5
|
+
end_time: "2024-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 224
|
|
8
|
+
ny: 440
|
|
9
|
+
size_x: 2688
|
|
10
|
+
size_y: 5280
|
|
11
|
+
center_lon: -134.5
|
|
12
|
+
center_lat: 39.6
|
|
13
|
+
rot: 33.3
|
|
14
|
+
N: 60
|
|
15
|
+
hc: 250.0
|
|
16
|
+
theta_s: 6.0
|
|
17
|
+
theta_b: 6.0
|
|
18
|
+
verbose: true
|
|
19
|
+
hmin: 5.0
|
|
20
|
+
open_boundaries:
|
|
21
|
+
south: true
|
|
22
|
+
east: true
|
|
23
|
+
north: true
|
|
24
|
+
west: true
|
|
25
|
+
partitioning:
|
|
26
|
+
n_procs_x: 16
|
|
27
|
+
n_procs_y: 20
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
description: "Gulf of Guinea (toy)"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "gulf-guinea-toy"
|
|
4
|
+
start_time: "2012-01-01"
|
|
5
|
+
end_time: "2012-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 10
|
|
8
|
+
ny: 10
|
|
9
|
+
size_x: 4000
|
|
10
|
+
size_y: 2000
|
|
11
|
+
center_lon: 4.0
|
|
12
|
+
center_lat: -1.0
|
|
13
|
+
rot: 0
|
|
14
|
+
N: 5
|
|
15
|
+
open_boundaries:
|
|
16
|
+
south: true
|
|
17
|
+
east: true
|
|
18
|
+
north: true
|
|
19
|
+
west: true
|
|
20
|
+
partitioning:
|
|
21
|
+
n_procs_x: 2
|
|
22
|
+
n_procs_y: 5
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
description: "Hvalfjörður, Iceland"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "hvalfjordur-0"
|
|
4
|
+
start_time: "2024-01-01"
|
|
5
|
+
end_time: "2024-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 512
|
|
8
|
+
ny: 384
|
|
9
|
+
size_x: 1280
|
|
10
|
+
size_y: 1280
|
|
11
|
+
center_lon: -25
|
|
12
|
+
center_lat: 63
|
|
13
|
+
rot: -20
|
|
14
|
+
N: 100
|
|
15
|
+
verbose: true
|
|
16
|
+
open_boundaries:
|
|
17
|
+
south: true
|
|
18
|
+
east: true
|
|
19
|
+
north: true
|
|
20
|
+
west: true
|
|
21
|
+
partitioning:
|
|
22
|
+
n_procs_x: 16
|
|
23
|
+
n_procs_y: 16
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
description: "Western Indian Ocean (toy)"
|
|
2
|
+
model_name: "cson_roms-marbl_v0.1"
|
|
3
|
+
grid_name: "wio-toy"
|
|
4
|
+
start_time: "2012-01-01"
|
|
5
|
+
end_time: "2012-01-02"
|
|
6
|
+
grid_kwargs:
|
|
7
|
+
nx: 20
|
|
8
|
+
ny: 20
|
|
9
|
+
size_x: 8000
|
|
10
|
+
size_y: 8000
|
|
11
|
+
center_lon: 60.0
|
|
12
|
+
center_lat: -4.0
|
|
13
|
+
rot: 0
|
|
14
|
+
N: 10
|
|
15
|
+
open_boundaries:
|
|
16
|
+
south: true
|
|
17
|
+
east: true
|
|
18
|
+
north: true
|
|
19
|
+
west: true
|
|
20
|
+
partitioning:
|
|
21
|
+
n_procs_x: 2
|
|
22
|
+
n_procs_y: 5
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
description: "GLORYS physics + UNIFIED BGC + ERA5 surface (+MBL_co2, WOA sss-restoring) + TPXO tides + DAI rivers"
|
|
2
|
+
# A ForcingSpec is a selectable forcing configuration (initial conditions + surface/
|
|
3
|
+
# boundary/tidal/river forcing). Every domain must explicitly pick one -- there is no
|
|
4
|
+
# "model default" fallback. Topography source/path are DomainSpec-owned (Domain.yaml /
|
|
5
|
+
# the wizard's Grid section), not part of a ForcingSpec.
|
|
6
|
+
|
|
7
|
+
initial_conditions:
|
|
8
|
+
source:
|
|
9
|
+
name: GLORYS
|
|
10
|
+
glorys_layout: regional
|
|
11
|
+
bgc_source:
|
|
12
|
+
name: UNIFIED
|
|
13
|
+
climatology: true
|
|
14
|
+
|
|
15
|
+
forcing:
|
|
16
|
+
surface:
|
|
17
|
+
- source:
|
|
18
|
+
name: ERA5
|
|
19
|
+
type: physics
|
|
20
|
+
correct_radiation: true
|
|
21
|
+
coarse_grid_mode: "never"
|
|
22
|
+
- source:
|
|
23
|
+
name: UNIFIED
|
|
24
|
+
climatology: true
|
|
25
|
+
type: bgc
|
|
26
|
+
coarse_grid_mode: "never"
|
|
27
|
+
- source:
|
|
28
|
+
name: MBL_co2
|
|
29
|
+
type: bgc
|
|
30
|
+
coarse_grid_mode: "never"
|
|
31
|
+
- source:
|
|
32
|
+
name: WOA
|
|
33
|
+
climatology: true
|
|
34
|
+
restoring_forces: ['sss']
|
|
35
|
+
type: restoring
|
|
36
|
+
coarse_grid_mode: "never"
|
|
37
|
+
boundary:
|
|
38
|
+
- source:
|
|
39
|
+
name: GLORYS
|
|
40
|
+
glorys_layout: regional
|
|
41
|
+
type: physics
|
|
42
|
+
- source:
|
|
43
|
+
name: UNIFIED
|
|
44
|
+
climatology: true
|
|
45
|
+
type: bgc
|
|
46
|
+
tidal:
|
|
47
|
+
- source:
|
|
48
|
+
name: TPXO
|
|
49
|
+
ntides: 15
|
|
50
|
+
river:
|
|
51
|
+
- source:
|
|
52
|
+
name: DAI
|
|
53
|
+
climatology: false
|
|
54
|
+
include_bgc: true
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# ModelSpec: code refs, template refs, bgc_mode, and model-specific physics/numerics
|
|
2
|
+
# defaults.
|
|
3
|
+
#
|
|
4
|
+
# This intentionally holds nothing that a Domain/Forcing/Output spec already provides:
|
|
5
|
+
# no grid/IC/forcing source selection (that's a ForcingSpec's job -- pick one from the
|
|
6
|
+
# catalog; there is no more "model default" forcing) and no ocean_vars/surf_flux/
|
|
7
|
+
# diagnostics/stdout_diag/ts_output/frc_output/cdr_output/upscale_output/zslice/
|
|
8
|
+
# random_output sections or marbl_bgc write-lists (those are an OutputSpec's job -- pick
|
|
9
|
+
# one from the catalog; there is no more "model default" output either). Nor does it
|
|
10
|
+
# hold anything Domain-owned (open_boundaries -> cppdefs.obc_*; grid_kwargs/
|
|
11
|
+
# partitioning -> param's llm/mmm/n/np_xi/np_eta) or Forcing-owned (tidal presence ->
|
|
12
|
+
# cppdefs.tides + tides.ntides; MBL_co2 surface item -> cppdefs.co2_tvarying;
|
|
13
|
+
# restoring surface forcing with an SSS component -> cppdefs.sal_restore;
|
|
14
|
+
# river_frc/cdr_frc namelist defaults, which the resolver now owns directly and a
|
|
15
|
+
# ForcingSpec may override -- see build_forge_blueprint). Nor does it hold
|
|
16
|
+
# extract_data (child-grid nesting): its active values come from a second,
|
|
17
|
+
# separately-selected DomainSpec (the nesting child), so the resolver owns its
|
|
18
|
+
# disabled fallback directly too.
|
|
19
|
+
#
|
|
20
|
+
# `bgc_mode` (marbl|none) is a per-run toggle: it prepopulates the wizard's BGC
|
|
21
|
+
# dropdown and the resolver uses it to set cppdefs.marbl (and gate nhy_forcing/
|
|
22
|
+
# nox_forcing) and to decide whether code.marbl is populated.
|
|
23
|
+
#
|
|
24
|
+
# `use_pio` (bool) is a per-run toggle mirroring bgc_mode: it prepopulates the
|
|
25
|
+
# wizard's PIO checkbox and the resolver uses it to set cppdefs.use_pio and to
|
|
26
|
+
# decide whether code.pio is populated.
|
|
27
|
+
#
|
|
28
|
+
# `model_settings` is flat and mirrors ForgeBlueprint.model_settings 1:1 (cppdefs sits
|
|
29
|
+
# at the same level as the namelist sections, matching how the resolver treats them).
|
|
30
|
+
# A few sections here are fully overwritten by the resolver at build time regardless of
|
|
31
|
+
# what's written below (time_stepping, v_sponge from grid/run-window; param's
|
|
32
|
+
# llm/mmm/n/np_xi/np_eta from grid/partitioning; cppdefs.obc_*/marbl/co2_tvarying/
|
|
33
|
+
# sal_restore/tides/cdr_forcing/use_pio from, respectively, open boundaries/bgc_mode/
|
|
34
|
+
# forcing selection/forcing selection/tidal-forcing presence/CDR-forcing presence/the
|
|
35
|
+
# top-level use_pio toggle; river_frc/cdr_frc entirely; extract_data
|
|
36
|
+
# entirely; tides.ntides from tidal forcing) -- they're included
|
|
37
|
+
# below only where the remaining fields in that same section (cppdefs' sponge_tune/
|
|
38
|
+
# nhy_forcing/nox_forcing; param's nt_passive/ntrc_bio; tides' bry_tides/pot_tides/
|
|
39
|
+
# ana_tides) are real, still-relevant model defaults. `pipe_frc` stays here in full:
|
|
40
|
+
# there is no pipe forcing item or generation path, so it has no other piece to
|
|
41
|
+
# live in.
|
|
42
|
+
|
|
43
|
+
bgc_mode: marbl # marbl|none -- prepopulates the wizard; resolver derives cppdefs.marbl from it
|
|
44
|
+
use_pio: false # prepopulates the wizard's PIO checkbox; resolver derives cppdefs.use_pio from it
|
|
45
|
+
|
|
46
|
+
code:
|
|
47
|
+
roms:
|
|
48
|
+
location: https://github.com/CWorthy-ocean/ucla-roms.git
|
|
49
|
+
commit: 0.2.0
|
|
50
|
+
|
|
51
|
+
marbl:
|
|
52
|
+
location: https://github.com/marbl-ecosys/MARBL.git
|
|
53
|
+
commit: marbl0.45.0
|
|
54
|
+
|
|
55
|
+
pio:
|
|
56
|
+
location: https://github.com/NCAR/ParallelIO.git
|
|
57
|
+
commit: pio2_7_0
|
|
58
|
+
|
|
59
|
+
# Render templates live at the forge repo root (templates/), decoupled from this
|
|
60
|
+
# ModelSpec: they track a ROMS version, change infrequently, and may move into the
|
|
61
|
+
# ucla-roms repo later. `directory` is relative to the repo root. At processing time
|
|
62
|
+
# the executor fetches these via C-Star's AdditionalCode from the forge git ref.
|
|
63
|
+
# Pin the serving forge commit with `templates_commit:` (until pinned, the resolver
|
|
64
|
+
# defaults to branch `main`).
|
|
65
|
+
templates_commit: 4208f4384431852daccea1ccad01d03c0cb473d9
|
|
66
|
+
templates_compile_time:
|
|
67
|
+
directory: "templates/compile-time"
|
|
68
|
+
files:
|
|
69
|
+
- cppdefs.opt.j2
|
|
70
|
+
templates_run_time:
|
|
71
|
+
directory: "templates/run-time"
|
|
72
|
+
files:
|
|
73
|
+
- marbl_in
|
|
74
|
+
|
|
75
|
+
model_settings:
|
|
76
|
+
cppdefs:
|
|
77
|
+
# obc_west/east/north/south, marbl, co2_tvarying, sal_restore, tides, cdr_forcing,
|
|
78
|
+
# and use_pio are all resolver-derived (from the domain's open_boundaries, bgc_mode,
|
|
79
|
+
# forcing selection, restoring-forcing SSS component, tidal-forcing presence,
|
|
80
|
+
# CDR-forcing presence, and the top-level use_pio toggle, respectively) and are
|
|
81
|
+
# intentionally absent here -- there is no separate cppdefs-level default to
|
|
82
|
+
# duplicate (use_pio's own default lives at the top level, above).
|
|
83
|
+
sponge_tune: false # advanced setting only (nested-domain pressure flux forcing); not resolver-derived
|
|
84
|
+
nhy_forcing: true # ammonia atmospheric forcing; forced off by the resolver when bgc_mode="none"
|
|
85
|
+
nox_forcing: true # nitrogen oxide atmospheric forcing; forced off by the resolver when bgc_mode="none"
|
|
86
|
+
|
|
87
|
+
lateral_visc:
|
|
88
|
+
visc2: 0.0 # m^2/sec
|
|
89
|
+
rho0: 1000.0
|
|
90
|
+
|
|
91
|
+
vertical_mixing:
|
|
92
|
+
akv: 0.0 # m^2/sec
|
|
93
|
+
# akt is a list of values, one per tracer (NT tracers)
|
|
94
|
+
# Default is all zeros - will be generated in template
|
|
95
|
+
akt_default: 0.0
|
|
96
|
+
|
|
97
|
+
tracer_diff2:
|
|
98
|
+
# tnu2 is a list of values, one per tracer (NT tracers)
|
|
99
|
+
# Default is all zeros - will be generated in template
|
|
100
|
+
tnu2_default: 0.0
|
|
101
|
+
|
|
102
|
+
bottom_drag:
|
|
103
|
+
rdrg: 0.0E-4 # m/s
|
|
104
|
+
rdrg2: 1.0E-3
|
|
105
|
+
zob: 1.0E-2 # meters
|
|
106
|
+
|
|
107
|
+
gamma2: 1.0 # Slipperiness parameter
|
|
108
|
+
|
|
109
|
+
ubind: 0.1 # m/s, OBC binding velocity scale
|
|
110
|
+
|
|
111
|
+
param:
|
|
112
|
+
# llm/mmm/n/np_xi/np_eta are Domain-owned (resolver-derived from grid_kwargs/
|
|
113
|
+
# partitioning) and intentionally absent here; nsub_x/nsub_e are hardcoded by the
|
|
114
|
+
# resolver. Only nt_passive/ntrc_bio (real model-level BGC tracer counts) live here.
|
|
115
|
+
nt_passive: 0
|
|
116
|
+
ntrc_bio: 32
|
|
117
|
+
|
|
118
|
+
# Output-write-control fields (wrt_*/output_period_*/nrpf_*) are an OutputSpec's
|
|
119
|
+
# job (Output.yaml's own `bgc:` block) and are deep-merged on top of these at
|
|
120
|
+
# resolve time -- only the physics defaults stay here.
|
|
121
|
+
bgc:
|
|
122
|
+
nbgc_flx: 2
|
|
123
|
+
interp_frc: 0
|
|
124
|
+
xco2air_default: 284.7 # Atmospheric xCO2 (ppm) when PCO2AIR_FORCING is off
|
|
125
|
+
|
|
126
|
+
blk_frc:
|
|
127
|
+
interp_frc: 0
|
|
128
|
+
check_bulk_frc_units: false
|
|
129
|
+
|
|
130
|
+
tides:
|
|
131
|
+
# ntides is Forcing-owned (set by the resolver from the tidal item's ntides, or 0
|
|
132
|
+
# when there is no tidal forcing) and intentionally absent here.
|
|
133
|
+
bry_tides: true
|
|
134
|
+
pot_tides: true
|
|
135
|
+
ana_tides: false
|
|
136
|
+
|
|
137
|
+
sponge_tune:
|
|
138
|
+
pflx_w_vname: 'up_west'
|
|
139
|
+
pflx_w_tname: 'bry_time'
|
|
140
|
+
pflx_e_vname: 'up_east'
|
|
141
|
+
pflx_e_tname: 'bry_time'
|
|
142
|
+
pflx_s_vname: 'vp_south'
|
|
143
|
+
pflx_s_tname: 'bry_time'
|
|
144
|
+
pflx_n_vname: 'vp_north'
|
|
145
|
+
pflx_n_tname: 'bry_time'
|
|
146
|
+
ub_tune: false
|
|
147
|
+
spn_avg: true
|
|
148
|
+
sp_timscale: 86400 # 24*3600 seconds
|
|
149
|
+
wrt_sponge: false
|
|
150
|
+
nrpf: 7
|
|
151
|
+
output_period: 86400 # 24*3600 seconds
|
|
152
|
+
|
|
153
|
+
flux_frc:
|
|
154
|
+
interp_flux_frc: true
|
|
155
|
+
|
|
156
|
+
# calc_pflx absorbs diag_pflx and its timescale from the old diagnostics.opt
|
|
157
|
+
calc_pflx:
|
|
158
|
+
calc_pflx: true
|
|
159
|
+
timescale: 86400 # timescale for filtering pressure fluxes (s)
|
|
160
|
+
|
|
161
|
+
pipe_frc:
|
|
162
|
+
pipe_source: false
|
|
163
|
+
p_analytical: false
|
|
164
|
+
npip: 1
|
|
165
|
+
|
|
166
|
+
particles:
|
|
167
|
+
floats: false
|
|
168
|
+
np: 50
|
|
169
|
+
extra_space_fac: 1.5
|
|
170
|
+
exchange_facx: 0.1
|
|
171
|
+
exchange_facy: 0.1
|
|
172
|
+
exchange_facc: 0.01
|
|
173
|
+
output_period: 400
|
|
174
|
+
nrpf: 100
|
|
175
|
+
ppm3: 1.0e-6
|
|
176
|
+
pmin: 200
|
|
177
|
+
|
|
178
|
+
lin_rho_eos:
|
|
179
|
+
tcoef: 0.2 # Thermal expansion coefficient (kg/m2/K); unused if NONLIN_EOS active
|
|
180
|
+
t0: 1.0 # Reference temperature (*C)
|
|
181
|
+
scoef: 0.822 # Saline contraction coefficient (kg/m3/psu)
|
|
182
|
+
s0: 1.0 # Reference salinity (psu)
|
|
183
|
+
|
|
184
|
+
sss_correction:
|
|
185
|
+
dsssdt: 7.777 # SSS correction piston velocity (cm/day); requires SFLX_CORR + SALINITY
|
|
186
|
+
|
|
187
|
+
sst_correction:
|
|
188
|
+
dsstdt: 7.777 # SST correction piston velocity (cm/day); requires QCORRECTION
|
|
189
|
+
|
|
190
|
+
dic_alk_correction:
|
|
191
|
+
dcdt: 7.777 # DIC/ALK correction piston velocity (cm/day); requires CFLX_CORR + MARBL
|
|
192
|
+
|
|
193
|
+
marbl_bgc:
|
|
194
|
+
marbl_config_file: "marbl_in"
|
|
195
|
+
marbl_timestep: 3600.0
|
|
196
|
+
# marbl_tracers_to_write / marbl_diagnostics_to_write are OutputSpec's (see Output.yaml)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
description: ucla-roms main + PIO enabled
|
|
2
|
+
bgc_mode: marbl
|
|
3
|
+
use_pio: true
|
|
4
|
+
code:
|
|
5
|
+
roms:
|
|
6
|
+
location: https://github.com/CWorthy-ocean/ucla-roms.git
|
|
7
|
+
commit: main
|
|
8
|
+
marbl:
|
|
9
|
+
location: https://github.com/marbl-ecosys/MARBL.git
|
|
10
|
+
commit: marbl0.45.0
|
|
11
|
+
pio:
|
|
12
|
+
location: https://github.com/NCAR/ParallelIO.git
|
|
13
|
+
commit: pio2_7_0
|
|
14
|
+
templates_commit: 4208f4384431852daccea1ccad01d03c0cb473d9
|
|
15
|
+
templates_compile_time:
|
|
16
|
+
directory: templates/compile-time
|
|
17
|
+
files:
|
|
18
|
+
- cppdefs.opt.j2
|
|
19
|
+
templates_run_time:
|
|
20
|
+
directory: templates/run-time
|
|
21
|
+
files:
|
|
22
|
+
- marbl_in
|
|
23
|
+
model_settings:
|
|
24
|
+
cppdefs:
|
|
25
|
+
sponge_tune: false
|
|
26
|
+
nhy_forcing: true
|
|
27
|
+
nox_forcing: true
|
|
28
|
+
lateral_visc:
|
|
29
|
+
visc2: 0.0
|
|
30
|
+
rho0: 1000.0
|
|
31
|
+
vertical_mixing:
|
|
32
|
+
akv: 0.0
|
|
33
|
+
akt_default: 0.0
|
|
34
|
+
tracer_diff2:
|
|
35
|
+
tnu2_default: 0.0
|
|
36
|
+
bottom_drag:
|
|
37
|
+
rdrg: 0.0
|
|
38
|
+
rdrg2: 0.001
|
|
39
|
+
zob: 0.01
|
|
40
|
+
gamma2: 1.0
|
|
41
|
+
ubind: 0.1
|
|
42
|
+
param:
|
|
43
|
+
nt_passive: 0
|
|
44
|
+
ntrc_bio: 32
|
|
45
|
+
bgc:
|
|
46
|
+
nbgc_flx: 2
|
|
47
|
+
interp_frc: 0
|
|
48
|
+
xco2air_default: 284.7
|
|
49
|
+
blk_frc:
|
|
50
|
+
interp_frc: 0
|
|
51
|
+
check_bulk_frc_units: false
|
|
52
|
+
tides:
|
|
53
|
+
bry_tides: true
|
|
54
|
+
pot_tides: true
|
|
55
|
+
ana_tides: false
|
|
56
|
+
sponge_tune:
|
|
57
|
+
pflx_w_vname: up_west
|
|
58
|
+
pflx_w_tname: bry_time
|
|
59
|
+
pflx_e_vname: up_east
|
|
60
|
+
pflx_e_tname: bry_time
|
|
61
|
+
pflx_s_vname: vp_south
|
|
62
|
+
pflx_s_tname: bry_time
|
|
63
|
+
pflx_n_vname: vp_north
|
|
64
|
+
pflx_n_tname: bry_time
|
|
65
|
+
ub_tune: false
|
|
66
|
+
spn_avg: true
|
|
67
|
+
sp_timscale: 86400
|
|
68
|
+
wrt_sponge: false
|
|
69
|
+
nrpf: 7
|
|
70
|
+
output_period: 86400
|
|
71
|
+
flux_frc:
|
|
72
|
+
interp_flux_frc: true
|
|
73
|
+
calc_pflx:
|
|
74
|
+
calc_pflx: true
|
|
75
|
+
timescale: 86400
|
|
76
|
+
pipe_frc:
|
|
77
|
+
pipe_source: false
|
|
78
|
+
p_analytical: false
|
|
79
|
+
npip: 1
|
|
80
|
+
particles:
|
|
81
|
+
floats: false
|
|
82
|
+
np: 50
|
|
83
|
+
extra_space_fac: 1.5
|
|
84
|
+
exchange_facx: 0.1
|
|
85
|
+
exchange_facy: 0.1
|
|
86
|
+
exchange_facc: 0.01
|
|
87
|
+
output_period: 400
|
|
88
|
+
nrpf: 100
|
|
89
|
+
ppm3: 1.0e-06
|
|
90
|
+
pmin: 200
|
|
91
|
+
lin_rho_eos:
|
|
92
|
+
tcoef: 0.2
|
|
93
|
+
t0: 1.0
|
|
94
|
+
scoef: 0.822
|
|
95
|
+
s0: 1.0
|
|
96
|
+
sss_correction:
|
|
97
|
+
dsssdt: 7.777
|
|
98
|
+
sst_correction:
|
|
99
|
+
dsstdt: 7.777
|
|
100
|
+
dic_alk_correction:
|
|
101
|
+
dcdt: 7.777
|
|
102
|
+
marbl_bgc:
|
|
103
|
+
marbl_config_file: marbl_in
|
|
104
|
+
marbl_timestep: 3600.0
|