Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to RRFS 3- and 13-km domains, setup.sh script bug fixes, make_ics task modification, and tweaks to stochastic physics namelist settings #721

Merged
2 changes: 1 addition & 1 deletion scripts/exregional_make_ics.sh
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ case "${EXTRN_MDL_NAME_ICS}" in
#
geogrid_file_input_grid="${FIXgsm}/geo_em.d01.nc_RAPX"
vgtyp_from_climo=True
sotyp_from_climo=False
sotyp_from_climo=True
vgfrc_from_climo=True
minmax_vgfrc_from_climo=True
lai_from_climo=True
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#
# TEST PURPOSE/DESCRIPTION:
# ------------------------
#
# This test is to ensure that the workflow running in community mode
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the comments, 3km --> 13km and v1alpha --> v1beta.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, fixed!

# completes successfully on the RRFS_NA_13km grid using the RRFS_v1beta
# physics suite with ICs and LBCs derived from the FV3GFS.
#
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering how much of this resource tweaking is needed for the 13km vs. 3km grid.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reduced the NNODES for post from 8 to 6, but didn't touch the chgres_cube resources based on what was in the 3-km domain WE2E. Is that what you're referring to?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I was just wondering which ones you really need vs. just using the defaults.

# Note that this test also sets various resource parameters for several
# of the rocoto tasks in order to more efficiently run the code on this
# (very large) grid.
#

RUN_ENVIR="community"
PREEXISTING_DIR_METHOD="rename"

PREDEF_GRID_NAME="RRFS_NA_13km"
CCPP_PHYS_SUITE="FV3_RRFS_v1beta"

EXTRN_MDL_NAME_ICS="FV3GFS"
EXTRN_MDL_NAME_LBCS="FV3GFS"
USE_USER_STAGED_EXTRN_FILES="TRUE"

DATE_FIRST_CYCL="20190701"
DATE_LAST_CYCL="20190701"
CYCL_HRS=( "00" )

FCST_LEN_HRS="6"
LBC_SPEC_INTVL_HRS="6"

#########################################################################
# The following code/namelist/workflow setting changes are necessary to #
# run/optimize end-to-end experiments using the 3-km NA grid #
#########################################################################

# The model should be built in 32-bit mode (64-bit will result in much
# longer run times.

# Use k_split=2 and n_split=5, the previous namelist values (k_split=4
# and n_split=5) will result in significantly longer run times.

NNODES_MAKE_ICS="12"
NNODES_MAKE_LBCS="12"
PPN_MAKE_ICS="4"
PPN_MAKE_LBCS="4"
WTIME_MAKE_LBCS="01:00:00"

NNODES_RUN_POST="6"
PPN_RUN_POST="12"

OMP_STACKSIZE_MAKE_ICS="2048m"
OMP_STACKSIZE_RUN_FCST="2048m"

###############################################################################
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ PPN_MAKE_ICS="4"
PPN_MAKE_LBCS="4"
WTIME_MAKE_LBCS="01:00:00"

NNODES_RUN_POST="6"
NNODES_RUN_POST="8"
PPN_RUN_POST="12"

OMP_STACKSIZE_MAKE_ICS="2048m"
Expand Down
16 changes: 10 additions & 6 deletions ush/generate_FV3LAM_wflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -856,8 +856,9 @@ settings="$settings
fi
#
# Add the relevant tendency-based stochastic physics namelist variables to
# "settings" when running with SPPT, SHUM, or SKEB turned on. Otherwise
# only include an empty "nam_stochy" stanza.
# "settings" when running with SPPT, SHUM, or SKEB turned on. If running
# with SPP or LSM SPP, set the "new_lscale" variable. Otherwise only
# include an empty "nam_stochy" stanza.
#
settings="$settings
'nam_stochy': {"
Expand All @@ -881,8 +882,7 @@ if [ "${DO_SHUM}" = "TRUE" ]; then
'shum': ${SHUM_MAG},
'shum_lscale': ${SHUM_LSCALE},
'shum_tau': ${SHUM_TSCALE},
'shumint': ${SHUM_INT},
'use_zmtnblck': ${USE_ZMTNBLCK},"
'shumint': ${SHUM_INT},"
fi

if [ "${DO_SKEB}" = "TRUE" ]; then
Expand All @@ -894,8 +894,12 @@ if [ "${DO_SKEB}" = "TRUE" ]; then
'skebnorm': ${SKEBNORM},
'skeb_tau': ${SKEB_TSCALE},
'skebint': ${SKEB_INT},
'skeb_vdof': ${SKEB_VDOF},
'use_zmtnblck': ${USE_ZMTNBLCK},"
'skeb_vdof': ${SKEB_VDOF},"
fi

if [ "${DO_SPP}" = "TRUE" ] || [ "${DO_LSM_SPP}" = "TRUE" ]; then
settings="$settings
'new_lscale': ${NEW_LSCALE},"
fi
settings="$settings
}"
Expand Down
90 changes: 23 additions & 67 deletions ush/set_predef_grid_params.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1121,60 +1121,16 @@ case ${PREDEF_GRID_NAME} in
#
"RRFS_NA_13km")

