<div dir="ltr">Dear all.<div>I have some problem with MPI_TYPE_CREATE_STRUCT and as a consequence with SENDRECV.</div><div><br></div><div>I have this variable type</div><div><i style="color:rgb(0,0,0)"><br></i></div><div><i style="color:rgb(0,0,0)">type particle</i></div><div><i style="color:rgb(0,0,0)">integer :: ip</i></div><div><i style="color:rgb(0,0,0)"> real :: RP(2)</i></div><div><i style="color:rgb(0,0,0)"> real                    :: QQ(4)</i></div><div><i style="color:rgb(0,0,0)">end type particle</i></div><div><i style="color:rgb(0,0,0)"><br></i></div><div>When I compile in double precision with:</div><div><br></div><div><div><i>mpif90 -r8 -fpp -DPARALLEL *.f90 </i></div></div><div><br></div><div>So when I create my own variable type for MPI, I have</div><div><br></div><div><div><i>TYPES(1)=MPI_INTEGER                           !We have three variables type in the new varible<br></i></div><div><i>TYPES(2)=MPI_DOUBLE_PRECISION       !Integer and Real and Real</i></div><div><i> TYPES(3)=MPI_DOUBLE_PRECISION       !Integer and Real and Real</i></div><div><i> nBLOCKS(1)=1                                              !number of element in each block </i></div><div><i> nBLOCKS(2)=2</i></div><div><i>  nBLOCKS(3)=4</i></div><div><i>  !</i></div><div><i>  DISPLACEMENTS(1)=0</i></div><div><i>  DISPLACEMENTS(2)=sizeof(dummy%ip)</i></div><div><i>  DISPLACEMENTS(3)=sizeof(dummy%ip)+sizeof(dummy%RP(1))+sizeof(dummy%RP(2))</i></div><div><i>   !  </i></div><div><i>  CALL MPI_TYPE_CREATE_STRUCT(3,nBLOCKS,DISPLACEMENTS,TYPES,MPI_PARTICLE_TYPE, PI%ierr)</i></div><div><i>   CALL MPI_TYPE_COMMIT(MPI_PARTICLE_TYPE,MPI%ierr)</i></div></div><div><br></div><div><br></div><div>Am I right?</div><div>Thanks, in advance, for any kind of help</div><div><br></div><div><br clear="all"><div>Diego<br><br></div>
</div></div>