Greetings,

I used mpich earlier, where I could get the value of MPI_WORLD_COMM in the main 
program and pass it to subroutines via a common block (as the MPI_WORLD_COMM is 
assumed to be an integer and I even was able to confirm that it is declared to 
be an integer in mpif-common.h). However, openmpi does not allow putting 
MPI_WORLD_COMM into a common block:

mpi0.f(2): error #6414: This PARAMETER constant name is invalid in this 
context.   [MPI_COMM_WORLD]
      common /MPI_DM/ MPI_COMM_WORLD,NUMNOD,MYRANK
----------------------^
mpi0.f(21): error #6412: A dummy argument name is invalid in this context.   
[MPI_COMM_WORLD]
      common /MPI_DM/ MPI_COMM_WORLD,NUMNOD,MYRANK
----------------------^

If I try to pass MPI_WORLD_COMM to a subrotine as one of the subroutine 
argument, it aborts at run time whe it comes to using it in an MPI_Bcast call

*** An error occurred in MPI_Bcast
*** on communicator MPI_COMM_WORLD
*** MPI_ERR_TYPE: invalid datatype

What is the correct way to pass the communiator to a subroutine in 
Fortra90/openmpi?

Thanks,
regards,

Mihaly Mezei

Department of Structural and Chemical Biology, Mount Sinai School of Medicine
Voice:  (212) 659-5475   Fax: (212) 849-2456
WWW (MSSM home): 
http://www.mountsinai.org/Find%20A%20Faculty/profile.do?id=0000072500001497192632
WWW (Lab home - software, publications): http://inka.mssm.edu/~mezei
WWW (Department): http://atlas.physbio.mssm.edu

Reply via email to