Diego, Did you change your compiler options?
Cheers, Gilles ----- Original Message ----- > Dear all, > > I would like to share with what I have done in oder to create my own MPI > data type. The strange thing is that it worked until some day ago and then > it stopped working. This because probably I have changed my data type and I > miss some knowledge about MPI data type > > This is my data type: > ****** > TYPE tParticle > SEQUENCE > INTEGER :: ip > INTEGER :: mc > INTEGER :: bcflag > INTEGER :: cpu > REAL :: RP(di) > REAL :: QQ(nVar) > REAL :: UU0(2*(1+di+nVar)) > REAL :: lij > REAL :: lmls > REAL :: vol > REAL :: mm > ENDTYPE tParticle > ****** > > Then I have this variables in order to create mine: > > ****** > INTEGER, ALLOCATABLE,DIMENSION(:) :: TYPES, LENGTHS > INTEGER(MPI_ADDRESS_KIND), ALLOCATABLE,DIMENSION(:) :: DISPLACEMENTS > TYPE(tParticle) :: dummy(2) > ****** > > Having 5 structures: Nstruct=5 > > In the following how I create my MPI data TYPE > > ****** > ALLOCATE(TYPES (Nstruct) ) > ALLOCATE(LENGTHS (Nstruct) ) > ALLOCATE(DISPLACEMENTS (0:nstruct+1)) > !set the types > TYPES(1) = MPI_INTEGER > TYPES(2) = MPI_DOUBLE_PRECISION > TYPES(3) = MPI_DOUBLE_PRECISION > TYPES(4) = MPI_DOUBLE_PRECISION > TYPES(5) = MPI_DOUBLE_PRECISION > !set the lengths > LENGTHS(1) = 4 > LENGTHS(2) = SIZE(dummy(1)%RP) > LENGTHS(3) = SIZE(dummy(1)%QQ) > LENGTHS(4) = SIZE(dummy(1)%UU0) > LENGTHS(5) = 4 > ! > CALL MPI_GET_ADDRESS(dummy(1) ,DISPLACEMENTS(0),MPIdata%iErr) > CALL MPI_GET_ADDRESS(dummy(1)%ip ,DISPLACEMENTS(1),MPIdata%iErr) > CALL MPI_GET_ADDRESS(dummy(1)%RP(1) ,DISPLACEMENTS(2),MPIdata%iErr) > CALL MPI_GET_ADDRESS(dummy(1)%QQ(1) ,DISPLACEMENTS(3),MPIdata%iErr) > CALL MPI_GET_ADDRESS(dummy(1)%UU0(1) ,DISPLACEMENTS(4),MPIdata%iErr) > CALL MPI_GET_ADDRESS(dummy(1)%lij ,DISPLACEMENTS(5),MPIdata%iErr) > CALL MPI_GET_ADDRESS(dummy(2) ,DISPLACEMENTS(6),MPIdata%iErr) > ! > DISPLACEMENTS(1:nstruct+1)= DISPLACEMENTS(1:nstruct+1)-DISPLACEMENTS (0) > ! > CALL > MPI_TYPE_CREATE_STRUCT(nstruct,lengths,DISPLACEMENTS(1:nstruct+1), types,MPI_PARTICLE_TYPE_OLD,MPIdata%iErr) > CALL MPI_TYPE_COMMIT(MPI_PARTICLE_TYPE_OLD,MPIdata%iErr) > ! > CALL MPI_TYPE_CREATE_RESIZED(MPI_PARTICLE_TYPE_OLD, DISPLACEMENTS(1), > DISPLACEMENTS(6), MPI_PARTICLE_TYPE, MPIdata%iErr) > CALL MPI_TYPE_COMMIT(MPI_PARTICLE_TYPE,MPIdata%iErr) > > > Do you see something wrong, maybe related to the DISPLACEMENTS. This > beacuse, As already told you, something has happend and I have just added > " REAL :: mm " > in my type and consequently set "LENGTHS(5) = 4 ". > > What do you think? > Thanks in advance for any kind of help. > > Best, > > Diego >