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 Findwgrib2.cmake #578

Merged
merged 6 commits into from
Oct 5, 2021
Merged

Add Findwgrib2.cmake #578

merged 6 commits into from
Oct 5, 2021

Conversation

kgerheiser
Copy link
Contributor

Fix #577

@kgerheiser kgerheiser marked this pull request as draft September 8, 2021 19:44
@kgerheiser kgerheiser marked this pull request as ready for review September 9, 2021 12:45
@kgerheiser
Copy link
Contributor Author

Everything is good now.

Turns out the wgrib2 compiled in our Actions couldn't be run because the libraries we built it with weren't in the LD_LIBRARY_PATH. So, I turned everything into static libraries.

Then, the cache was pulling old builds and there's no way to clear it, so I had to change the cache key by appending a number.

@kgerheiser
Copy link
Contributor Author

Ran the regression tests through all of the machines, and the only problem is WCOSS-Cray because the wgrib2 exectuable doesn't work, which is used to retrieve the version number. WIll work on getting that fixed.

@kgerheiser
Copy link
Contributor Author

wgrib2 has been fixed on WCOSS Cray, and regression tests passed.

kgerheiser and others added 4 commits September 30, 2021 16:54
FindWgrib2.cmake uses the target wgrib2::wgrib2 instead of wgrib2::wgrib2_lib and wgrib2::wgrib2_api
Fixes a bug when running the filter_topo program in regional mode.

Several variables are allocated, but their values along the halo are 
never initialized. This lead to unstable results. Add a routine
to extrapolate fields from the grid interior to the halo.

Fixes #105.
@kgerheiser
Copy link
Contributor Author

kgerheiser commented Sep 30, 2021

Ready for review @GeorgeGayno-NOAA

I successfully ran the chgres_cube regression tests on each machine.

Updated to the 'v1.3.0` location of NCEPLIBS on WCOSS-Cray for a fixed wgrib2, which @Hang-Lei-NOAA keeps up-to-date.

@GeorgeGayno-NOAA
Copy link
Collaborator

Ready for review @GeorgeGayno-NOAA

I successfully ran the chgres_cube regression tests on each machine.

Updated to the 'v1.3.0` location of NCEPLIBS on WCOSS-Cray for a fixed wgrib2, which @Hang-Lei-NOAA keeps up-to-date.

Thanks, @kgerheiser Will review now.

@GeorgeGayno-NOAA
Copy link
Collaborator

@kgerheiser I tried your updated package find with my WCOSS2 branch (4468002). I load 'wgrib2/2.0.8'. The package find did not return the path/library. Here is the log output from the build.

-- Found g2: /apps/ops/prod/libs/intel/19.1.3.304/g2/3.4.1/lib/libg2_4.a (found version "3.4.0")
-- Found wgrib2: ; (found suitable version "2.0.8", minimum required is "2.0.8")
-- Found sigio: /apps/ops/prod/libs/intel/19.1.3.304/sigio/2.3.2/lib/libsigio.a (found version "2.3.0")
-- Configuring done
CMake Warning (dev) in CMakeLists.txt:
  Policy CMP0111 is not set: An imported target missing its location property
  fails during generation.  Run "cmake --help-policy CMP0111" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  IMPORTED_LOCATION not set for imported target "wgrib2::wgrib2"
  configuration "Release".

I then pointed to 'wgrib2/2.0.8_mpi'. It got past the configure step, but fails during the compilation.

Otherwise, it builds on all the other supported machines.

Someday, I will rip out this wgrib2 library and replace it with our G2 library.

@kgerheiser
Copy link
Contributor Author

Darn, I didn't try WCOSS2. Let me see what's wrong.

@kgerheiser
Copy link
Contributor Author

Just a simple typo. Builds on WCOSS2 now.

@GeorgeGayno-NOAA
Copy link
Collaborator

Just a simple typo. Builds on WCOSS2 now.

Thanks. I will try it now.

@GeorgeGayno-NOAA
Copy link
Collaborator

@kgerheiser I just tried compiling c1316da on Surge. I get this error:

CMake Error at cmake/Findwgrib2.cmake:35 (string):
  string begin index: 1 is out of range 0 - 0
Call Stack (most recent call first):
  CMakeLists.txt:64 (find_package)

But it does seem to find wgrib2:

-- Found wgrib2: /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/wgrib2/wgrib2-2.0.8/lib64/libwgrib2_api.a;/usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/wgrib2/wgrib2-2.0.8/lib64/libwgrib2.a (Required is at least version "2.0.8")

On Luna, it compiles with no problems. Very odd.

@kgerheiser
Copy link
Contributor Author

Ah, @Hang-Lei-NOAA can you make sure the library installations match on the WCOSS-Cray systems.

@kgerheiser
Copy link
Contributor Author

The build on Surge has been fixed

@GeorgeGayno-NOAA
Copy link
Collaborator

The build on Surge has been fixed

It works! Thanks.

@GeorgeGayno-NOAA
Copy link
Collaborator

Tested the branch at c1316da on Hera, Orion, Jet, Luna and Venus. Compiled successfully on all machines. And the chgres_cube regression tests all passed. Ready to merge.

@GeorgeGayno-NOAA
Copy link
Collaborator

I also tried the updated package find with my WCOSS2 porting branch at 4468002. It is working.

Copy link
Collaborator

@GeorgeGayno-NOAA GeorgeGayno-NOAA left a comment

Choose a reason for hiding this comment

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

@kgerheiser Thanks for your hard work on this.

@GeorgeGayno-NOAA GeorgeGayno-NOAA merged commit bf9b521 into ufs-community:develop Oct 5, 2021
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.

Use FindWgrib2.cmake
3 participants