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

Update CDEPS submodule and CDEPS tests #599

Merged
merged 13 commits into from
May 26, 2021

Conversation

binli2337
Copy link
Contributor

@binli2337 binli2337 commented May 25, 2021

PR Checklist

  • Ths PR is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR. Please consult the ufs-weather-model wiki if you are unsure how to do this.

  • This PR has been tested using a branch which is up-to-date with the top of all sub-component repositories except for those sub-components which are the subject of this PR

  • An Issue describing the work contained in this PR has been created either in the subcomponent(s) or in the ufs-weather-model. The Issue should be created in the repository that is most relevant to the changes in contained in the PR. The Issue and the dependent sub-component PR
    are specified below.

  • If new or updated input data is required by this PR, it is clearly stated in the text of the PR.

Instructions: All subsequent sections of text should be filled in as appropriate.

The information provided below allows the code managers to understand the changes relevant to this PR, whether those changes are in the ufs-weather-model repository or in a subcomponent repository. Ufs-weather-model code managers will use the information provided to add any applicable labels, assign reviewers and place it in the Commit Queue. Once the PR is in the Commit Queue, it is the PR owner's responsiblity to keep the PR up-to-date with the develop branch of ufs-weather-model.

Description

  • Change application name "DATM" to "NG-GODAS".
  • Change application name "DATM-NEMS" to "NG-GODAS-NEMSDATM".
  • Use a mesh file in MOM6 cap instead of a grid file.
  • Point submodule CDEPS to NOAA-EMC/CDEPS develop branch.

Issue(s) addressed

Link the issues to be closed with this PR, whether in this repository, or in another repository.
(Remember, issues must always be created before starting work on a PR branch!)

Testing

How were these changes tested? What compilers / HPCs was it tested with? Are the changes covered by regression tests? (If not, why? Do new tests need to be added?) 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)

  • hera.intel
  • hera.gnu
  • orion.intel
  • cheyenne.intel
  • cheyenne.gnu
  • gaea.intel
  • jet.intel
  • wcoss_cray
  • wcoss_dell_p3

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?
If so add the "waiting for other repos" label and list the upstream PRs

  • waiting on noaa-emc/nems/pull/<pr_number>
  • waiting on noaa-emc/fv3atm/pull/<pr_number>

* Change application name "DATM" to "NG-GODAS"
* Change application name "DATM-NEMS" to "NG-GODAS-NEMSDATM"
* Use a mesh file in MOM6 cap instead of a grid file
@binli2337 binli2337 requested a review from junwang-noaa May 25, 2021 19:13
@binli2337 binli2337 self-assigned this May 25, 2021
@binli2337 binli2337 added the Baseline Updates Current baselines will be updated. label May 25, 2021
@github-actions
Copy link

@binli2337 please bring these up to date with respective authoritative repositories

  • cdeps NOT up to date

@DeniseWorthen
Copy link
Collaborator

@binli2337 Please add a fix to the rt_35d.conf. The first compile line is commented out but please add it there too.

Add a comma between the two suite file names:

FV3_GFS_v16_coupled, FV3_GFS_v16_coupled_noahmp

@github-actions
Copy link

@binli2337 please bring these up to date with respective authoritative repositories

  • cdeps NOT up to date

@DeniseWorthen
Copy link
Collaborator

@binli2337 New baseline (develop-20210526) is ready on Cheyenne.

binli2337 added 3 commits May 26, 2021 10:20
add RegressionTests_hera.gnu.log
add RegressionTests_wcoss_cray.log
@github-actions
Copy link

@binli2337 please bring these up to date with respective authoritative repositories

  • cdeps NOT up to date

@github-actions
Copy link

@binli2337 please bring these up to date with respective authoritative repositories

  • cdeps NOT up to date

@MinsukJi-NOAA
Copy link
Contributor

The github-actions repo-check error seen above is due to the new CDEPS submodule pointing to develop. This issue need to be fixed after this PR commits.

tests/compile.sh Outdated

