Skip to content

Update FV3 namelist settings; clean up diag_tables; fix QUILTING="FALSE" bug#423

Merged
gsketefian merged 17 commits into
ufs-community:release/public-v1from
gsketefian:release/public-v1_feature_Ligia_namelist_fix
Feb 10, 2021
Merged

Update FV3 namelist settings; clean up diag_tables; fix QUILTING="FALSE" bug#423
gsketefian merged 17 commits into
ufs-community:release/public-v1from
gsketefian:release/public-v1_feature_Ligia_namelist_fix

Conversation

@gsketefian
Copy link
Copy Markdown
Collaborator

@gsketefian gsketefian commented Feb 5, 2021

@ligiabernardet pointed out the following differences in FV3 namelist settings between the SRW and MRW apps for the FV3_GFS_v15p2 suite:

  1. effr_in: is .true. in MRW; is currently .false. in SRW
  2. lgfdlmprad: is .true. in MRW; is currently .false. in SRW
  3. trans_trac: is .true. in MRW; is currently .false. in SRW

This PR changes the namelist so that the SRW and MRW use the same settings of these variables for the FV3_GFS_v15p2 suite and performs other namelist fixes.

DESCRIPTION OF CHANGES:

Background note:
In order to generate the namelist file for the forecast model (input.nml), the workflow scripts start with the base namelist file input.nml.FV3 and then make (1) suite-specific changes specified in the yaml configuration file FV3.input.yml followed by (2) experiment-specific changes specified in the workflow generation script generate_FV3LAM_wflow.sh.

Main Changes:

  • With the request above that effr_in be set to .true. for the GFS_v15p2 suite, in FV3.input.yml all suites now set effr_in to .true.. For clarity, remove this variable from FV3.input.yml and set it to .true. input.nml.FV3.
  • With the request above that trans_trac be set to .true. for the GFS_v15p2 suite, in FV3.input.yml trans_trac is (needs to be) set to .true. for two suites and not specified for the others. Since this variable is already set to .true. in input.nml.FV3, for clarity remove it completely from FV3.input.yml.
  • In FV3.input.yml, change lgfdlmprad from .false. to .true. for the GFS_v15p2 suite.
  • In FV3.input.yml, remove the variables ccpp_suite, stretch_fac, target_lon, and target_lat from any suites that define them because these are always overwritten (in generate_FV3LAM_wflow.sh) by values specified for the current experiment.
  • For consistency with the develop branch, do the following for the WE2E tests:
    • Add a new generic suite WE2E test for the FV3_2017_gfdlmp_regional suite.
    • Rename the regional_001 test to make it the generic test for the FV3_GFS_2017_gfdlmp suite.
    • In several of the tests, change forecast lengths from "06" to "6" (this doesn't affect anything).
    • Update the list of WE2E tests in baselines_list.txt.
  • Add a WE2E test for QUILTING set to "FALSE" in order to test the QUILTING bug fixes described below.

Improvements:

The diag_table files contained inconsistencies, some of which generate warnings in the log file of the run_fcst task. The following address these inconsistencies:

  • In diag tables in which the geopotential is denoted by the symbol "h" (e.g. "h1000", "h850", etc), change it to a "z" (i.e. "z1000", "z850", etc) since this is the symbol used in the FV3 code (using "h" will cause warnings to appear in the FV3 log file and the geopotential to not be written to output files).
  • Remove the variable diss_est from diag_tables because there is (as of now) no code in FV3 to output it.
  • Move atmos_static file to before atmos_4xdaily file in diag_tables so that the time-independent (static) files are listed first.
  • Change the output frequency of the atmos_4xdaily file to be every 6 hours and the units used in the output file to be hours.
  • Change the units of the frequency of the fv3_history and fv3_history2d files to be hours instead of years (because with no run will go out to the minimum of 1 year required for these files to be written out; 1 hour is reasonable).
  • For the GFS_v15p2 and RRFS_v1alpha suites (which are the ones supported by the release):
    • Comment out writing of atmos_4xdaily file in the GFS_v15p2 suite because those variables are for the most part only needed for the NGGPS tests. 3D versions of u, v, tmp, etc can now be found in the fv3_history file.
    • For consistency with the RRFS_v1alpha suite, include in the GFS_v15p2 suite some of the dynamics variables that are in the RRFS_v1alpha suite (e.g. upvvelmax, ..., maxvorthy1, as well as refl_10cm).
    • For consistency with the GFS_v15p2 suite, include in the RRFS_v1alpha suite the stochastic variables that are in the GFS_v15p2 suite.
    • Include comments that clarify how the entries in the diag_tables relate to the dynf and phyf files that are written out when the write-component is being used.
    • Remove commented-out field lines.
    • Comment out certain field lines that are for variables that are not available for the suite (and include explanatory comments).

Bug Fixes:

  • In JREGIONAL_MAKE_GRID, JREGIONAL_MAKE_OROG, and JREGIONAL_MAKE_SFC_CLIMO, make the names of the flag files that indicate that those respective tasks are complete depend on the workflow variables containing the names of the tasks (MAKE_GRID_TN, MAKE_OROG_TN, MAKE_SFC_CLIMO_TN).
  • The workflow fails when quilting (i.e. the write-component) is turned off due to errors in setting up the model_configure file. Fixes as follows:
    • 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).
    • Update documentation (comments) in config_defaults.sh.
  • Add line in launch_FV3LAM_wflow.sh that sources the bash utility functions so that the SED variable is defined.

TESTS CONDUCTED:

On hera, ran the seven WE2E tests listed below. Six of the seven succeeded. Details below.

