Skip to content
Merged
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
23 changes: 9 additions & 14 deletions workflow/cases/coupled_free_forecast.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
case:
fv3_settings:
nst_anl: False
hord_mt_nh_nonmono: 5
hord_xx_nh_nonmono: 5

places:
workflow_file: layout/free_forecast_gfs.yaml
MOM6IC: /scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS
Expand All @@ -21,7 +16,7 @@ case:
nsst:
NST_MODEL: 0

gfs_output_settings:
output_settings:
OCN_INTERVAL: 24
FHOUT_GFS: 6
FHMIN_GFS: 0
Expand All @@ -33,16 +28,16 @@ case:
CASE: C384
LEVS: 65
DELTIM: 450
layout_x: 6
layout_y: 8
fv3_threads: 2
WRITE_GROUP: 1
WRTTASK_PER_GROUP: 24
WRTIOBUF: "32M"
nst_anl: no
layout:
x: 6
y: 8
nth: 2
WGRP: 1
WGRP_NTASKS: 24
WRTIOBUF: "32M"
OCNPETS: 120
ICEPETS: 48
hord_mt_nh_nonmono: 5
hord_xx_nh_nonmono: 5
cdmbgwd: "1.0,1.2"

post:
Expand Down
39 changes: 20 additions & 19 deletions workflow/config/base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ config_base:

# Utilities needed in the scripts (mostly post)
{doc.platform.config_base_extras}
export POSTGRB2TBL="{doc.places.HOMEgfs}/sorc/gfs_post.fd/parm/params_grib2_tbl_new"

# Toggle to turn on/off GFS downstream processing.
export DO_BUFRSND="{tools.YES_NO(doc.downstream.DO_BUFRSND)}" # Run GFS_POSTSND
Expand Down Expand Up @@ -157,7 +158,7 @@ config_base:
#export COMOUTwmo="$ROTDIR/$CDUMP.$PDY/$cyc/wmo"

# Resolution specific parameters
export LEVS={doc.fv3_settings.LEVS}
export LEVS={doc.fv3_gfs_settings.LEVS}
export CASE="{doc.fv3_gfs_settings.CASE}"
export CASE_ENKF="{doc.fv3_enkf_settings.CASE}"

Expand All @@ -170,30 +171,30 @@ config_base:
fi

# Output frequency of the forecast model (for cycling)
export FHMIN={doc.gfs_output_settings.FHMIN_GDAS}
export FHMAX={doc.gfs_output_settings.FHMAX_GDAS}
export FHOUT={doc.gfs_output_settings.FHOUT_GDAS}
export FHMIN={doc.output_settings.FHMIN_GDAS}
export FHMAX={doc.output_settings.FHMAX_GDAS}
export FHOUT={doc.output_settings.FHOUT_GDAS}

# GFS cycle info
export gfs_cyc={doc.settings.gfs_cyc} # 0: no GFS cycle, 1: 00Z only, 2: 00Z and 12Z only, 4: all 4 cycles.

# GFS output and frequency
export FHMIN_GFS={doc.gfs_output_settings.FHMIN_GFS}
export FHMAX_GFS={doc.gfs_output_settings.FHMAX_GFS}
export FHOUT_GFS={doc.gfs_output_settings.FHOUT_GFS}
export FHMAX_HF_GFS={doc.gfs_output_settings.FHMAX_HF_GFS}
export FHOUT_HF_GFS={doc.gfs_output_settings.FHOUT_HF_GFS}
export FHRLST="{doc.gfs_output_settings.gfs_forecast_hours}"
export FHMIN_GFS={doc.output_settings.FHMIN_GFS}
export FHMAX_GFS={doc.output_settings.FHMAX_GFS}
export FHOUT_GFS={doc.output_settings.FHOUT_GFS}
export FHMAX_HF_GFS={doc.output_settings.FHMAX_HF_GFS}
export FHOUT_HF_GFS={doc.output_settings.FHOUT_HF_GFS}
export FHRLST="{doc.output_settings.gfs_forecast_hours}"