if [[ "${MAKE_OPT}" == *"APP=DATM_NEMS"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=DATM_NEMS"
#if [[ "${MAKE_OPT}" == *"APP=DATM"* ]]; then
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we remove the commented lines 152-154 and 159-161 ?

@@ -16,7 +16,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################

# Valid applications and choices
list(APPEND VALID_APPS ATM ATMW S2S S2SW DATM DATM_NEMS)
list(APPEND VALID_APPS ATM ATMW S2S S2SW NG-GODAS NG-GODAS-NEMSDATM)
Copy link
Collaborator

Choose a reason for hiding this comment

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

No changes have been made in the NEMS driver to switch these names---it will still use "FRONT_NEMS_DATM" and "FRONT_CDEPS_DATM" which then asks for "model" names nems_datm or datm. It seems we're introducing a lot of inconsistency.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@DeniseWorthen You are correct.

Copy link
Collaborator

Choose a reason for hiding this comment

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

@DeniseWorthen My understanding is that this is actually to avoid confusion. in NEMS driver we specify the subcomponent models, not the applications names. Using DATM or NEMS_DATM for both subcomponent and application names could be confusing. Here the NG_GODAS is application name, this application will still define the subcomponents DATM (cdeps datm), MOM6 and CICE6 etc. While before we use DATM as application name and use DATM also as DATM subcomponent along with other subcomponents.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Are both NG-GODAS and NG-GODAS-NEMSDATM needed? What's the difference?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

NG-GODAS refers to "mom6_cice6_cdeps_datm" application.
NG-GODAS-NEMSDATM refers to "mom_6_cice6_nems_datm" application.

Copy link
Collaborator

Choose a reason for hiding this comment

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

OK. But do we need both? Didn't we switch to CDEPS, why do we need nems? Are the results different when CDEPS is used compared to NEMS? Are different atm data used?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In the future, NEMS_DATM will be removed from ufs-weather-model. See a related issue at #565.

Copy link
Collaborator

Choose a reason for hiding this comment

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

@junwang-noaa I see, thanks. I do see how DATM is being used two ways (app and component) so this is probably better.

@github-actions
Copy link

@binli2337 please bring these up to date with respective authoritative repositories

  • cdeps NOT up to date

@MinsukJi-NOAA
Copy link
Contributor

Since actions thinks the cdeps is not up to date, tests do not run. I suggest we skip it for this PR.

@binli2337
Copy link
Contributor Author

@MinsukJi-NOAA OK.

@binli2337 binli2337 added the Ready for Commit Queue The PR is ready for the Commit Queue. All checkboxes in PR template have been checked. label May 26, 2021
@github-actions
Copy link

@binli2337 please bring these up to date with respective authoritative repositories

  • cdeps NOT up to date

@binli2337 binli2337 merged commit d0f0324 into ufs-community:develop May 26, 2021
@uturuncoglu
Copy link
Collaborator

@binli2337 There could be an issue in this naming convention (NG-GODAS NG-GODAS-NEMSDATM). I found that compile.sh string check for apps could have issue and might add both of app names to CMAKE_FLAGS when you set APP=NG-GODAS-NEMSDATM. You could easily test it by building APP=NG-GODAS-NEMSDATM and check the CMAKE_FLAGS in the standard out. The details of the issue is in here (see end of the conversation), #416

@uturuncoglu
Copy link
Collaborator

@binli2337 maybe it has issue if you have _ in the app name and having - will be fine. At this point, I am not sure.

@uturuncoglu
Copy link
Collaborator

uturuncoglu commented May 27, 2021

@binli2337 i checked it with - also and the result is same. The build includes multiple apps to CMAKE_FLAGS.

@uturuncoglu
Copy link
Collaborator

Here is the proposed solution for compile.sh. This isolates APP part and works for following cases,

  1. ./compile.sh "$target" "CCPP=Y APP=HAFS_DOCN STATIC=Y SUITES=HAFS_v0_gfdlmp_tedmf_nonsst,HAFS_v0_gfdlmp_tedmf,HAFS_v0_gfdlmp_nocpnsst,HAFS_v0_gfdlmp_nonsst,HAFS_v0_gfdlmp_nocp,HAFS_v0_gfdlmp,HAFS_v0_hwrf_thompson,HAFS_v0_hwrf 32BIT=Y" 32bit YES NO

  2. ./compile.sh "$target" "APP=HAFS_DOCN CCPP=Y STATIC=Y SUITES=HAFS_v0_gfdlmp_tedmf_nonsst,HAFS_v0_gfdlmp_tedmf,HAFS_v0_gfdlmp_nocpnsst,HAFS_v0_gfdlmp_nonsst,HAFS_v0_gfdlmp_nocp,HAFS_v0_gfdlmp,HAFS_v0_hwrf_thompson,HAFS_v0_hwrf 32BIT=Y" 32bit YES NO

So, order of APP definition does not affect the results and it match always the correct one. I'll push this changes into my HAFS CDEPS branch that could god eventually to upstream repository.

 # Valid applications
-if [[ "${MAKE_OPT}" == *"APP=ATM"* ]]; then
+APP_OPT=$( echo $MAKE_OPT | tr " " "\n" | sed -n '/APP/p;/APP/q' )
+echo "APP_OPT = ${APP_OPT}"
+
+if [[ "${APP_OPT}" == "APP=ATM" ]]; then
     echo "MAKE_OPT = ${MAKE_OPT}"
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATM"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=ATMW"* ]]; then
+if [[ "${APP_OPT}" == "APP=ATMW" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMW"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=S2S"* ]]; then
+if [[ "${APP_OPT}" == "APP=S2S" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2S -DMOM6SOLO=ON"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=S2SW"* ]]; then
+if [[ "${APP_OPT}" == "APP=S2SW" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2SW -DMOM6SOLO=ON"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=HAFS"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFS" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=HAFSW"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFSW" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFSW"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=DATM"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFS_DATM" ]]; then
+    CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DATM"
+fi
+
+if [[ "${APP_OPT}" == "APP=HAFS_DOCN" ]]; then
+    CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DOCN"
+fi
+