Results Summary:

  • GST_release_public_v1: SUCCESS
  • grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2: SUCCESS
  • grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2_quilt_FALSE: SUCCESS
    This is to test whether the bug fix for QUILTING="FALSE" works. It does.
  • grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha: SUCCESS
  • grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2: SUCCESS
  • grid_RRFS_CONUS_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha: SUCCESS
    The run_fcst log file for this test contains Warn_K warning messages for the temperature being out of range:
 Range_check Warning:TA_dyn max =    346.1257      min =    179.0817
 Range violation on: 2020/ 8/ 1  2:46:30
NOTE from PE     0: ==> Error from range_check: data out of bound
Warn_K=  63 (i,j)=  186   38 (lon,lat)=260.843  29.324 TA_dyn = 335.47397
     K=  62    313.89062
     K=  64    334.79303
  • grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2: SUCCESS
  • grid_RRFS_CONUS_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha: FAILURE
    This test failed in the run_fcst task after hour 4. The run_fcst log file for this test contains the following error message:
 Range_check Warning:TA_dyn max =    337.5701      min =    178.3724
 Range violation on: 2020/ 8/ 1  0:18:40
NOTE from PE     0: ==> Error from range_check: data out of bound
Warn_K=  62 (i,j)= 1141  490 (lon,lat)=271.499  37.359 TA_dyn = 337.57010
     K=  61    318.00861
     K=  63    335.65997
Warn_K=  63 (i,j)= 1141  490 (lon,lat)=271.499  37.359 TA_dyn = 335.65997
     K=  62    337.57010
     K=  64    321.49017

Additional Notes:

  • The tests with the GFS_v15p2 suite have warnings like this:
  WARNING: Tracer sgs_tke_bottom not in input file
  WARNING: Tracer sgs_tke_left not in input file
  WARNING: Tracer cld_amt_bottom not in input file
  WARNING: Tracer cld_amt_left not in input file

Is this a problem? Seems like it's saying that the LBC file(s) do not contain these quantities.

  • All of the tests still have warnings like this in the run_fcst log file:
    WARNING from PE 143: atmos_modeldefine_blocks_packed: domain ( 25 23) is not an even divisor with definition ( 32) - blocks will not be unif orm with a remainder of 31
    I had wanted to have this removed or at least amended because I don't think it's serious, but that hasn't happened. This will (I think unnecessarily) cause users to think something is wrong and flood our team with help requests.

… 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).
… and FV3_HRRR suites; rename the regional_001 test to make it the generic test for the FV3_GFS_2017_gfdlmp suite.
@gsketefian gsketefian marked this pull request as ready for review February 5, 2021 23:56
@JeffBeck-NOAA
Copy link
Copy Markdown
Collaborator

@gsketefian, the warnings about "h500" is likely due to the diag_table entry for 500 mb heights. We may need to switch it to "z500" and see if that works.

@JeffBeck-NOAA
Copy link
Copy Markdown
Collaborator

@climbfuji, have you seen this Noah MP error before: "An error occurred in ccpp_physics_run for group physics, block 86 and thread 2 (ntX= 2) An error occured in noahmpdrv_run: stop in noah-mp". We're running into it with our 3-km RRFS_v1alpha SDF test.

@climbfuji
Copy link
Copy Markdown
Collaborator

@climbfuji, have you seen this Noah MP error before: "An error occurred in ccpp_physics_run for group physics, block 86 and thread 2 (ntX= 2) An error occured in noahmpdrv_run: stop in noah-mp". We're running into it with our 3-km RRFS_v1alpha SDF test.

I haven't. You'll need to look through the source code to find that error message "stop in noah-mp", at this place there will also be code that sets the error flag errflg to something else than zero and returns immediately.

…opotential 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).
…ames 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).
…uite because those fields do not actually get written to output files. Also, include comments explaining why fields are commented out.
…s are complete depend on the workflow variables containing the name of the respective tasks.
* 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).
* Comment out writing of atmos_4xdaily file in the GFS_v15p2 suite because those variables are for the most part only needed for the NGGPS tests.  3D versions of u, v, tmp, etc can now be found in the fv3_history file.
* Change the units of the frequency of the fv3_history and fv3_history2d files to be hours instead of years (because with no run will go out to the minimum of 1 year required for these files to be written out; 1 hour is reasonable).
* For consistency, include in the GFS_v15p2 suite some of the dynamics variables that are in the RRFS_v1alpha suite (e.g. upvvelmax, ..., maxvorthy1, as well as refl_10cm).
* For consistency, include in the RRFS_v1alpha suite the stochastic variables that are in the GFS_v15p2 suite.   * Include comments that clarify how the entries in the diag_tables relate to the dynf and phyf files that are written out when the write-component is being used.
* Remove commented-out field lines.
* Comment out certain field lines that are for variables that are not available for the suite (and include explanatory comments).
…ng consistent between different diag_tables.
@gsketefian gsketefian changed the title Update FV3 namelist settings Update FV3 namelist settings; clean up diag_tables; fix QUILTING="FALSE" bug Feb 10, 2021
@gsketefian
Copy link
Copy Markdown
Collaborator Author

@JeffBeck-NOAA I updated the test results in the PR message. Merging now since any issues are not directly related to this PR.

@gsketefian gsketefian merged commit 3b53f8f into ufs-community:release/public-v1 Feb 10, 2021
hu5970 pushed a commit to SamuelTrahanNOAA/regional_workflow that referenced this pull request Sep 26, 2022
…ity#423)

* Changes for using netcdf diag in GSI and EnKF

* Correct diag name for dbz

* Fix the diag files
shoyokota pushed a commit to shoyokota/regional_workflow that referenced this pull request Nov 4, 2022
…ity#423)

* Changes for using netcdf diag in GSI and EnKF

* Correct diag name for dbz

* Fix the diag files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants