From 66dacdabcc288d0bc944c9099d91a083b3df72e0 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Wed, 3 Feb 2021 13:26:58 -0700 Subject: [PATCH 01/17] Remove the variables stretch_fac, target_lon, and target_lat from any suites that define it in FV3.input.yml because these values are always overwritten in generate_FV3LAM_wflow.sh by the values supplied via the experiment configuration file (config.sh). --- ush/templates/FV3.input.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/ush/templates/FV3.input.yml b/ush/templates/FV3.input.yml index ac27188b7..5325408ce 100644 --- a/ush/templates/FV3.input.yml +++ b/ush/templates/FV3.input.yml @@ -217,9 +217,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 From 5b65083ed0ee912dec5f3eed4c40156691448bde Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Thu, 4 Feb 2021 13:58:37 -0700 Subject: [PATCH 02/17] Add two new generic suite WE2E tests for the FV3_2017_gfdlmp_regional and FV3_HRRR suites; rename the regional_001 test to make it the generic test for the FV3_GFS_2017_gfdlmp suite. --- ...1.sh => config.suite_FV3_GFS_2017_gfdlmp.sh} | 0 ...config.suite_FV3_GFS_2017_gfdlmp_regional.sh | 17 +++++++++++++++++ tests/baseline_configs/config.suite_FV3_HRRR.sh | 17 +++++++++++++++++ 3 files changed, 34 insertions(+) rename tests/baseline_configs/{config.regional_001.sh => config.suite_FV3_GFS_2017_gfdlmp.sh} (100%) create mode 100644 tests/baseline_configs/config.suite_FV3_GFS_2017_gfdlmp_regional.sh create mode 100644 tests/baseline_configs/config.suite_FV3_HRRR.sh 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_HRRR.sh b/tests/baseline_configs/config.suite_FV3_HRRR.sh new file mode 100644 index 000000000..72a950347 --- /dev/null +++ b/tests/baseline_configs/config.suite_FV3_HRRR.sh @@ -0,0 +1,17 @@ +RUN_ENVIR="community" +PREEXISTING_DIR_METHOD="rename" + +PREDEF_GRID_NAME="RRFS_CONUS_25km" +QUILTING="TRUE" + +CCPP_PHYS_SUITE="FV3_HRRR" +FCST_LEN_HRS="6" +LBC_SPEC_INTVL_HRS="6" + +DATE_FIRST_CYCL="20200810" +DATE_LAST_CYCL="20200810" +CYCL_HRS=( "00" ) + +EXTRN_MDL_NAME_ICS="HRRR" +EXTRN_MDL_NAME_LBCS="RAP" +USE_USER_STAGED_EXTRN_FILES="TRUE" From a9b95ad9a8469b0e82a0477519cc159e700e6495 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Thu, 4 Feb 2021 14:01:39 -0700 Subject: [PATCH 03/17] Bug fix in FV3.input.yml for the GSD_v0 scheme; other minor changes. --- .../config.suite_FV3_RRFS_v1alpha.sh | 3 +-- .../config.suite_FV3_RRFS_v1beta.sh | 3 +-- ush/templates/FV3.input.yml | 18 ++---------------- 3 files changed, 4 insertions(+), 20 deletions(-) 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/ush/templates/FV3.input.yml b/ush/templates/FV3.input.yml index 5325408ce..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 @@ -236,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 @@ -261,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 @@ -269,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 @@ -281,7 +272,6 @@ FV3_GFS_v15p2: FV3_GFS_v16beta: atmos_model_nml: - ccpp_suite: FV3_GFS_v16 fdiag: 3 fhmax: 240 fhmaxhf: 0 @@ -324,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 @@ -341,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 @@ -355,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 @@ -391,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 From 70218a60770c61e95ef04fd6c93dbbc4b992afb1 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Fri, 5 Feb 2021 12:22:17 -0700 Subject: [PATCH 04/17] Remove WE2E test for non-existent (for the release branch) suite FV3_HRRR; update list of WE2E tests. --- tests/baseline_configs/config.suite_FV3_HRRR.sh | 17 ----------------- tests/baselines_list.txt | 3 ++- 2 files changed, 2 insertions(+), 18 deletions(-) delete mode 100644 tests/baseline_configs/config.suite_FV3_HRRR.sh diff --git a/tests/baseline_configs/config.suite_FV3_HRRR.sh b/tests/baseline_configs/config.suite_FV3_HRRR.sh deleted file mode 100644 index 72a950347..000000000 --- a/tests/baseline_configs/config.suite_FV3_HRRR.sh +++ /dev/null @@ -1,17 +0,0 @@ -RUN_ENVIR="community" -PREEXISTING_DIR_METHOD="rename" - -PREDEF_GRID_NAME="RRFS_CONUS_25km" -QUILTING="TRUE" - -CCPP_PHYS_SUITE="FV3_HRRR" -FCST_LEN_HRS="6" -LBC_SPEC_INTVL_HRS="6" - -DATE_FIRST_CYCL="20200810" -DATE_LAST_CYCL="20200810" -CYCL_HRS=( "00" ) - -EXTRN_MDL_NAME_ICS="HRRR" -EXTRN_MDL_NAME_LBCS="RAP" -USE_USER_STAGED_EXTRN_FILES="TRUE" diff --git a/tests/baselines_list.txt b/tests/baselines_list.txt index 3b25baba2..7b1295104 100644 --- a/tests/baselines_list.txt +++ b/tests/baselines_list.txt @@ -43,9 +43,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 From 0f47fc0ce751e105ea83a353f6d5de5da17bf3c8 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Fri, 5 Feb 2021 12:40:06 -0700 Subject: [PATCH 05/17] Set effr_in to True in input.nml.FV3. --- ush/templates/input.nml.FV3 | 1 + 1 file changed, 1 insertion(+) diff --git a/ush/templates/input.nml.FV3 b/ush/templates/input.nml.FV3 index 720f2c8a7..1c1cac006 100644 --- a/ush/templates/input.nml.FV3 +++ b/ush/templates/input.nml.FV3 @@ -144,6 +144,7 @@ do_skeb = .false. do_sppt = .false. dspheat = .true. + effr_in = .true. fhcyc = 0.0 fhlwr = 1200.0 fhswr = 1200.0 From cb3c8526b49096366d0415452f02c7b73ab81a8d Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Fri, 5 Feb 2021 17:24:08 -0700 Subject: [PATCH 06/17] Bug fix in launch_FV3LAM_wflow.sh to get the SED variable to be recognized. --- ush/generate_FV3LAM_wflow.sh | 10 +++++----- ush/launch_FV3LAM_wflow.sh | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ush/generate_FV3LAM_wflow.sh b/ush/generate_FV3LAM_wflow.sh index a9bdf38df..db97c3b67 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}" ) # 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). From 8dc083e7ced1ee7c1d1a062273cc90a605eba89b Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Mon, 8 Feb 2021 13:55:58 -0700 Subject: [PATCH 07/17] Remove variable diss_est from diag_tables because there is (as of now) no code in FV3 to output it. --- ush/templates/diag_table.FV3_CPT_v0 | 1 - ush/templates/diag_table.FV3_GFS_2017_gfdlmp | 1 - ush/templates/diag_table.FV3_GFS_v15p2 | 1 - ush/templates/diag_table.FV3_GFS_v16beta | 1 - ush/templates/diag_table.FV3_GSD_SAR | 1 - ush/templates/diag_table.FV3_GSD_v0 | 1 - 6 files changed, 6 deletions(-) diff --git a/ush/templates/diag_table.FV3_CPT_v0 b/ush/templates/diag_table.FV3_CPT_v0 index 1145d17a3..c3e906af4 100644 --- a/ush/templates/diag_table.FV3_CPT_v0 +++ b/ush/templates/diag_table.FV3_CPT_v0 @@ -275,7 +275,6 @@ "gfs_phys", "sppt_wts", "sppt_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2 -"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2 "gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2 #============================================================================================= # diff --git a/ush/templates/diag_table.FV3_GFS_2017_gfdlmp b/ush/templates/diag_table.FV3_GFS_2017_gfdlmp index f24f648d9..1b46eeb99 100644 --- a/ush/templates/diag_table.FV3_GFS_2017_gfdlmp +++ b/ush/templates/diag_table.FV3_GFS_2017_gfdlmp @@ -274,7 +274,6 @@ "gfs_phys", "sppt_wts", "sppt_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2 -"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2 "gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2 #============================================================================================= # diff --git a/ush/templates/diag_table.FV3_GFS_v15p2 b/ush/templates/diag_table.FV3_GFS_v15p2 index cde3d0f75..d4b1af532 100644 --- a/ush/templates/diag_table.FV3_GFS_v15p2 +++ b/ush/templates/diag_table.FV3_GFS_v15p2 @@ -274,7 +274,6 @@ "gfs_phys", "sppt_wts", "sppt_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2 -"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2 "gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2 #============================================================================================= diff --git a/ush/templates/diag_table.FV3_GFS_v16beta b/ush/templates/diag_table.FV3_GFS_v16beta index cde3d0f75..d4b1af532 100644 --- a/ush/templates/diag_table.FV3_GFS_v16beta +++ b/ush/templates/diag_table.FV3_GFS_v16beta @@ -274,7 +274,6 @@ "gfs_phys", "sppt_wts", "sppt_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2 -"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2 "gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2 #============================================================================================= diff --git a/ush/templates/diag_table.FV3_GSD_SAR b/ush/templates/diag_table.FV3_GSD_SAR index 1482af2aa..199810b6d 100644 --- a/ush/templates/diag_table.FV3_GSD_SAR +++ b/ush/templates/diag_table.FV3_GSD_SAR @@ -323,7 +323,6 @@ "gfs_phys", "sppt_wts", "sppt_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2 -"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2 "gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2 #============================================================================================= diff --git a/ush/templates/diag_table.FV3_GSD_v0 b/ush/templates/diag_table.FV3_GSD_v0 index 1482af2aa..199810b6d 100644 --- a/ush/templates/diag_table.FV3_GSD_v0 +++ b/ush/templates/diag_table.FV3_GSD_v0 @@ -323,7 +323,6 @@ "gfs_phys", "sppt_wts", "sppt_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebu_wts", "skebu_wts", "fv3_history", "all", .false., "none", 2 "gfs_phys", "skebv_wts", "skebv_wts", "fv3_history", "all", .false., "none", 2 -"dynamics", "diss_est", "diss_est", "fv3_history", "all", .false., "none", 2 "gfs_phys", "shum_wts", "shum_wts", "fv3_history", "all", .false., "none", 2 #============================================================================================= From 6aaf27d5e8a43e6e78d864fa5f9e137c8bca32a4 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Tue, 9 Feb 2021 02:56:21 -0700 Subject: [PATCH 08/17] In the diag table for the GFS_v15p2 suite, change the names of the geopotential fields on pressure surfaces from "h1000", "h850", etc to "z1000", "z850", etc (which are the ones used in the FV3 code; otherwise, a warning appears in the FV3 log file and the fields are not written to the output file). --- ush/templates/diag_table.FV3_GFS_v15p2 | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/ush/templates/diag_table.FV3_GFS_v15p2 b/ush/templates/diag_table.FV3_GFS_v15p2 index d4b1af532..7bc237fc0 100644 --- a/ush/templates/diag_table.FV3_GFS_v15p2 +++ b/ush/templates/diag_table.FV3_GFS_v15p2 @@ -2,8 +2,8 @@ {{ starttime.strftime("%Y %m %d %H %M %S") }} "grid_spec", -1, "months", 1, "days", "time" -"atmos_4xdaily", 6, "hours", 1, "days", "time" "atmos_static", -1, "hours", 1, "hours", "time" +"atmos_4xdaily", 6, "hours", 1, "days", "time" "fv3_history", 1, "years", 1, "hours", "time" "fv3_history2d", 1, "years", 1, "hours", "time" @@ -54,16 +54,18 @@ "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "h1000", "h1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h850", "h850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h700", "h700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h500", "h500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h200", "h200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h100", "h100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h50", "h50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h10", "h10", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z1000", "z1000", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z850", "z850", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z700", "z700", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z500", "z500", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z200", "z200", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z100", "z100", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z50", "z50", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z10", "z10", "atmos_4xdaily", "all", .false., "none", 2 #### -#"dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 +# Note that w on the 1000mb surface (i.e. w1000) is not output in FV3 +# (probably because the 1000mb surface intersects the topography in many +# locations) and thus should not be included here. "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "w700", "w700", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "w500", "w500", "atmos_4xdaily", "all", .false., "none", 2 From 8993c884a7937d1e0acda96cf400e02700950f5c Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Tue, 9 Feb 2021 03:14:53 -0700 Subject: [PATCH 09/17] In the diag table for the CPT_v0 and GFS_v16beta suites, change the names of the geopotential fields on pressure surfaces from "h1000", "h850", etc to "z1000", "z850", etc (which are the ones used in the FV3 code; otherwise, a warning appears in the FV3 log file and the fields are not written to the output file). --- ush/templates/diag_table.FV3_CPT_v0 | 18 +++++++++--------- .../diag_table.FV3_GFS_2017_gfdlmp_regional | 2 +- ush/templates/diag_table.FV3_GFS_v16beta | 18 +++++++++--------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/ush/templates/diag_table.FV3_CPT_v0 b/ush/templates/diag_table.FV3_CPT_v0 index c3e906af4..2ec7fc45e 100644 --- a/ush/templates/diag_table.FV3_CPT_v0 +++ b/ush/templates/diag_table.FV3_CPT_v0 @@ -2,8 +2,8 @@ {{ starttime.strftime("%Y %m %d %H %M %S") }} "grid_spec", -1, "months", 1, "days", "time" -"atmos_4xdaily", 6, "hours", 1, "days", "time" "atmos_static", -1, "hours", 1, "hours", "time" +"atmos_4xdaily", 6, "hours", 1, "days", "time" "fv3_history", 1, "years", 1, "hours", "time" "fv3_history2d", 1, "years", 1, "hours", "time" @@ -54,14 +54,14 @@ "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "h1000", "h1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h850", "h850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h700", "h700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h500", "h500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h200", "h200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h100", "h100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h50", "h50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h10", "h10", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z1000", "z1000", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z850", "z850", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z700", "z700", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z500", "z500", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z200", "z200", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z100", "z100", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z50", "z50", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z10", "z10", "atmos_4xdaily", "all", .false., "none", 2 #### #"dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 diff --git a/ush/templates/diag_table.FV3_GFS_2017_gfdlmp_regional b/ush/templates/diag_table.FV3_GFS_2017_gfdlmp_regional index d44e7efbf..47587db8f 100644 --- a/ush/templates/diag_table.FV3_GFS_2017_gfdlmp_regional +++ b/ush/templates/diag_table.FV3_GFS_2017_gfdlmp_regional @@ -3,8 +3,8 @@ #output files "grid_spec", -1, "months", 1, "days", "time" -#"atmos_4xdaily", 1, "hours", 1, "days", "time" "atmos_static", -1, "hours", 1, "hours", "time" +#"atmos_4xdaily", 1, "hours", 1, "days", "time" "fv3_history", 0, "hours", 1, "hours", "time" "fv3_history2d", 0, "hours", 1, "hours", "time" #"ref3D", 0, "hours", 1, "hours", "time" diff --git a/ush/templates/diag_table.FV3_GFS_v16beta b/ush/templates/diag_table.FV3_GFS_v16beta index d4b1af532..6bd17fd38 100644 --- a/ush/templates/diag_table.FV3_GFS_v16beta +++ b/ush/templates/diag_table.FV3_GFS_v16beta @@ -2,8 +2,8 @@ {{ starttime.strftime("%Y %m %d %H %M %S") }} "grid_spec", -1, "months", 1, "days", "time" -"atmos_4xdaily", 6, "hours", 1, "days", "time" "atmos_static", -1, "hours", 1, "hours", "time" +"atmos_4xdaily", 6, "hours", 1, "days", "time" "fv3_history", 1, "years", 1, "hours", "time" "fv3_history2d", 1, "years", 1, "hours", "time" @@ -54,14 +54,14 @@ "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "h1000", "h1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h850", "h850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h700", "h700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h500", "h500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h200", "h200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h100", "h100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h50", "h50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h10", "h10", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z1000", "z1000", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z850", "z850", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z700", "z700", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z500", "z500", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z200", "z200", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z100", "z100", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z50", "z50", "atmos_4xdaily", "all", .false., "none", 2 + "dynamics", "z10", "z10", "atmos_4xdaily", "all", .false., "none", 2 #### #"dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 From 9a2a107c57262470b7a1d2bf135cf7267a2c6ef3 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Tue, 9 Feb 2021 03:18:49 -0700 Subject: [PATCH 10/17] Comment out several fields from the diag_table for the RRFS_v1alpha suite because those fields do not actually get written to output files. Also, include comments explaining why fields are commented out. --- ush/templates/diag_table.FV3_RRFS_v1alpha | 38 +++++++++++++++++------ 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/ush/templates/diag_table.FV3_RRFS_v1alpha b/ush/templates/diag_table.FV3_RRFS_v1alpha index 99034ff0a..22c46b131 100644 --- a/ush/templates/diag_table.FV3_RRFS_v1alpha +++ b/ush/templates/diag_table.FV3_RRFS_v1alpha @@ -63,7 +63,9 @@ # "dynamics", "z50", "z50", "atmos_4xdaily", "all", .false., "none", 2 # "dynamics", "z10", "z10", "atmos_4xdaily", "all", .false., "none", 2 #### -# "dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 +# Note that w on the 1000mb surface (i.e. w1000) is not output in FV3 +# (probably because the 1000mb surface intersects the topography in many +# locations) and thus should not be included here. # "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 # "dynamics", "w700", "w700", "atmos_4xdaily", "all", .false., "none", 2 # "dynamics", "w500", "w500", "atmos_4xdaily", "all", .false., "none", 2 @@ -286,11 +288,17 @@ "gfs_phys", "nifa", "nifa", "fv3_history", "all", .false., "none", 2 "gfs_sfc", "nwfa2d", "nwfa2d", "fv3_history2d", "all", .false., "none", 2 "gfs_sfc", "nifa2d", "nifa2d", "fv3_history2d", "all", .false., "none", 2 -# Cloud effective radii from Thompson and WSM6 microphysics -"gfs_phys", "cleffr", "cleffr", "fv3_history", "all", .false., "none", 2 -"gfs_phys", "cieffr", "cieffr", "fv3_history", "all", .false., "none", 2 -"gfs_phys", "cseffr", "cseffr", "fv3_history", "all", .false., "none", 2 +# +# The following variables (formerly representing cloud effective radii +# from Thompson and WSM6 microphysics) have been commented out of the +# FV3 code and thus can no longer be output. Thus, comment them out here. +# +#"gfs_phys", "cleffr", "cleffr", "fv3_history", "all", .false., "none", 2 +#"gfs_phys", "cieffr", "cieffr", "fv3_history", "all", .false., "none", 2 +#"gfs_phys", "cseffr", "cseffr", "fv3_history", "all", .false., "none", 2 +# # Prognostic/diagnostic variables from MYNN +# "gfs_phys", "QC_BL", "qc_bl", "fv3_history", "all", .false., "none", 2 "gfs_phys", "CLDFRA_BL", "cldfra_bl", "fv3_history", "all", .false., "none", 2 "gfs_phys", "EL_PBL", "el_pbl", "fv3_history", "all", .false., "none", 2 @@ -299,11 +307,21 @@ #"gfs_sfc", "nupdraft", "nupdrafts", "fv3_history2d", "all", .false., "none", 2 #"gfs_sfc", "ktop_shallow", "ktop_shallow", "fv3_history2d", "all", .false., "none", 2 "gfs_sfc", "zol", "zol", "fv3_history2d", "all", .false., "none", 2 -"gfs_sfc", "flhc", "flhc", "fv3_history2d", "all", .false., "none", 2 -"gfs_sfc", "flqc", "flqc", "fv3_history2d", "all", .false., "none", 2 -# Prognostic/diagnostic variables from RUC LSM -"gfs_sfc", "snowfall_acc", "snowfall_acc", "fv3_history2d", "all", .false., "none", 2 -"gfs_sfc", "swe_snowfall_acc", "swe_snowfall_acc", "fv3_history2d", "all", .false., "none", 2 +# +# The variables flhc and flqc are output only if the MYNN surface layer +# (SL) parameterization is being used. Since the RRFS_v1alpha suite does +# not use the MYNN SL (it uses the GFS SL), comment these out. +# +#"gfs_sfc", "flhc", "flhc", "fv3_history2d", "all", .false., "none", 2 +#"gfs_sfc", "flqc", "flqc", "fv3_history2d", "all", .false., "none", 2 +# +# The variables snowfall_acc and swe_snowfall_acc are output only if the +# RUC land surface model (LSM) is being used. Since the RRFS_v1alpha +# suite does not use the RUC LSM (it uses the NOAMP LSM), comment these +# out. +# +#"gfs_sfc", "snowfall_acc", "snowfall_acc", "fv3_history2d", "all", .false., "none", 2 +#"gfs_sfc", "swe_snowfall_acc", "swe_snowfall_acc", "fv3_history2d", "all", .false., "none", 2 #============================================================================================= # From a87c1ccca33d138abd0e416ed75d0c4be32e3e57 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Tue, 9 Feb 2021 12:47:33 -0700 Subject: [PATCH 11/17] Make the names of the flag files that indicate the preprocessing tasks are complete depend on the workflow variables containing the name of the respective tasks. --- jobs/JREGIONAL_MAKE_GRID | 4 ++-- jobs/JREGIONAL_MAKE_OROG | 4 ++-- jobs/JREGIONAL_MAKE_SFC_CLIMO | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) 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" # #----------------------------------------------------------------------- # From caa2d87eca368df804a4418db8de48e59a5334c6 Mon Sep 17 00:00:00 2001 From: gerard ketefian Date: Tue, 9 Feb 2021 14:06:54 -0700 Subject: [PATCH 12/17] * Edit documentation for QUILTING in config_defaults.sh. * Bugfix: Rewrite create_model_config_file.sh and the jinja template for model_configure (ush/templates/model_configure) so that the workflow runs when QUILTING is set to "FALSE" (currently it fails). * When QUILTING is set to "FALSE", remove the RUN_POST_TN metatask from the rocoto workflow XML. This is because without QUILTING, the forecast model output is on the native grid (as opposed to the write-component grid in the files dynfHHH.nc and phyfHHH.nc), and UPP cannot process data on the native grid. This is done by passing (in generate_FV3LAM_wflow.sh) the variable QUILTING to the rocoto XML template (ush/templates/FV3LAM_wflow.xml). --- ush/config_defaults.sh | 20 ++-- ush/create_model_configure_file.sh | 173 +++++++++++++++++------------ ush/generate_FV3LAM_wflow.sh | 5 + ush/templates/FV3LAM_wflow.xml | 2 + ush/templates/model_configure | 14 +-- 5 files changed, 131 insertions(+), 83 deletions(-) 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 db97c3b67..341c053d7 100755 --- a/ush/generate_FV3LAM_wflow.sh +++ b/ush/generate_FV3LAM_wflow.sh @@ -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/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 -%}