Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -5,6 +5,7 @@ members from template:
ice_filename: "ice.%mem%.nc"
read_from_file: 1
basename: {{ marine_enspert_relpath }}/ens/
state variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction]
#state variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction]
state variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction, sea_ice_thickness, sea_ice_snow_thickness]
pattern: '%mem%'
nmembers: {{ marine_number_ensemble_members }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
datadir: letkf_output/
date: '{{ marine_window_begin_iso }}'
exp: letkf.inc
type: ens
7 changes: 6 additions & 1 deletion parm/marine/jcb-base.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,17 @@ local_ensemble_da_solver: Deterministic LETKF
use_linear_observer: true

# Increment variables
increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction]
#increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction]
#increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction, sea_ice_volume]
#increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction, sea_ice_thickness]
increment_variables: [sea_water_salinity, sea_water_potential_temperature, sea_surface_height_above_geoid, sea_water_cell_thickness, eastward_sea_water_velocity, northward_sea_water_velocity, sea_ice_area_fraction, sea_ice_thickness, sea_ice_snow_thickness]

# Driver
driver_save_posterior_mean: true
driver_save_prior_mean: true
driver_save_posterior_mean_increment: true
driver_save_posterior_ensemble_increments: true
driver_save_posterior_ensemble: false
driver_save_prior_variance: true
driver_save_posterior_variance: true
driver_do_posterior_observer: true
Expand Down
2 changes: 1 addition & 1 deletion parm/marine/marine_bmat_config.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ data_in:
copy_req:
{% filter indent(width=4) %}
{% include 'marine_det_stage_bkg.yaml.j2' %}
{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %}
{% include 'marine_stage_fix_' ~ '%03d'|format(OCNRES|int) ~ '.yaml.j2' %}
{% include 'marine_stage_utilities.yaml.j2' %}
{% if DOHYBVAR_OCN == "YES" or NMEM_ENS >= 2 %}
{% include 'marine_ens_stage_bkg.yaml.j2' %}
Expand Down
2 changes: 1 addition & 1 deletion parm/marine/marine_det_config.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ data_in:

{% filter indent(width=4) %}
{% include 'marine_det_stage_bkg.yaml.j2' %}
{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %}
{% include 'marine_stage_fix_' ~ '%03d'|format(OCNRES|int) ~ '.yaml.j2' %}
{% include 'marine_stage_utilities.yaml.j2' %}
{% endfilter %}

Expand Down
11 changes: 8 additions & 3 deletions parm/marine/marine_ecen_config.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,13 @@ data_in:

link_req:
{% for imem in range(1,NMEM_ENS+1) %}
- [ "{{ DATA }}/../ensdata/ens/ocean.{{ imem | string }}.nc", '{{ DATA }}/ens/' ]
- [ "{{ DATA }}/../ensdata/ens/ice.{{ imem | string }}.nc", '{{ DATA }}/ens/' ]
# - [ "{{ DATA }}/../ensdata/ens/ocean.{{ imem | string }}.nc", '{{ DATA }}/ens/' ]
# - [ "{{ DATA }}/../ensdata/ens/ice.{{ imem | string }}.nc", '{{ DATA }}/ens/' ]
# - [ "{{ DATA }}/../marineanlletkf/letkf_output/ocn.letkf.inc.ens.{{ imem | string }}.2025-10-10T03:00:00Z.PT3H.nc", '{{ DATA }}/ens/ocean.{{ imem | string }}.nc' ]
# - [ "{{ DATA }}/../marineanlletkf/letkf_output/ice.letkf.inc.ens.{{ imem | string }}.2025-10-10T03:00:00Z.PT3H.nc", '{{ DATA }}/ens/ice.{{ imem | string }}.nc' ]
- ['{{ DATA }}/../marineanlletkf/letkf_output/ocn.letkf.inc.ens.{{ imem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ DATA }}/ens/ocean.{{ imem | string }}.nc' ]
- ['{{ DATA }}/../marineanlletkf/letkf_output/ice.letkf.inc.ens.{{ imem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ DATA }}/ens/ice.{{ imem | string }}.nc' ]

{% endfor %}

copy_req:
Expand All @@ -38,7 +43,7 @@ data_in:

