Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
cb9c947
write out exceptions
Dooruk Oct 3, 2025
c1f7119
minor changes, make TUI message clearer
Dooruk Oct 3, 2025
3ca20c4
changes in moving files between forecast cycles
Dooruk Oct 3, 2025
10ff584
take out the linking task
Dooruk Oct 3, 2025
79e6153
introduce simplified coupled tasks assuming direct execution of GEOS …
Dooruk Oct 7, 2025
b573f10
forecast suite changes
Dooruk Oct 7, 2025
a1fd030
revamp files, more changes underway
Dooruk Oct 7, 2025
55aeb11
define new coupled model only suite
Dooruk Oct 7, 2025
4c8b9a3
change forecast location and make forecast a static folder
Dooruk Dec 1, 2025
2f8ed47
format and code suggestions
Dooruk Dec 18, 2025
f44ec97
document and codestring
Dooruk Dec 18, 2025
c02bf4d
dont except exception, send exception type to logger
Dooruk Jan 26, 2026
e872e38
background error new form
Dooruk Jan 26, 2026
2aab229
get rid off deprecated keys
Dooruk Feb 2, 2026
a35440d
let go off catching exceptions
Dooruk Feb 2, 2026
4454c92
Merge branch 'develop' into feature/exec_geos_direct_part1
Dooruk Feb 2, 2026
1008a81
revert genB to original
Dooruk Feb 3, 2026
d6e5b99
get rid of unused keys, create alternative method (R2D2, albeit inact…
Dooruk Feb 3, 2026
d081529
minor changes to keep up with PRs
Dooruk Feb 3, 2026
14de66a
changes related to initial restarts
Dooruk Feb 3, 2026
c898ab1
first model specific task
Dooruk Feb 3, 2026
4facad7
Merge branch 'develop' into feature/exec_geos_direct_part1
Dooruk Feb 3, 2026
3ad2722
code style fixes
Dooruk Feb 3, 2026
1d71e1e
adapt to new obs handling
Dooruk Feb 4, 2026
eb4383a
skip save_restart while figuring R2D2 out
Dooruk Feb 4, 2026
6dc3825
deprecated keys related changes and few fixes
Dooruk Feb 4, 2026
23577cf
some changes for geosv12
Dooruk Feb 5, 2026
bad345f
changes in geos class utility for geos v12
Dooruk Feb 5, 2026
c03d9ac
changes for 3dvar_cycle to test get, prep and run
Dooruk Feb 5, 2026
68cea55
make forecast_geos use new method
Dooruk Feb 10, 2026
e6b5643
few fixes, stop using adjacent cycle
Dooruk Feb 10, 2026
cfd44be
clarify homdir expdir logic
Dooruk Feb 10, 2026
3adf0d7
netcdf specify
Dooruk Feb 10, 2026
b9a9a47
Merge branch 'develop' into feature/exec_geos_direct_part1
Dooruk Feb 10, 2026
c2317a3
better statement
Dooruk Feb 12, 2026
ba29005
take out model specific approach from this PR
Dooruk Feb 12, 2026
33a968c
apply minor code improvements
Dooruk Feb 12, 2026
23bc8a5
Merge branch 'develop' into feature/exec_geos_direct_part1
Dooruk Feb 12, 2026
f2e787d
Merge branch 'feature/exec_geos_direct_part1' into feature/exec_geos_…
Dooruk Feb 12, 2026
60b13c5
rename suites, take out obsolete parts and tasks
Dooruk Feb 12, 2026
2cffb0f
add docstrings and proper naming for tasks as forecast directory is n…
Dooruk Feb 13, 2026
b5b61da
version bump
Dooruk Feb 13, 2026
3149f05
suite changes with new task names
Dooruk Feb 18, 2026
dbe0a3f
code improvements
Dooruk Feb 18, 2026
7a2ad5f
make mom6_iau model dependent
Dooruk Feb 20, 2026
f24cd0a
cycle times hack
Dooruk Feb 20, 2026
5094cda
make experiment.yaml non-alphabetical again by using default ruamel
Dooruk Feb 20, 2026
022287b
relevant for experiment.yaml
Dooruk Feb 20, 2026
53ede0e
minor fix for MOM6 IAU
Dooruk Feb 20, 2026
714ecfe
cycle times and overrride fixes
Dooruk Feb 20, 2026
c88b448
add tier2 cycling run
Dooruk Feb 20, 2026
01905d5
Merge branch 'develop' into feature/exec_geos_direct_part2
Dooruk Feb 20, 2026
1c7f831
Merge branch 'develop' into feature/exec_geos_direct_part1
Dooruk Feb 23, 2026
8127f55
observation changes for new gdas_marine obs
Dooruk Feb 23, 2026
6ec5a39
take csh out, add more observers for tier2
Dooruk Feb 23, 2026
fa72657
experiment.yaml original order
Dooruk Feb 23, 2026
d5b6221
observation yaml, calculate obserror in timeseries
Dooruk Feb 23, 2026
01b13b7
tier2 in 3dvar_marine_cycle
Dooruk Feb 23, 2026
afa338e
update documentation and add another example
Dooruk Feb 23, 2026
2063efa
erase obsolete tasks
Dooruk Feb 23, 2026
0436b08
marine suite configs homdir location
Dooruk Feb 23, 2026
3f82f8e
include hotstart option for model runs, take out unnecessary questions
Dooruk Feb 23, 2026
25ca9ee
fix platform defaults
Dooruk Feb 23, 2026
5396d0b
Merge branch 'feature/exec_geos_direct_part2' into feature/exec_geos_…
Dooruk Feb 23, 2026
ef63eed
erase obsolete methods, add docstrings
Dooruk Feb 23, 2026
b0e948d
pycodestyle
Dooruk Feb 23, 2026
0fdc3db
erase window_offset
Dooruk Feb 23, 2026
e281542
Run gcm_run.j directly -- part2, rename suites (#703)
Dooruk Feb 23, 2026
5d59260
last changes
Dooruk Feb 23, 2026
70d2c9b
minor fixes
Dooruk Feb 25, 2026
6057a4b
another minot fix
Dooruk Feb 25, 2026
7b0773a
more docs changes
Dooruk Mar 2, 2026
54b7407
Merge branch 'feature/exec_geos_direct_part3' into feature/exec_geos_…
Dooruk Mar 2, 2026
697b750
fix merge mixup
Dooruk Mar 2, 2026
5fc3f1e
erase remaining 3dvar references
Dooruk Mar 2, 2026
f4fc27b
Merge branch 'develop' into feature/exec_geos_direct_part1
Dooruk Mar 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ saber central block:
- sea_surface_height_above_geoid
read:
groups:
- variables: [sea_water_potential_temperature, sea_water_salinity]
- variables:
- sea_water_potential_temperature
- sea_water_salinity
horizontal:
filepath: 'background_error_model/hz_rossby'
filepath: 'background_error_model/new_corr_1p0'
# filepath: 'background_error_model/hz_rossby'
vertical:
levels: {{vertical_resolution}}
filepath: 'background_error_model/vt.{{local_background_time}}'
Expand All @@ -26,7 +29,8 @@ saber central block:
- sea_ice_snow_thickness
{% endif %}
horizontal:
filepath: 'background_error_model/hz_rossby_1p5'
# filepath: 'background_error_model/hz_rossby_1p5'
filepath: 'background_error_model/new_corr_1p5'

date: '{{local_background_time_iso}}'

Expand All @@ -43,6 +47,8 @@ saber outer blocks:
variable: sst_bgerr
unbalanced salinity: {} # use default values
unbalanced ssh: {} # use default values
# save diagnostics:
# filepath: parametric_ocean_stddev_diags

linear variable change:
input variables: {{analysis_variables}}
Expand Down
10 changes: 8 additions & 2 deletions src/swell/deployment/create_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,8 @@ def create_experiment_directory(
# resolve the templates and write the suite file to the experiment suite directory.
# --------------------------------------------------------------------------------------------
swell_suite_path = os.path.join(get_swell_path(), 'suites', suite)
prepare_cylc_suite_jinja2(logger, swell_suite_path, exp_suite_path, experiment_dict, platform)
prepare_cylc_suite_jinja2(logger, swell_suite_path, exp_suite_path, experiment_dict,
platform, exp_path)

# Copy suite and platform files to experiment suite directory
# -----------------------------------------------------------
Expand Down Expand Up @@ -424,7 +425,8 @@ def prepare_cylc_suite_jinja2(
swell_suite_path: str,
exp_suite_path: str,
experiment_dict: dict,
platform: str
platform: str,
experiment_path: str
) -> None:

# Open suite file from swell
Expand All @@ -436,6 +438,10 @@ def prepare_cylc_suite_jinja2(
# ----------------------------------------------------------
render_dictionary = copy.deepcopy(experiment_dict)

# Add experiment path to the rendering dictionary
# ----------------------------------------------------
render_dictionary['experiment_path'] = experiment_path

# Get unique list of cycle times with model flags to render dictionary
# --------------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion src/swell/deployment/launch_experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def cylc_run_experiment(self) -> None: # NB: Could be a factory based on workfl
self.logger.info(' ')

# Launch the job monitor
self.logger.critical('Launching the TUI, press \'q\' at any time to exit the TUI')
self.logger.critical('Press any key to launch the TUI. To exit TUI, press \'q\' at any time.')
input()
self.logger.info(' ')
self.logger.info('TUI can be relaunched with:')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ crtm_coeff_dir:
default_value: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/jedi/crtm_coefficients/2.4.1/

existing_geos_gcm_build_path:
default_value: /discover/nobackup/projects/gmao/SIteam/Models/GEOSgcm-v11.6.0/install-SLES15
default_value: /discover/nobackup/projects/gmao/SIteam/Models/GEOSgcm-GCMv12-rc12/install

existing_geos_gcm_source_path:
default_value: /discover/nobackup/projects/gmao/SIteam/Models/GEOSgcm-v11.6.0/
default_value: /discover/nobackup/projects/gmao/SIteam/Models/GEOSgcm-GCMv12-rc12/

existing_jedi_build_directory:
default_value: /discover/nobackup/projects/gmao/advda/swell/JediBundles/fv3_soca_SLES15_12092025/build-intel-release/
Expand All @@ -19,6 +19,9 @@ existing_jedi_source_directory:
existing_jedi_source_directory_pinned:
default_value: /discover/nobackup/projects/gmao/advda/jedi_bundles_sles15/current_pinned_jedi_bundle/source/

geos_homdir:
default_value: /discover/nobackup/projects/gmao/advda/SwellStaticFiles/geos/homdirs/coupled_025deg

geos_experiment_directory:
default_value: 5deg_0701

Expand Down
170 changes: 170 additions & 0 deletions src/swell/suites/3dfgat_coupled_cycle/eva/increment-geos_marine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
datasets:

- name: ocean_increment
type: SocaRestart
soca_filenames: {{increment_file_path}}
geometry_file: {{cycle_dir}}/INPUT/soca_gridspec.nc
variables: [Temp, Salt, ave_ssh]
coordinate variables: [lon, lat]

{% if 'cice6' in marine_models %}
- name: seaice_increment
type: SocaRestart
soca_filenames: {{ice_increment_file_path}}
geometry_file: {{cycle_dir}}/INPUT/soca_gridspec.nc
variables: [aice_h]
coordinate variables: [lon, lat]
{% endif %}

graphics:

plotting_backend: Emcpy
figure_list:

- batch figure:
variables: [ave_ssh]
figure:
figure size: [20,10]
layout: [1,1]
title: 'SOCA Increment'
output name: '{{cycle_dir}}/eva/increment/map_plots/${variable}/inc_${variable}.png'
plots:
- mapping:
projection: plcarr
domain: global
add_map_features: ['coastline']
add_colorbar:
label: SSH Increment
add_grid:
layers:
- type: MapGridded
longitude:
variable: ocean_increment::SOCAgrid::lon
latitude:
variable: ocean_increment::SOCAgrid::lat
data:
variable: ocean_increment::SOCAVars::ave_ssh
label: ave_ssh increment
colorbar: true
cmap: 'bwr'
vmin: -0.25
vmax: 0.25

- batch figure:
variables: [Temp]
figure:
figure size: [20,10]
layout: [1,1]
title: 'Soca Increment'
output name: '{{cycle_dir}}/eva/increment/map_plots/${variable}/inc_${variable}.png'
plots:
- mapping:
projection: plcarr
domain: global
add_map_features: ['coastline']
add_colorbar:
label: SST Increment
add_grid:
layers:
- type: MapGridded
longitude:
variable: ocean_increment::SOCAgrid::lon
latitude:
variable: ocean_increment::SOCAgrid::lat
data:
variable: ocean_increment::SOCAVars::Temp
slices: '[0,...]'
label: SST increment
colorbar: true
cmap: 'bwr'
vmin: -3
vmax: 3

- batch figure:
variables: [Salt]
figure:
figure size: [20,10]
layout: [1,1]
title: 'Soca Increment'
output name: '{{cycle_dir}}/eva/increment/map_plots/${variable}/inc_${variable}.png'
plots:
- mapping:
projection: plcarr
domain: global
add_map_features: ['coastline']
add_colorbar:
label: SSS Increment
add_grid:
layers:
- type: MapGridded
longitude:
variable: ocean_increment::SOCAgrid::lon
latitude:
variable: ocean_increment::SOCAgrid::lat
data:
variable: ocean_increment::SOCAVars::Salt
slices: '[0,...]'
label: SSS increment
colorbar: true
cmap: 'bwr'
vmin: -1
vmax: 1

{% if 'cice6' in marine_models %}
- batch figure:
variables: [aice_h]
figure:
figure size: [20,10]
layout: [1,1]
title: 'Increment from JEDI'
output name: '{{cycle_dir}}/eva/increment/map_plots/${variable}/inc_s_${variable}.png'
plots:
- mapping:
projection: spstere
domain: south
add_map_features: ['coastline']
add_colorbar:
label: Sea-ice Concentration Increment
add_grid:
layers:
- type: MapGridded
longitude:
variable: seaice_increment::SOCAgrid::lon
latitude:
variable: seaice_increment::SOCAgrid::lat
data:
variable: seaice_increment::SOCAVars::aice_h
label: Sea ice concentration increment
colorbar: true
cmap: 'bwr'
vmin: -1
vmax: 1
- batch figure:
variables: [aice_h]
figure:
figure size: [20,10]
layout: [1,1]
title: 'Increment from JEDI'
output name: '{{cycle_dir}}/eva/increment/map_plots/${variable}/inc_n_${variable}.png'
plots:
- mapping:
projection: npstere
domain: north
add_map_features: ['coastline']
add_colorbar:
label: Sea-ice Concentration Increment
add_grid:
layers:
- type: MapGridded
longitude:
variable: seaice_increment::SOCAgrid::lon
latitude:
variable: seaice_increment::SOCAgrid::lat
data:
variable: seaice_increment::SOCAVars::aice_h
label: Sea-ice concentration increment
colorbar: true
cmap: 'bwr'
vmin: -1
vmax: 1
{% endif %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
datasets:

- type: JediLog
collection_name: jedi_log_test
jedi_log_to_parse: '{{cycle_dir}}/jedi_fgat_log.log'
data_to_parse:
convergence: true

graphics:

plotting_backend: Emcpy
figure_list:

- figure:
layout: [3,1]
figure size: [12,10]
title: 'Residual Norm and Norm Reduction Plots'
output name: '{{cycle_dir}}/eva/jedi_log/convergence/residual_norm_reduction.png'
plots:
- add_xlabel: 'Total inner iteration number'
add_ylabel: 'Residual norm'
layers:
- type: LinePlot
x:
variable: jedi_log_test::convergence::total_iteration
y:
variable: jedi_log_test::convergence::residual_norm
color: 'black'

- add_xlabel: 'Total inner iteration number'
add_ylabel: 'Norm reduction'
layers:
- type: LinePlot
x:
variable: jedi_log_test::convergence::total_iteration
y:
variable: jedi_log_test::convergence::norm_reduction
color: 'black'

- add_xlabel: 'Total inner iteration number'
add_ylabel: 'Normalized Value'
add_legend:
layers:
- type: LinePlot
x:
variable: jedi_log_test::convergence::total_iteration
y:
variable: jedi_log_test::convergence::residual_norm_normalized
color: 'red'
label: 'Normalized residual norm'
- type: LinePlot
x:
variable: jedi_log_test::convergence::total_iteration
y:
variable: jedi_log_test::convergence::norm_reduction_normalized
color: 'blue'
label: 'Normalized norm reduction'
Loading
Loading