# I/O QUILTING, true--use Write Component; false--use GFDL FMS
# if quilting=true, choose OUTPUT_GRID as cubed_sphere_grid in netcdf or gaussian_grid
# if gaussian_grid, set OUTPUT_FILE for nemsio or netcdf
export QUILTING="{tools.fort(doc.fv3_settings.QUILTING)}"
export OUTPUT_GRID="{doc.gfs_output_settings.OUTPUT_GRID}"
export OUTPUT_FILE="{doc.gfs_output_settings.OUTPUT_FILE_TYPE}"
export QUILTING="{tools.fort(doc.fv3_gdas_settings.QUILTING)}"
export OUTPUT_GRID="{doc.output_settings.OUTPUT_GRID}"
export OUTPUT_FILE="{doc.output_settings.OUTPUT_FILE_TYPE}"

# Microphysics Options: 99-ZhaoCarr, 8-Thompson; 6-WSM6, 10-MG, 11-GFDL
export imp_physics={doc.fv3_settings.imp_physics}
export imp_physics={doc.fv3_gfs_settings.imp_physics}

# Shared parameters
# Hybrid related
Expand All @@ -205,20 +206,20 @@ config_base:

# EnKF output frequency
if [ $DOHYBVAR = "YES" ]; then
export FHMIN_ENKF={doc.gfs_output_settings.FHMIN_ENKF}
export FHMAX_ENKF={doc.gfs_output_settings.FHMAX_ENKF}
export FHOUT_ENKF={doc.gfs_output_settings.FHOUT_ENKF}
export FHMIN_ENKF={doc.output_settings.FHMIN_ENKF}
export FHMAX_ENKF={doc.output_settings.FHMAX_ENKF}
export FHOUT_ENKF={doc.output_settings.FHOUT_ENKF}
if [ $l4densvar = ".true." ]; then
export FHOUT=1
fi
fi

# If YES, NSST is turned on in anal and/or fcst steps
export DONST="{tools.YES_NO(doc.fv3_settings.DONST)}"
export DONST="{tools.YES_NO(doc.fv3_gdas_settings.DONST)}"
if [ $DONST = "YES" ]; then export FNTSFA=" "; fi

# The switch to apply SST elevation correction or not
export nst_anl={tools.fort(doc.fv3_settings.nst_anl)}
export nst_anl={tools.fort(doc.fv3_gfs_settings.nst_anl)}

# Analysis increments to zero in CALCINCEXEC
export INCREMENTS_TO_ZERO="{tools.join(doc.data_assimilation.INCREMENTS_TO_ZERO,',')}"
Expand Down
44 changes: 22 additions & 22 deletions workflow/config/fcst.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ config_fcst:
do: "nems_fv3_mom6_cice5.x"
- otherwise: "global_fv3gfs.x"
more_exports_for_microphys: !FirstTrue
- when: !calc ( doc.fv3_settings.imp_physics==11 )
- when: !calc ( doc.fv3_gfs_settings.imp_physics=="11" )
do: !expand |
export hord_mt_nh_nonmono={doc.fv3_settings.hord_mt_nh_nonmono}
export hord_xx_nh_nonmono={doc.fv3_settings.hord_xx_nh_nonmono}
export vtdm4_nh_nonmono={doc.fv3_settings.vtdm4_nh_nonmono}
export nord={doc.fv3_settings.nord}
export dddmp={doc.fv3_settings.dddmp}
export d4_bg={doc.fv3_settings.d4_bg}
export hord_mt_nh_nonmono={doc.fv3_gfs_settings.phy_dependent_var.hord_mt_nh_nonmono}
export hord_xx_nh_nonmono={doc.fv3_gfs_settings.phy_dependent_var.hord_xx_nh_nonmono}
export vtdm4_nh_nonmono={doc.fv3_gfs_settings.phy_dependent_var.vtdm4_nh_nonmono}
export nord={doc.fv3_gfs_settings.phy_dependent_var.nord}
export dddmp={doc.fv3_gfs_settings.phy_dependent_var.dddmp}
export d4_bg={doc.fv3_gfs_settings.phy_dependent_var.d4_bg}
- otherwise: ""

level_127: !FirstTrue
- when: !calc doc.fv3_settings.LEVS==128
- when: !calc doc.fv3_gfs_settings.LEVS==128
do: !expand |
export tau=5.0
export rf_cutoff=1.0e3
Expand Down Expand Up @@ -60,8 +60,8 @@ config_fcst:
export npe_fcst="{resource_a[0].mpi_ranks}"
export npe_fcst_gfs="{resource_b[0].mpi_ranks}"
export npe_node_fcst="{resource_a[0].max_ppn}"
export nth_fcst="{doc.fv3_gfs_settings.fv3_threads}"
export NTHREADS_FV3="{doc.fv3_gfs_settings.fv3_threads}"
export nth_fcst="{doc.fv3_gfs_settings.layout.nth}"
export NTHREADS_FV3="{doc.fv3_gfs_settings.layout.nth}"
export memory_fcst="1024M"

