ind=ind+1
ii = ind+m
iti=itype(i)
- massvec(ii)=msc(iti)
+ massvec(ii)=msc(iabs(iti))
if (iti.ne.10 .and. iti.ne.ntyp1) then
ind1=ind1+1
ii1= ind1+m1
A(ii,ii1)=1.0d0
- Gmat(ii1,ii1)=ISC(iti)
+ Gmat(ii1,ii1)=ISC(iabs(iti))
endif
enddo
c Off-diagonal elements of the dX part of A
include 'COMMON.TIME1'
include 'COMMON.MD'
double precision z(dimen3),d_a_tmp(dimen3),temp(maxres6),time00
- &time01
+ &,time01,zcopy(dimen3)
#ifdef MPI
if (nfgtasks.gt.1) then
if (fg_rank.eq.0) then
time00=MPI_Wtime()
call MPI_Scatterv(z,ng_counts(0),ng_start(0),
& MPI_DOUBLE_PRECISION,
- & z,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
+ & zcopy,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
c write (2,*) "My chunk of z"
-c do i=1,3*my_ng_count
+ do i=1,3*my_ng_count
+ z(i)=zcopy(i)
c write (2,*) i,z(i)
-c enddo
+ enddo
c write (2,*) "After SCATTERV"
c call flush(2)
c write (2,*) "MPI_Wtime",MPI_Wtime()
include 'COMMON.LANGEVIN.lang0'
#endif
double precision z(dimen3),d_a_tmp(dimen3),temp(maxres6),time00
- &time01
+ &,time01,zcopy(dimen3)
#ifdef MPI
if (nfgtasks.gt.1) then
if (fg_rank.eq.0) then
time00=MPI_Wtime()
call MPI_Scatterv(z,ng_counts(0),ng_start(0),
& MPI_DOUBLE_PRECISION,
- & z,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
+ & zcopy,3*my_ng_count,MPI_DOUBLE_PRECISION,king,FG_COMM,IERR)
c write (2,*) "My chunk of z"
-c do i=1,3*my_ng_count
+ do i=1,3*my_ng_count
+ z(i)=zcopy(i)
c write (2,*) i,z(i)
-c enddo
+ enddo
time_scatter=time_scatter+MPI_Wtime()-time00
#ifdef TIMING
time_scatter_fmatmult=time_scatter_fmatmult+MPI_Wtime()-time00