Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged global namelist #2173

Merged
merged 43 commits into from
Apr 23, 2024
Merged

Conversation

dpsarmie
Copy link
Collaborator

@dpsarmie dpsarmie commented Mar 6, 2024

Commit Queue Requirements:

  • Fill out all sections of this template.
  • All sub component pull requests have been reviewed by their code managers.
  • Run the full Intel+GNU RT suite (compared to current baselines) on either Hera/Derecho/Hercules
  • Commit 'test_changes.list' from previous step

Description:

This PR addresses issue #1248. The changes are meant to allow compatibility for all global regression tests with GFS_v17_p8. Changes have been made to the regression tests for this update and changes have also been made to the default_vars.sh file to add needed variables and change some variable values under the export_fv3 section.

global_control.nml.IN is the new global template namelist for the RTs. Variable values in this namelist have been converted to pointers and default values have been aggregated to default_vars.sh.

A new section has been made in default_vars.sh. The export_tiled section will take the ATMRES variable (set to C96 as default) and set the appropriate file names for the required parameter files.

Global regression tests have been updated to reflect these changes and are now all using the GFSv17_p8 core. New baselines will need to be created with the update to GFSv17 for some of the regression tests. There are a few RTs that crash, mainly those that use stochastic physics, and those will need to be sent to the physics groups to work on a compatibility fix. The groups have been notified and these tests will be temporarily turned off while the issues are addressed. (See rt.conf for the affected tests; discussion with the groups are below on this PR)

Commit Message:

* UFSWM - global_control.nml_IN has been added as the new regression test namelist template for all global regression tests. The namelist now uses pointers (i.e. @[abc]) for variables and default values have been added to the default_vars.sh script. A new section in default_vars.sh has been added (export_tiled) to account for tiled RTs that pulls the correct parameter files using the ATMRES variable.
Regression tests have been modified to account for these changes. Tests that were not compatible with the GFSv17_p8 core have been disabled for now. They will be turned on as they are updated from GFSv16 to GFSv17.

Priority:

  • Normal

Git Tracking

UFSWM:

Sub component Pull Requests:

  • None

UFSWM Blocking Dependencies:

  • None

Changes

Regression Test Changes (Please commit test_changes.list):

  • PR Updates/Changes Baselines:
  • control_c192 intel
  • control_c384 intel
  • control_c48 intel
  • control_CubedSphere_debug intel
  • control_CubedSphereGrid intel
  • control_CubedSphereGrid_parallel intel
  • control_diag_debug intel
  • control_latlon intel
  • control_wrtGauss_netcdf_parallel_debug intel
  • control_wrtGauss_netcdf_parallel intel
  • merra2_thompson intel
  • atmaero_control_p8_rad_micro intel
  • control_c48 gnu
  • control_diag_debug gnu

Input data Changes:

  • None.

Library Changes/Upgrades:

  • No Updates

Testing Log:

  • RDHPCS
    • Hera
    • Orion
    • Hercules
    • Jet
    • Gaea
    • Derecho
  • WCOSS2
    • Dogwood/Cactus
    • Acorn
  • CI
  • opnReqTest (complete task if unnecessary)

@dpsarmie
Copy link
Collaborator Author

dpsarmie commented Mar 8, 2024

This is a link to a spreadsheet showing the results of the regression tests using this PR.
Tests in magenta are runs that caused FV3 to crash due to incompatibilities with GFSv17_p8 (ex. any run with stochastic physics will crash).
Tests in yellow are runs that were able to produce output but need a new baseline for GFSv17_p8.
Merged nml results spreadsheet

@junwang-noaa
Copy link
Collaborator

@yangfanglin, @Qingfu-Liu, @pjpegion, @MatthewMasarik-NOAA, @dpsarmie is updating global and coupled RT tests to use GFSv17 namelist. We need your help to update following tests (listed in purple in the google sheet above), we are thinking of turning off those tests at this moment until the namelist of these tests are updated to be consistent with GFSv17, currently these tests are still based on GFSv16 or prototype P8 configuration. The tests failed when using GFSv17 namelist. Thanks

control_flake
control_stochy
control_iovr4
control_iovr5
control_p8_mynn
control_csawmg
control_csawmgt
control_ras
control_wam
control_atmwav
control_c384gdaswav

and the debug tests of the test above.

@MatthewMasarik-NOAA
Copy link
Collaborator

@yangfanglin, @Qingfu-Liu, @pjpegion, @MatthewMasarik-NOAA, @dpsarmie is updating global and coupled RT tests to use GFSv17 namelist. We need your help to update following tests (listed in purple in the google sheet above), we are thinking of turning off those tests at this moment until the namelist of these tests are updated to be consistent with GFSv17, currently these tests are still based on GFSv16 or prototype P8 configuration. The tests failed when using GFSv17 namelist. Thanks

