Fix Fortran compile flag scope to avoid ifx real-size override warning in WW3 and operational workflow#1522
Conversation
|
WW3 standalone Ursa GNU is under testing. |
DusanJovic-NOAA
left a comment
There was a problem hiding this comment.
Looks good. Although, I'm not sure if the test whether PIO is in the list of switches is the best way to detect if this library is being built as a part of UFS.
|
WW3 standalone Ursa GNU tests passed. |
Maybe UFS_CAP? https://github.com/NOAA-EMC/WW3/blob/dev/ufs-weather-model/model/src/CMakeLists.txt#L141 That variable might not exist in the WW3 develop branch - but while PIO is a good for now stand-in for now, UFS_CAP is likely a better trigger. It might require adding in more logic from dev/ufs-wather-model. |
|
@DusanJovic-NOAA @JessicaMeixner-NOAA I will switch to ufs_cap and redo the tests. |
|
I used Note this job does NOT contain wave model. |
|
Ursa GNU regression tests passed for the updates matrixCompFull.txt Note All results are identical. |
|
Ursa Intel regtests passed for the update. |
JessicaMeixner-NOAA
left a comment
There was a problem hiding this comment.
matrixCompFull.txt
matrixCompSummary.txt
matrixDiff.txt
**********************************************************************
********************* non-identical cases ****************************
**********************************************************************
mww3_test_03/./work_PR3_UQ_MPI_e (1 files differ)
mww3_test_03/./work_PR3_UQ_MPI_d2_c (16 files differ)
mww3_test_03/./work_PR1_MPI_d2 (22 files differ)
mww3_test_03/./work_PR2_UNO_MPI_d2 (15 files differ)
mww3_test_03/./work_PR2_UNO_MPI_e (1 files differ)
mww3_test_03/./work_PR3_UQ_MPI_d2 (17 files differ)
mww3_test_03/./work_PR3_UQ_MPI_e_c (1 files differ)
mww3_test_03/./work_PR1_MPI_e (1 files differ)
mww3_test_03/./work_PR2_UQ_MPI_e (1 files differ)
mww3_test_03/./work_PR2_UQ_MPI_d2 (16 files differ)
mww3_test_03/./work_PR3_UNO_MPI_d2_c (17 files differ)
mww3_test_03/./work_PR3_UNO_MPI_e (1 files differ)
mww3_test_03/./work_PR3_UNO_MPI_d2 (20 files differ)
mww3_test_09/./work_MPI_ASCII (0 files differ)
ww3_tp2.10/./work_MPI_OMPH (6 files differ)
ww3_tp2.21/./work_b_metis (1 files differ)
ww3_tp2.6/./work_ST4_ASCII (0 files differ)
ww3_ufs1.3/./work_a (3 files differ)
Pull Request Summary
This PR fixes an Intel Fortran compiler warning:
ifx: command line warning #10121: overriding '-real-size 64' with '-real-size 32'The issue was caused by conflicting compile flags inherited from public target properties. The fix adjusts the CMake configuration to use
PRIVATEinstead ofPUBLICfor Intel Fortran compile options in theww3_libtarget.Description
Previously, in
model/src/CMakeLists.txt, theww3_libtarget usedtarget_compile_options(... PUBLIC ...), which propagated its compile flags to dependent targets. This caused duplicated or conflicting flags when building the WW3/Operational workflow, triggering the Intel compiler warning #10121.With the help from @DusanJovic-NOAA, this PR updates the compile option scope from
PUBLICtoPRIVATEfor Fortran compile flags inCMakeLists.txtto ensure they apply only withinww3_liband are not inherited by other targets. The modification removes unnecessary flag propagation and eliminates the compiler warning during builds.To prevent unexpected differences in WW3 standalone regression tests, the build configuration now separates the standalone WW3 build from the operational workflow by applying conditional logic under
if (UFS_CAP).Special thanks to @DusanJovic-NOAA for identifying the issue and suggesting the fix.
Issue(s) addressed
fixes issue #1514
Commit Message
Fix Fortran compile flag scope to avoid ifx real-size override warning in WW3 and operational workflow
Check list
Testing
No errors or unexpected differences were observed.
matrixCompFull.txt
matrixCompSummary.txt
matrixDiff.txt