-
Notifications
You must be signed in to change notification settings - Fork 143
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
mpich mpif08 #261
Comments
i think that changing our code to 'use mpi_f08' instead of just 'use mpi' is the right solution (also the iso_c_bindings). but i don't how to verify how many of our users have access to mpi with the 2008 bindings compared to older versions only. if this breaks our build for a lot of people then it's bad. if most installations now have 2008 bindings then this allows us to let the compilers do better error checking by removing compile-time flags from our mkmf.templates which is a good thing. it would be nice if there was an easy way to know whether an mpi had a 2008 module or not. a simple kind of 'configure' command that runs first and checks things out? or just make the change and tell users to edit mpi_utilities_mod.f90 if it doesn't build? just thinking out loud here. not sure what the right solution is yet. |
I love these foundation shaking questions from Nancy. Have you played with autoconf to configure/make DART vs. mkmf? |
note the mpi_f08 branch is a ways behind main so does not have the NAG bug-fix #328. |
up-to-date now. I think this should go in a f2008(3) update (see #288). Hanging out on the mpi_f08 branch now |
moved mpi_f08 https://github.com/hkershaw-brown/DART/tree/mpi_f08 |
To reproduce this on gust you can use the following modules:
|
Updated the old mpi_f08 branch to main. Updated branch located at https://github.com/NCAR/DART/tree/mpif08 |
I think the mpi_utilities errors are mpich using f77 bindings when you
use mpi
. Hello world mpi (no dart code) will not compile if you have a mpi_send(integer) mpi_send(real) in the same file.hello.f90.txt
hello_f08.f90.txt
The f08 mpi module
use mpi_f08
follows the fortran standard.There is a branch mpi_f08 which has a version of mpi_utilites_mod.f90 with mpi_f08 bindings. This will work with mpich and gfortran 10+ (only done a quick test).
The cray window module (cray pointers) could get replaced with iso_c_bindings.
or short term solution:
port select --set mpi openmpi-mp-fortran
Originally posted by @hkershaw-brown in #158 (comment)
The text was updated successfully, but these errors were encountered: