Skip to content

Enhancement to handle hydrometeors in the GSI and EnKF I/O interfaces#499

Merged
RussTreadon-NOAA merged 17 commits into
NOAA-EMC:developfrom
emilyhcliu:feature/allsky
May 19, 2023
Merged

Enhancement to handle hydrometeors in the GSI and EnKF I/O interfaces#499
RussTreadon-NOAA merged 17 commits into
NOAA-EMC:developfrom
emilyhcliu:feature/allsky

Conversation

@emilyhcliu

@emilyhcliu emilyhcliu commented Nov 22, 2022

Copy link
Copy Markdown
Contributor

The enhancements made to the GSI/EnKF IO interfaces are the following:
(1) For deterministic I/O: add handling of precipitation hydrometeor in write_gfsncatm (write_atm_) -- write out analysis.
(2) For enkf I/O: add the handling of precipitation hydrometeors to parallel netcdf I.O --- preparation of next implementation

Fixes #498
Depends on #526

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is file netcdfgfs_io.f90.orig part of this PR? It appears this file was committed by accident. Please remove it.

@emilyhcliu

Copy link
Copy Markdown
Contributor Author

@RussTreadon-NOAA Extra file removed.

@RussTreadon-NOAA

Copy link
Copy Markdown
Contributor

@emilyhcliu , in order to move forward with this PR we need the following:

@emilyhcliu

Copy link
Copy Markdown
Contributor Author

@RussTreadon-NOAA Got your points. I will work on them.

@emilyhcliu

emilyhcliu commented Dec 7, 2022

Copy link
Copy Markdown
Contributor Author

Regression test (GSI develop vs. feature/allsky) is done.
All 19 tests passed reproducibility test.
The global_c96_cv3aero test failed the maximum allowable threshold time test
The global_fv3_4denvar_c192 test failed the maximym allowable hardware memory

 1/19 Test  #2: [=[global_T62_ozonly]=] ..........   Passed  724.07 sec
 2/19 Test #19: [=[global_enkf_T62]=] ............   Passed  1687.30 sec
 3/19 Test #11: [=[nmm_netcdf]=] .................   Passed  2223.94 sec
 4/19 Test  #3: [=[global_4dvar_T62]=] ...........   Passed  2227.36 sec
 5/19 Test  #8: [=[arw_netcdf]=] .................   Passed  2284.07 sec
 6/19 Test  #9: [=[arw_binary]=] .................   Passed  2284.57 sec
 7/19 Test #16: [=[netcdf_fv3_regional]=] ........   Passed  2403.78 sec
 8/19 Test  #4: [=[global_4denvar_T126]=] ........   Passed  3186.31 sec
 9/19 Test #13: [=[hwrf_nmm_d2]=] ................   Passed  3971.79 sec
10/19 Test #14: [=[hwrf_nmm_d3]=] ................   Passed  4040.53 sec
11/19 Test #18: [=[global_C96_fv3aerorad]=] ......   Passed  4388.42 sec
12/19 Test #17: [=[global_C96_fv3aero]=] .........***Failed  23483.31 sec (exceed allowable threshold time)
13/19 Test #10: [=[nmm_binary]=] .................   Passed  24093.55 sec
14/19 Test #15: [=[rtma]=] .......................   Passed  24389.57 sec
15/19 Test #12: [=[nmmb_nems_4denvar]=] ..........   Passed  24618.15 sec
16/19 Test  #7: [=[global_lanczos_T62]=] .........   Passed  31167.68 sec
17/19 Test  #6: [=[global_fv3_4denvar_C192]=] ....***Failed  31288.06 sec (exceed allowable hardware memory limit)
18/19 Test  #5: [=[global_fv3_4denvar_T126]=] ....   Passed  31348.51 sec
19/19 Test  #1: [=[global_T62]=] .................   Passed  33147.93 sec

The global_fv3_3denvar_C192 failed the hardware memory limit test:

The memory for global_fv3_4denvar_C192_loproc_updat is 3225364 KBs.  This has exceeded maximum allowable hardware memory limit of 2516582 KBs,
resulting in Failure maxmem of the regression test.

The global_C96_fv3aero failed the allowable threshold time test:

The runtime for global_C96_fv3aero_loproc_updat is 71.750037 seconds.  
This has exceeded maximum allowable threshold time of 58.891738 seconds,
resulting in Failure time-thresh of the regression test.
The runtime for global_C96_fv3aero_hiproc_updat is 32.796763 seconds.  This has exceeded maximum allowable threshold time of 27.241009 seconds,
resulting in Failure of timethresh2 the regression test.

@emilyhcliu

Copy link
Copy Markdown
Contributor Author

Working on following:
(1) updating regression tests.
(2) documenting the change in GSI execution walltime and memory usage.

@RussTreadon-NOAA RussTreadon-NOAA self-requested a review December 19, 2022 17:30
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/gsi/netcdfgfs_io.f90 Outdated

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only minor comments. Looks good.

@RussTreadon-NOAA

RussTreadon-NOAA commented Dec 19, 2022

Copy link
Copy Markdown
Contributor

@emilyhcliu , for this PR to move forward the following needs to be done:

  • respond to reviewer comments
  • document wall time and memory impact of additional i/o
  • if you want to ensure the new functionality is not broken in future updates, the existing global regression test(s) need to be updated.
  • update your branch to the head of develop

