Skip to content

Commit

Permalink
Reenable Orion Cycling Support (#2877)
Browse files Browse the repository at this point in the history
This updates the model hash to include the UPP update needed to be able
to run the post processor on Orion, thus reenabling support on that
system.

A note on the UPP: it is using a newer version of g2tmpl that requires a
separate spack-stack 1.6.0 installation. This version of g2tmpl will be
standard in spack-stack 1.8.0, but for now requires loading separate
modules for the UPP.

A note on running analyses on Orion: due to a yet-unknown issue causing
the BUFR library to run much slower on Orion when compared with Rocky 8,
the GSI and GDASApp are expected to run significantly slower than on any
other platform (on the order of an hour longer).

Lastly, I made adjustments to the build_all.sh script to send more cores
to compiling the UFS and GDASApp. Under this configuration, the GSI,
UPP, UFS_Utils, and WW3 pre/post executables finish compiling before the
UFS when run with 20 cores.

Resolves #2694 
Resolves #2851 

---------

Co-authored-by: Rahul Mahajan <[email protected]>
Co-authored-by: Walter.Kolczynski <[email protected]>
  • Loading branch information
3 people authored Sep 7, 2024
1 parent 6519211 commit ac93a9b
Show file tree
Hide file tree
Showing 15 changed files with 93 additions and 90 deletions.
42 changes: 3 additions & 39 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,8 @@ parm/gdas/soca
parm/gdas/jcb-gdas
parm/gdas/jcb-algorithms
parm/monitor
parm/post/AEROSOL_LUTS.dat
parm/post/nam_micro_lookup.dat
parm/post/optics_luts_DUST.dat
parm/post/gtg.config.gfs
parm/post/gtg_imprintings.txt
parm/post/optics_luts_DUST_nasa.dat
parm/post/optics_luts_NITR_nasa.dat
parm/post/optics_luts_SALT.dat
Expand All @@ -70,47 +67,14 @@ parm/post/optics_luts_WASO.dat
parm/post/optics_luts_WASO_nasa.dat
parm/post/params_grib2_tbl_new
parm/post/post_tag_gfs128
parm/post/post_tag_gfs65
parm/post/postcntrl_gefs.xml
parm/post/postcntrl_gefs_aerosol.xml
parm/post/postcntrl_gefs_anl.xml
parm/post/postcntrl_gefs_chem.xml
parm/post/postcntrl_gefs_f00.xml
parm/post/postcntrl_gfs.xml
parm/post/postcntrl_gfs_anl.xml
parm/post/postcntrl_gfs_f00.xml
parm/post/postcntrl_gfs_f00_two.xml
parm/post/postcntrl_gfs_flux.xml
parm/post/postcntrl_gfs_flux_f00.xml
parm/post/postcntrl_gfs_goes.xml
parm/post/postcntrl_gfs_goes.xml-new
parm/post/postcntrl_gfs_two.xml
parm/post/postcntrl_gfs_wafs.xml
parm/post/postcntrl_gfs_wafs_anl.xml
parm/post/postxconfig-NT-GEFS-ANL.txt
parm/post/postxconfig-NT-GEFS-F00.txt
parm/post/postxconfig-NT-GEFS-F00-aerosol.txt
parm/post/postxconfig-NT-GEFS-WAFS.txt
parm/post/postxconfig-NT-GEFS-aerosol.txt
parm/post/postxconfig-NT-GEFS.txt
parm/post/postxconfig-NT-GFS-ANL.txt
parm/post/postxconfig-NT-GFS-F00-TWO.txt
parm/post/postxconfig-NT-GFS-F00.txt
parm/post/postxconfig-NT-GFS-FLUX-F00.txt
parm/post/postxconfig-NT-GFS-FLUX.txt
parm/post/postxconfig-NT-GFS-GOES.txt
parm/post/postxconfig-NT-GFS-TWO.txt
parm/post/postxconfig-NT-GFS-WAFS-ANL.txt
parm/post/postxconfig-NT-GFS-WAFS.txt
parm/post/postxconfig-NT-GFS.txt
parm/post/postxconfig-NT-gefs-aerosol.txt
parm/post/postxconfig-NT-gefs-chem.txt
parm/post/gfs
parm/post/gefs
parm/post/ocean.csv
parm/post/ice.csv
parm/post/ocnicepost.nml.jinja2
parm/ufs/noahmptable.tbl
parm/ufs/model_configure.IN
parm/ufs/model_configure_nest.IN
parm/ufs/input_global_nest.nml.IN
parm/ufs/MOM_input_*.IN
parm/ufs/MOM6_data_table.IN
parm/ufs/ice_in.IN
Expand Down
4 changes: 0 additions & 4 deletions parm/config/gefs/config.base
Original file line number Diff line number Diff line change
Expand Up @@ -268,10 +268,6 @@ export OUTPUT_GRID="gaussian_grid"
export WRITE_DOPOST=".true." # WRITE_DOPOST=true, use inline POST
export WRITE_NSFLIP=".true."

# Override normal post flat files for GEFS
export FLTFILEGFS="${PARMgfs}/post/postxconfig-NT-GEFS.txt"
export FLTFILEGFSF00="${PARMgfs}/post/postxconfig-NT-GEFS-F00.txt"

# Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL
export imp_physics=8

Expand Down
21 changes: 20 additions & 1 deletion parm/config/gefs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,25 @@ export ntasks_fv3_gfs
export ntasks_quilt
export ntasks_quilt_gfs

# Determine whether to use compression in the write grid component based on resolution
case ${fv3_res} in
"C48" | "C96" | "C192" | "C384")
zstandard_level=0
ideflate=0
quantize_nsd=0
;;
"C768" | "C1152" | "C3072")
zstandard_level=0
ideflate=1
quantize_nsd=5
;;
*)
echo "FATAL ERROR: Unrecognized FV3 resolution ${fv3_res}"
exit 15
;;
esac
export zstandard_level ideflate quantize_nsd