#######################################################################
Expand All @@ -83,24 +83,24 @@ config_fcst:
export FCSTEXEC="{FCSTEXEC}"

# Model configuration
export TYPE="{doc.fv3_settings.nh_type}"
export MONO="{doc.fv3_settings.MONO}"
export TYPE="{doc.fv3_gfs_settings.nh_type}"
export MONO="{doc.fv3_gfs_settings.MONO}"

# Use stratosphere h2o physics
export h2o_phys="{tools.fort(doc.fv3_settings.h2o_phys)}"
export h2o_phys="{tools.fort(doc.fv3_gfs_settings.h2o_phys)}"

# Options of stratosphere O3 physics reaction coefficients
export new_o3forc="{tools.YES_NO(doc.fv3_settings_template.new_o3force)}"
export new_o3forc="{tools.YES_NO(doc.fv3_gfs_settings.new_o3force)}"

# Microphysics configuration
export dnats={doc.fv3_settings.dnats}
export cal_pre="{tools.fort(doc.fv3_settings.cal_pre)}"
export do_sat_adj="{tools.fort(doc.fv3_settings.do_sat_adj)}"
export random_clds="{tools.fort(doc.fv3_settings.random_clds)}"
#export cnvcld="{tools.fort(doc.fv3_settings.cnvcld)}"
export ncld={doc.fv3_settings.ncld}
export FIELD_TABLE="{doc.fv3_settings.FIELD_TABLE}"
export nwat={doc.fv3_settings.nwat}
export dnats={doc.fv3_gfs_settings.phy_dependent_var.dnats}
export cal_pre="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.cal_pre)}"
export do_sat_adj="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.do_sat_adjust)}"
export random_clds="{tools.fort(doc.fv3_gfs_settings.phy_dependent_var.random_clds)}"
#export cnvcld="{tools.fort(doc.fv3_gfs_settings.cnvcld)}"
export ncld={doc.fv3_gfs_settings.phy_dependent_var.ncld}
export FIELD_TABLE="{doc.fv3_gfs_settings.phy_dependent_var.FIELD_TABLE}"
export nwat={doc.fv3_gfs_settings.phy_dependent_var.nwat}
{more_exports_for_microphys}
{level_127}

Expand Down
60 changes: 30 additions & 30 deletions workflow/config/fv3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,57 +43,57 @@ config_fv3:
forecast_mode=$( echo "$1" | tr a-z A-Z )