@emilyhcliu

Copy link
Copy Markdown
Contributor Author

@emilyhcliu , for this PR to move forward the following needs to be done:

  • respond to reviewer comments
  • document wall time and memory impact of additional i/o
  • if you want to ensure the new functionality is not broken in future updates, the existing global regression test(s) need to be updated.
  • update your branch to the head of develop

I completed the first and the last bullets.
I will work on documenting the time/memory change due to i/o change and global regression tests.

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @emilyhcliu for addressing my code comments.

@RussTreadon-NOAA

Copy link
Copy Markdown
Contributor

@emilyhcliu, just a quick check on the status of this PR. The GSI Review team meets in a few weeks (2/13).

@emilyhcliu

Copy link
Copy Markdown
Contributor Author

@RussTreadon-NOAA I will complete this within a few days this week.

ADCollard
ADCollard previously approved these changes May 18, 2023
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
if(qs_ind > 0) then
call read_vardata(dset, 'snmr', ug3d, ncstart=ncstart, nccount=nccount, errcode=iret)
if (iret /= 0) then
print *,'error reading snmr'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same error message comment as above.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
if (imp_physics == 11) then
call read_vardata(dset, 'icmr', vg3d, ncstart=ncstart, nccount=nccount, errcode=iret)
if (iret /= 0) then
print *,'error reading icmr'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same error message comment as above.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90 Outdated
Comment thread src/enkf/gridio_gfs.f90
Comment thread src/enkf/gridio_gfs.f90

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to improve error messages which terminate program execution (NCO requirement). Also a follow on question to Andrew's regarding other instances of use_full_hydro.

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @emilyhcliu for addressing my comments.

@RussTreadon-NOAA

Copy link
Copy Markdown
Contributor

WCOSS2 ctests
Refreshed working copy of emilyhcliu:feature/allsky on Cactus, rebuilt, and reran ctests with the following results

russ.treadon@clogin03:/lfs/h2/emc/da/noscrub/russ.treadon/git/gsi/pr499/build> ctest -j 9
Test project /lfs/h2/emc/da/noscrub/russ.treadon/git/gsi/pr499/build
    Start 1: global_3dvar
    Start 2: global_4dvar
    Start 3: global_4denvar
    Start 4: hwrf_nmm_d2
    Start 5: hwrf_nmm_d3
    Start 6: rtma
    Start 7: rrfs_3denvar_glbens
    Start 8: netcdf_fv3_regional
    Start 9: global_enkf
1/9 Test #8: netcdf_fv3_regional ..............***Failed  543.57 sec
2/9 Test #5: hwrf_nmm_d3 ......................   Passed  553.14 sec
3/9 Test #7: rrfs_3denvar_glbens ..............   Passed  605.27 sec
4/9 Test #4: hwrf_nmm_d2 ......................   Passed  606.73 sec
5/9 Test #9: global_enkf ......................   Passed  609.48 sec
6/9 Test #6: rtma .............................   Passed  1088.08 sec
7/9 Test #3: global_4denvar ...................***Failed  1382.31 sec
8/9 Test #1: global_3dvar .....................   Passed  1444.71 sec
9/9 Test #2: global_4dvar .....................   Passed  1502.15 sec

78% tests passed, 2 tests failed out of 9

Total Test time (real) = 1502.18 sec

The following tests FAILED:
          3 - global_4denvar (Failed)
          8 - netcdf_fv3_regional (Failed)
Errors while running CTest

The netcdf_fv3_regional is a known problem. Non-reproducibility between loproc and hiproc tests entered develop with PR #527. The source for the non-reproducibility is actively being investigated.

The global_4denvar failure is due to the scalability test

The case has Failed the scalability test.
The slope for the update (35.051800 seconds per node) is less than that for the control (44.967220 seconds per node).

A check of the update and control wall times for this test show acceptable values

global_4denvar_hiproc_contrl/stdout:The total amount of wall time                        = 251.990547
global_4denvar_hiproc_updat/stdout:The total amount of wall time                        = 268.302506
global_4denvar_loproc_contrl/stdout:The total amount of wall time                        = 296.957767
global_4denvar_loproc_updat/stdout:The total amount of wall time                        = 296.343946

This PR only affects enkf.x The global_enkf test Passed.

@RussTreadon-NOAA

Copy link
Copy Markdown
Contributor

@emilyhcliu , we need approval from at least two peer reviewers in order to move this PR forward.

@CoryMartin-NOAA CoryMartin-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think changes look good here now that they are limited to EnKF I/O only

@RussTreadon-NOAA RussTreadon-NOAA self-requested a review May 19, 2023 18:00

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ctests run on WCOSS2 from current head of hwrf_nmm_d2_hiproc_updat. global_enkf passed. Given two peer reviewer approvals, move forward with merge into develop.

@RussTreadon-NOAA RussTreadon-NOAA merged commit 726cc8d into NOAA-EMC:develop May 19, 2023
xyzemc pushed a commit to xyzemc/GSI_develop-v16-tms that referenced this pull request Feb 27, 2026
…C#499)

The enhancements made to the EnKF IO interface are the following:
(1) For enkf I/O: add the handling of precipitation hydrometeors to
parallel netcdf I.O --- preparation of next implementation
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.

Enhancement to handle hydrometeors in the GSI and EnKF I/O interfaces

6 participants