diff --git a/tests/baseline_configs/config.grid_RRFS_NA_3km.sh b/tests/baseline_configs/config.grid_RRFS_NA_3km.sh new file mode 100644 index 000000000..f9ef409ac --- /dev/null +++ b/tests/baseline_configs/config.grid_RRFS_NA_3km.sh @@ -0,0 +1,49 @@ +RUN_ENVIR="community" +PREEXISTING_DIR_METHOD="rename" + +PREDEF_GRID_NAME="RRFS_NA_3km" +QUILTING="TRUE" + +CCPP_PHYS_SUITE="FV3_GSD_SAR" + +FCST_LEN_HRS="06" +LBC_SPEC_INTVL_HRS="6" + +DATE_FIRST_CYCL="20190701" +DATE_LAST_CYCL="20190701" +CYCL_HRS=( "00" ) + +EXTRN_MDL_NAME_ICS="FV3GFS" +EXTRN_MDL_NAME_LBCS="FV3GFS" +USE_USER_STAGED_EXTRN_FILES="TRUE" + +######################################################################### +# 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=5 and n_split=2, the previous namelist values (k_split=4 +# and n_split=5) will result in significantly longer run times. + +# For Hera: +# 1) With 64-bit build and k_split=4/n_split=5, each time step takes ~21 seconds +# 2) 1) with k_split=5/n_split=2, each time step takes ~15 seconds +# 3) 2) with 32-bit build, each time step takes ~6 seconds + +NNODES_MAKE_ICS="12" +NNODES_MAKE_LBCS="12" +PPN_MAKE_ICS="4" +PPN_MAKE_LBCS="4" +WTIME_MAKE_LBCS="01:00:00" + +PPN_RUN_FCST="24" + +NNODES_RUN_POST="6" +PPN_RUN_POST="12" + +OMP_STACKSIZE_RUN_FCST="2048m" + +############################################################################### diff --git a/tests/baselines_list.txt b/tests/baselines_list.txt index 01eae66ad..b1e725551 100644 --- a/tests/baselines_list.txt +++ b/tests/baselines_list.txt @@ -48,6 +48,7 @@ grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_GFS_v15p2 grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_GSD_SAR grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_HRRR grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta +grid_RRFS_NA_3km grid_RRFS_NA_13km grid_RRFS_SUBCONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16beta grid_RRFS_SUBCONUS_3km_ics_HRRR_lbcs_RAP_suite_GFS_v15p2 diff --git a/ush/config_defaults.sh b/ush/config_defaults.sh index e11e2233a..1a9594db5 100644 --- a/ush/config_defaults.sh +++ b/ush/config_defaults.sh @@ -1657,7 +1657,7 @@ KMP_AFFINITY_RUN_FCST="scatter" OMP_NUM_THREADS_RUN_FCST="4" OMP_STACKSIZE_RUN_FCST="1024m" -CPUS_PER_TASK_RUN_FCST="4" +CPUS_PER_TASK_RUN_FCST="2" KMP_AFFINITY_RUN_POST="scatter" OMP_NUM_THREADS_RUN_POST="1" diff --git a/ush/set_predef_grid_params.sh b/ush/set_predef_grid_params.sh index cfb4136ba..eabae5d40 100644 --- a/ush/set_predef_grid_params.sh +++ b/ush/set_predef_grid_params.sh @@ -1166,6 +1166,48 @@ case ${PREDEF_GRID_NAME} in WRTCMP_dlat=$( printf "%.9f" $( bc -l <<< "(${ESGgrid_DELY}/${radius_Earth})*${degs_per_radian}" ) ) fi ;; +# +#----------------------------------------------------------------------- +# +# Future operational RRFS domain with ~3km cell size. +# +#----------------------------------------------------------------------- +# +"RRFS_NA_3km") + + GRID_GEN_METHOD="ESGgrid" + + ESGgrid_LON_CTR=-107.5 + ESGgrid_LAT_CTR=51.5 + + ESGgrid_DELX="3000.0" + ESGgrid_DELY="3000.0" + + ESGgrid_NX=3640 + ESGgrid_NY=2520 + + ESGgrid_WIDE_HALO_WIDTH=6 + + DT_ATMOS="${DT_ATMOS:-36}" + + LAYOUT_X="${LAYOUT_X:-18}" + LAYOUT_Y="${LAYOUT_Y:-36}" + 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_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 + ;; esac # diff --git a/ush/setup.sh b/ush/setup.sh index f1577516a..a726b5ef2 100755 --- a/ush/setup.sh +++ b/ush/setup.sh @@ -2265,8 +2265,6 @@ fi #----------------------------------------------------------------------- # NNODES_RUN_FCST=$(( (PE_MEMBER01 + PPN_RUN_FCST - 1)/PPN_RUN_FCST )) - - # #----------------------------------------------------------------------- # diff --git a/ush/templates/input.nml.FV3 b/ush/templates/input.nml.FV3 index 64f9f4d05..392689266 100644 --- a/ush/templates/input.nml.FV3 +++ b/ush/templates/input.nml.FV3 @@ -85,7 +85,7 @@ hord_vt = 6 hydrostatic = .false. io_layout = 1,1 - k_split = 4 + k_split = 5 ke_bg = 0.0 kord_mt = 9 kord_tm = -9 @@ -93,7 +93,7 @@ kord_wz = 9 make_nh = .true. mountain = .false. - n_split = 5 + n_split = 2 n_sponge = 24 n_zs_filter = 0 na_init = 1 diff --git a/ush/valid_param_vals.sh b/ush/valid_param_vals.sh index b27ecafa6..f81948e96 100644 --- a/ush/valid_param_vals.sh +++ b/ush/valid_param_vals.sh @@ -20,6 +20,7 @@ valid_vals_PREDEF_GRID_NAME=( \ "GSL_HAFSV0.A_3km" \ "GSD_HRRR_AK_50km" \ "RRFS_NA_13km" \ +"RRFS_NA_3km" \ ) valid_vals_CCPP_PHYS_SUITE=( \ "FV3_CPT_v0" \