Skip to content

Bring in CDEPS, CMEPS/CDEPS component level PIO initialization and add HAFS specific RTs#8

Closed
uturuncoglu wants to merge 58 commits into
support/HAFSfrom
feature/hafs_couplehycom_cdeps
Closed

Bring in CDEPS, CMEPS/CDEPS component level PIO initialization and add HAFS specific RTs#8
uturuncoglu wants to merge 58 commits into
support/HAFSfrom
feature/hafs_couplehycom_cdeps

Conversation

@uturuncoglu
Copy link
Copy Markdown

@uturuncoglu uturuncoglu commented Mar 10, 2021

Description

This PR includes;

  1. Bring in CDEPS to HADS model
  2. Update PIO initialization and move it from NEMS to component level PIO
  3. Add HAFS specific following RTs (FV3 is low-resolution - 13 km)
    • Standalone FV3 for HAT10 - fv3_ccpp_regional_natl_c192
    • Fully coupled FV3+HYCOM - cpld_regional_natl_c192
    • FV3+DOCN (regional, MOM6 HAT 10 domain) - cpld_regional_natl_c192_docn_mom6
    • FV3+DOCN (global, OISST) - cpld_regional_natl_c192_docn_oisst
    • DATM (global, ERA5)+HYCOM - datm_era5_hycom
    • I also removed all data (datm and docn) RT under rt_hafs.conf since this is not testing the system complete and it was a intermediate step to test in the lack of RTs.

It also requires following PR to be merged,

The input files are baselines for newly defined RTs can be found in /work/noaa/stmp/tufuk/stmp/tufuk/FV3_RT/REGRESSION_TEST_INTEL on Orion and eventually these need to go to the official location. All new RTs are both defined in rt.conf and rt_hafs.conf.

What bug does it fix, or what feature does it add?
It adds capability to use CDEPS and CMEPS together and brings component level PIO support for those components.

Is a change of answers expected from this PR?
No. All RT passed without any issue.

Are any library updates included in this PR (modulefiles etc.)?
No. To use pnetcdf support along with PIO in CMEPS and CDEPS, PIO needs to be installed (along with HPC-stack) with pnetcdf support. The latest version on PIO (5.2.3) that includes fix for pnetcdf support can be found in https://github.com/NCAR/ParallelIO/releases/tag/pio2_5_3.

Issue(s) addressed

Link the issues to be closed with this PR, whether in this repository, or in another repository.
None

Testing

How were these changes tested?

  • Full RTs are run in HAFS model level without any problem
  • S2S is tested externally by Denise and it is bit-to-bit reproducible
  • HAFS fully coupled application is also tested through the use of HAFS application and it was Bir-to-bit reproducible
  • The available data model regression tests are run without any problem: DATM+DOCN, DATM+HYCOM and FV3+DOCN(regional).
  • NCAR's CESM full test suite also run and all tests were passed - tests only CMEPS and CDEPS

What compilers / HPCs was it tested with?
The entire model is tested on Orion using following HPC-stack.

module load hpc/1.1.0
module load hpc-intel/2018.4
module load hpc-impi/2018.4

S2S is also tested on NCAR's Cheyenne platform.

Are the changes covered by regression tests? (If not, why? Do new tests need to be added?)
No. We are working on following RTs,

  • FV3 standalone
  • FV3+HYCOM
  • FV3+CDEPS DOCN(global, oisst)
  • FV3+CDEPS DOCN(regional, mom6)
  • CDEPS DATM(global, era5)+HYCOM
    In this case, relatively low resolution regional FV3 configuration (13 km) is used.

Have regression tests and unit tests (utests) been run? On which platforms and with which compilers? (Note that unit tests can only be run on tier-1 platforms)
Full RT run on Orion.

Dependencies

If testing this branch requires non-default branches in other repositories, list them.
Those branches should have matching names (ideally)

Do PRs in upstream repositories need to be merged first?
None

@uturuncoglu
Copy link
Copy Markdown
Author

