Skip to content

Commit

Permalink
[develop] Add new ccpp physics suite 'FV3_GFS_v17_p8' (ufs-community#574
Browse files Browse the repository at this point in the history
)

* Add the CCPP physics suite FV3_GFS_v17_p8 to the UFS SRW App.
* Add a new WE2E test for the new suite.
* Remove Hera from the Jenkins pipeline (no account for EPIC currently on this machine).

---------

Co-authored-by: Michael Lueken <[email protected]>
Co-authored-by: chan-hoo <[email protected]>
  • Loading branch information
3 people committed Feb 8, 2023
1 parent 844f347 commit 4997e4f
Show file tree
Hide file tree
Showing 13 changed files with 452 additions and 6 deletions.
4 changes: 3 additions & 1 deletion .cicd/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ pipeline {
// choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion', 'pclusternoaav2use1', 'azclusternoaav2eus1', 'gclusternoaav2usc1'], description: 'Specify the platform(s) to use')
// Use the line below to enable the PW AWS cluster
// choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion', 'pclusternoaav2use1'], description: 'Specify the platform(s) to use')
choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion'], description: 'Specify the platform(s) to use')
// Use the line below to enable hera
// choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'hera', 'jet', 'orion'], description: 'Specify the platform(s) to use')
choice(name: 'SRW_PLATFORM_FILTER', choices: ['all', 'cheyenne', 'gaea', 'jet', 'orion'], description: 'Specify the platform(s) to use')
// Allow job runner to filter based on compiler
choice(name: 'SRW_COMPILER_FILTER', choices: ['all', 'gnu', 'intel'], description: 'Specify the compiler(s) to use to build')
// Uncomment the following line to re-enable comprehensive tests
Expand Down
124 changes: 124 additions & 0 deletions parm/FV3.input.yml
Original file line number Diff line number Diff line change
Expand Up @@ -413,3 +413,127 @@ FV3_GFS_v16:
ldebug: False
surf_map_nml: !!python/none

FV3_GFS_v17_p8:
cires_ugwp_nml:
launch_level: 27
fv_core_nml:
<<: *gfs_v15_fv_core
agrid_vel_rst: True
d2_bg_k1: 0.2
d2_bg_k2: 0.04
delt_max: 0.002
dnats: 0
do_sat_adj: False
do_vort_damp: !!python/none
full_zs_filter: !!python/none
fv_sg_adj: 450
hord_dp: -5
hord_mt: 5
hord_tm: 5
hord_vt: 5
hord_tr: 8
k_split: 6
n_split: 6
n_sponge: 10
nord: 2
nudge_dz: False
n_zs_filter: !!python/none
range_warn: True
res_latlon_dynamics: ''
rf_fast: !!python/none
tau: 10.0
gfdl_cloud_microphysics_nml:
<<: *gfs_gfdl_cloud_mp
mp_time: 150.0
reiflag: 2
rthresh: 1.0e-06
sedi_transport: True
tau_l2v: 225.0
tau_v2l: 150.0
gfs_physics_nml:
<<: *gfs_v15_gfs_physics
active_gases: h2o_co2_o3_n2o_ch4_o2
bl_mynn_edmf: 1
bl_mynn_edmf_mom: 1
bl_mynn_tkeadvect: True
cdmbgwd: [4.0, 0.15, 1.0, 1.0]
cplchm: False
decfl: 10
do_gsl_drag_ls_bl: False
do_gsl_drag_ss: True
do_gsl_drag_tofd: False
do_myjpbl: !!python/none
do_myjsfc: !!python/none
do_mynnedmf: False
do_mynnsfclay: False
do_RRTMGP: False
do_ugwp_v0: True
do_ugwp_v0_nst_only: False
do_ugwp_v0_orog_only: False
do_ugwp_v1: False
do_ugwp_v1_orog_only: False
do_ysu: !!python/none
doGP_cldoptics_LUT: False
doGP_lwscat: False
dt_inner: 150
fhzero: 6
frac_grid: True
gwd_opt: 2
hybedmf: False
iaer: 1011
ialb: 2
iau_inc_files: !!python/none
icloud_bl: 1
icliq_sw: 2
iems: 2
imp_physics: 8
iopt_alb: 1
iopt_crs: 2
iopt_dveg: 4
iopt_rad: 3
iopt_sfc: 3
iopt_stc: 3
iovr: 3
isatmedmf: 1
ldiag_ugwp: !!python/none
lgfdlmprad: False
lradar: False
lseaspray: True
lsm: 2
lsoil: 4
lsoil_lsm: 4
ltaerosol: False
lw_file_clouds: rrtmgp-cloud-optics-coeffs-lw.nc
lw_file_gas: rrtmgp-data-lw-g128-210809.nc
min_lakeice: 0.15
min_seaice: 0.15
nsradar_reset: !!python/none
nstf_name: [2, 0, 0, 0, 0]
prautco: [0.00015, 0.00015]
psautco: [0.0008, 0.0005]
qdiag3d: False
ras: False
rrtmgp_nBandsLW: 16
rrtmgp_nBandsSW: 14
rrtmgp_nGptsLW: 128
rrtmgp_nGptsSW: 112
satmedmf: True
sedi_semi: True
sfclay_compute_flux: !!python/none
shinhong: !!python/none
sw_file_clouds: rrtmgp-cloud-optics-coeffs-sw.nc
sw_file_gas: rrtmgp-data-sw-g112-210809.nc
ttendlim: -999
xkzminv: !!python/none
xkzm_m: !!python/none
xkzm_h: !!python/none
mpp_io_nml:
deflate_level: 1
shuffle: 1
namsfc:
fsicl: 0
fsics: 0
landice: False
ldebug: False
surf_map_nml: !!python/none

245 changes: 245 additions & 0 deletions parm/diag_table.FV3_GFS_v17_p8

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions parm/field_table.FV3_GFS_v17_p8
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# added by FRE: sphum must be present in atmos
# specific humidity for moist runs
"TRACER", "atmos_mod", "sphum"
"longname", "specific humidity"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=3.e-6" /
# prognostic cloud water mixing ratio
"TRACER", "atmos_mod", "liq_wat"
"longname", "cloud water mixing ratio"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=1.e30" /
# prognostic ice water mixing ratio
"TRACER", "atmos_mod", "ice_wat"
"longname", "cloud ice mixing ratio"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=1.e30" /
# prognostic rain water mixing ratio
"TRACER", "atmos_mod", "rainwat"
"longname", "rain water mixing ratio"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=1.e30" /
# prognostic snow water mixing ratio
"TRACER", "atmos_mod", "snowwat"
"longname", "snow water mixing ratio"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=1.e30" /
# prognostic Grau water mixing ratio
"TRACER", "atmos_mod", "graupel"
"longname", "graupel mixing ratio"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=1.e30" /
# prognostic cloud ice number concentration
"TRACER", "atmos_mod", "ice_nc"
"longname", "cloud ice water number concentration"
"units", "/kg"
"profile_type", "fixed", "surface_value=0.0" /
# prognostic rain number concentration
"TRACER", "atmos_mod", "rain_nc"
"longname", "rain number concentration"
"units", "/kg"
"profile_type", "fixed", "surface_value=0.0" /
# prognostic ozone mixing ratio tracer
"TRACER", "atmos_mod", "o3mr"
"longname", "ozone mixing ratio"
"units", "kg/kg"
"profile_type", "fixed", "surface_value=1.e30" /
# prognostic subgrid scale turbulent kinetic energy
"TRACER", "atmos_mod", "sgs_tke"
"longname", "subgrid scale turbulent kinetic energy"
"units", "m2/s2"
"profile_type", "fixed", "surface_value=0.0" /
1 change: 1 addition & 0 deletions scripts/exregional_make_ics.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ case "${CCPP_PHYS_SUITE}" in
#
"FV3_RRFS_v1beta" | \
"FV3_GFS_v15_thompson_mynn_lam3km" | \
"FV3_GFS_v17_p8" | \
"FV3_WoFS_v0" | \
"FV3_HRRR" )
if [ "${EXTRN_MDL_NAME_ICS}" = "RAP" ] || \
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 @@ -122,6 +122,7 @@ case "${CCPP_PHYS_SUITE}" in
#
"FV3_RRFS_v1beta" | \
"FV3_GFS_v15_thompson_mynn_lam3km" | \
"FV3_GFS_v17_p8" | \
"FV3_WoFS_v0" | \
"FV3_HRRR" )
if [ "${EXTRN_MDL_NAME_LBCS}" = "RAP" ] || \
Expand Down
2 changes: 1 addition & 1 deletion scripts/exregional_make_orog.sh
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ mv_vrfy "${raw_orog_fp_orig}" "${raw_orog_fp}"
#
#-----------------------------------------------------------------------
#
if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ]; then
if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ] || [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v17_p8" ]; then
DATA="${DATA:-${OROG_DIR}/temp_orog_data}"
mkdir_vrfy -p ${DATA}
cd_vrfy ${DATA}
Expand Down
2 changes: 1 addition & 1 deletion scripts/exregional_run_fcst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ create_symlink_to_file target="$target" symlink="$symlink" \
# that the FV3 model is hardcoded to recognize, and those are the names
# we use below.
#
if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ]; then
if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ] || [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v17_p8" ]; then

fileids=( "ss" "ls" )
for fileid in "${fileids[@]}"; do
Expand Down
2 changes: 1 addition & 1 deletion sorc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ if (BUILD_UFS)
list(APPEND TARGET_LIST ufs-weather-model)

if(NOT CCPP_SUITES)
set(CCPP_SUITES "FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0")
set(CCPP_SUITES "FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GFS_v15p2,FV3_GFS_v16,FV3_GFS_v17_p8,FV3_RRFS_v1beta,FV3_HRRR,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0")
endif()

if(NOT APP)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
metadata:
description: |-
This test is to ensure that the workflow running in community mode
completes successfully on the RRFS_CONUS_25km grid using the GFS_v17_p8
physics suite with ICs and LBCs derived from the FV3GFS.
user:
RUN_ENVIR: community
workflow:
CCPP_PHYS_SUITE: FV3_GFS_v17_p8
PREDEF_GRID_NAME: RRFS_CONUS_25km
DATE_FIRST_CYCL: '2019070100'
DATE_LAST_CYCL: '2019070100'
FCST_LEN_HRS: 6
PREEXISTING_DIR_METHOD: rename
task_get_extrn_ics:
EXTRN_MDL_NAME_ICS: FV3GFS
USE_USER_STAGED_EXTRN_FILES: true
task_get_extrn_lbcs:
EXTRN_MDL_NAME_LBCS: FV3GFS
LBC_SPEC_INTVL_HRS: 3
USE_USER_STAGED_EXTRN_FILES: true
2 changes: 1 addition & 1 deletion ush/config_defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1837,7 +1837,7 @@ task_run_fcst:
#
#-----------------------------------------------------------------------
#
USE_MERRA_CLIMO: '{{ workflow.CCPP_PHYS_SUITE == "FV3_GFS_v15_thompson_mynn_lam3km" }}'
USE_MERRA_CLIMO: '{{ workflow.CCPP_PHYS_SUITE == "FV3_GFS_v15_thompson_mynn_lam3km" or workflow.CCPP_PHYS_SUITE == "FV3_GFS_v17_p8" }}'

#----------------------------
# POST config parameters
Expand Down
2 changes: 1 addition & 1 deletion ush/link_fix.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ def link_fix(
f"C*{dot_or_uscore}oro_data.tile{tile_rgnl}.halo{nh0}.nc",
f"C*{dot_or_uscore}oro_data.tile{tile_rgnl}.halo{nh4}.nc",
]
if ccpp_phys_suite == "FV3_HRRR":
if ccpp_phys_suite == "FV3_HRRR" or ccpp_phys_suite == "FV3_GFS_v17_p8":
fns += [
f"C*{dot_or_uscore}oro_data_ss.tile{tile_rgnl}.halo{nh0}.nc",
f"C*{dot_or_uscore}oro_data_ls.tile{tile_rgnl}.halo{nh0}.nc",
Expand Down
1 change: 1 addition & 0 deletions ush/valid_param_vals.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ valid_vals_CCPP_PHYS_SUITE: [
"FV3_GFS_v15p2",
"FV3_GFS_v15_thompson_mynn_lam3km",
"FV3_GFS_v16",
"FV3_GFS_v17_p8",
"FV3_RRFS_v1beta",
"FV3_WoFS_v0",
"FV3_HRRR"
Expand Down

0 comments on commit 4997e4f

Please sign in to comment.