# if [ "${GRID_GEN_METHOD}" = "GFDLgrid" ]; then
#
# GFDLgrid_LON_T6_CTR="-106.0"
# GFDLgrid_LAT_T6_CTR="54.0"
# GFDLgrid_STRETCH_FAC="0.63"
# GFDLgrid_RES="384"
# GFDLgrid_REFINE_RATIO="3"
#
# num_margin_cells_T6_left="10"
# GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G=$(( num_margin_cells_T6_left + 1 ))
#
# num_margin_cells_T6_right="10"
# GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G=$(( GFDLgrid_RES - num_margin_cells_T6_right ))
#
# num_margin_cells_T6_bottom="10"
# GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G=$(( num_margin_cells_T6_bottom + 1 ))
#
# num_margin_cells_T6_top="10"
# GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G=$(( GFDLgrid_RES - num_margin_cells_T6_top ))
#
# GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES="FALSE"
#
# DT_ATMOS="50"
#
# LAYOUT_X="14"
# LAYOUT_Y="14"
# BLOCKSIZE="26"
#
# if [ "$QUILTING" = "TRUE" ]; then
# WRTCMP_write_groups="1"
# WRTCMP_write_tasks_per_group="14"
# WRTCMP_output_grid="rotated_latlon"
# WRTCMP_cen_lon="${GFDLgrid_LON_T6_CTR}"
# WRTCMP_cen_lat="${GFDLgrid_LAT_T6_CTR}"
# WRTCMP_lon_lwr_left="-57.9926"
# WRTCMP_lat_lwr_left="-50.74344"
# WRTCMP_lon_upr_rght="57.99249"
# WRTCMP_lat_upr_rght="50.74344"
# WRTCMP_dlon="0.1218331"
# WRTCMP_dlat="0.121833"
# fi
#
# elif [ "${GRID_GEN_METHOD}" = "ESGgrid" ]; then

GRID_GEN_METHOD="ESGgrid"

ESGgrid_LON_CTR="-106.0"
ESGgrid_LAT_CTR="54.0"
ESGgrid_LON_CTR="-112.5"
ESGgrid_LAT_CTR="55.0"

ESGgrid_DELX="13000.0"
ESGgrid_DELY="13000.0"

ESGgrid_NX="960"
ESGgrid_NY="960"
ESGgrid_NX="912"
ESGgrid_NY="623"

ESGgrid_PAZI="0.0"

Expand All @@ -1190,12 +1146,12 @@ case ${PREDEF_GRID_NAME} in
WRTCMP_write_groups="1"
WRTCMP_write_tasks_per_group="16"
WRTCMP_output_grid="rotated_latlon"
WRTCMP_cen_lon="${ESGgrid_LON_CTR}"
WRTCMP_cen_lat="${ESGgrid_LAT_CTR}"
WRTCMP_lon_lwr_left="-55.82538869"
WRTCMP_lat_lwr_left="-48.57685654"
WRTCMP_lon_upr_rght="55.82538869"
WRTCMP_lat_upr_rght="48.57685654"
WRTCMP_cen_lon="-113.0" #"${ESGgrid_LON_CTR}"
WRTCMP_cen_lat="55.0" #"${ESGgrid_LAT_CTR}"
WRTCMP_lon_lwr_left="-61.0"
WRTCMP_lat_lwr_left="-37.0"
WRTCMP_lon_upr_rght="61.0"
WRTCMP_lat_upr_rght="37.0"
WRTCMP_dlon=$( printf "%.9f" $( bc -l <<< "(${ESGgrid_DELX}/${radius_Earth})*${degs_per_radian}" ) )
WRTCMP_dlat=$( printf "%.9f" $( bc -l <<< "(${ESGgrid_DELY}/${radius_Earth})*${degs_per_radian}" ) )
fi
Expand All @@ -1212,35 +1168,35 @@ case ${PREDEF_GRID_NAME} in

GRID_GEN_METHOD="ESGgrid"

ESGgrid_LON_CTR=-107.5
ESGgrid_LAT_CTR=51.5
ESGgrid_LON_CTR=-112.5
ESGgrid_LAT_CTR=55.0

ESGgrid_DELX="3000.0"
ESGgrid_DELY="3000.0"

ESGgrid_NX=3640
ESGgrid_NY=2520
ESGgrid_NX=3950
ESGgrid_NY=2700

