Fixed lots of bugs in MPI version. Compiles now for complex version, no testing done
Showing
... | ... | @@ -4,7 +4,6 @@ CONTAINS |
mpi,stars,sphhar,atoms,obsolete,sym,& | ||
kpts,jij,dimension,input,banddos,sliceplot,& | ||
vacuum,cell,enpara,noco,oneD,& | ||
MM,nn2d_1,n2d_1,nop_1,& | ||
xcpot,hybrid) | ||
! | ||
!********************************************************************** | ||
... | ... | @@ -32,9 +31,6 @@ CONTAINS |
TYPE(t_sphhar),INTENT(INOUT) :: sphhar | ||
TYPE(t_atoms),INTENT(INOUT) :: atoms | ||
! .. Scalar Arguments .. | ||
INTEGER,INTENT(INOUT) :: n2d_1,nn2d_1,nop_1,MM | ||
! .. | ||
! .. Local Scalars .. | ||
INTEGER n | ||
REAL rdum | ||
! .. Local Arrays .. | ||
... | ... | @@ -46,12 +42,10 @@ CONTAINS |
EXTERNAL MPI_BCAST | ||
mpi%typ_real=MPI_DOUBLE_PRECISION | ||
mpi%typ_complex=MPI_DOUBLE_COMPLEX | ||
IF (mpi%irank.EQ.0) THEN | ||
i(1)=1 ; i(2)=obsolete%lpr ; i(3)=atoms%ntype ; i(5)=obsolete%nwd ; i(6)=input%isec1 | ||
i(7)=stars%ng2 ; i(8)=stars%nq3 ; i(9)=vacuum%nmz ; i(10)=vacuum%nmzxy ; i(11)=obsolete%lepr | ||
i(7)=stars%ng2 ; i(8)=stars%ng3 ; i(9)=vacuum%nmz ; i(10)=vacuum%nmzxy ; i(11)=obsolete%lepr | ||
i(12)=input%jspins ; i(13)=vacuum%nvac ; i(14)=input%itmax ; i(15)=sliceplot%kk ; i(16)=vacuum%layers | ||
i(17)=sliceplot%nnne ; i(18)=banddos%ndir ; i(19)=stars%mx1 ; i(20)=stars%mx2 ; i(21)=stars%mx3 | ||
i(22)=atoms%n_u ; i(23) = sym%nop2 ; i(24) = sym%nsymt ; i(25) = xcpot%icorr | ||
... | ... | @@ -85,10 +79,10 @@ CONTAINS |
atoms%n_u=i(22) ; sym%nop2=i(23) ; sym%nsymt = i(24) ; xcpot%icorr=i(25) | ||
sliceplot%nnne=i(17) ; banddos%ndir=i(18) ; stars%mx1=i(19) ; stars%mx2=i(20) ; stars%mx3=i(21) | ||
input%jspins=i(12) ; vacuum%nvac=i(13) ; input%itmax=i(14) ; sliceplot%kk=i(15) ; vacuum%layers=i(16) | ||
stars%ng2=i(7) ; stars%nq3=i(8) ; vacuum%nmz=i(9) ; vacuum%nmzxy=i(10) ; obsolete%lepr=i(11) | ||
stars%ng2=i(7) ; stars%ng3=i(8) ; vacuum%nmz=i(9) ; vacuum%nmzxy=i(10) ; obsolete%lepr=i(11) | ||
obsolete%lpr=i(2) ; atoms%ntype=i(3) ; obsolete%nwd=i(5) ; input%isec1=i(6) | ||
! | ||
CALL MPI_BCAST(r,SIZE(r),mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(r,SIZE(r),MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
rdum=aMix_VHSE( r(27) ); rdum=omega_VHSE( r(28) ) | ||
hybrid%tolerance2=r(23) ; input%delgau=r(24) ; input%tkb=r(25) ; input%efield%vslope=r(26) | ||
cell%volint=r(19) ; hybrid%gcutm1=r(20) ; hybrid%tolerance1=r(21) ; hybrid%gcutm2=r(22) | ||
... | ... | @@ -129,9 +123,9 @@ CONTAINS |
CALL MPI_BCAST (input%efield%C2,n,MPI_REAL,0,mpi%mpi_comm,ierr) | ||
END IF | ||
CALL MPI_BCAST(stars%ustep,stars%n3d,mpi%typ_complex,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(stars%ustep,stars%n3d,MPI_DOUBLE_COMPLEX,0,mpi%mpi_comm,ierr) | ||
n = sphhar%memd*(sphhar%nlhd+1)*sphhar%ntypsd | ||
CALL MPI_BCAST(sphhar%clnu,n,mpi%typ_complex,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(sphhar%clnu,n,MPI_DOUBLE_COMPLEX,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(sphhar%mlh,n,MPI_INTEGER,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(sphhar%nlh,sphhar%ntypsd,MPI_INTEGER,0,mpi%mpi_comm,ierr) | ||
n = (sphhar%nlhd+1)*sphhar%ntypsd | ||
... | ... | @@ -150,30 +144,30 @@ CONTAINS |
CALL MPI_BCAST(stars%ig2,stars%n3d,MPI_INTEGER,0,mpi%mpi_comm,ierr) | ||
n = (2*stars%k1d+1)*(2*stars%k2d+1)*(2*stars%k3d+1) | ||
CALL MPI_BCAST(stars%ig,n,MPI_INTEGER,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(stars%rgphs,n,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(input%ellow,obsolete%nwdd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(input%elup,obsolete%nwdd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(input%rkmax,obsolete%nwdd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%rmt,atoms%ntypd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%volmts,atoms%ntypd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%dx,atoms%ntypd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(stars%sk3,stars%n3d,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(enpara%evac0,2*dimension%jspd*obsolete%nwdd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(cell%amat,9,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(cell%bmat,9,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(cell%bbmat,9,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%taual,3*atoms%natd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%pos,3*atoms%natd,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(sym%tau,3*sym%nop,mpi%type_real,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(stars%rgphs,n,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(input%ellow,obsolete%nwdd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(input%elup,obsolete%nwdd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(input%rkmax,obsolete%nwdd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%rmt,atoms%ntypd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%volmts,atoms%ntypd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%dx,atoms%ntypd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(stars%sk3,stars%n3d,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(enpara%evac0,2*dimension%jspd*obsolete%nwdd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(cell%amat,9,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(cell%bmat,9,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(cell%bbmat,9,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%taual,3*atoms%natd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(atoms%pos,3*atoms%natd,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
CALL MPI_BCAST(sym%tau,3*sym%nop,MPI_DOUBLE_PRECISION,0,mpi%mpi_comm,ierr) | ||
< |