{% filter indent(width=4) %}
{% include 'marine_det_stage_bkg.yaml.j2' %}
{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %}
{% include 'marine_stage_fix_' ~ '%03d'|format(OCNRES|int) ~ '.yaml.j2' %}
{% include 'marine_stage_utilities.yaml.j2' %}
{% endfilter %}

Expand Down
38 changes: 15 additions & 23 deletions parm/marine/marine_ens_config.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,21 @@ data_in:
- ['{{ COMIN_ICE_HISTORY_PREV }}/{{ GPREFIX }}inst.f009.nc', '{{ DATA }}/INPUT/cice.res.nc']

{% filter indent(width=4) %}
{% include 'marine_stage_fix_' ~ OCNRES ~ '.yaml.j2' %}
{% include 'marine_stage_fix_' ~ '%03d'|format(OCNRES|int) ~ '.yaml.j2' %}
{% include 'marine_ens_stage_bkg.yaml.j2' %}
{% endfilter %}

data_out:
mkdir:
- '{{ COMOUT_OCEAN_LETKF }}/diags'

{% for mem in range(1, NMEM_ENS + 1) %}
{% set tmpl_dict = {'${ROTDIR}':ROTDIR,
'${RUN}': GDUMP_ENS,
'${YMD}': current_cycle | to_YMD,
'${HH}': current_cycle | strftime('%H'),
'${MEMDIR}':'mem' + '%03d' % mem} %}

- '{{ COM_OCEAN_LETKF_TMPL | replace_tmpl(tmpl_dict) }}'
- '{{ COM_ICE_LETKF_TMPL | replace_tmpl(tmpl_dict) }}'
- '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}'
- '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}'
{% endfor %}

copy_req:
Expand All @@ -58,26 +56,20 @@ data_out:
'${HH}': current_cycle | strftime('%H'),
'${MEMDIR}':'mem' + '%03d' % mem} %}

- ['{{ DATA }}/letkf_output/ocn.letkf.ens.{{ mem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COM_OCEAN_LETKF_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}jedi_analysis.a006.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.ens.{{ mem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COM_ICE_LETKF_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}jedi_analysis.a006.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.inc.ens.{{ mem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COM_OCEAN_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}jedi_analysis.a006.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.inc.ens.{{ mem }}.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COM_ICE_ANALYSIS_TMPL | replace_tmpl(tmpl_dict) }}/{{ APREFIX_ENS }}jedi_analysis.a006.nc']
{% endfor %}

# Save LETKF background and analysis mean and variance, mean analysis increment
- ['{{ DATA }}/letkf_output/ocn.letkf.mean_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensmean_prior.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.mean_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensmean_prior.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.var_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensvar_prior.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.var_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensvar_prior.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensmean_post.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensmean_post.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.var_post.an.{{ WINDOW_MIDDLE | to_isotime}}.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensvar_post.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.var_post.an.{{ WINDOW_MIDDLE | to_isotime}}.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensvar_post.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.inc.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_LETKF }}/{{ APREFIX_ENS }}ensmean_incr.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.inc.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_LETKF }}/{{ APREFIX_ENS }}ensmean_incr.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.mean_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX_ENS }}ensmean_prior.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.mean_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX_ENS }}ensmean_prior.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.var_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX_ENS }}ensvar_prior.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.var_prior.fc.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX_ENS }}ensvar_prior.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX_ENS }}ensmean_post.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX_ENS }}ensmean_post.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.var_post.an.{{ WINDOW_MIDDLE | to_isotime}}.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX_ENS }}ensvar_post.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.var_post.an.{{ WINDOW_MIDDLE | to_isotime}}.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX_ENS }}ensvar_post.nc']
- ['{{ DATA }}/letkf_output/ocn.letkf.inc.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_OCEAN_ANALYSIS }}/{{ APREFIX_ENS }}ensmean_incr.nc']
- ['{{ DATA }}/letkf_output/ice.letkf.inc.ens.0.{{ WINDOW_BEGIN | to_isotime }}.PT3H.nc', '{{ COMOUT_ICE_ANALYSIS }}/{{ APREFIX_ENS }}ensmean_incr.nc']

- ['{{ DATA }}/letkf.yaml', '{{ COMOUT_CONF }}/soca_letkf.yaml']

copy_opt:
# save obs diags
{% for ob_name in observations %}
- ['{{ DATA }}/diags/{{ ob_name }}.nc', '{{ COMOUT_OCEAN_LETKF }}/diags']
{% endfor %}
Loading