case $forecast_mode in
"GFS")
"gfs")
echo "BEGIN: config.fv3 for $forecast_mode"
export DELTIM={doc.fv3_gfs_settings.DELTIM}
export layout_x={doc.fv3_gfs_settings.layout_x}
export layout_y={doc.fv3_gfs_settings.layout_y}
export layout_x_gfs={doc.fv3_gfs_settings.layout_x}
export layout_y_gfs={doc.fv3_gfs_settings.layout_y}
export layout_x={doc.fv3_gfs_settings.layout.x}
export layout_y={doc.fv3_gfs_settings.layout.y}
export layout_x_gfs={doc.fv3_gfs_settings.layout.x}
export layout_y_gfs={doc.fv3_gfs_settings.layout.y}
export npe_node_fcst={doc.partition_common.resources.run_gdasfcst[0].max_ppn}
export nth_fv3=2
export npe_fv3={doc.partition_common.resources.run_gdasfcst[0].mpi_ranks}
export cdmbgwd={doc.fv3_gfs_settings.cdmbgwd}
# mountain blocking and gravity wave drag
export WRITE_GROUP={doc.fv3_gfs_settings.WRITE_GROUP}
export WRTTASK_PER_GROUP={doc.fv3_gfs_settings.WRTTASK_PER_GROUP}
export WRITE_GROUP_GFS={doc.fv3_gfs_settings.WRITE_GROUP}
export WRTTASK_PER_GROUP_GFS={doc.fv3_gfs_settings.WRTTASK_PER_GROUP}
export WRTIOBUF={doc.fv3_gfs_settings.WRTIOBUF}
export WRITE_GROUP={doc.fv3_gfs_settings.layout.WGRP}
export WRTTASK_PER_GROUP={doc.fv3_gfs_settings.layout.WGRP_NTASKS}
export WRITE_GROUP_GFS={doc.fv3_gfs_settings.layout.WGRP}
export WRTTASK_PER_GROUP_GFS={doc.fv3_gfs_settings.layout.WGRP_NTASKS}
export WRTIOBUF={doc.fv3_gfs_settings.layout.WRTIOBUF}
;;
"GDAS")
"gdas")
echo "BEGIN: config.fv3 for $forecast_mode"
export DELTIM={doc.fv3_gdas_settings.DELTIM}
export layout_x={doc.fv3_gdas_settings.layout_x}
export layout_y={doc.fv3_gdas_settings.layout_y}
export layout_x_gfs={doc.fv3_gdas_settings.layout_x}
export layout_y_gfs={doc.fv3_gdas_settings.layout_y}
export layout_x={doc.fv3_gdas_settings.layout.x}
export layout_y={doc.fv3_gdas_settings.layout.y}
export layout_x_gfs={doc.fv3_gdas_settings.layout.x}
export layout_y_gfs={doc.fv3_gdas_settings.layout.y}
export npe_node_fcst={doc.partition_common.resources.run_gdasfcst[0].max_ppn}
export nth_fv3=2
export npe_fv3={doc.partition_common.resources.run_gdasfcst[0].mpi_ranks}
export cdmbgwd={doc.fv3_gdas_settings.cdmbgwd}
export WRITE_GROUP={doc.fv3_gdas_settings.WRITE_GROUP}
export WRTTASK_PER_GROUP={doc.fv3_gdas_settings.WRTTASK_PER_GROUP}
export WRITE_GROUP_GFS={doc.fv3_gdas_settings.WRITE_GROUP}
export WRTTASK_PER_GROUP_GFS={doc.fv3_gdas_settings.WRTTASK_PER_GROUP}
export WRTIOBUF={doc.fv3_gdas_settings.WRTIOBUF}
export WRITE_GROUP={doc.fv3_gdas_settings.layout.WGRP}
export WRTTASK_PER_GROUP={doc.fv3_gdas_settings.layout.WGRP_NTASKS}
export WRITE_GROUP_GFS={doc.fv3_gdas_settings.layout.WGRP}
export WRTTASK_PER_GROUP_GFS={doc.fv3_gdas_settings.layout.WGRP_NTASKS}
export WRTIOBUF={doc.fv3_gdas_settings.layout.WRTIOBUF}
;;
"ENKF")
"enkf")
echo "BEGIN: config.fv3 for $forecast_mode"
export DELTIM={doc.fv3_enkf_settings.DELTIM}
export layout_x={doc.fv3_enkf_settings.layout_x}
export layout_y={doc.fv3_enkf_settings.layout_y}
export layout_x_gfs={doc.fv3_enkf_settings.layout_x}
export layout_y_gfs={doc.fv3_enkf_settings.layout_y}
export layout_x={doc.fv3_enkf_settings.layout.x}
export layout_y={doc.fv3_enkf_settings.layout.y}
export layout_x_gfs={doc.fv3_enkf_settings.layout.x}
export layout_y_gfs={doc.fv3_enkf_settings.layout.y}
export npe_node_fcst={doc.partition_common.resources.run_efcs[0].max_ppn}
export nth_fv3=2
export npe_fv3={doc.partition_common.resources.run_efcs[0].mpi_ranks}
export cdmbgwd={doc.fv3_enkf_settings.cdmbgwd}
export WRITE_GROUP={doc.fv3_enkf_settings.WRITE_GROUP}
export WRTTASK_PER_GROUP={doc.fv3_enkf_settings.WRTTASK_PER_GROUP}
export WRITE_GROUP_GFS={doc.fv3_enkf_settings.WRITE_GROUP}
export WRTTASK_PER_GROUP_GFS={doc.fv3_enkf_settings.WRTTASK_PER_GROUP}
export WRTIOBUF={doc.fv3_enkf_settings.WRTIOBUF}
export WRITE_GROUP={doc.fv3_enkf_settings.layout.WGRP}
export WRTTASK_PER_GROUP={doc.fv3_enkf_settings.layout.WGRP_NTASKS}
export WRITE_GROUP_GFS={doc.fv3_enkf_settings.layout.WGRP}
export WRTTASK_PER_GROUP_GFS={doc.fv3_enkf_settings.layout.WGRP_NTASKS}
export WRTIOBUF={doc.fv3_enkf_settings.layout.WRTIOBUF}
;;
*)
echo "CDUMP undefined!"
Expand Down
10 changes: 10 additions & 0 deletions workflow/defaults/archiving.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
archiving_defaults: &archiving_defaults
archive_to_hpss: yes
arch_cyc: 18
arch_warmicfreq: 6
arch_fcsticfreq: 3
copy_fit2obs_files: yes
scrub_in_archive: yes
scrub_in_archive_start: 144
scrub_in_archive_end: 24
ATARDIR: "/NCEPDEV/$HPSS_PROJECT/1year/$USER/$machine/scratch/$PSLOT"
30 changes: 11 additions & 19 deletions workflow/defaults/case.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@
# of the case files, default files, platform file, and everywhere
# else, and applies any validation from the schema/ directory.

