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

logical args to Make should not be quoted, and update esmf library and cheyenne_gnu compiler versions #3985

Merged
merged 4 commits into from
Jun 7, 2021

Conversation

jedwards4b
Copy link
Contributor

Update the esmf library module on cheyenne for all compilers, update gnu compiler to 10.1.0 on cheyenne. Fix an issue in build.py that was causing the ESMF_VERSION flags not to be available to
the compile line (USE_ESMF_LIB=TRUE not USE_ESMF_LIB="TRUE")

Test suite: scripts regression tests with intel, gnu and pgi compilers on cheyenne with cime_driver=nuopc
Test baseline:
Test namelist changes:
Test status: bit for bit
Fixes [CIME Github issue #]

User interface changes?:

Update gh-pages html (Y/N)?:

@jedwards4b jedwards4b self-assigned this Jun 3, 2021
@jedwards4b
Copy link
Contributor Author

gnu and intel compilers are working but I'm having issues with pgi.

@@ -200,7 +200,7 @@ using a fortran linker.
<FFLAGS>
<!-- -ffree-line-length-none and -ffixed-line-length-none need to be in FFLAGS rather than in FIXEDFLAGS/FREEFLAGS
so that these are passed to cmake builds (cmake builds don't use FIXEDFLAGS and FREEFLAGS). -->
<base> -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none </base>
<base> -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none -fallow-argument-mismatch -fallow-invalid-boz </base>
Copy link
Member

Choose a reason for hiding this comment

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

Thanks for adding these flags. But, since they are workarounds for issues that will hopefully be resolved, I think it would be helpful to add a comment stating that – i.e., something like:

-fallow-argument-mismatch is needed for building with the mpich library with gfortran10; -fallow-invalid-boz is needed for some components that have non-standard uses of BOZ literal constants with gfortran10. See https://github.com/ESMCI/cime/issues/3846 for details.

However, I'm also wondering if these flags work with older versions of gfortran, or if they require gfortran10+.

@@ -559,76 +559,76 @@ This allows using a different mpirun command to launch unit tests
<command name="load">mkl</command>
</modules>
<modules compiler="gnu">
<command name="load">gnu/9.1.0</command>
<command name="load">openblas/0.3.6</command>
<command name="load">gnu/10.1.0</command>
Copy link
Member

@billsacks billsacks Jun 3, 2021

Choose a reason for hiding this comment

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

Have you confirmed that this doesn't change answers for any of our CESM testing? It would be good to know that before merging (updating the top-level PR comment and thus the merge message, if needed).

Copy link
Member

Choose a reason for hiding this comment

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

In the past, I think we've said we should do at least prealpha testing when doing a major compiler version update like this. @fischer-ncar , if you or @jedwards4b hasn't already done so, would you be able to run the cheyenne_gnu prealpha tests with baseline comparisons? (And prebeta cheyenne_gnu if you feel it's warranted; I notice that prealpha cheyenne_gnu has very little coverage.)

Copy link
Contributor

Choose a reason for hiding this comment

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

@billsacks I've start prealpha and prebeta tests for cheyenne_gnu.

Copy link
Contributor

Choose a reason for hiding this comment

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

Testing is finished. gnu/10.1.0 is bfb with gnu/9.1.0.

Copy link
Member

Choose a reason for hiding this comment

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

Awesome, thanks!

Copy link
Contributor

Choose a reason for hiding this comment

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

Just FYI, we did find a case where answers changed because of this update. See ESCOMP/CTSM#1464

I want to highlight it just to reinforce that our paranoia over compiler updates is often justified. :-) It did take us a bit to track it down to this change. It's also helpful that the compiler change was in one PR and not mixed with anything else, so thanks for that.

@billsacks billsacks changed the title logical args to Make should not be quoted logical args to Make should not be quoted, and update esmf library and cheyenne_gnu compiler versions Jun 3, 2021
Copy link
Member

@billsacks billsacks left a comment

Choose a reason for hiding this comment

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

Awesome, thanks @jedwards4b and @fischer-ncar !

@fischer-ncar
Copy link
Contributor

@jedwards4b are you ready to merge this PR?

@jedwards4b
Copy link
Contributor Author

@ekluzek It also turns out that the smartsim tool doesn't work with gnu 10. PR #4045 backs out this change.

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.

5 participants