On Feb 17, 2021, at 12:24 PM, Luis Diego Pinto via users <users@lists.open-mpi.org> wrote: > > Dear Christoph Niethammer, > > thank you very much for the advice, now i have imported the module "mpi_f08" > and indeed those issues are fixed.
Exxxcellent. mpi_f08 is definitely the way to go for all new Fortran MPI code. > The compilation seems to work fine but unfortunately i got another small > class of errors. I report a representative example below, maybe among the > community some other user could have encountered it: > > > 543 | call > MPI_Isend(rho_stock(NA_mpi:NB_mpi),DELTA_N,MPI_DOUBLE,0,rank_mpi, > MPI_COMM_WORLD,req1,ierr) > | > 1 > Error: There is no specific subroutine for the generic ‘mpi_isend’ at (1) This means that you're not calling MPI_Isend with the correct parameters. The compiler message is unfortunately not entirely helpful, but it specifically means that there's no MPI_Isend() in the mpi_f08 module with the exact types of parameters that you used. Triple check the types of each parameter to this call with the expected type for MPI_Isend. E.g., make sure DELTA_N and RAML_MPI are INTEGERs, and req1 is a TYPE(MPI_Request). > Similar kind of such error are reported for the functions MPI_Irecv,MPI_Recv, > MPI_Send, but i guess that it may depend on some new command or some new way > of defining type variable/arrays that should be done with the new f08 > library, which are different from the previous one. > > Is there some useful reference guide that shows the mayor differences between > the old and the new library, possibly with some examples? Here's the high-level differences: - ierr is an optional argument - MPI handles now have their own types (vs. all being INTEGER) - parameter type checking is strictly enforced on calling MPI subroutines and functions -- Jeff Squyres jsquy...@cisco.com