fv3_settings: !Immediate
- !MergeMapping
- CDUMP: gfs
Template: *fv3_settings_template
- !calc doc.fv3_defaults
- !calc doc.case.get('fv3_settings',{})

ocn_settings: !Immediate
- !MergeMapping
- CDUMP: gfs
Expand All @@ -32,7 +25,6 @@ schedvar: !Immediate

fv3_gfs_settings: !Immediate
- !MergeMapping
- !calc doc.fv3_settings
- CDUMP: gfs
Template: *fv3_settings_template
- !calc doc.fv3_gfs_defaults
Expand All @@ -41,32 +33,31 @@ fv3_gfs_settings: !Immediate

fv3_enkf_settings: !Immediate
- !MergeMapping
- !calc doc.fv3_settings
- !calc doc.fv3_enkf_defaults
- CDUMP: gdas
Template: *fv3_settings_template
- !calc doc.fv3_enkf_defaults
- !calc doc.case.get('fv3_enkf_settings',{})
- !calc doc.get('user_fv3_enkf_settings',{})

fv3_gdas_settings: !Immediate
- !MergeMapping
- !calc doc.fv3_settings
- CDUMP: gdas
Template: *fv3_settings_template
- !calc doc.fv3_gdas_defaults
- !calc doc.case.get('fv3_gdas_settings',{})
- !calc doc.get('user_fv3_gfs_settings',{})
- !calc doc.get('user_fv3_gdas_settings',{})

gfs_output_settings: !Immediate
output_settings: !Immediate
- !MergeMapping
- !calc doc.gfs_output_settings_defaults
- { Template: *gfs_output_settings_template }
- !calc doc.case.get('gfs_output_settings',{})
- !calc doc.get('user_gfs_output_settings',{})
- Template: *output_settings_template
- !calc doc.output_settings_defaults
- !calc doc.case.get('output_settings',{})
- !calc doc.get('user_output_settings',{})

data_assimilation: !Immediate
- !MergeMapping
- { Template: *data_assimilation_template }
- !calc doc.data_assimilation_defaults
- !calc doc.case.get('data_assimilation',{})
- !calc doc.get('user_data_assimilation',{})

Expand Down Expand Up @@ -101,6 +92,7 @@ places: !Immediate
nsst: !Immediate
- !MergeMapping
- Template: *nsst_schema
- !calc doc.nsst_defaults
- !calc doc.case.get('nsst',{})
- !calc doc.get('user_nsst',{})

Expand All @@ -119,6 +111,7 @@ settings: !Immediate
archiving: !Immediate
- !MergeMapping
- Template: *archive_settings_template
- !calc doc.archiving_defaults
- !calc doc.case.get('archiving',{})
- !calc doc.get('user_archiving',{})

Expand All @@ -129,11 +122,10 @@ suite_overrides: !Immediate
- !calc doc.get('user_suite_overrides',[])

validate_me:
- fv3_settings
- fv3_gfs_settings
- fv3_enkf_settings
- fv3_gdas_settings
- gfs_output_settings
- output_settings
- data_assimilation
- post
- downstream
Expand Down
Loading