# Determine whether to use parallel NetCDF based on resolution
case ${fv3_res} in
"C48" | "C96" | "C192" | "C384")
Expand Down Expand Up @@ -353,7 +372,7 @@ if [[ "${skip_mom6}" == "false" ]]; then
if [[ ${RUN} == "gfs" || "${RUN}" == "gefs" ]]; then
MOM6_DIAG_COORD_DEF_Z_FILE="interpolate_zgrid_40L.nc"
MOM6_DIAG_MISVAL="-1e34"
else
else
MOM6_DIAG_COORD_DEF_Z_FILE="oceanda_zgrid_75L.nc"
MOM6_DIAG_MISVAL="0.0"
fi
Expand Down
9 changes: 7 additions & 2 deletions parm/config/gfs/config.resources.ORION
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ case ${step} in
# Remove this block once GSI issue is resolved
# https://github.com/NOAA-EMC/GSI/pull/764
# https://github.com/JCSDA/spack-stack/issues/1166
export wtime_anal_gdas="02:40:00"
export wtime_anal_gfs="02:00:00"
export walltime_gdas="02:40:00"
export walltime_gfs="02:00:00"
;;
"eobs")
# TODO:
# Remove this block once the GSI issue is resolved.
export walltime="00:45:00"
;;
*)
;;
Expand Down
19 changes: 19 additions & 0 deletions parm/config/gfs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,25 @@ export ntasks_fv3_gfs
export ntasks_quilt_gdas
export ntasks_quilt_gfs

# Determine whether to use compression in the write grid component based on resolution
case ${fv3_res} in
"C48" | "C96" | "C192" | "C384")
zstandard_level=0
ideflate=0
quantize_nsd=0
;;
"C768" | "C1152" | "C3072")
zstandard_level=0
ideflate=1
quantize_nsd=5
;;
*)
echo "FATAL ERROR: Unrecognized FV3 resolution ${fv3_res}"
exit 15
;;
esac
export zstandard_level ideflate quantize_nsd