control_flake control_stochy control_iovr4 control_iovr5 control_p8_mynn control_csawmg control_csawmgt control_ras control_wam control_atmwav control_c384gdaswav

and the debug tests of the test above.

Thank you for bringing this to my attention, @junwang-noaa. I've discussed this with @JessicaMeixner-NOAA offline and we will be discussing it further with our full group at our GFSv17-waves meeting on Monday. I'll be able to reply back at that point with how we can proceed. Thank you

@yangfanglin
Copy link
Collaborator

Besides Wave, I am brining the appropriate POC for the following RTs and provide my recommendation where it applies

control_flake @barlage Do we still need to maintain this ?

control_stochy @pjpegion

@ZhanZhang-NOAA should the two be removed ? I don't think they are needed anymore.
control_iovr4
control_iovr5

@joeolson42 ?? or this belongs to someone else ?
control_p8_mynn

@AnningCheng-NOAA Do you need both ?
control_csawmg
control_csawmgt

@Qingfu-Liu Qingfu, can you take care of this one ? Please ask Anning to help if needed.
control_ras

@[email protected] @[email protected]
control_wam

@AnningCheng-NOAA
Copy link
Contributor

@yangfanglin and @junwang-noaa, control_csawmgt can be removed.

@Qingfu-Liu
Copy link
Collaborator

Qingfu-Liu commented Mar 14, 2024 via email

@joeolson42
Copy link
Contributor

@yangfanglin I don't know the origin of control_p8_mynn.

@barlage
Copy link
Collaborator

barlage commented Mar 19, 2024

@yangfanglin my suggestion would be to remove all flake tests until we resurrect that work: control_flake, control_flake_debug, rap_flake_debug

Variables in the merged nml are now all represented with pointers. These
can be edited by users or will use the default values in default_vars.sh.
A new export_tiled section has been added to default_vars.sh for configurations
that use a tile set that is not default (C96 is set to default).
A global_control.nml.IN has been added as the main global test
namelist template for all global regression tests. The regression
tests have been modified to use this namelist. Tests that are
incompatible with GFSv17_p8 will be turned off at this time. Teams
have been notified and tests will be reintroduced as fixes are
made.
@dpsarmie dpsarmie marked this pull request as ready for review March 29, 2024 13:51
@dpsarmie dpsarmie marked this pull request as draft March 29, 2024 13:55
@dpsarmie dpsarmie marked this pull request as ready for review March 29, 2024 13:56
@dpsarmie dpsarmie self-assigned this Mar 29, 2024
@dpsarmie dpsarmie added enhancement New feature or request Baseline Updates Current baselines will be updated. Waiting for Reviews The PR is waiting for reviews from associated component PR's. labels Mar 29, 2024
tests/rt.conf Outdated Show resolved Hide resolved
@uturuncoglu
Copy link
Collaborator

@DeniseWorthen @dpsarmie If there is an issue, we could address it. So, I don't think it is good idea to deactivate those tests.

@DusanJovic-NOAA
Copy link
Collaborator

There are many variable in the new input namelist template file (global_control.nml.IN) whose value is replaced with placeholders named FALSE_VAL:

$ grep -r FALSE_VAL .
./parm/global_control.nml.IN:  fv_debug = @[FALSE_VAL]
./parm/global_control.nml.IN:  reset_eta = @[FALSE_VAL]
./parm/global_control.nml.IN:  nudge_dz = @[FALSE_VAL]
./parm/global_control.nml.IN:  hydrostatic = @[FALSE_VAL]
./parm/global_control.nml.IN:  phys_hydrostatic = @[FALSE_VAL]
./parm/global_control.nml.IN:  use_hydro_pressure = @[FALSE_VAL]
./parm/global_control.nml.IN:  gfs_phil = @[FALSE_VAL]
./parm/global_control.nml.IN:  ncep_ic = @[FALSE_VAL]
./parm/global_control.nml.IN:  adjust_dry_mass = @[FALSE_VAL]
./parm/global_control.nml.IN:  consv_am = @[FALSE_VAL]
./parm/global_control.nml.IN:  dwind_2d = @[FALSE_VAL]
./parm/global_control.nml.IN:  no_dycore = @[FALSE_VAL]
./parm/global_control.nml.IN:  checker_tr = @[FALSE_VAL]
./parm/global_control.nml.IN:  pre_rad      = @[FALSE_VAL]
./parm/global_control.nml.IN:  ltaerosol    = @[FALSE_VAL]
./parm/global_control.nml.IN:  lradar       = @[FALSE_VAL]
./parm/global_control.nml.IN:  oz_phys      = @[FALSE_VAL]
./parm/global_control.nml.IN:  do_mynnsfclay = @[FALSE_VAL]
./parm/global_control.nml.IN:  do_ugwp      = @[FALSE_VAL]
./parm/global_control.nml.IN:  do_tofd      = @[FALSE_VAL]
./parm/global_control.nml.IN:  do_ugwp_v0_orog_only = @[FALSE_VAL]
./parm/global_control.nml.IN:  pdfcld       = @[FALSE_VAL]
./parm/global_control.nml.IN:  cal_pre      = @[FALSE_VAL]
./parm/global_control.nml.IN:  hybedmf      = @[FALSE_VAL]
./parm/global_control.nml.IN:  debug        = @[FALSE_VAL]
./parm/global_control.nml.IN:  iau_drymassfixer = @[FALSE_VAL]
./parm/global_control.nml.IN:  do_sedi_heat = @[FALSE_VAL]
./parm/global_control.nml.IN:  const_vi = @[FALSE_VAL]
./parm/global_control.nml.IN:  const_vs = @[FALSE_VAL]
./parm/global_control.nml.IN:  const_vg = @[FALSE_VAL]
./parm/global_control.nml.IN:  const_vr = @[FALSE_VAL]
./parm/global_control.nml.IN:  prog_ccn = @[FALSE_VAL]
./parm/global_control.nml.IN:  use_ppm = @[FALSE_VAL]
./parm/global_control.nml.IN:  de_ice = @[FALSE_VAL]
./parm/global_control.nml.IN:  LDEBUG   = @[FALSE_VAL]
./default_vars.sh:export FALSE_VAL=.false.

or TRUE_VAL:

$ grep -r TRUE_VAL .
./parm/global_control.nml.IN:  nudge_qv = @[TRUE_VAL]
./parm/global_control.nml.IN:  do_vort_damp = @[TRUE_VAL]
./parm/global_control.nml.IN:  external_eta = @[TRUE_VAL]
./parm/global_control.nml.IN:  fill = @[TRUE_VAL]
./parm/global_control.nml.IN:  z_tracer = @[TRUE_VAL]
./parm/global_control.nml.IN:  agrid_vel_rst = @[TRUE_VAL]
./parm/global_control.nml.IN:  filtered_terrain = @[TRUE_VAL]
./parm/global_control.nml.IN:  gfs_dwinds = @[TRUE_VAL]
./parm/global_control.nml.IN:  h2o_phys     = @[TRUE_VAL]
./parm/global_control.nml.IN:  use_ufo      = @[TRUE_VAL]
./parm/global_control.nml.IN:  oz_phys_2015 = @[TRUE_VAL]
./parm/global_control.nml.IN:  bl_mynn_tkeadvect = @[TRUE_VAL]
./parm/global_control.nml.IN:  lwhtr        = @[TRUE_VAL]
./parm/global_control.nml.IN:  swhtr        = @[TRUE_VAL]
./parm/global_control.nml.IN:  cnvgwd       = @[TRUE_VAL]
./parm/global_control.nml.IN:  redrag       = @[TRUE_VAL]
./parm/global_control.nml.IN:  dspheat      = @[TRUE_VAL]
./parm/global_control.nml.IN:  trans_trac   = @[TRUE_VAL]
./parm/global_control.nml.IN:  nst_anl      = @[TRUE_VAL]
./parm/global_control.nml.IN:  effr_in      = @[TRUE_VAL]
./parm/global_control.nml.IN:  sedi_transport = @[TRUE_VAL]
./parm/global_control.nml.IN:  rad_snow = @[TRUE_VAL]
./parm/global_control.nml.IN:  rad_graupel = @[TRUE_VAL]
./parm/global_control.nml.IN:  rad_rain = @[TRUE_VAL]
./parm/global_control.nml.IN:  do_qa = @[TRUE_VAL]
./parm/global_control.nml.IN:  fast_sat_adj = @[TRUE_VAL]
./parm/global_control.nml.IN:  use_ccn = @[TRUE_VAL]
./parm/global_control.nml.IN:  mono_prof = @[TRUE_VAL]
./parm/global_control.nml.IN:  z_slope_liq  = @[TRUE_VAL]
./parm/global_control.nml.IN:  z_slope_ice  = @[TRUE_VAL]
./parm/global_control.nml.IN:  fix_negative = @[TRUE_VAL]
./default_vars.sh:export TRUE_VAL=.true.