@climbfuji
Copy link
Collaborator

Here is the proposed solution for compile.sh. This isolates APP part and works for following cases,

  1. ./compile.sh "$target" "CCPP=Y APP=HAFS_DOCN STATIC=Y SUITES=HAFS_v0_gfdlmp_tedmf_nonsst,HAFS_v0_gfdlmp_tedmf,HAFS_v0_gfdlmp_nocpnsst,HAFS_v0_gfdlmp_nonsst,HAFS_v0_gfdlmp_nocp,HAFS_v0_gfdlmp,HAFS_v0_hwrf_thompson,HAFS_v0_hwrf 32BIT=Y" 32bit YES NO
  2. ./compile.sh "$target" "APP=HAFS_DOCN CCPP=Y STATIC=Y SUITES=HAFS_v0_gfdlmp_tedmf_nonsst,HAFS_v0_gfdlmp_tedmf,HAFS_v0_gfdlmp_nocpnsst,HAFS_v0_gfdlmp_nonsst,HAFS_v0_gfdlmp_nocp,HAFS_v0_gfdlmp,HAFS_v0_hwrf_thompson,HAFS_v0_hwrf 32BIT=Y" 32bit YES NO

So, order of APP definition does not affect the results and it match always the correct one. I'll push this changes into my HAFS CDEPS branch that could god eventually to upstream repository.

 # Valid applications
-if [[ "${MAKE_OPT}" == *"APP=ATM"* ]]; then
+APP_OPT=$( echo $MAKE_OPT | tr " " "\n" | sed -n '/APP/p;/APP/q' )
+echo "APP_OPT = ${APP_OPT}"
+
+if [[ "${APP_OPT}" == "APP=ATM" ]]; then
     echo "MAKE_OPT = ${MAKE_OPT}"
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATM"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=ATMW"* ]]; then
+if [[ "${APP_OPT}" == "APP=ATMW" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMW"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=S2S"* ]]; then
+if [[ "${APP_OPT}" == "APP=S2S" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2S -DMOM6SOLO=ON"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=S2SW"* ]]; then
+if [[ "${APP_OPT}" == "APP=S2SW" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2SW -DMOM6SOLO=ON"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=HAFS"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFS" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=HAFSW"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFSW" ]]; then
     CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFSW"
 fi
 
-if [[ "${MAKE_OPT}" == *"APP=DATM"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFS_DATM" ]]; then
+    CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DATM"
+fi
+
+if [[ "${APP_OPT}" == "APP=HAFS_DOCN" ]]; then
+    CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DOCN"
+fi
+

CCPP=Y and STATIC=Y are no longer required, they are the only=default options

@uturuncoglu
Copy link
Collaborator

@climbfuji The build add more APP names to CMAKE_FLAGS even if you only provide APP option without CCPP and STATIC ones. So, even for it, we still need fix.

@climbfuji
Copy link
Collaborator

@climbfuji The build add more APP names to CMAKE_FLAGS even if you only provide APP option without CCPP and STATIC ones. So, even for it, we still need fix.

I was only commenting on CCPP=Y and STATIC=Y no longer being needed, nothing else.

@binli2337 binli2337 deleted the feature/cdeps_tests branch June 11, 2021 00:15
pjpegion pushed a commit to NOAA-PSL/ufs-weather-model that referenced this pull request Apr 4, 2023
…-community#599)

* Improve radiative fluxes and cloud cover in ccpp/physics for HR1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Baseline Updates Current baselines will be updated. Ready for Commit Queue The PR is ready for the Commit Queue. All checkboxes in PR template have been checked.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use a mesh file for MOM6 for all cdeps tests Change application names for the cdeps related applications
8 participants