build the dycore with cmake#141
Conversation
|
@aerorahul - who all would you recommend for reviews? |
|
DomHeinzeller
left a comment
There was a problem hiding this comment.
This is not for this PR, but for the future. We have so many repositories that use FindNetCDF.cmake and FindESMF.cmake. Should we strive for using one submodule like CMakeModules for this, or even better, is there a way to include those in the official CMake distributions?
|
I am not sure, but I think there are AVX2 flags missing for Intel. Testing this now ... |
climbfuji
left a comment
There was a problem hiding this comment.
This PR as-is changed the regression test results for the AWS CI tests and on Jet with Intel for yet unknown reasons.
|
The atm dycore is handled differently than other components in the UFS. |
|
reopening this PR. |
|
Having the CMakeLists.txt in this repo but not using it in UFS just creates confusion. And is maintenance burden, because now the same change has to be applied at two places. |
DomHeinzeller
left a comment
There was a problem hiding this comment.
I don't see the merit of merging this now. It just pushes the burden to fix this to "someone else" at "some point later". We would be merging code that we know is not correct (w.r.t. b4b regression testing in the UFS) and it won't be tested. If this code is urgently needed, it should be fixed now and then merged, unless we agree that we don't care about getting the same results or not.
|
Here's my suggestion. What if we remove setting compiler flags from this CMakeLists.txt and have them inherited from the upper levels of the app, as we do with other parts of the UFS, like fv3atm, or stochastic physics, etc. |
I like that idea. Is there a smart way to detect if build flags are set by a parent cmake config, or whether this is a standalone build (in which default build flags can be configured)? I'd be interested in such a solution, because it would greatly simplify the existing CCPP |
|
We could do something like this on Line 163 of |
I was thinking along checking if a CMake project has been defined already. The top-level ufs-weather-model, for example, sets the following: Would testing for |
You can check on |
This is the question we have been debating for a while. Should components set their own flags, or should parents (of submodules) be in charge of setting those. It should be consistent, in my opinion. |
|
Please remove |
done. |
|
Ready for merge. @bensonr please merge this PR. All UFS tests passed. See ufs-community/ufs-weather-model#812 |
Description
The build and the source code for the FV3 dynamical core resides in two different repositories, which is less than ideal.
This PR:
CMakebuild for the dynamical core intended for the UFS and thus the PR is to merge intodev/emcThis is an excerpt from an email with @bensonr from 7/19/2021
Fixes #139
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note
any relevant details for your test configuration (e.g. compiler, OS). Include
enough information so someone can reproduce your tests.
Testing is in progress with UFS-weather-model.
Note that this PR does not have any impact on current UFS-weather-model.
A subsequent change in the UFS-weather-model will remove the FV3 dynamical core build from FV3atm at which point these changes will come in play.
Checklist:
Please check all whether they apply or not