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

Make thompson_mynn_lam3km ccpp suite available #644

Merged
merged 8 commits into from
Dec 13, 2021
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
1 change: 1 addition & 0 deletions scripts/exregional_make_ics.sh
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ case "${CCPP_PHYS_SUITE}" in
"FV3_GSD_SAR" | \
"FV3_RRFS_v1alpha" | \
"FV3_RRFS_v1beta" | \
"FV3_GFS_v15_thompson_mynn_lam3km" | \
"FV3_HRRR" )
if [ "${EXTRN_MDL_NAME_ICS}" = "RAP" ] || \
[ "${EXTRN_MDL_NAME_ICS}" = "HRRR" ]; then
Expand Down
1 change: 1 addition & 0 deletions scripts/exregional_make_lbcs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ case "${CCPP_PHYS_SUITE}" in
"FV3_GSD_SAR" | \
"FV3_RRFS_v1alpha" | \
"FV3_RRFS_v1beta" | \
"FV3_GFS_v15_thompson_mynn_lam3km" | \
"FV3_HRRR" )
if [ "${EXTRN_MDL_NAME_LBCS}" = "RAP" ] || \
[ "${EXTRN_MDL_NAME_LBCS}" = "HRRR" ]; then
Expand Down
22 changes: 22 additions & 0 deletions scripts/exregional_run_fcst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,28 @@ done
#
#-----------------------------------------------------------------------
#
# Create links in the current run directory to the MERRA2 aerosol
# climatology data files and lookup table for optics properties.
#
#-----------------------------------------------------------------------
#
for f_nm_path in ${FIXclim}/*; do
f_nm=$( basename "${f_nm_path}" )
pre_f="${f_nm%%.*}"

if [ "${pre_f}" = "merra2" ]; then
mnth=$( printf "%s\n" "${f_nm}" | grep -o -P '(?<=2014.m).*(?=.nc)' )
symlink="${run_dir}/aeroclim.m${mnth}.nc"
else
symlink="${run_dir}/${pre_f}.dat"
fi
target="${f_nm_path}"
create_symlink_to_file target="$target" symlink="$symlink" \
relative="${relative_link_flag}"
done
#
#-----------------------------------------------------------------------
#
# If running this cycle/ensemble member combination more than once (e.g.
# using rocotoboot), remove any time stamp file that may exist from the
# previous attempt.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#
# TEST PURPOSE/DESCRIPTION:
# ------------------------
#
# This test is to ensure that the workflow running in community mode
# completes successfully on the RRFS_CONUS_3km grid using the GFS_v15_
# thompson_mynn_lam3km physics suite with ICs and LBCs derived from FV3GFS.
#

RUN_ENVIR="community"
PREEXISTING_DIR_METHOD="rename"

PREDEF_GRID_NAME="RRFS_CONUS_3km"
CCPP_PHYS_SUITE="FV3_GFS_v15_thompson_mynn_lam3km"

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="3"
8 changes: 8 additions & 0 deletions ush/config_defaults.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1330,6 +1330,12 @@ SFC_CLIMO_FIELDS=( \
# System directory in which the majority of fixed (i.e. time-independent)
# files that are needed to run the FV3-LAM model are located
#
# FIXaer:
# System directory where MERRA2 aerosol climatology files are located
#
# FIXlut:
# System directory where the lookup tables for optics properties are located
#
chan-hoo marked this conversation as resolved.
Show resolved Hide resolved
# TOPO_DIR:
# The location on disk of the static input files used by the make_orog
# task (orog.x and shave.x). Can be the same as FIXgsm.
Expand Down Expand Up @@ -1389,6 +1395,8 @@ SFC_CLIMO_FIELDS=( \
# to a null string which will then be overwritten in setup.sh unless the
# user has specified a different value in config.sh
FIXgsm=""
FIXaer=""
FIXlut=""
TOPO_DIR=""
SFC_CLIMO_INPUT_DIR=""

Expand Down
22 changes: 20 additions & 2 deletions ush/generate_FV3LAM_wflow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,25 @@ fi
#
#-----------------------------------------------------------------------
#
# Copy MERRA2 aerosol climatology data.
Copy link
Collaborator

Choose a reason for hiding this comment

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

@chan-hoo @JeffBeck-NOAA Question: Do these directories need to always be copied or only when using the thompson_mynn_lam3km suite? If the latter, can we wrap them in an if-statement that checks for the suite (i.e. in a new PR, or I can throw it in my current PR)? Just want to reduce the time it takes to generate a new experiment... Thanks.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@gsketefian, Jili answered this question above: "the MERRA2 aero clim dataset is for the independent aerosol module/scheme and not particular for Thompson scheme."

Copy link
Collaborator

Choose a reason for hiding this comment

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

@chan-hoo, is the MERRA2 aero clim dataset only used when running RRFS-CMAQ? If so, then, we may want something like DO_CMAQ="true" in the config.sh file to avoid copying these files unless it's being used.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@JeffBeck-NOAA, No. Since RRFS-CMAQ is coupled with GFS v15, CCPP is not available. MERR2 is used in SRW App (FV3-LAM).

Copy link
Collaborator

Choose a reason for hiding this comment

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

@chan-hoo, right, so CMAQ isn't in the picture. So what component of the SRW App uses the MERRA2 dataset?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@JeffBeck-NOAA, if I understand correctly, it is used in thompson_mynn_lam3km now but it can be selected by other CCPP suites. @JiliDong-NOAA, is this correct? Can we turn it on/off in the fv3 namelist?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@gsketefian @JeffBeck-NOAA , I'll put a flag to turn on/off MERRA2 like 'DO_MERRA' into the regional workflow soon.

#
#-----------------------------------------------------------------------
#
print_info_msg "$VERBOSE" "
Copying MERRA2 aerosol climatology data files from system directory
(FIXaer/FIXlut) to a subdirectory (FIXclim) in the experiment directory:
FIXaer = \"${FIXaer}\"
FIXlut = \"${FIXlut}\"
FIXclim = \"${FIXclim}\""

check_for_preexist_dir_file "${FIXclim}" "delete"
mkdir_vrfy -p "${FIXclim}"

cp_vrfy "${FIXaer}/merra2.aerclim"*".nc" "${FIXclim}/"
cp_vrfy "${FIXlut}/optics"*".dat" "${FIXclim}/"
#
#-----------------------------------------------------------------------
#
# Copy templates of various input files to the experiment directory.
#
#-----------------------------------------------------------------------
Expand All @@ -609,8 +628,7 @@ print_info_msg "$VERBOSE" "
cp_vrfy "${FIELD_TABLE_TMPL_FP}" "${FIELD_TABLE_FP}"

print_info_msg "$VERBOSE" "
Copying the template NEMS configuration file to the experiment direct-
ory..."
Copying the template NEMS configuration file to the experiment directory..."
cp_vrfy "${NEMS_CONFIG_TMPL_FP}" "${NEMS_CONFIG_FP}"
#
# Copy the CCPP physics suite definition file from its location in the
Expand Down
28 changes: 27 additions & 1 deletion ush/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -940,66 +940,84 @@ case "$MACHINE" in

"WCOSS_CRAY")
FIXgsm=${FIXgsm:-"/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix/fix_am"}
FIXaer=${FIXaer:-"/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix/fix_aer"}
FIXlut=${FIXlut:-"/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/gpfs/hps3/emc/global/noscrub/emc.glopara/git/fv3gfs/fix/fix_sfc_climo"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

"WCOSS_DELL_P3")
FIXgsm=${FIXgsm:-"/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_am"}
FIXaer=${FIXaer:-"/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_aer"}
FIXlut=${FIXlut:-"/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git/fv3gfs/fix/fix_sfc_climo"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

"HERA")
FIXgsm=${FIXgsm:-"/scratch1/NCEPDEV/global/glopara/fix/fix_am"}
FIXaer=${FIXaer:-"/scratch1/NCEPDEV/global/glopara/fix/fix_aer"}
FIXlut=${FIXlut:-"/scratch1/NCEPDEV/global/glopara/fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/scratch1/NCEPDEV/global/glopara/fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/scratch1/NCEPDEV/global/glopara/fix/fix_sfc_climo"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/scratch2/BMC/det/FV3LAM_pregen"}
;;

"ORION")
FIXgsm=${FIXgsm:-"/work/noaa/global/glopara/fix/fix_am"}
FIXaer=${FIXaer:-"/work/noaa/global/glopara/fix/fix_aer"}
FIXlut=${FIXlut:-"/work/noaa/global/glopara/fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/work/noaa/global/glopara/fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/work/noaa/global/glopara/fix/fix_sfc_climo"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

"JET")
FIXgsm=${FIXgsm:-"/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/fix_am"}
FIXaer=${FIXaer:-"/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/fix_aer"}
FIXlut=${FIXlut:-"/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/fix_sfc_climo"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

"ODIN")
FIXgsm=${FIXgsm:-"/scratch/ywang/fix/theia_fix/fix_am"}
FIXaer=${FIXaer:-"/scratch/ywang/fix/theia_fix/fix_aer"}
FIXlut=${FIXlut:-"/scratch/ywang/fix/theia_fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/scratch/ywang/fix/theia_fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/scratch/ywang/fix/climo_fields_netcdf"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

"CHEYENNE")
FIXgsm=${FIXgsm:-"/glade/p/ral/jntp/UFS_CAM/fix/fix_am"}
FIXaer=${FIXaer:-"/glade/p/ral/jntp/UFS_CAM/fix/fix_aer"}
FIXlut=${FIXlut:-"/glade/p/ral/jntp/UFS_CAM/fix/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/glade/p/ral/jntp/UFS_CAM/fix/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/glade/p/ral/jntp/UFS_CAM/fix/climo_fields_netcdf"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

"STAMPEDE")
FIXgsm=${FIXgsm:-"/work/00315/tg455890/stampede2/regional_fv3/fix_am"}
FIXaer=${FIXaer:-"/work/00315/tg455890/stampede2/regional_fv3/fix_aer"}
FIXlut=${FIXlut:-"/work/00315/tg455890/stampede2/regional_fv3/fix_lut"}
TOPO_DIR=${TOPO_DIR:-"/work/00315/tg455890/stampede2/regional_fv3/fix_orog"}
SFC_CLIMO_INPUT_DIR=${SFC_CLIMO_INPUT_DIR:-"/work/00315/tg455890/stampede2/regional_fv3/climo_fields_netcdf"}
FIXLAM_NCO_BASEDIR=${FIXLAM_NCO_BASEDIR:-"/needs/to/be/specified"}
;;

*)
if [ -z "$FIXgsm" -o -z "$TOPO_DIR" -o -z "$SFC_CLIMO_INPUT_DIR" ]; then
if [ -z "$FIXgsm" -o -z "$FIXaer" -o -z "$FIXlut" -o -z "$TOPO_DIR" -o -z "$SFC_CLIMO_INPUT_DIR" ]; then
print_err_msg_exit "\
One or more fix file directories have not been specified for this machine:
MACHINE = \"$MACHINE\"
FIXgsm = \"${FIXgsm:-\"\"}
FIXaer = \"${FIXaer:-\"\"}
FIXlut = \"${FIXlut:-\"\"}
TOPO_DIR = \"${TOPO_DIR:-\"\"}
SFC_CLIMO_INPUT_DIR = \"${SFC_CLIMO_INPUT_DIR:-\"\"}
FIXLAM_NCO_BASEDIR = \"${FIXLAM_NCO_BASEDIR:-\"\"}
Expand Down Expand Up @@ -1400,6 +1418,10 @@ check_for_preexist_dir_file "$EXPTDIR" "${PREEXISTING_DIR_METHOD}"
# the fixed files containing various fields on global grids (which are
# usually much coarser than the native FV3-LAM grid).
#
# FIXclim:
# This is the directory that will contain the MERRA2 aerosol climatology
# data file and lookup tables for optics properties
#
# FIXLAM:
chan-hoo marked this conversation as resolved.
Show resolved Hide resolved
# This is the directory that will contain the fixed files or symlinks to
# the fixed files containing the grid, orography, and surface climatology
Expand Down Expand Up @@ -1434,6 +1456,7 @@ check_for_preexist_dir_file "$EXPTDIR" "${PREEXISTING_DIR_METHOD}"
LOGDIR="${EXPTDIR}/log"

FIXam="${EXPTDIR}/fix_am"
FIXclim="${EXPTDIR}/fix_clim"
FIXLAM="${EXPTDIR}/fix_lam"

if [ "${RUN_ENVIR}" = "nco" ]; then
Expand Down Expand Up @@ -2776,8 +2799,11 @@ PARMDIR="$PARMDIR"
MODULES_DIR="${MODULES_DIR}"
EXECDIR="$EXECDIR"
FIXam="$FIXam"
FIXclim="$FIXclim"
FIXLAM="$FIXLAM"
FIXgsm="$FIXgsm"
FIXaer="$FIXaer"
FIXlut="$FIXlut"
COMROOT="$COMROOT"
COMOUT_BASEDIR="${COMOUT_BASEDIR}"
TEMPLATE_DIR="${TEMPLATE_DIR}"
Expand Down
48 changes: 46 additions & 2 deletions ush/templates/FV3.input.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ FV3_HRRR:
kord_wz: 9
nord_tr: 2
nrows_blend: 10
regional_bcs_from_gsi: False
write_restart_with_bcs: False
gfs_physics_nml:
<<: *gsd_sar_phys
cdmbgwd: [3.5, 1.0]
Expand Down Expand Up @@ -287,6 +285,52 @@ FV3_GFS_v15p2:
ldebug: False
surf_map_nml:

FV3_GFS_v15_thompson_mynn_lam3km:
atmos_model_nml:
avg_max_length: 3600.0
fv_core_nml:
agrid_vel_rst: true
full_zs_filter: !!python/none
n_sponge: 9
npz_type: ''
rf_fast: false
sg_cutoff: 10000.0
vtdm4: 0.02
gfs_physics_nml:
avg_max_length: 3600.0
cdmbgwd: [0.88, 0.04]
do_deep: false
do_mynnsfclay: true
do_ugwp: false
fhswr: 900.0
fhlwr: 900.0
iaer: 1011
iccn: 2
icliq_sw: 2
imfdeepcnv: 2
imfshalcnv: 2
iopt_alb: 2
iopt_btr: 1
iopt_crs: 1
iopt_dveg: 2
iopt_frz: 1
iopt_inf: 1
iopt_rad: 1
iopt_run: 1
iopt_sfc: 1
iopt_snf: 4
iopt_stc: 1
iopt_tbot: 2
iovr: 3
ldiag_ugwp: false
lgfdlmprad: false
lsm: 1
lsoil_lsm: !!python/none
ltaerosol: false
xkzminv: 0.3
xkzm_m: 1.0
xkzm_h: 1.0

FV3_GFS_v16:
Copy link
Collaborator

@JeffBeck-NOAA JeffBeck-NOAA Dec 13, 2021

Choose a reason for hiding this comment

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

@chan-hoo, This SDF won't work with RAP/HRRR-based ICs unless "nstf_name" is 2, 1, 0, 0, 0. Does it need to be 2, 0, 0, 0, 0, or can we change it?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I believe that switching the second flag in nstf_name from 0 to 1 means that the NSST data from the surface data file will not be read into the model. If this is not desired/needed, I don't see an issue with changing nstf_name to 2,1,0,0,0

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@BenjaminBlake-NOAA, do you have an answer to Jeff's comment? I'll test [2,1,0,0,0] with both FV3GFS and RAP/HRRR.

Copy link
Collaborator

Choose a reason for hiding this comment

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

@chan-hoo I think we added comments at the same time :)

Copy link
Collaborator

Choose a reason for hiding this comment

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

Thanks, @BenjaminBlake-NOAA, @chan-hoo, it looks like we need a switch in the workflow to change the values of nstf_name based on the external model data being used for ICs. Since we don't have that at the moment, the easiest solution is to set all suites to 2,1,0,0,0, in which case, I believe FV3 will spin up its own NSST values.

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, @BenjaminBlake-NOAA. I'll test them.

Copy link
Collaborator

Choose a reason for hiding this comment

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

@JeffBeck-NOAA Yes I think that's right about FV3 spinning up its own NSST values

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@JeffBeck-NOAA, @BenjaminBlake-NOAA, both FV3GFS and RAP/HRRR works well with 2,1,0,0,0.

cires_ugwp_nml:
launch_level: 27
Expand Down
Loading