# Determine whether to use parallel NetCDF based on resolution
case ${fv3_res} in
"C48" | "C96" | "C192" | "C384")
Expand Down
12 changes: 6 additions & 6 deletions parm/post/upp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ analysis:
rdaod: True
data_in:
copy:
- ["{{ PARMgfs }}/post/postxconfig-NT-GFS-ANL.txt", "{{ DATA }}/postxconfig-NT.txt"]
- ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-anl.txt", "{{ DATA }}/postxconfig-NT.txt"]
- ["{{ COM_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmanl.nc", "{{ DATA }}/{{ atmos_filename }}"]
- ["{{ COM_ATMOS_ANALYSIS }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcanl.nc", "{{ DATA }}/{{ flux_filename }}"]
data_out:
Expand All @@ -32,9 +32,9 @@ forecast:
data_in:
copy:
{% if forecast_hour == 0 %}
- ["{{ PARMgfs }}/post/postxconfig-NT-GFS-F00-TWO.txt", "{{ DATA }}/postxconfig-NT.txt"]
- ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-f00-two.txt", "{{ DATA }}/postxconfig-NT.txt"]
{% else %}
- ["{{ PARMgfs }}/post/postxconfig-NT-GFS-TWO.txt", "{{ DATA }}/postxconfig-NT.txt"]
- ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-two.txt", "{{ DATA }}/postxconfig-NT.txt"]
{% endif %}
- ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"]
- ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"]
Expand Down Expand Up @@ -81,10 +81,10 @@ goes:
{% endfor %}
- ["{{ 'CRTM_FIX' | getenv }}/AerosolCoeff.bin", "{{ DATA }}/"]
- ["{{ 'CRTM_FIX' | getenv }}/CloudCoeff.bin", "{{ DATA }}/"]
- ["{{ PARMgfs }}/post/postxconfig-NT-GFS-GOES.txt", "{{ DATA }}/postxconfig-NT.txt"]
- ["{{ PARMgfs }}/post/gfs/postxconfig-NT-gfs-goes.txt", "{{ DATA }}/postxconfig-NT.txt"]
- ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.atmf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ atmos_filename }}"]
- ["{{ COM_ATMOS_HISTORY }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.sfcf{{ '%03d' % forecast_hour }}.nc", "{{ DATA }}/{{ flux_filename }}"]
data_out:
copy:
- ["{{ DATA }}/GFSPRS.GrbF{{ '%02d' % forecast_hour }}", "{{ COM_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.special.grb2f{{ '%03d' % forecast_hour }}"]
- ["{{ DATA }}/GFSPRS.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COM_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.special.grb2if{{ '%03d' % forecast_hour }}"]
- ["{{ DATA }}/GFSGOES.GrbF{{ '%02d' % forecast_hour }}", "{{ COM_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.special.grb2f{{ '%03d' % forecast_hour }}"]
- ["{{ DATA }}/GFSGOES.GrbF{{ '%02d' % forecast_hour }}.idx", "{{ COM_ATMOS_MASTER }}/{{ RUN }}.t{{ current_cycle | strftime('%H') }}z.special.grb2if{{ '%03d' % forecast_hour }}"]
8 changes: 4 additions & 4 deletions sorc/build_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -131,16 +131,16 @@ build_jobs["ufs"]=8
big_jobs=$((big_jobs+1))
build_opts["ufs"]="${_wave_opt} ${_verbose_opt} ${_build_ufs_opt} ${_build_debug}"

build_jobs["upp"]=2
build_jobs["upp"]=1
build_opts["upp"]="${_build_debug}"

build_jobs["ufs_utils"]=2
build_jobs["ufs_utils"]=1
build_opts["ufs_utils"]="${_verbose_opt} ${_build_debug}"

build_jobs["gfs_utils"]=1
build_opts["gfs_utils"]="${_verbose_opt} ${_build_debug}"

build_jobs["ww3prepost"]=2
build_jobs["ww3prepost"]=1
build_opts["ww3prepost"]="${_wave_opt} ${_verbose_opt} ${_build_ufs_opt} ${_build_debug}"