What's the purpose of this? I do not understand it. How is this supposed to work? What do we get by replacing string .false., with placeholder @[FALSE_VAL]? We can never change the value of FALSE_VAL variable in any individual test configuration file to be anything other than .false.. Ever. Otherwise all of the above variables will get different and probably incorrect values. This should not be how we use template placeholders.

@BrianCurtis-NOAA
Copy link
Collaborator

@dpsarmie looks like the linter probably wants you to export WAV_TASKS after line 1091 in default_vars.sh

One last set of changes for the Linter conflict.
@dpsarmie
Copy link
Collaborator Author

@dpsarmie looks like the linter probably wants you to export WAV_TASKS after line 1091 in default_vars.sh

Yep, got it. Thanks for the heads up on the BASH subsection that details all the conflicts.

Also, I noticed that the current default_vars.sh has the following line (661):
export SECS=$(( SHOUR*600 ))

Should this be 3600 and not 600? I currently have it as 3600 in this commit. But we should resolve this before the final commit.

Also, we should run the RTs again since there were changes to the default_vars.sh. Don't know if EPIC wants to take the lead on that or if I should run the tests on my end. Let me know either way.

@BrianCurtis-NOAA
Copy link
Collaborator

@dpsarmie looks like the linter probably wants you to export WAV_TASKS after line 1091 in default_vars.sh

Yep, got it. Thanks for the heads up on the BASH subsection that details all the conflicts.

Also, I noticed that the current default_vars.sh has the following line (661): export SECS=$(( SHOUR*600 ))

Should this be 3600 and not 600? I currently have it as 3600 in this commit. But we should resolve this before the final commit.

Also, we should run the RTs again since there were changes to the default_vars.sh. Don't know if EPIC wants to take the lead on that or if I should run the tests on my end. Let me know either way.

Yes please adjust that to 3600, looks like a typo in my editing. All the other SECS are OK.

@zach1221
Copy link
Collaborator

Ok, looks like we're finished testing. We can proceed with the merging process.

@DeniseWorthen
Copy link
Collaborator

@dpsarmie What is the meaning of the "stack build" label?

