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

Add additional resolutions for cpld_gridgen utilty #769

Merged
merged 31 commits into from
Feb 15, 2023

Conversation

DeniseWorthen
Copy link
Contributor

@DeniseWorthen DeniseWorthen commented Feb 5, 2023

DESCRIPTION OF CHANGES:

  • Updates the cpld_gridgen utility so that a user can generate a mix of ATM and OCN resolutions. The mapped ocean mask produced by this utility for a given ATM-OCN pair can then be used in the IC generation for the coupled model.
  • Removes the use of mastertask on print statements since the code runs in serial mode.
  • Applies emacs standard indenting. This results in white space changes.

TESTS CONDUCTED:

Baselines have been run on wcoss2, hera, orion and jet at commit d4d0c3e and all cpld_gridgen baselines were B4B.

DEPENDENCIES:

N/A

DOCUMENTATION:

N/A

ISSUE:

DeniseWorthen and others added 28 commits September 2, 2020 16:51
1) CICE5_ICgen: grid generation for cice5/cice6

2) CICE5_gridgen: initial condition generation for cice5/cice6

3) WeightGen: weight generation for:

a) gen_fixgrid and associated fortran code:
a fortran routine to read the MOM6 supergrid
and create a netcdf file which is the basis for the
remaining transformations

b) generate_icocn_weights.ncl:
esmf weight generation for tripole:tripole or
tripole:rectilinear or other grid:grid transformations

c) generate_icemesh.ncl:
generation of the ice_mesh for use by the CMEPS mediator

d) generate_frac_land_weights.sh:
generation of the frac_land weights (the ocean mask on the
fv3 grid) using ESMF_RegridWeightGen

d) cmake_frac_land.ncl:
creation of the 6-tiled land_frac files
* allow additional ATM-OCN resolutions
* remove references to mastertask, since code runs on single PE
* apply emacs indenting
* c3072mx025 takes 42m and about 6GB of memory. requires setting
netcdf4 file type in regridweightgen (file size~3gb), otherwise
fails w/ "violate size constraint". Setting the file type to netcdf4
changes the baseline. The file data compares as identical though using
cprnc.
* c1152mx025 takes 6min
* c768mx025 takes 3m
* c192mx025 takes 1m
*correction to previous commit message. C3072mx025 takes
approx 60GB of memory (~60% of total node), not 6GB.

* update rt.conf w/ details of alt resolutions
* update rt.sh w/ variables to allow quick setting of C3072 values
* add netcdf4 file type in generation of weights for mapped mask. This
is required for the higher resolutions. It breaks comparison for the
baseline weights files, even though the identical nccmp command outside
of the rt script shows no differences.
@DeniseWorthen
Copy link
Contributor Author

@GeorgeGayno-NOAA I've tested this on hera, orion and jet so far. On jet and orion the baselines reproduce. But on hera, the baselines fail because I added the 'netcdf4flag' setting to the creation of one of the files. However, if I make the same comparison (nccmp -dmfqS) outside of the rt.sh script, on hera it says they are identical. I'm not sure what is happening.

@GeorgeGayno-NOAA
Copy link
Collaborator

@GeorgeGayno-NOAA I've tested this on hera, orion and jet so far. On jet and orion the baselines reproduce. But on hera, the baselines fail because I added the 'netcdf4flag' setting to the creation of one of the files. However, if I make the same comparison (nccmp -dmfqS) outside of the rt.sh script, on hera it says they are identical. I'm not sure what is happening.

If you remove the 'q' flag, you may get more information (I.e., nccmp -dmfS).

@DeniseWorthen
Copy link
Contributor Author

@GeorgeGayno-NOAA I determined that the different pass/fail results on hera vs the other platforms was user error. I also found a setting to add to the nccmp command (-w format) which allows rt.sh to ignore the netcdf4/classic format difference.

Do I need to attach the RT logs to show each platform passed?

@GeorgeGayno-NOAA
Copy link
Collaborator

@GeorgeGayno-NOAA I determined that the different pass/fail results on hera vs the other platforms was user error. I also found a setting to add to the nccmp command (-w format) which allows rt.sh to ignore the netcdf4/classic format difference.

Do I need to attach the RT logs to show each platform passed?

That is not necessary. Just list which machines you tested on and the branch commit number you used.

* allows comparison between netcdf4 and netcdf classic as identical
@DeniseWorthen DeniseWorthen marked this pull request as ready for review February 10, 2023 15:32
@DeniseWorthen
Copy link
Contributor Author

@GeorgeGayno-NOAA I don't know why the CI test failed.

@GeorgeGayno-NOAA
Copy link
Collaborator

@GeorgeGayno-NOAA I don't know why the CI test failed.

