Move external mpi defs to LIS_mpiMod.F90 - #1836
Open
danrosen25 wants to merge 1 commit into
Open
Conversation
* wrap external mpi defs in USE_INCLUDE_MPI * fixes cannot change attributes of USE-associated symbol
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
I'm seeing a compiler error when compiling with gfortran@13.3 and mpich@5.0 within a ubuntu@24.04 container. The error says "cannot change attributes of USE-associated symbol" but because each file here includes
use LIS_mpiModthese external definitions aren't needed because the compiler reads thempi.modfile to define these procedures. This PR moves theexternal :: MPI_definitions into theLIS_mpiMod.F90file and sets them only when the compiler links usinginclude 'mpif.h'Resolves #1835
I'm not really sure if there is robust testing or a use case for -DUSE_INCLUDE_MPI but I did compile successfully with and without this flag. I think these changes could use a little more structured testing though.
Testcase
Including a container that was used to build LIS.
nlc_container.tar.gz