@BinLiu-NOAA Okay. I have just sync with support/HAFS branch. Yes, I have already run full RT without any problem. The new regression tests are almost ready but Orion is overloaded and I could not test the new configurations quickly. This requires little bit more time. Probably, it will be ready on Monday if Orion allow me to work and test them. So, if you want we could wait little bit more until HAFS specific tests are ready and then we could merge this PR. Let me know what do you think? We also coordinate putting new folders to common REGRESSION_TEST folder.

@uturuncoglu uturuncoglu marked this pull request as ready for review March 12, 2021 18:25
@BinLiu-NOAA BinLiu-NOAA changed the title Bring component level PIO initialization Bring in CDEPS and CMEPS/CDEPS component level PIO initialization Mar 12, 2021
@uturuncoglu
Copy link
Copy Markdown
Author

@BinLiu-NOAA I'll solve the log file conflict after the call.

Comment thread modulefiles/orion.intel/fv3 Outdated
module load hdf5/1.10.6
module load netcdf/4.7.4
module load pio/2.5.1
module load pio/2.5.2
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Update pio/2.5.2 for all platforms; also check fv3_debug

@BinLiu-NOAA BinLiu-NOAA requested a review from danrosen25 March 12, 2021 22:42
Copy link
Copy Markdown

@danrosen25 danrosen25 left a comment

Choose a reason for hiding this comment

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

I have code maintainability suggestions for 'CMakeLists.txt'.

Comment thread CMakeLists.txt Outdated
Comment thread CMakeLists.txt Outdated
if(DATM)
add_subdirectory(DATM)
else()
elseif(NOT CDEPS_DATM)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cleanup ATM if block. The separate blocks are harder to maintain. The whole section can be labeled ATM
Remove block at 270 'CDEPS Component"
e.g.

if(DATM)
  add_subdirectory(DATM)
elseif(CDEPS_DATM)
  add_subdirectory(CDEPS)
else()
  add_subdirectory(FV3)
endif()

Comment thread CMakeLists.txt Outdated
list(APPEND _ufs_defs_private FRONT_DATM=datm)
add_dependencies(ufs datatm)
else()
elseif(NOT CDEPS_DATM)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Move dependencies from below to this section. Either keep the dependency section completely separate from the linking section or combine the entire sections.

  • 346
  • 360
  • 375

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I just follow their convention. The existing build was defining them in two operate place. Of course, it will be more efficient with your suggestion but I would rather to keep the convention same. Also, the build system requires major work to make it more flexible and generic.

Comment thread CMakeLists.txt
NetCDF::NetCDF_Fortran
${MKL_LIB})

if(S2S OR CMEPS OR CDEPS)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Is this only true for PNETCDF used with S2S, CMEPS, or CDEPS or do you mean for these links to be included if PNETCDF is true?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

PNETCDF is only required when CMEPS and CDEPS is used. Plus, the io type need to be set to pnetcdf in the nems.configure. These changes will not be used in the near future since it requires new PIO installation with pnetcdf support and the FindPnetCDF.cmake to find the pnetcdf. This is currently in a branch of CMakeModules.

Comment thread CMakeLists.txt Outdated
Comment thread tests/compile.sh Outdated
@uturuncoglu uturuncoglu changed the title Bring in CDEPS and CMEPS/CDEPS component level PIO initialization Bring in CDEPS, CMEPS/CDEPS component level PIO initialization and add HAFS specific RTs Mar 22, 2021
@uturuncoglu
Copy link
Copy Markdown
Author

I think that this is outdated. I am closing this PR for now.

BinLiu-NOAA pushed a commit that referenced this pull request Jul 22, 2023
…ces and turning off output; update FAQ documentation (was 1608); update drag suite intent mods (was 1612) (ufs-community#1597)

* update cdeps

* use fv3atm from PR 1612

* Changed UGWP diagnostic variable declaration intents from out to inout

* Docs/faqupdate (#8)

Co-authored-by: Denise Worthen <denise.worthen@noaa.gov>
Co-authored-by: jkbk2004 <jong.kim@noaa.gov>
Co-authored-by: Brian Curtis <brian.curtis@noaa.gov>
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