ESGgrid_PAZI="-13.0"
ESGgrid_PAZI="0.0"

ESGgrid_WIDE_HALO_WIDTH=6

DT_ATMOS="${DT_ATMOS:-36}"

LAYOUT_X="${LAYOUT_X:-18}" # 40 - EMC operational configuration
LAYOUT_Y="${LAYOUT_Y:-36}" # 45 - EMC operational configuration
LAYOUT_X="${LAYOUT_X:-20}" # 40 - EMC operational configuration
LAYOUT_Y="${LAYOUT_Y:-35}" # 45 - EMC operational configuration
BLOCKSIZE="${BLOCKSIZE:-28}"

if [ "$QUILTING" = "TRUE" ]; then
WRTCMP_write_groups="1"
WRTCMP_write_tasks_per_group="144"
WRTCMP_output_grid="rotated_latlon"
WRTCMP_cen_lon="-112.0" #${ESGgrid_LON_CTR}"
WRTCMP_cen_lat="48.0" #${ESGgrid_LAT_CTR}"
WRTCMP_lon_lwr_left="-51.0"
WRTCMP_lat_lwr_left="-33.0"
WRTCMP_lon_upr_rght="51.0"
WRTCMP_lat_upr_rght="33.0"
WRTCMP_cen_lon="-113.0" #"${ESGgrid_LON_CTR}"
WRTCMP_cen_lat="55.0" #"${ESGgrid_LAT_CTR}"
WRTCMP_lon_lwr_left="-61.0"
WRTCMP_lat_lwr_left="-37.0"
WRTCMP_lon_upr_rght="61.0"
WRTCMP_lat_upr_rght="37.0"
WRTCMP_dlon="0.025" #$( printf "%.9f" $( bc -l <<< "(${ESGgrid_DELX}/${radius_Earth})*${degs_per_radian}" ) )
WRTCMP_dlat="0.025" #$( printf "%.9f" $( bc -l <<< "(${ESGgrid_DELY}/${radius_Earth})*${degs_per_radian}" ) )
fi
Expand Down
25 changes: 18 additions & 7 deletions ush/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1393,6 +1393,21 @@ fi
#
#-----------------------------------------------------------------------
#
# Make sure that DO_ENSEMBLE is set to TRUE when running ensemble vx.
#
#-----------------------------------------------------------------------
#
if [ "${DO_ENSEMBLE}" = "FALSE" ] && [ "${RUN_TASK_VX_ENSGRID}" = "TRUE" -o \
"${RUN_TASK_VX_ENSPOINT}" = "TRUE" ]; then
print_err_msg_exit "\
Ensemble verification can not be run unless running in ensemble mode:
DO_ENSEMBLE = \"${DO_ENSEMBLE}\"
RUN_TASK_VX_ENSGRID = \"${RUN_TASK_VX_ENSGRID}\"
RUN_TASK_VX_ENSPOINT = \"${RUN_TASK_VX_ENSPOINT}\""
fi
#
#-----------------------------------------------------------------------
#
# Set the full path to the forecast model executable.
#
#-----------------------------------------------------------------------
Expand Down Expand Up @@ -1576,8 +1591,7 @@ one above. Reset values are:

fi

if [ "${RUN_TASK_VX_GRIDSTAT}" = "TRUE" ] || \
[ "${RUN_TASK_VX_GRIDSTAT}" = "FALSE" ]; then
if [ "${RUN_TASK_VX_GRIDSTAT}" = "TRUE" ]; then

msg="
When RUN_ENVIR is set to \"nco\", it is assumed that the verification
Expand All @@ -1596,8 +1610,7 @@ Reset value is:"

fi

if [ "${RUN_TASK_VX_POINTSTAT}" = "TRUE" ] || \
[ "${RUN_TASK_VX_POINTSTAT}" = "FALSE" ]; then
if [ "${RUN_TASK_VX_POINTSTAT}" = "TRUE" ]; then

msg="
When RUN_ENVIR is set to \"nco\", it is assumed that the verification
Expand All @@ -1616,8 +1629,7 @@ Reset value is:"

fi

if [ "${RUN_TASK_VX_ENSGRID}" = "TRUE" ] || \
[ "${RUN_TASK_VX_ENSGRID}" = "FALSE" ]; then
if [ "${RUN_TASK_VX_ENSGRID}" = "TRUE" ]; then

msg="
When RUN_ENVIR is set to \"nco\", it is assumed that the verification
Expand Down Expand Up @@ -2011,7 +2023,6 @@ SUB_HOURLY_POST is NOT available with Inline Post yet."
fi
fi


check_var_valid_value "QUILTING" "valid_vals_QUILTING"
QUILTING=$(boolify $QUILTING)

Expand Down