diff --git a/jobs/JREGIONAL_MAKE_GRID b/jobs/JREGIONAL_MAKE_GRID index b4d549012..29dc00dce 100755 --- a/jobs/JREGIONAL_MAKE_GRID +++ b/jobs/JREGIONAL_MAKE_GRID @@ -156,7 +156,7 @@ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # #----------------------------------------------------------------------- # -# Create a flag file to make rocoto aware that the make_grid task has +# Create a flag file to make rocoto aware that the MAKE_GRID_TN task has # successfully completed (so that other tasks that depend on it can be # launched). # @@ -176,7 +176,7 @@ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # #----------------------------------------------------------------------- # -touch "$LOGDIR/make_grid_task_complete.txt" +touch "$LOGDIR/${MAKE_GRID_TN}_task_complete.txt" # #----------------------------------------------------------------------- # diff --git a/jobs/JREGIONAL_MAKE_OROG b/jobs/JREGIONAL_MAKE_OROG index 50b6c0369..53bd5466f 100755 --- a/jobs/JREGIONAL_MAKE_OROG +++ b/jobs/JREGIONAL_MAKE_OROG @@ -58,7 +58,7 @@ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # #----------------------------------------------------------------------- # -# Create a flag file to make rocoto aware that the make_orog task has +# Create a flag file to make rocoto aware that the MAKE_OROG_TN task has # successfully completed (so that other tasks that depend on it can be # launched). # @@ -78,7 +78,7 @@ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # #----------------------------------------------------------------------- # -touch "$LOGDIR/make_orog_task_complete.txt" +touch "$LOGDIR/${MAKE_OROG_TN}_task_complete.txt" # #----------------------------------------------------------------------- # diff --git a/jobs/JREGIONAL_MAKE_SFC_CLIMO b/jobs/JREGIONAL_MAKE_SFC_CLIMO index 24af27bfa..d23d07e87 100755 --- a/jobs/JREGIONAL_MAKE_SFC_CLIMO +++ b/jobs/JREGIONAL_MAKE_SFC_CLIMO @@ -80,7 +80,7 @@ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # #----------------------------------------------------------------------- # -# Create a flag file to make rocoto aware that the make_sfc_climo task +# Create a flag file to make rocoto aware that the MAKE_SFC_CLIMO_TN task # has successfully completed (so that other tasks that depend on it can # be launched). # @@ -100,7 +100,7 @@ Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." # #----------------------------------------------------------------------- # -touch "$LOGDIR/make_sfc_climo_task_complete.txt" +touch "$LOGDIR/${MAKE_SFC_CLIMO_TN}_task_complete.txt" # #----------------------------------------------------------------------- # diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh index 125d8d8d4..755f6e437 100644 --- a/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh @@ -5,7 +5,7 @@ PREDEF_GRID_NAME="RRFS_CONUS_13km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_GFS_v15p2" -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="3" DATE_FIRST_CYCL="20190701" diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh index 59b9f659c..1bd82a9d1 100644 --- a/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh @@ -5,7 +5,7 @@ PREDEF_GRID_NAME="RRFS_CONUS_13km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_RRFS_v1alpha" -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="3" DATE_FIRST_CYCL="20200801" diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh index 59c099885..28d852749 100644 --- a/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh @@ -5,8 +5,10 @@ PREDEF_GRID_NAME="RRFS_CONUS_25km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_GFS_v15p2" -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="3" +#FCST_LEN_HRS="36" +#LBC_SPEC_INTVL_HRS="3" DATE_FIRST_CYCL="20190701" DATE_LAST_CYCL="20190701" diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_quilt_FALSE.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_quilt_FALSE.sh new file mode 100644 index 000000000..7a7155786 --- /dev/null +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_quilt_FALSE.sh @@ -0,0 +1,17 @@ +RUN_ENVIR="community" +PREEXISTING_DIR_METHOD="rename" + +PREDEF_GRID_NAME="RRFS_CONUS_25km" +QUILTING="FALSE" + +CCPP_PHYS_SUITE="FV3_GFS_v15p2" +FCST_LEN_HRS="6" +LBC_SPEC_INTVL_HRS="3" + +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" diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh index 63ba5ec5c..738f6841f 100644 --- a/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh @@ -5,8 +5,10 @@ PREDEF_GRID_NAME="RRFS_CONUS_25km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_RRFS_v1alpha" -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="3" +#FCST_LEN_HRS="36" +#LBC_SPEC_INTVL_HRS="1" DATE_FIRST_CYCL="20200801" DATE_LAST_CYCL="20200801" diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh index 8f339e834..353a865ec 100644 --- a/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2.sh @@ -5,7 +5,7 @@ PREDEF_GRID_NAME="RRFS_CONUS_3km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_GFS_v15p2" -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="3" DATE_FIRST_CYCL="20190701" diff --git a/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh b/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh index ae7c12cfa..f01ac5013 100644 --- a/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh +++ b/tests/baseline_configs/config.grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha.sh @@ -5,7 +5,7 @@ PREDEF_GRID_NAME="RRFS_CONUS_3km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_RRFS_v1alpha" -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="3" DATE_FIRST_CYCL="20200801" diff --git a/tests/baseline_configs/config.regional_001.sh b/tests/baseline_configs/config.suite_FV3_GFS_2017_gfdlmp.sh similarity index 100% rename from tests/baseline_configs/config.regional_001.sh rename to tests/baseline_configs/config.suite_FV3_GFS_2017_gfdlmp.sh diff --git a/tests/baseline_configs/config.suite_FV3_GFS_2017_gfdlmp_regional.sh b/tests/baseline_configs/config.suite_FV3_GFS_2017_gfdlmp_regional.sh new file mode 100644 index 000000000..fdb978f4e --- /dev/null +++ b/tests/baseline_configs/config.suite_FV3_GFS_2017_gfdlmp_regional.sh @@ -0,0 +1,17 @@ +RUN_ENVIR="community" +PREEXISTING_DIR_METHOD="rename" + +PREDEF_GRID_NAME="RRFS_CONUS_25km" +QUILTING="TRUE" + +CCPP_PHYS_SUITE="FV3_GFS_2017_gfdlmp_regional" +FCST_LEN_HRS="6" +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" diff --git a/tests/baseline_configs/config.suite_FV3_RRFS_v1alpha.sh b/tests/baseline_configs/config.suite_FV3_RRFS_v1alpha.sh index 5c9252fd7..aa6e923da 100644 --- a/tests/baseline_configs/config.suite_FV3_RRFS_v1alpha.sh +++ b/tests/baseline_configs/config.suite_FV3_RRFS_v1alpha.sh @@ -5,8 +5,7 @@ PREDEF_GRID_NAME="RRFS_CONUS_25km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_RRFS_v1alpha" - -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="6" DATE_FIRST_CYCL="20190520" diff --git a/tests/baseline_configs/config.suite_FV3_RRFS_v1beta.sh b/tests/baseline_configs/config.suite_FV3_RRFS_v1beta.sh index 5e7b2211a..640eef179 100644 --- a/tests/baseline_configs/config.suite_FV3_RRFS_v1beta.sh +++ b/tests/baseline_configs/config.suite_FV3_RRFS_v1beta.sh @@ -5,8 +5,7 @@ PREDEF_GRID_NAME="RRFS_CONUS_25km" QUILTING="TRUE" CCPP_PHYS_SUITE="FV3_RRFS_v1beta" - -FCST_LEN_HRS="06" +FCST_LEN_HRS="6" LBC_SPEC_INTVL_HRS="6" DATE_FIRST_CYCL="20190520" diff --git a/tests/baselines_list.txt b/tests/baselines_list.txt index 3b25baba2..0b57c90c0 100644 --- a/tests/baselines_list.txt +++ b/tests/baselines_list.txt @@ -20,6 +20,7 @@ grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_GSD_SAR grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2 +grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_quilt_FALSE grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16beta grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_GSD_SAR grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha @@ -43,9 +44,10 @@ new_GFDLgrid new_GFDLgrid__GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES_eq_FALSE new_GFDLgrid__GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES_eq_TRUE pregen_grid_orog_sfc_climo -regional_001 regional_002 suite_FV3_CPT_v0 +suite_FV3_GFS_2017_gfdlmp +suite_FV3_GFS_2017_gfdlmp_regional suite_FV3_GFS_v15p2 suite_FV3_GFS_v16beta suite_FV3_GSD_SAR diff --git a/ush/config_defaults.sh b/ush/config_defaults.sh index daf22738f..d182423c8 100644 --- a/ush/config_defaults.sh +++ b/ush/config_defaults.sh @@ -889,14 +889,11 @@ BLOCKSIZE="" # # QUILTING: # Flag that determines whether or not to use the write component for -# writing output files to disk. -# -# WRTCMP_write_groups: -# The number of write groups (i.e. groups of MPI tasks) to use in the -# write component. -# -# WRTCMP_write_tasks_per_group: -# The number of MPI tasks to allocate for each write group. +# writing forecast output files to disk. Note that if this is set to +# "FALSE", the RUN_POST_TN (meta)task cannot be run because the Unified +# Post Processor (UPP) code that this task calls cannot process the +# native grid. In that case, the RUN_POST_TN (meta)task will be +# automatically removed from the rocoto workflow XML. # # PRINT_ESMF: # Flag for whether or not to output extra (debugging) information from @@ -906,6 +903,13 @@ BLOCKSIZE="" # in the model configuration file MODEL_CONFIG_FN in the forecast's run # directory). # +# WRTCMP_write_groups: +# The number of write groups (i.e. groups of MPI tasks) to use in the +# write component. +# +# WRTCMP_write_tasks_per_group: +# The number of MPI tasks to allocate for each write group. +# #----------------------------------------------------------------------- # QUILTING="TRUE" diff --git a/ush/create_model_configure_file.sh b/ush/create_model_configure_file.sh index 043b3e1b7..69bef0a5a 100644 --- a/ush/create_model_configure_file.sh +++ b/ush/create_model_configure_file.sh @@ -68,25 +68,92 @@ nthreads \ # #----------------------------------------------------------------------- # - local yyyy \ + local write_groups \ + write_tasks_per_group \ + cen_lon \ + cen_lat \ + lon_lwr_left \ + lat_lwr_left \ + lon_upr_rght \ + lat_upr_rght \ + stdlat1 \ + stdlat2 \ + nx \ + ny \ + dx \ + dy \ + dlon \ + dlat \ + yyyy \ mm \ dd \ hh \ - dot_quilting_dot \ - dot_print_esmf_dot \ + quilting \ + print_esmf \ settings \ model_config_fp # #----------------------------------------------------------------------- # -# Create a model configuration file in the specified run directory. +# Set write-component computational and grid parameters to be used in the +# jinja template model_configure file to null strings. Then, if the write- +# component is to be used, reset these appropriately according to the type +# (coordinate system) of the grid that the write-component will be using. # #----------------------------------------------------------------------- # - print_info_msg "$VERBOSE" " -Creating a model configuration file (\"${MODEL_CONFIG_FN}\") in the specified -run directory (run_dir): - run_dir = \"${run_dir}\"" + write_groups="" + write_tasks_per_group="" + cen_lon="" + cen_lat="" + lon_lwr_left="" + lat_lwr_left="" + lon_upr_rght="" + lat_upr_rght="" + stdlat1="" + stdlat2="" + nx="" + ny="" + dx="" + dy="" + dlon="" + dlat="" + + if [ "$QUILTING" = "TRUE" ]; then + + write_groups="${WRTCMP_write_groups}" + write_tasks_per_group="${WRTCMP_write_tasks_per_group}" + cen_lon="${WRTCMP_cen_lon}" + cen_lat="${WRTCMP_cen_lat}" + lon_lwr_left="${WRTCMP_lon_lwr_left}" + lat_lwr_left="${WRTCMP_lat_lwr_left}" + + if [ "${WRTCMP_output_grid}" = "lambert_conformal" ]; then + + stdlat1="${WRTCMP_stdlat1}" + stdlat2="${WRTCMP_stdlat2}" + nx="${WRTCMP_nx}" + ny="${WRTCMP_ny}" + dx="${WRTCMP_dx}" + dy="${WRTCMP_dy}" + + elif [ "${WRTCMP_output_grid}" = "regional_latlon" ] || \ + [ "${WRTCMP_output_grid}" = "rotated_latlon" ]; then + + lon_upr_rght="${WRTCMP_lon_upr_rght}" + lat_upr_rght="${WRTCMP_lat_upr_rght}" + dlon="${WRTCMP_dlon}" + dlat="${WRTCMP_dlat}" + + fi + + fi +# +#----------------------------------------------------------------------- +# +# Set convenience variables needed below. +# +#----------------------------------------------------------------------- # # Extract from cdate the starting year, month, day, and hour of the forecast. # @@ -97,17 +164,23 @@ run directory (run_dir): # # Set parameters in the model configure file. # - - dot_quilting_dot="."$(echo_lowercase $QUILTING)"." - dot_print_esmf_dot="."$(echo_lowercase $PRINT_ESMF)"." + quilting=$(echo_lowercase $QUILTING) + print_esmf=$(echo_lowercase ${PRINT_ESMF}) # #----------------------------------------------------------------------- # +# Create a model configuration file in the specified run directory. +# +#----------------------------------------------------------------------- +# + print_info_msg "$VERBOSE" " +Creating a model configuration file (\"${MODEL_CONFIG_FN}\") in the specified +run directory (run_dir): + run_dir = \"${run_dir}\"" +# # Create a multiline variable that consists of a yaml-compliant string # specifying the values that the jinja variables in the template # model_configure file should be set to. -# -#----------------------------------------------------------------------- # settings="\ 'PE_MEMBER01': ${PE_MEMBER01} @@ -119,57 +192,25 @@ run directory (run_dir): 'dt_atmos': ${DT_ATMOS} 'atmos_nthreads': ${nthreads:-1} 'ncores_per_node': ${NCORES_PER_NODE} - 'quilting': ${dot_quilting_dot} - 'print_esmf': ${dot_print_esmf_dot} - 'output_grid': ${WRTCMP_output_grid}" -# 'output_grid': \'${WRTCMP_output_grid}\'" -# -# If the write-component is to be used, then specify a set of computational -# parameters and a set of grid parameters. The latter depends on the type -# (coordinate system) of the grid that the write-component will be using. -# - if [ "$QUILTING" = "TRUE" ]; then - - settings="${settings} - 'write_groups': ${WRTCMP_write_groups} - 'write_tasks_per_group': ${WRTCMP_write_tasks_per_group} - 'cen_lon': ${WRTCMP_cen_lon} - 'cen_lat': ${WRTCMP_cen_lat} - 'lon1': ${WRTCMP_lon_lwr_left} - 'lat1': ${WRTCMP_lat_lwr_left}" - - if [ "${WRTCMP_output_grid}" = "lambert_conformal" ]; then - - settings="${settings} - 'stdlat1': ${WRTCMP_stdlat1} - 'stdlat2': ${WRTCMP_stdlat2} - 'nx': ${WRTCMP_nx} - 'ny': ${WRTCMP_ny} - 'dx': ${WRTCMP_dx} - 'dy': ${WRTCMP_dy} - 'lon2': \"\" - 'lat2': \"\" - 'dlon': \"\" - 'dlat': \"\"" - - elif [ "${WRTCMP_output_grid}" = "regional_latlon" ] || \ - [ "${WRTCMP_output_grid}" = "rotated_latlon" ]; then - - settings="${settings} - 'lon2': ${WRTCMP_lon_upr_rght} - 'lat2': ${WRTCMP_lat_upr_rght} - 'dlon': ${WRTCMP_dlon} - 'dlat': ${WRTCMP_dlat} - 'stdlat1': \"\" - 'stdlat2': \"\" - 'nx': \"\" - 'ny': \"\" - 'dx': \"\" - 'dy': \"\"" - - fi - - fi + 'quilting': ${quilting} + 'print_esmf': ${print_esmf} + 'output_grid': ${WRTCMP_output_grid} + 'write_groups': ${write_groups} + 'write_tasks_per_group': ${write_tasks_per_group} + 'cen_lon': ${cen_lon} + 'cen_lat': ${cen_lat} + 'lon1': ${lon_lwr_left} + 'lat1': ${lat_lwr_left} + 'stdlat1': ${stdlat1} + 'stdlat2': ${stdlat2} + 'nx': ${nx} + 'ny': ${ny} + 'dx': ${dx} + 'dy': ${dy} + 'lon2': ${lon_upr_rght} + 'lat2': ${lat_upr_rght} + 'dlon': ${dlon} + 'dlat': ${dlat}" print_info_msg $VERBOSE " The variable \"settings\" specifying values to be used in the \"${MODEL_CONFIG_FN}\" @@ -178,12 +219,8 @@ file has been set as follows: settings = $settings" # -#----------------------------------------------------------------------- -# # Call a python script to generate the experiment's actual MODEL_CONFIG_FN # file from the template file. -# -#----------------------------------------------------------------------- # model_config_fp="${run_dir}/${MODEL_CONFIG_FN}" $USHDIR/fill_jinja_template.py -q \ diff --git a/ush/generate_FV3LAM_wflow.sh b/ush/generate_FV3LAM_wflow.sh index a9bdf38df..341c053d7 100755 --- a/ush/generate_FV3LAM_wflow.sh +++ b/ush/generate_FV3LAM_wflow.sh @@ -19,11 +19,11 @@ function generate_FV3LAM_wflow() { # #----------------------------------------------------------------------- # - if [[ $(uname -s) == Darwin ]]; then - local scrfunc_fp=$( greadlink -f "${BASH_SOURCE[0]}" ) - else - local scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" ) - fi +if [[ $(uname -s) == Darwin ]]; then + local scrfunc_fp=$( greadlink -f "${BASH_SOURCE[0]}" ) +else + local scrfunc_fp=$( readlink -f "${BASH_SOURCE[0]}" ) +fi local scrfunc_fn=$( basename "${scrfunc_fp}" ) local scrfunc_dir=$( dirname "${scrfunc_fp}" ) # @@ -252,6 +252,11 @@ settings="\ 'run_task_make_orog': ${RUN_TASK_MAKE_OROG} 'run_task_make_sfc_climo': ${RUN_TASK_MAKE_SFC_CLIMO} # +# Flag that specifies whether the write-component (quilting) is being +# used to generate forecast output files. +# + 'quilting': ${QUILTING} +# # Number of physical cores per node for the current machine. # 'ncores_per_node': ${NCORES_PER_NODE} diff --git a/ush/launch_FV3LAM_wflow.sh b/ush/launch_FV3LAM_wflow.sh index ebf1336df..5dfa65ae8 100755 --- a/ush/launch_FV3LAM_wflow.sh +++ b/ush/launch_FV3LAM_wflow.sh @@ -87,6 +87,14 @@ fi # #----------------------------------------------------------------------- # +# Source bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHDIR/source_util_funcs.sh +# +#----------------------------------------------------------------------- +# # Set the name of the experiment. We take this to be the name of the # experiment subdirectory (i.e. the string after the last "/" in the # full path to the experiment directory). diff --git a/ush/templates/FV3.input.yml b/ush/templates/FV3.input.yml index ac27188b7..a9e100179 100644 --- a/ush/templates/FV3.input.yml +++ b/ush/templates/FV3.input.yml @@ -11,12 +11,10 @@ FV3_GSD_v0: - gfs_physics_nml: - effr_in: True FV3_GSD_SAR: gfs_physics_nml: &gsd_sar_phys - effr_in: True + do_deep: False imfdeepcnv: 0 imfshalcnv: 0 iopt_alb: 2 @@ -31,14 +29,12 @@ FV3_GSD_SAR: iopt_snf: 4 iopt_stc: 1 iopt_tbot: 2 - do_deep: False FV3_RRFS_v1alpha: gfs_physics_nml: <<: *gsd_sar_phys do_deep: False do_mynnsfclay: False - effr_in: True imfdeepcnv: -1 imfshalcnv: -1 lsm: 2 @@ -51,7 +47,6 @@ FV3_RRFS_v1beta: <<: *gsd_sar_phys do_deep: False do_mynnsfclay: True - effr_in: True imfdeepcnv: -1 imfshalcnv: -1 lsm: 2 @@ -86,7 +81,6 @@ FV3_GFS_2017_gfdlmp: do_deep: False do_mynnedmf: !!python/none do_mynnsfclay: !!python/none - effr_in: True fhcyc: 0.0 fhlwr: 3600.0 fhswr: 3600.0 @@ -193,7 +187,6 @@ FV3_GFS_2017_gfdlmp_regional: FV3_GFS_v15p2: atmos_model_nml: - ccpp_suite: FV3_GFS_v15 fdiag: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 18, 21, 24] fms_nml: domains_stack_size: 1800200 @@ -217,9 +210,6 @@ FV3_GFS_v15p2: range_warn: False rf_cutoff: 750.0 rf_fast: False - stretch_fac: 0.999 - target_lat: 38.5 - target_lon: -97.5 gfdl_cloud_microphysics_nml: <<: *gfs_gfdl_cloud_mp sedi_transport: True @@ -239,7 +229,6 @@ FV3_GFS_v15p2: do_tofd: False do_ugwp: False do_ysu: False - effr_in: False fhcyc: 0.0 fhlwr: 3600.0 fhswr: 3600.0 @@ -264,7 +253,7 @@ FV3_GFS_v15p2: iopt_stc: 1 iopt_tbot: 2 ldiag_ugwp: False - lgfdlmprad: False + lgfdlmprad: True lradar: !!python/none lsm: 1 lsoil: !!python/none @@ -272,7 +261,6 @@ FV3_GFS_v15p2: ltaerosol: !!python/none shal_cnv: True shinhong: False - trans_trac: False ttendlim: !!python/none xkzm_h: 1.0 xkzm_m: 1.0 @@ -284,7 +272,6 @@ FV3_GFS_v15p2: FV3_GFS_v16beta: atmos_model_nml: - ccpp_suite: FV3_GFS_v16 fdiag: 3 fhmax: 240 fhmaxhf: 0 @@ -327,7 +314,6 @@ FV3_GFS_v16beta: do_myjsfc: !!python/none do_tofd: True do_ysu: !!python/none - effr_in: True hybedmf: False iaer: 5111 icliq_sw: 2 @@ -344,7 +330,6 @@ FV3_GFS_v16beta: psautco: [0.0008, 0.0005] satmedmf: True shinhong: !!python/none - trans_trac: True xkzminv: !!python/none xkzm_m: !!python/none xkzm_h: !!python/none @@ -358,7 +343,6 @@ FV3_GFS_v16beta: FV3_CPT_v0: atmos_model_nml: - ccpp_suite: FV3_CPT_v0 fdiag: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 18, 21, 24] fms_nml: domains_stack_size: 1800200 @@ -394,7 +378,6 @@ FV3_CPT_v0: do_mynnedmf: !!python/none do_mynnsfclay: !!python/none do_shoc: False - effr_in: True fhcyc: 0.0 fhlwr: 3600.0 fhswr: 3600.0 diff --git a/ush/templates/FV3LAM_wflow.xml b/ush/templates/FV3LAM_wflow.xml index 195f93451..fe244d9de 100644 --- a/ush/templates/FV3LAM_wflow.xml +++ b/ush/templates/FV3LAM_wflow.xml @@ -405,6 +405,7 @@ MODULES_RUN_TASK_FP script. +{%- if quilting -%}