@zach1221 zach1221 merged commit b6c576d into ufs-community:develop Apr 23, 2024
3 of 4 checks passed
zhanglikate added a commit to zhanglikate/ufs-weather-model that referenced this pull request May 3, 2024
commit f234a3e
Author: Ufuk Turunçoğlu <[email protected]>
Date:   Tue Apr 30 11:35:25 2024 -0600

    Fix for land component model (ufs-community#2191)

    * UFSWM - fix fully coupled land component configuration
      * NOAHMP - get fixed information from surface file

commit 04bbc15
Author: jiandewang <[email protected]>
Date:   Thu Apr 25 14:52:00 2024 -0400

    update MOM6 to its main repo. 20240401 commit (ufs-community#2241)

    * UFSWM -
      * MOM6 - update MOM6 to its main repo. 20240401 commit (NCAR-candidate-20240319)

commit b6c576d
Author: Daniel Sarmiento <[email protected]>
Date:   Tue Apr 23 12:24:22 2024 -0400

    Merged global namelist (ufs-community#2173)

    * UFSWM - global_control.nml_IN has been added as the new regression test namelist template for all global regression tests. The namelist now uses pointers (i.e. @[abc]) for variables and default values have been added to the default_vars.sh script. A new section in default_vars.sh has been added (export_tiled) to account for tiled RTs that pulls the correct parameter files using the ATMRES variable.
    Regression tests have been modified to account for these changes. Tests that were not compatible with the GFSv17_p8 core have been disabled for now. They will be turned on as they are updated from GFSv16 to GFSv17.

commit 5d2ca19
Author: WenMeng-NOAA <[email protected]>
Date:   Fri Apr 19 13:59:12 2024 -0400

    Update upp submodule (ufs-community#2213)

    * UFSWM - Update inline post
      * FV3 - Update upp submodule for inline post

commit 47c0099
Author: Brian Curtis <[email protected]>
Date:   Wed Apr 17 15:59:48 2024 -0400

    Add bash linting to CI. Cleanup .sh scripts a bit. Address .sh bugs. Adds -v Verbose option. (ufs-community#2218)  Remove nowarn Intel compiler flag (ufs-community#2225)

    * UFSWM
    - Add bash linting to CI:
      - uses superlinter to check for consistent bash code writing
    - Cleans up .sh scripts to comply with superlinter
    - Cleans up .sh scripts to be more consistent, easier to read.
    - Add's -v verbose option if debugging outputs needed, otherwise simplifies rt.sh run echo's.
    - Addresses smaller bugs
      - quota/timeout search logic adjusted.
      - check for dirs existing (DISKNM, STMP, PTMP) before starting.
      - adjustments/cleanup to ecflow/rocoto sections
      - rt.sh will attempt to start ecflow, and only stop ecflow if it started from rt.sh.
      - fix for issue where run_dir will not delete properly.
    * FV3: Address compiler warnings
      * atmos_cubed_sphere: Address compiler warnings.

commit 4f32a4b
Author: Rick Grubin <[email protected]>
Date:   Mon Apr 15 07:21:08 2024 -0600

    Document ATMW / ATMAERO / HAFS WM configurations (ufs-community#2160)

    * UFSWM
      * doc/Userguide
        * source
          * conf.py
          * Configurations.rst
          * FAQ.rst
          * InputsOutputs.rst
          * Introduction.rst

commit ac4445d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Apr 15 08:59:42 2024 -0400

    Bump idna from 3.6 to 3.7 in /doc/UsersGuide (ufs-community#2234)

    *doc/UserGuide
       *requirements.txt - updates inda version from 3.6 to 3.7

commit 281b32f
Author: Samuel Trahan (NOAA contractor) <[email protected]>
Date:   Mon Apr 15 08:38:01 2024 -0400

    bug fixes: kchunk3d ignored, hailwat uninitialized in dycore, tile_num wrong for nests (ufs-community#2201)

    * UFSWM - None.
      * FV3 - Write component will use kchunk3d. Model init sends the right tile number to CCPP.
        * atmos_cubed_sphere - Initialize the hailwat variable. Pass global_tile index to model.

commit 8a5f711
Author: Denise Worthen <[email protected]>
Date:   Thu Apr 11 13:32:26 2024 -0400

    Add PIO namelist control for CICE (ufs-community#2145)

    Update to CICE-Consortium/CICE aca8357. Adds implementation of namelist PIO options for CICE

commit 45c8b2a
Author: JONG KIM <[email protected]>
Date:   Thu Apr 4 19:49:13 2024 -0400

    Hotfix/cubed sphere hash fix: HAILCAST diagnostic code (units issue) (ufs-community#2223)

    cubed_sphere hash update: f060e85 for a bug- fix in the HAILCAST diagnostic code (units issue)

commit 26e6db6
Author: Denise Worthen <[email protected]>
Date:   Wed Apr 3 19:57:08 2024 -0400

    Enable cpl_scalars export from ATM and NoahMP for use by CMEPS (ufs-community#2175)

      * CMEPS - allow additional dimension in cpl_scalars for CSG and regional ATM domains for use in mediator history files
      * CMEPS - fix mapping mask for lnd->atm
      * FV3 - add export of cpl_scalars
      * NOAHMP - add export of cpl_scalars

commit 1411b90
Author: Dusan Jovic <[email protected]>
Date:   Mon Apr 1 18:04:44 2024 -0400

    Update module_write_netcdf to avoid hangs in RRFS runs (ufs-community#2193)

    * UFSWM - Update module_write_netcdf to avoid hangs in RRFS runs
      * FV3 - Update module_write_netcdf to avoid hangs in RRFS runs

commit 87c27b9
Author: Matthew Masarik <[email protected]>
Date:   Fri Mar 29 15:23:42 2024 -0400

    WW3 feature:  Langmuir turbulence parameterization (ufs-community#2195)

      * WW3 - Langmuir turbulence parameterization

commit c54e986
Author: Samuel Trahan (NOAA contractor) <[email protected]>
Date:   Wed Mar 27 16:11:03 2024 -0400

    regression test system bug fixes, eliminate MOM6 warnings (ufs-community#2197), add xr_cnvcld flag to FV3 (ufs-community#2185) (ufs-community#2202)

    * UFSWM - atparse.bash: correctly handle input that doesn't end with an end-of-line character. Fix some bugs in Rocoto support and clean up rt.sh.
      * FV3 - namelist flag xr_cnvcld to control if suspended grid-mean convective cloud condensate should be included in cloud fraction and optical depth calculation in radiation in the GFS suite
        * ccpp - physics-level changes to implement new namelist variable
      * MOM6 - update MOM6 code to eliminate all compiler warnings
@dpsarmie dpsarmie deleted the feature/MergedNML_v3 branch August 27, 2024 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Baseline Updates Current baselines will be updated. enhancement New feature or request Ready for Commit Queue The PR is ready for the Commit Queue. All checkboxes in PR template have been checked.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UFS WM regression test namelist template updates