# Optional DA builds
Expand All @@ -154,7 +154,7 @@ if [[ "${_build_ufsda}" == "YES" ]]; then
fi
fi
if [[ "${_build_gsi}" == "YES" ]]; then
build_jobs["gsi_enkf"]=8
build_jobs["gsi_enkf"]=2
build_opts["gsi_enkf"]="${_verbose_opt} ${_build_debug}"
fi
if [[ "${_build_gsi}" == "YES" || "${_build_ufsda}" == "YES" ]] ; then
Expand Down
23 changes: 11 additions & 12 deletions sorc/link_workflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -162,20 +162,13 @@ cd "${HOMEgfs}/parm/ufs" || exit 1
${LINK_OR_COPY} "${HOMEgfs}/sorc/ufs_model.fd/tests/parm/noahmptable.tbl" .

cd "${HOMEgfs}/parm/post" || exit 1
for file in postxconfig-NT-GEFS-F00.txt postxconfig-NT-GEFS.txt postxconfig-NT-GEFS-WAFS.txt \
postxconfig-NT-GEFS-F00-aerosol.txt postxconfig-NT-GEFS-aerosol.txt \
postxconfig-NT-GFS-ANL.txt postxconfig-NT-GFS-F00.txt postxconfig-NT-GFS-FLUX-F00.txt \
postxconfig-NT-GFS.txt postxconfig-NT-GFS-FLUX.txt postxconfig-NT-GFS-GOES.txt \
postxconfig-NT-GFS-F00-TWO.txt postxconfig-NT-GFS-TWO.txt \
params_grib2_tbl_new post_tag_gfs128 post_tag_gfs65 nam_micro_lookup.dat
for file in params_grib2_tbl_new nam_micro_lookup.dat
do
${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/parm/${file}" .
done
for file in optics_luts_DUST.dat optics_luts_DUST_nasa.dat optics_luts_NITR_nasa.dat \
optics_luts_SALT.dat optics_luts_SALT_nasa.dat optics_luts_SOOT.dat optics_luts_SOOT_nasa.dat \
optics_luts_SUSO.dat optics_luts_SUSO_nasa.dat optics_luts_WASO.dat optics_luts_WASO_nasa.dat
for dir in gfs gefs
do
${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/fix/chem/${file}" .
${LINK_OR_COPY} "${HOMEgfs}/sorc/upp.fd/parm/${dir}" .
done
for file in ice.csv ocean.csv ocnicepost.nml.jinja2
do
Expand All @@ -202,7 +195,7 @@ done

# Link these templates from ufs-weather-model
cd "${HOMEgfs}/parm/ufs" || exit 1
declare -a ufs_templates=("model_configure.IN" "model_configure_nest.IN"\
declare -a ufs_templates=("model_configure.IN" "input_global_nest.nml.IN"\
"MOM_input_025.IN" "MOM_input_050.IN" "MOM_input_100.IN" "MOM_input_500.IN" \
"MOM6_data_table.IN" \
"ice_in.IN" \
Expand All @@ -219,7 +212,13 @@ declare -a ufs_templates=("model_configure.IN" "model_configure_nest.IN"\
"ufs.configure.s2swa.IN" \
"ufs.configure.s2swa_esmf.IN" \
"ufs.configure.leapfrog_atm_wav.IN" \
"ufs.configure.leapfrog_atm_wav_esmf.IN" )
"ufs.configure.leapfrog_atm_wav_esmf.IN" \
"post_itag_gfs" \
"postxconfig-NT-gfs.txt" \
"postxconfig-NT-gfs_FH00.txt")
# TODO: The above postxconfig files in the UFSWM are not the same as the ones in UPP
# TODO: GEFS postxconfig files also need to be received from UFSWM
# See forecast_predet.sh where the UPP versions are used. They will need to be replaced with these.
for file in "${ufs_templates[@]}"; do
[[ -s "${file}" ]] && rm -f "${file}"
${LINK_OR_COPY} "${HOMEgfs}/sorc/ufs_model.fd/tests/parm/${file}" .
Expand Down
2 changes: 1 addition & 1 deletion sorc/ufs_model.fd
Submodule ufs_model.fd updated 93 files
+473 −0 .github/linters/.python-lint
+28 −0 .github/linters/.yaml-lint.yml
+32 −33 .github/workflows/aux.yml
+2 −2 .github/workflows/build_test._yml
+3 −3 .github/workflows/superlinter.yml
+1 −1 CICE-interface/CICE
+1 −1 FV3
+1 −1 MOM6-interface/MOM6
+2 −0 MOM6-interface/mom6_files.cmake
+1 −1 WW3
+2 −1 cmake/Intel.cmake
+2 −1 doc/UsersGuide/source/Glossary.rst
+20 −0 doc/UsersGuide/source/InputsOutputs.rst
+1 −0 doc/UsersGuide/source/conf.py
+13 −0 doc/UsersGuide/source/tables/fv3_diag_table.rst
+422 −0 doc/UsersGuide/source/tables/fv3diagtable.csv
+2 −2 modulefiles/ufs_common.lua
+1 −1 modulefiles/ufs_derecho.gnu.lua
+1 −1 modulefiles/ufs_derecho.intel.lua
+1 −1 modulefiles/ufs_gaea.intel.lua
+1 −1 modulefiles/ufs_hera.gnu.lua
+1 −1 modulefiles/ufs_hera.intel.lua
+1 −1 modulefiles/ufs_hercules.gnu.lua
+1 −1 modulefiles/ufs_hercules.intel.lua
+1 −1 modulefiles/ufs_jet.intel.lua
+1 −1 modulefiles/ufs_orion.intel.lua
+10 −1 modulefiles/ufs_s4.intel.lua
+2 −2 modulefiles/ufs_wcoss2.intel.lua
+104 −0 tests-dev/baseline_setup.yaml
+209 −0 tests-dev/create_log.py
+477 −0 tests-dev/create_xml.py
+324 −0 tests-dev/logs/RegressionTests_derecho.log
+416 −0 tests-dev/logs/RegressionTests_hera.log
+415 −0 tests-dev/logs/RegressionTests_hercules.log
+20 −0 tests-dev/machine_config/machine_derecho.config
+15 −0 tests-dev/machine_config/machine_gaea.config
+14 −0 tests-dev/machine_config/machine_hera.config
+17 −0 tests-dev/machine_config/machine_hercules.config
+14 −0 tests-dev/machine_config/machine_jet.config
+15 −0 tests-dev/machine_config/machine_noaacloud.config
+17 −0 tests-dev/machine_config/machine_orion.config
+14 −0 tests-dev/machine_config/machine_s4.config
+20 −0 tests-dev/ufs_error-test.yaml
+276 −0 tests-dev/ufs_test.sh
+583 −0 tests-dev/ufs_test.yaml
+338 −0 tests-dev/ufs_test_utils.py
+34 −0 tests-dev/ufs_test_utils.sh
+3 −3 tests/auto-jenkins/jobs/bl.py
+1 −1 tests/auto-jenkins/jobs/rt.py
+2 −2 tests/auto-jenkins/rt_auto_jenkins.py
+4 −4 tests/auto-jenkins/start_rt_auto_jenkins.sh
+3 −3 tests/auto/jobs/bl.py
+1 −1 tests/auto/jobs/rt.py
+2 −2 tests/auto/start_rt_auto.sh
+1 −1 tests/bl_date.conf
+21 −10 tests/default_vars.sh
+1 −0 tests/fv3_conf/compile_slurm.IN_gaea
+3 −3 tests/fv3_conf/control_run.IN
+8 −3 tests/fv3_conf/cpld_control_run.IN
+24 −24 tests/logs/OpnReqTests_control_p8_hera.log
+12 −12 tests/logs/OpnReqTests_cpld_control_nowave_noaero_p8_hera.log
+15 −15 tests/logs/OpnReqTests_regional_control_hera.log
+295 −294 tests/logs/RegressionTests_acorn.log
+281 −351 tests/logs/RegressionTests_derecho.log
+281 −352 tests/logs/RegressionTests_gaea.log
+384 −390 tests/logs/RegressionTests_hera.log
+371 −371 tests/logs/RegressionTests_hercules.log
+249 −249 tests/logs/RegressionTests_jet.log
+281 −352 tests/logs/RegressionTests_orion.log
+297 −0 tests/logs/RegressionTests_s4.log
+260 −261 tests/logs/RegressionTests_wcoss2.log
+3 −3 tests/parm/MOM_input_025.IN
+93 −4 tests/parm/MOM_input_050.IN
+93 −4 tests/parm/MOM_input_100.IN
+5 −0 tests/parm/MOM_input_500.IN
+3 −3 tests/parm/MOM_input_hafs
+1,266 −1,266 tests/parm/fd_ufs.yaml
+388 −8 tests/parm/params_grib2_tbl_new
+6 −0 tests/parm/post_itag_hafs_ar
+5,390 −2,950 tests/parm/postxconfig-NT-fv3lam.txt
+1,569 −211 tests/parm/postxconfig-NT-gfs.txt
+1,002 −71 tests/parm/postxconfig-NT-gfs_FH00.txt
+644 −2 tests/parm/postxconfig-NT-hafs.txt
+4,554 −0 tests/parm/postxconfig-NT-hafs_ar_nosat.txt
+2 −2 tests/rt.conf
+7 −8 tests/rt.sh
+1 −1 tests/rt_utils.sh
+86 −19 tests/test_changes.list
+9 −1 tests/tests/cpld_control_sfs
+1 −0 tests/tests/cpld_debug_pdlib_p8
+5 −0 tests/tests/gnv1_nested
+2 −1 tests/tests/hafs_regional_storm_following_1nest_atm_ocn_wav_mom6
+1 −1 tests/tests/regional_atmaq_debug
14 changes: 10 additions & 4 deletions ush/forecast_predet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -537,10 +537,16 @@ FV3_predet(){

# Inline UPP fix files
if [[ "${WRITE_DOPOST:-}" == ".true." ]]; then
${NCP} "${PARMgfs}/post/post_tag_gfs${LEVS}" "${DATA}/itag"
${NCP} "${FLTFILEGFS:-${PARMgfs}/post/postxconfig-NT-GFS-TWO.txt}" "${DATA}/postxconfig-NT.txt"
${NCP} "${FLTFILEGFSF00:-${PARMgfs}/post/postxconfig-NT-GFS-F00-TWO.txt}" "${DATA}/postxconfig-NT_FH00.txt"
${NCP} "${POSTGRB2TBL:-${PARMgfs}/post/params_grib2_tbl_new}" "${DATA}/params_grib2_tbl_new"
${NCP} "${POSTGRB2TBL:-${PARMgfs}/post/params_grib2_tbl_new}" "${DATA}/params_grib2_tbl_new"
${NCP} "${PARMgfs}/ufs/post_itag_gfs" "${DATA}/itag" # TODO: Need a GEFS version when available in the UFS-weather-model
# TODO: These should be replaced with ones from the ufs-weather-model when available there
if [[ "${RUN}" =~ "gdas" || "${RUN}" =~ "gfs" ]]; then # RUN = gdas | enkfgdas | gfs | enkfgfs
${NCP} "${PARMgfs}/post/gfs/postxconfig-NT-gfs-two.txt" "${DATA}/postxconfig-NT.txt"
${NCP} "${PARMgfs}/post/gfs/postxconfig-NT-gfs-f00-two.txt" "${DATA}/postxconfig-NT_FH00.txt"
elif [[ "${RUN}" == "gefs" ]]; then # RUN = gefs
${NCP} "${PARMgfs}/post/gefs/postxconfig-NT-gefs.txt" "${DATA}/postxconfig-NT.txt"
${NCP} "${PARMgfs}/post/gefs/postxconfig-NT-gefs-f00.txt" "${DATA}/postxconfig-NT_FH00.txt"
fi
fi

}
Expand Down
8 changes: 4 additions & 4 deletions ush/parsing_model_configure_FV3.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ local NUM_FILES=${NUM_FILES:-2}
local FILENAME_BASE="'atm' 'sfc'"
# OUTPUT_GRID
local OUTPUT_FILE="'${OUTPUT_FILETYPE_ATM}' '${OUTPUT_FILETYPE_SFC}'"
local ZSTANDARD_LEVEL=0
local IDEFLATE=0 # netCDF zlib lossless compression (0-9); 0: no compression
local QUANTIZE_NSD=${QUANTIZE_NSD:-0} # netCDF compression
local ZSTANDARD_LEVEL=${zstandard_level:-0}
local IDEFLATE=${ideflate:-0} # netCDF zlib lossless compression (0-9); 0: no compression
local QUANTIZE_NSD=${quantize_nsd:-0} # netCDF compression
local ICHUNK2D=$((4*restile))
local JCHUNK2D=$((2*restile))
local ICHUNK3D=$((4*restile))
Expand All @@ -55,7 +55,7 @@ local IAU_OFFSET=${IAU_OFFSET:-0}
if [[ "${DO_NEST:-NO}" == "YES" ]] ; then
local NEST_IMO=${npx_nest}
local NEST_JMO=${npy_nest}
template="${PARMgfs}/ufs/model_configure_nest.IN"
template="${PARMgfs}/ufs/input_global_nest.nml.IN"
else
template="${PARMgfs}/ufs/model_configure.IN"
fi
Expand Down
2 changes: 1 addition & 1 deletion ush/python/pygfs/task/upp.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ def index(cls, workdir: Union[str, os.PathLike], forecast_hour: int) -> None:

template = f"GFS{{file_type}}.GrbF{forecast_hour:02d}"

for ftype in ['PRS', 'FLX']:
for ftype in ['PRS', 'FLX', 'GOES']:
grbfile = template.format(file_type=ftype)
grbfidx = f"{grbfile}.idx"

Expand Down
1 change: 1 addition & 0 deletions versions/run.spack.ver
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export py_jinja2_ver=3.1.2
export py_pandas_ver=1.5.3
export py_python_dateutil_ver=2.8.2
export py_f90nml_ver=1.4.3
export py_numpy_ver=1.23.4

export met_ver=9.1.3
export metplus_ver=3.1.1
Expand Down
9 changes: 3 additions & 6 deletions workflow/rocoto/gefs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,12 +324,9 @@ def atmos_ensstat(self):

def wavepostsbs(self):
deps = []
for wave_grid in self._configs['wavepostsbs']['waveGRD'].split():
wave_hist_path = self._template_to_rocoto_cycstring(self._base["COM_WAVE_HISTORY_TMPL"], {'MEMDIR': 'mem#member#'})
data = f'{wave_hist_path}/gefswave.out_grd.{wave_grid}.@Y@m@d.@H0000'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
dep_dict = {'type': 'metatask', 'name': f'fcst_mem#member#'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)

wave_post_envars = self.envars.copy()
postenvar_dict = {'ENSMEM': '#member#',
Expand Down
9 changes: 3 additions & 6 deletions workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1188,12 +1188,9 @@ def _atmosoceaniceprod(self, component: str):

def wavepostsbs(self):
deps = []
for wave_grid in self._configs['wavepostsbs']['waveGRD'].split():
wave_hist_path = self._template_to_rocoto_cycstring(self._base["COM_WAVE_HISTORY_TMPL"])
data = f'{wave_hist_path}/{self.run}wave.out_grd.{wave_grid}.@Y@m@d.@H0000'
dep_dict = {'type': 'data', 'data': data}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep_condition='and', dep=deps)
dep_dict = {'type': 'metatask', 'name': f'{self.run}fcst'}
deps.append(rocoto.add_dependency(dep_dict))
dependencies = rocoto.create_dependency(dep=deps)

resources = self.get_resource('wavepostsbs')
task_name = f'{self.run}wavepostsbs'
Expand Down

0 comments on commit ac93a9b

Please sign in to comment.