-
Notifications
You must be signed in to change notification settings - Fork 154
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
GitHub Issue NOAA-EMC/GSI#112. A refactor of CMake build framework. #327
GitHub Issue NOAA-EMC/GSI#112. A refactor of CMake build framework. #327
Conversation
…3gfs_ncio with ncio module, replace bufr_4_DA with bufr_d
@MichaelLueken-NOAA @RussTreadon-NOAA |
…ent with other applications
@aerorahul I am unable to build the GSI on WCOSS - the cmake module isn't being loaded. I was able to correct this issue by altering modulefiles/gsi_wcoss_dell_p3.lua. Since cmake/3.20.0 is only available through the stack, hpc, hpc-ips, and hpc-impi needs to be set before cmake can be set. My gsi_wcoss_dell_p3.lua file looks like:
After making this change, the code built and the regression tests successfully ran. The code fails to compile on WCOSS2 as well. In ush/detect_machine.sh, I had to add:
through clogin09 and:
through dlogin09. Finally, in ush/module_setup.sh, I had to add a section for WCOSS2:
With these changes, I was able to build the executables on WCOSS2 and a test was submitted, which successfully ran. There were no issues encountered while attempting to compile on Hera using both the GNU and Intel compilers. The global_T62 was submitted and passed without issue for the Intel compiler. A single global_T62 test was run using the GNU executable, and it ran through to completion without issue. While building ncdiag and util/NMC_Bkerror, there were several warning messages that should be addressed before this work is submitted to the review committee and merged into the authoritative develop branch. For src/ndiag:
Looking in
corrects the line 179 issue. For util/NMC_Bkerror:
and:
Replacing 1.E-60 and 1.D-60 with 1.E-37 and 1.D-37, respectively, corrected the issues on lines 823, 2963, and 3198. Replacing E11.5 with E12.5 corrected the remark for line 3667. |
update detect_machine.sh and module-setup.sh for wcoss2. be smart in auto-detection. fix warnings in source codes.
Thanks @MichaelLueken-NOAA for the review, noting the issues and solutions. I don't know where the I have tested the builds on WCOSS2, WCOSS Dell, Orion and Hera. On Hera, I built with Intel and GNU. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@aerorahul Thank you very much for making the changes to ensure that the code builds on WCOSS, WCOSS2, Hera, and Orion. I have found one last minor issue that needs to be addressed, then this work will go out to the review committee. On line 45 of src/enkf/gridinfo_fv3reg.f90, please explicitly declare the components used from mpi. I have noted the necessary components in this review.
src/enkf/gridinfo_fv3reg.f90
Outdated
@@ -42,7 +42,8 @@ module gridinfo | |||
! | |||
!$$$ | |||
|
|||
use mpisetup, only: nproc, mpi_integer, mpi_real4, mpi_comm_world | |||
use mpi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All modules need to explicitly declare the components used. Please replace:
use mpi
with
use mpi, only: mpi_real4,mpi_comm_world
@MichaelLueken-NOAA / @aerorahul - The location of hpc-stack on Cheyenne has moved (replaced by Spack-based one managed by EPIC) and I'd like to get the Cheyenne modulefiles updated to reflect that because other parts of the UFS are already making those updates. Cheyenne is down all this week for annual maintenance, so I've been unable to test there. If this PR goes off to the review committee, would there still be an opportunity to update |
@christopherwharrop-noaa Generally, once changes are submitted to the review committee, no additional changes should be made. However, since the modification would be to the path of the modulefiles for Cheyenne, an exception could be made to allow changes to these two files after they have been submitted. Would it be best to apply these changes now, before submitting the work to the review committee? It is easier to back out of changes rather than apply changes in the middle of the process. So long as I can get these changes out to the review committee today, this work should be merged to the authoritative repository by next Wednesday, May 18. |
@MichaelLueken-NOAA - I do not want to delay the merging of this PR as it represents a important update that a lot of downstream projects are waiting for. And I certainly understand the rule you explained. I would have already proposed the update were it not for the fact that Cheyenne is down for annual maintenance (for a week) and I can't verify the change I'd propose. I think* that all that will be needed is to replace:
with
I'd prefer not to make the change without testing it first because the old hpc-stack is still in place (and still works until they remove it), and I don't want to risk merging broken settings. Cheyenne can sometimes yield surprising behavior. |
@MichaelLueken-NOAA - If I were to submit a new PR (after this one is merged) that ONLY touches the modulefiles for Cheyenne and nothing else, what would be the estimated turnaround time for getting that merged? Would that be something we could fast-track? |
@christopherwharrop-noaa Non-source code changes don't go out for review, so the modification to the modulefiles would be able to be merged to the authoritative repository immediately (so long as nothing else has been submitted to the review committee before hand). |
@MichaelLueken-NOAA - In that case, I don't want to perturb this PR with the Cheyenne module stuff. Let's leave this one as is. Once Cheyenne comes back online, I'll test and submit a new PR with those small Cheyenne build updates. |
@aerorahul At your earliest convenience, please add |
done. |
The due date for feedback from the review committee has passed without comment, so I will now give final approval to these changes and merge them to the authoritative repository. |
@christopherwharrop-noaa This work has been merged to the authoritative repository. As discussed previously, should we move forward with changing the MODULEPATH for gsi_cheyenne.intel.lua and gsi_cheyenne.gnu.lua at this time? |
@MichaelLueken-NOAA - Thank you! I have the Cheyenne update working for Intel, but it looks like the the newer hpc-stack on Cheyenne is missing an w3nco package (a dependency for nemsio) for Gnu. It's not a GSI issue, it's a hpc-stack issue. Most likely we just need to submit a request to have the appropriate w3nco installed. They are usually pretty fast with those requests. |
@christopherwharrop-noaa Okay, sounds good. Please let me know when everything is ready, create a new issue for the work, then follow the guidance here: https://github.com/NOAA-EMC/GSI/wiki/GSI-GitHub-General-User-Information#preparing-a-pull-request-pr to create a new PR to bring in the updated modulefiles for Cheyenne. |
commit 112ca82 Merge: 257f6eb dd1bac5 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Jun 21 09:56:10 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit 257f6eb Merge: 9c48261 ad84f17 Author: RussTreadon-NOAA <russ.treadon@noaa.gov> Date: Mon Jun 13 14:52:28 2022 +0000 Merge branch 'develop' into feature/rm_sfcanl commit 9c48261 Merge: dc62da7 eb220ca Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu May 26 05:43:20 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit eb220ca Author: michael.lueken <Michael.Lueken@noaa.gov> Date: Wed May 25 16:04:25 2022 +0000 GitHub Issue NOAA-EMC#382. Add GSI fix file changes for v16.3 commit 8c22b33 Merge: a90b632 cf4b323 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Wed May 25 15:56:49 2022 +0000 Merge pull request NOAA-EMC#374 from ADCollard/IRBugFix GitHub Issue NOAA-EMC#371. Minor bug fixes to IR processing commit dc62da7 Merge: b7afecf a90b632 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Fri May 20 12:10:17 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit a90b632 Merge: 524527b 889cce5 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Fri May 20 16:08:11 2022 +0000 Merge pull request NOAA-EMC#386 from HaixiaLiu-NOAA/master GitHub Issue NOAA-EMC#385. Add seviri_m09 to Radiance_Monitor util commit 889cce5 Author: Haixia.Liu <Haixia.Liu@noaa.gov> Date: Fri May 20 04:27:21 2022 +0000 GitHub Issue NOAA-EMC#385. Add seviri_m09 to Radiance_Monitor util commit b7afecf Merge: 58b52c6 524527b Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu May 19 12:46:19 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit 524527b Merge: 9946c69 002dc87 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Thu May 19 16:08:48 2022 +0000 Merge pull request NOAA-EMC#379 from AndrewEichmann-NOAA/EXP-efso_fv3_issue_378 Github issue NOAA-EMC#378: refactoring of EFSOI scripts and compiled code (EFSOI and EFSOI forecast scripts) commit 9946c69 Merge: bcc0358 ccfda16 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Thu May 19 16:05:20 2022 +0000 Merge pull request NOAA-EMC#381 from emilyhcliu/feature/gmi GitHub Issue NOAA-EMC#341. Add GMI for radmon commit bcc0358 Merge: 7146a0b 7a4fa9b Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Thu May 19 16:02:55 2022 +0000 Merge pull request NOAA-EMC#384 from christopherwharrop-noaa/feature/update-cheyenne-hpc-stack GitHub Issue NOAA-EMC#383 Update hpc-stack in Cheyenne modulefiles for GNU and Intel compilers. commit 7a4fa9b Author: Christopher Harrop <Christopher.W.Harrop@noaa.gov> Date: Thu May 19 09:23:33 2022 -0600 GitHub Issue NOAA-EMC#383 Update hpc-stack in Cheyenne modulefiles for GNU and Intel compilers. A small workaround was necessary for the GNU modulefile to avoid a dependency issue with the GNU version of hpc-stack. commit ccfda16 Author: Emily Liu <emily.liu@noaa.gov> Date: Thu May 19 02:20:09 2022 +0000 Add GMI for radmon commit 58b52c6 Merge: c4c860b 7146a0b Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed May 18 14:52:48 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit 7146a0b Author: Rahul Mahajan <aerorahul@users.noreply.github.com> Date: Wed May 18 11:57:08 2022 -0400 GitHub Issue NOAA-EMC#112. A refactor of CMake build framework. (NOAA-EMC#327) commit cf4b323 Author: Andrew Collard <andrew.collard@noaa.gov> Date: Fri Apr 29 21:34:22 2022 +0000 GitHub Issue NOAA-EMC#371: Bug fixes to IR processing commit 002dc87 Author: AndrewEichmann-NOAA <Andrew.Eichmann@noaa.gov> Date: Thu May 12 15:02:40 2022 -0500 Removed extraneous lines from EFSOI script, and extraneous exgdas_efsoi_fcst.sh script commit c4c860b Merge: c9ac824 34294c1 Author: RussTreadon-NOAA <russ.treadon@noaa.gov> Date: Mon May 9 16:46:28 2022 +0000 Merge branch 'develop' into feature/rm_sfcanl commit 34294c1 Merge: ad2a3c0 20cf887 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Mon May 9 16:26:12 2022 +0000 Merge pull request NOAA-EMC#376 from EdwardSafford-NOAA/develop GitHub Issue NOAA-EMC#373. Compress RadMon data files. commit ad2a3c0 Merge: e7f8c88 845b360 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Mon May 9 16:24:29 2022 +0000 Merge pull request NOAA-EMC#369 from MichaelLueken-NOAA/feature/wcoss2_port GitHub Issue NOAA-EMC#368. WCOSS2 port. commit 20cf887 Author: Edward.Safford <edward.safford@noaa.gov> Date: Thu May 5 12:04:30 2022 +0000 Github issue NOAA-EMC#373. Compress RadMon data files. Completes NOAA-EMC#373. commit 845b360 Author: Michael Lueken <michael.lueken@noaa.gov> Date: Fri Apr 29 11:00:52 2022 +0000 GitHub Issue NOAA-EMC#368. WCOSS2 port. commit c9ac824 Merge: e577941 e7f8c88 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue May 3 10:42:43 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit e7f8c88 Merge: 586c2df 0a5daea Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Tue May 3 10:08:34 2022 -0400 Merge pull request NOAA-EMC#372 from RussTreadon-NOAA/feature/interp GitHub Issue NOAA-EMC#370: use nf90_inq_varid to set integer addresses for lon and lat variables commit 0a5daea Author: RussTreadon-NOAA <russ.treadon@noaa.gov> Date: Fri Apr 29 21:36:35 2022 +0000 GitHub Issue NOAA-EMC/GSI NOAA-EMC#370: use nf90_inq_varid to set integer addresses for lon and lat variables commit e577941 Merge: be550bf 586c2df Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue May 3 09:52:08 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit 586c2df Merge: 87fe77d f16e852 Author: MichaelLueken-NOAA <63728921+MichaelLueken-NOAA@users.noreply.github.com> Date: Tue May 3 09:46:33 2022 -0400 Merge pull request NOAA-EMC#366 from EdwardSafford-NOAA/develop GitHub Issue NOAA-EMC#310 and NOAA-EMC#367. Correct RadMon's mean correction time series plots and update html generation. commit f16e852 Author: edward.safford <edward.safford@noaa.gov> Date: Fri Apr 29 14:39:22 2022 +0000 Github issue NOAA-EMC#310. Correct mean correction time series plots. Fixes NOAA-EMC#310. commit be550bf Merge: c0a5204 114ed31 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Mon May 2 06:25:23 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit c0a5204 Merge: 8b376d1 498896b Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Mon Apr 25 13:22:30 2022 -0400 Merge branch 'NOAA-EMC:develop' into feature/rm_sfcanl commit 8b376d1 Merge: 91a8077 0c6548e Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed Apr 20 13:53:51 2022 -0400 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit 91a8077 Merge: dec3299 7201778 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed Apr 13 10:27:36 2022 -0400 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit dec3299 Merge: 6204f98 5936a23 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Apr 5 10:49:24 2022 -0400 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit 6204f98 Merge: f7a1495 affe4ed Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu Mar 31 12:38:40 2022 -0400 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit f7a1495 Merge: b592666 ef237ce Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu Mar 24 08:57:46 2022 -0400 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit b592666 Merge: d0f7c20 47ee70b Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Thu Mar 10 09:13:14 2022 -0500 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit d0f7c20 Merge: ed94193 828c0cf Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Wed Mar 2 10:35:21 2022 -0500 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit ed94193 Merge: c63bd77 963b7e5 Author: RussTreadon-NOAA <russ.treadon@noaa.gov> Date: Tue Mar 1 16:04:48 2022 +0000 Merge branch 'master' at 963b7e5 into feature/rm_sfcanl Conflicts: scripts/exglobal_atmos_analysis.sh commit c63bd77 Merge: 39912e1 0444258 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Feb 15 06:06:10 2022 -0500 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit 39912e1 Merge: f0161c8 9e765da Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Jan 11 06:40:58 2022 -0500 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit f0161c8 Merge: a75d6ed a62dec6 Author: RussTreadon-NOAA <26926959+RussTreadon-NOAA@users.noreply.github.com> Date: Tue Dec 14 11:40:31 2021 -0500 Merge branch 'NOAA-EMC:master' into feature/rm_sfcanl commit a75d6ed Author: russ.treadon <Russ.Treadon@noaa.gov> Date: Tue Dec 14 14:38:57 2021 +0000 GitHub Issue NOAA-EMC#266: add DOGAUSFCANL capability back to JGLOBAL_ATMOS_ANALYSIS_CALC and exglobal_atmos_analysis_calc.sh commit 9422758 Author: russ.treadon <Russ.Treadon@noaa.gov> Date: Mon Dec 13 14:39:14 2021 +0000 GitHub Issue NOAA-EMC#266: remove DOGCYCLE and DOGAUSFCANL scripting and variables from j-jobs and scripts * jobs/JGDAS_ATMOS_ANALYSIS_DIAG - remove DOGCYCLE and DOGAUSFCANL * jobs/JGLOBAL_ATMOS_ANALYSIS - remove DOGCYCLE and DOGAUSFCANL * jobs/JGLOBAL_ATMOS_ANALYSIS_CALC - remove DOGCYCLE and DOGAUSFCANL * scripts/exglobal_atmos_analysis.sh - remove DOGCYCLE scripting and DOGAUSFCANL variables * scripts/exglobal_atmos_analysis_calc.sh - remove DOGAUSFCANL scripting
What does this PR do:
a. Leverage packaged dependencies e.g. NCEPLibs.
b. Provide mechanism to import built and installed
ncdiag
,gsi
,enkf
in external packages along with their transitive dependencies.c. Remove hard-wired platform specifics in the build framework
a. Fix codes that fail to build with GNU Fortran compilers
b. Fixes many non-standard practices that are uncovered when building with the GNU compiler set. E.g. use of
.eqv.
when comparing logicals instead of==
.c. Adds
modulefile.ProdGSI.hera.gnu
to build on Hera with GNU. All codes were successfully built. It is recommended that the GSI is now always build tested with GNU going forward. Several warnings are detected with GNU compilers due to the use of deprecated Fortran coding standards.GSI-libsrc
(See PRs GitHub Issue NOAA-EMC/GSI#302. Removal of libsrc from the authoritative repository #329 and GitHub Issue NOAA-EMC/GSI#320. Replaced fv3gfs_ncio with hpc-stack built ncio. #340)a. Remove options to build third-party libraries e.g. NCEPlibs
b. Modify codes that previously built NCEPLIBS-ncio internally in the GSI.
ncdiag
andGSDCloud
as separate projects. This functionality enables 1b. Monitoring utilities should be their own project, but that is not pursued in this PR.README.cmake
withINSTALL.md
that outlines the dependencies, build and installation as well as regression testing guidelines and removing references to specific machines.build_all_cmake.sh
is replaced bybuild.sh
. Minor updates to other build related scripts are provided.Tagging @MichaelLueken-NOAA @christopherwharrop-noaa @christinaholtNOAA @arunchawla-NOAA @JacobCarley-NOAA