[Mpi-forum] SENDRECV + MPI_TYPE_CREATE_STRUCT

Diego Avesani diego.avesani at gmail.com
Thu Oct 2 10:20:57 CDT 2014


Dear all.
I have some problem with MPI_TYPE_CREATE_STRUCT and as a consequence
with SENDRECV.

I have this variable type

*type particle*
*integer :: ip*
* real :: RP(2)*
* real :: QQ(4)*
*end type particle*

When I compile in double precision with:

*mpif90 -r8 -fpp -DPARALLEL *.f90 *

So when I create my own variable type for MPI, I have


*TYPES(1)=MPI_INTEGER                           !We have three variables
type in the new varible*
*TYPES(2)=MPI_DOUBLE_PRECISION       !Integer and Real and Real*
* TYPES(3)=MPI_DOUBLE_PRECISION       !Integer and Real and Real*
* nBLOCKS(1)=1                                              !number of
element in each block *
* nBLOCKS(2)=2*
*  nBLOCKS(3)=4*
*  !*
*  DISPLACEMENTS(1)=0*
*  DISPLACEMENTS(2)=sizeof(dummy%ip)*
*
DISPLACEMENTS(3)=sizeof(dummy%ip)+sizeof(dummy%RP(1))+sizeof(dummy%RP(2))*
*   !  *
*  CALL
MPI_TYPE_CREATE_STRUCT(3,nBLOCKS,DISPLACEMENTS,TYPES,MPI_PARTICLE_TYPE,
PI%ierr)*
*   CALL MPI_TYPE_COMMIT(MPI_PARTICLE_TYPE,MPI%ierr)*


Am I right?
Thanks, in advance, for any kind of help


Diego
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20141002/039de761/attachment.html>


More information about the mpi-forum mailing list