I don't think the failure is anything you did. Sometimes tests just timeout. I will see if I can re-run it.

@GeorgeGayno-NOAA
Copy link
Collaborator

@DeniseWorthen is this ready to be reviewed?

@DeniseWorthen
Copy link
Contributor Author

Yes, it is. Thanks. I put the information about the additional configurations in rt.conf. I don't know if that is sufficient.

@GeorgeGayno-NOAA
Copy link
Collaborator

Checked out branch at d4d0c3e on Hera, Orion, Jet and Dogwood. Compiled it and successfully ran the regression tests. On Hera, the doxygen was generated with no warnings and the unit tests ran successfully.

@GeorgeGayno-NOAA
Copy link
Collaborator

For a recent HAFS implementation, we got in trouble for having 'goto' statements in one of our codes. I did not see any in your code. But can you double check?

@DeniseWorthen
Copy link
Contributor Author

I have no 'goto' statements in the cpld_gridgen source code.

@GeorgeGayno-NOAA
Copy link
Collaborator

@DeniseWorthen Unless you have any final changes, I can merge this afternoon.

@DeniseWorthen
Copy link
Contributor Author

It should be good to go. Thanks.

@GeorgeGayno-NOAA GeorgeGayno-NOAA self-assigned this Feb 15, 2023
@GeorgeGayno-NOAA GeorgeGayno-NOAA merged commit 90c2830 into ufs-community:develop Feb 15, 2023
AnnetteGibbs-NOAA added a commit to AnnetteGibbs-NOAA/UFS_UTILS that referenced this pull request Jul 3, 2023
* origin/develop:
  Update ccpp submodule (ufs-community#827)
  Change length of character variable "mosaic_name" in "make_solo_mosaic.c" (ufs-community#824)
  Update GDAS INIT utility for GFS COM reorganization (ufs-community#820)
  Add backup calculation for orography and mask generation (ufs-community#713)
  Improve repository build script (ufs-community#819)
  Use latest wgrib2 executable on Jet. (ufs-community#816)
  chgres_cube - Minor update for high-resolution grids . (ufs-community#814)
  Update PR template (ufs-community#813)
  global_cycle - Add soil moisture nudging for NoahMP option (ufs-community#809)
  Release v1.10.0 (ufs-community#807)
  Run sfc_climo_gen utility on Hera (ufs-community#791)
  Fix bug in chgres_cube subroutine search_many (ufs-community#808)
  sfc_climo_gen - Output fractions of each vegetation/soil type category (ufs-community#748)
  Replace w3nco library with w3emc (ufs-community#802)
  Fix Debug compilation (ufs-community#800)
  Update WCOSS2 build module to use new ESMF v8.4.1 library. (ufs-community#799)
  Update chgres_cube documentation for duplicate grib2 records (ufs-community#795)
  Use latest Cray modules on WCOSS2 (ufs-community#792)
  Remove checksum attribute from global_cycle restart files (ufs-community#794)
  Remove goto statements from chgres_cube (ufs-community#775)
  FVCOM_TOOLS - Remove dependency on module_nwp_base.f90 (ufs-community#790)
  Remove "gcovr" step from the 'developer' workflow (ufs-community#785)
  Update build module for Cheyenne (ufs-community#783)
  GDAS Init utility - consolidate the copy of coldstart files (ufs-community#773)
  Remove support for ODIN machine (ufs-community#782)
  Update GDAS INIT utility to optionally use fracoro data (ufs-community#741)
  Option to build only application specific utilities (e.g. GFS) (ufs-community#777)
  Use combined IP/IP2 library (ufs-community#695)
  Initial updates to global_cycle for Noah-MP land model (ufs-community#774)
  New resolution options for the cpld_gridgen utility (ufs-community#769)
  Use new EPIC-maintained hpc-stack on Jet  (ufs-community#771)
  Update GDAS initialization scripts for the new ENKF directory (ufs-community#764)
  Reduce memory usage in chgres_cube (ufs-community#766)
  Detect duplicate vertical levels in chgres_cube. (ufs-community#767)
  Point to new input orography directory. (ufs-community#758)
  Release version 1.9 (ufs-community#754)
  HAFSv1 grid nesting updates (ufs-community#752)
  Remove compiler warnings from chgres_cube (ufs-community#747)
  chgres_cube: Split input_data module into to 3 separate modules (ufs-community#744)
  More work on CI, checking with different versions of ESMF (ufs-community#742)
  Add processing of soil color to sfc_climo_gen (ufs-community#721)
  more work on CI - added Linux_versions workflow (ufs-community#739)
  Add TEST_FILE_DIR option to CMake build, where test data files can be found instead of using FTP.  (ufs-community#732)
  adding developer workflow (ufs-community#724)
  Update GDAS INIT utility for v16.3. (ufs-community#723)
  OROG_GSL - Remove negative bias in orographic asymmetery (OA) fields (ufs-community#718)
  Incorporate BNU soil type data (ufs-community#717)
  High-resolution MODIS and STATSGO veg/soil data. (ufs-community#703)
  Run WCOSS2 consistency tests under role account (ufs-community#711)
  Fix macOS CI workflow (ufs-community#715)
  Add utility codes to create BNU soil texture data (ufs-community#707)
  Update chgres_cube to output netcdf4 file. (ufs-community#704)
  Incorporate high-res global VIIRS vegetation data. (ufs-community#699)
  Run grid_gen consistency tests in parallel. (ufs-community#697)
  Fix error handling in "link_fixdirs.sh". Add -L to the copy command. (ufs-community#701)
  Update for new fixed data directory structure (ufs-community#688)
  Add WCOSS2 support for tests (ufs-community#693)
  Increase test data pull timeout (ufs-community#692)
  Option to install binaries to any directory. (ufs-community#685)
  Update global_cycle to use the latest CCPP version of sfcsub.F (ufs-community#671)
  Incorporate weight_gen program. (ufs-community#677)
  Add install of jpeg-turbo to macos workflows (ufs-community#684)
  Improve logic in regression test driver script (ufs-community#681)
  Release v1.8 (ufs-community#679)
  Update link_fixdirs.sh for new data directories (ufs-community#672)
  Update default ice climatology in ./ush/global_cycle.sh. (ufs-community#664)
  Remove all references to WCOSS 1 from UFS_UTILS (ufs-community#667)
  Update workflows to use latest macOS and ubuntu (ufs-community#675)
  Update GDAS Initialization utility for recent HPSS tarball name change (ufs-community#666)
  Port UFS_UTILS to WCOSS2 (ufs-community#642)
  Fix chgres_cube to process GEFS GRIB2 data (ufs-community#658)
  Update global_cycle_driver.sh for GFS OPS directory convention  (ufs-community#655)
  Update documentation for SRW App (ufs-community#656)
  New coupled model utility (ufs-community#647)
  Update support for S4 and enable regression testing (ufs-community#654)
  global_cycle - Link to CCPP version of sfcsub.F (ufs-community#636)
  Add processing of new global AFWA snow data to emcsfc_snow2mdl. (ufs-community#648)
  Update build module on Cheyenne (ufs-community#646)
  Move to Intel 2022 on Jet, Hera and Orion (ufs-community#650)
  Host doxygen documentation for multiple releases (ufs-community#644)
  Download unit test data as part of the CMake build (ufs-community#630)
  chgres_cube - Complete removal of wgrib2 library (ufs-community#641)
  Eliminate circular dependency in chgres_cube
  Update workflow files to pull netcdf-c library from GitHub
  chgres_cube - Remove the wgrib2 library from the GRIB2 data read routines.
  Undefined symbols on macOS with Intel compiler (ufs-community#628)
  Update FVCOM code to handle sub-domain restart files using multiple cores. (ufs-community#624)
  chgres_cube - Run routine 'convert_omega' on all tasks. (ufs-community#627)
  Use ESMF 8.2.0 library
  Automate update of consistency test baseline data. (ufs-community#603)
  Update workflow files to use newer versions of ESMF and NCEPLIBS. (ufs-community#617)
  Update build modules to be lua compliant (ufs-community#614)
  Allow FVCOM tools to Update Ice Surface Roughness Length (ufs-community#604)
  Update the requested memory in the Orion chgres_cube consistency test script (ufs-community#611)
  Use copy of grib_util under Jet role account. (ufs-community#608)
  Run consistency tests on Orion using role account (ufs-community#606)
  Run consistency tests on Hera using role account (ufs-community#605)
  Run consistency tests on Jet using role account. (ufs-community#607)
  Update more documentation after move to ufs-community (ufs-community#597)
  fvcom_tools - Add option to process 'cold' or 'warm' restart files (ufs-community#595)
  Update documentation after move to ufs-community (ufs-community#594)
  chgres_cube - Eliminate segmentation fault in input_data.F90 (ufs-community#585)
  Update to language of unit test README to match that in unit test.
  chgres_cube - Simplify surface processing using field bundles (ufs-community#572)
  Add compiler flags for GNU Fortran v10 or newer compilers. (ufs-community#583)
  Move verbose output from example unit test to be commented to streamline test output.
  Updates to test README to add instructions for use of example unit test.
  Add Findwgrib2.cmake (ufs-community#578)
  Added unit test to be used as an instructional example for new users.
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.

2 participants