If misalignment is the case then adding "sequence" to the data type might
help.

So:

type :: <whatever>
sequence
integer :: ...
real :: ...
end type

Note that you cannot use the alignment on types with allocatables and
pointers for obvious reasons.

2014-10-03 0:39 GMT+00:00 Kawashima, Takahiro <t-kawash...@jp.fujitsu.com>:

> Hi Diego,
>
> I don't know what CPU/compiler you are using and what -r8
> option means, but DISPLACEMENTS(2) and DISPLACEMENTS(3) is
> incorrect if integer is 4 bytes and real is 8 bytes.
> In this case, usually there is a gap between ip and RP.
> See description about datatype alignment in the MPI Standard.
>
> Regards,
> Takahiro
>
> > 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
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2014/10/25432.php
>



-- 
Kind regards Nick

Reply via email to