Skip to content

Commit

Permalink
Renamed and reapportioned yamls for letkf task (#1212)
Browse files Browse the repository at this point in the history
Renames/moves common yamls from letkf subdir and rearranges contents to
serve for tools common to SOCA

Another step toward resolving
#1091, paired with g-w
NOAA-EMC/global-workflow#2635
  • Loading branch information
AndrewEichmann-NOAA authored Jul 8, 2024
1 parent 5ae609e commit 134ad36
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 47 deletions.
4 changes: 2 additions & 2 deletions parm/soca/letkf/letkf.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ background:
members from template:
template:
date: '{{ WINDOW_MIDDLE | to_isotime }}'
ocn_filename: "{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc"
ice_filename: "{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc"
ocn_filename: "{{ RUN }}.ocean.t{{ gcyc }}z.inst.f006.nc"
ice_filename: "{{ RUN }}.ice.t{{ gcyc }}z.inst.f006.nc"
read_from_file: 1
basename: ./ens/mem%mem%
state variables: [socn, tocn, ssh, uocn, vocn, cicen]
Expand Down
38 changes: 0 additions & 38 deletions parm/soca/letkf/letkf_stage.yaml.j2
Original file line number Diff line number Diff line change
@@ -1,49 +1,11 @@
######################################
# set some variables
######################################
{% set gPDY = previous_cycle | to_YMD %}
{% set gcyc = previous_cycle | strftime("%H") %}
{% set PDY = current_cycle | to_YMD %}
{% set cyc = current_cycle | strftime("%H") %}
######################################
# create working directories
######################################
mkdir:
- "{{ DATA }}/Data"
- "{{ DATA }}/obs"
- "{{ DATA }}/INPUT"
{% for mem in range(1, NMEM_ENS + 1) %}
- "{{ DATA }}/ens/mem{{ '%03d' % mem }}"
{% endfor %}
copy:
######################################
# copy mom input template
######################################
- ["{{ PARMgfs }}/gdas/soca/fms/input.nml", "{{ DATA }}/mom_input.nml.tmpl"]
######################################
# copy ensemble background files
######################################
{% for mem in range(1, NMEM_ENS + 1) %}
# define variables
# Declare a dict of search and replace terms to GDUMP on each template
{% set tmpl_dict = {'ROTDIR':ROTDIR,
'RUN': GDUMP_ENS,
'YMD':gPDY,
'HH':gcyc,
'MEMDIR':"mem" + '%03d' % mem} %}

# Replace template variables with tmpl_dict, one key at a time
# This must be done in a namespace to overcome jinja scoping
# Variables set inside of a for loop are lost at the end of the loop
# unless they are part of a namespace
{% set com_prev_ocn = namespace(COMIN_OCEAN_HISTORY_MEM = COM_OCEAN_HISTORY_TMPL) %}
{% set com_prev_ice = namespace(COMIN_ICE_HISTORY_MEM = COM_ICE_HISTORY_TMPL) %}
{% for key in tmpl_dict.keys() %}
{% set search_term = '${' + key + '}' %}
{% set replace_term = tmpl_dict[key] %}
{% set com_prev_ocn.COMIN_OCEAN_HISTORY_MEM = com_prev_ocn.COMIN_OCEAN_HISTORY_MEM.replace(search_term, replace_term) %}
{% set com_prev_ice.COMIN_ICE_HISTORY_MEM = com_prev_ice.COMIN_ICE_HISTORY_MEM.replace(search_term, replace_term) %}
{% endfor %}
- ["{{ com_prev_ocn.COMIN_OCEAN_HISTORY_MEM }}/{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc", "{{ DATA }}/ens/mem{{ '%03d' % mem }}/{{ GDUMP_ENS }}.ocean.t{{ gcyc }}z.inst.f006.nc"]
- ["{{ com_prev_ice.COMIN_ICE_HISTORY_MEM }}/{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc", "{{ DATA }}/ens/mem{{ '%03d' % mem }}/{{ GDUMP_ENS }}.ice.t{{ gcyc }}z.inst.f006.nc"]
{% endfor %}
40 changes: 40 additions & 0 deletions parm/soca/soca_ens_bkg_stage.yaml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
######################################
# set some variables
######################################
{% set gPDY = previous_cycle | to_YMD %}
{% set gcyc = previous_cycle | strftime("%H") %}
######################################
# create ens bkg directories
######################################
mkdir:
{% for mem in range(1, NMEM_ENS + 1) %}
- "{{ DATA }}/ens/mem{{ '%03d' % mem }}"
{% endfor %}
######################################
# copy ensemble background files
######################################
copy:
{% for mem in range(1, NMEM_ENS + 1) %}
# define variables
# Declare a dict of search and replace terms to GDUMP on each template
{% set tmpl_dict = {'ROTDIR':ROTDIR,
'RUN': RUN,
'YMD':gPDY,
'HH':gcyc,
'MEMDIR':"mem" + '%03d' % mem} %}

# Replace template variables with tmpl_dict, one key at a time
# This must be done in a namespace to overcome jinja scoping
# Variables set inside of a for loop are lost at the end of the loop
# unless they are part of a namespace
{% set com_prev_ocn = namespace(COMIN_OCEAN_HISTORY_MEM = COM_OCEAN_HISTORY_TMPL) %}
{% set com_prev_ice = namespace(COMIN_ICE_HISTORY_MEM = COM_ICE_HISTORY_TMPL) %}
{% for key in tmpl_dict.keys() %}
{% set search_term = '${' + key + '}' %}
{% set replace_term = tmpl_dict[key] %}
{% set com_prev_ocn.COMIN_OCEAN_HISTORY_MEM = com_prev_ocn.COMIN_OCEAN_HISTORY_MEM.replace(search_term, replace_term) %}
{% set com_prev_ice.COMIN_ICE_HISTORY_MEM = com_prev_ice.COMIN_ICE_HISTORY_MEM.replace(search_term, replace_term) %}
{% endfor %}
- ["{{ com_prev_ocn.COMIN_OCEAN_HISTORY_MEM }}/{{ RUN }}.ocean.t{{ gcyc }}z.inst.f006.nc", "{{ DATA }}/ens/mem{{ '%03d' % mem }}/{{ RUN }}.ocean.t{{ gcyc }}z.inst.f006.nc"]
- ["{{ com_prev_ice.COMIN_ICE_HISTORY_MEM }}/{{ RUN }}.ice.t{{ gcyc }}z.inst.f006.nc", "{{ DATA }}/ens/mem{{ '%03d' % mem }}/{{ RUN }}.ice.t{{ gcyc }}z.inst.f006.nc"]
{% endfor %}
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# TODO(AFE): make resolution dependent
mkdir:
- "{{ DATA }}/INPUT"
######################################
# fix files to copy
######################################
Expand Down
15 changes: 8 additions & 7 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,14 @@ add_test(NAME test_gdasapp_jedi_increment_to_fv3
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/)

# high level tests that require the global-workflow
if (WORKFLOW_TESTS)

# test for creating an experiment directory within the global-workflow
add_test(NAME test_gdasapp_setup_cycled_exp
COMMAND ${PROJECT_SOURCE_DIR}/test/setup_workflow_exp.sh ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/testrun)
endif()
# TODO(AFE) see GDASApp issue #1213
#if (WORKFLOW_TESTS)
#
# # test for creating an experiment directory within the global-workflow
# add_test(NAME test_gdasapp_setup_cycled_exp
# COMMAND ${PROJECT_SOURCE_DIR}/test/setup_workflow_exp.sh ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}
# WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/testrun)
#endif()

if (${BUILD_GDASBUNDLE})
add_subdirectory(fv3jedi) # fv3jedi tests
Expand Down

0 comments on commit 134ad36

Please sign in to comment.