C
implicit real*8 (a-h,o-z)
include 'DIMENSIONS'
+#ifdef MPI
+ include "mpif.h"
+ include 'COMMON.SETUP'
+ integer ierror
+#endif
include 'COMMON.IOUNITS'
include 'COMMON.CHAIN'
include 'COMMON.DFA'
include 'COMMON.FFIELD'
include 'COMMON.CONTROL'
- include 'COMMON.SETUP'
C NOTE THAT FILENAMES are FIXED, CURRENTLY!!
integer ica1, ica2,ica3,ica4,ica5
integer ishell, inca, itmp,iitmp
double precision wtmp
+ logical lprn /.false./
C
C READ DISTANCE
C
call int_bounds(idfaphi,idfaphi_start,idfaphi_end)
call int_bounds(idfathe,idfathe_start,idfathe_end)
call int_bounds(idfanei,idfanei_start,idfanei_end)
- if (me.eq.king .or. .not. out1file)
+ if (lprn) write (*,*) "Processor",MyRank," DFA MPI ",
+ & "idfadis ",idfadis,idfadis_start,idfadis_end,
+ & "idfaphi ",idfaphi,idfaphi_start,idfaphi_end,
+ & "idfathe ",idfathe,idfathe_start,idfathe_end,
+ & "idfanei ",idfanei,idfanei_start,idfanei_end
+ if (lprn)
& write (iout,*) "DFA MPI ",
& "idfadis ",idfadis,idfadis_start,idfadis_end,
& "idfaphi ",idfaphi,idfaphi_start,idfaphi_end,
& "idfathe ",idfathe,idfathe_start,idfathe_end,
& "idfanei ",idfanei,idfanei_start,idfanei_end
+ if (nfgtasks.gt.1) then
+ do i=0,max_fg_procs-1
+ idfadis_start_all(j)=0
+ idfadis_end_all(j)=0
+ idfaphi_start_all(j)=0
+ idfaphi_end_all(j)=0
+ idfathe_start_all(j)=0
+ idfathe_end_all(j)=0
+ idfanei_start_all(j)=0
+ idfanei_end_all(j)=0
+ enddo
+ call MPI_Allgather(idfadis_start,1,MPI_INTEGER,
+ & idfadis_start_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfadis_end,1,MPI_INTEGER,
+ & idfadis_end_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfaphi_start,1,MPI_INTEGER,
+ & idfaphi_start_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfaphi_end,1,MPI_INTEGER,
+ & idfaphi_end_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfathe_start,1,MPI_INTEGER,
+ & idfathe_start_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfathe_end,1,MPI_INTEGER,
+ & idfathe_end_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfanei_start,1,MPI_INTEGER,
+ & idfanei_start_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ call MPI_Allgather(idfanei_end,1,MPI_INTEGER,
+ & idfanei_end_all(0),1,MPI_INTEGER,FG_COMM,IERROR)
+ if (me.eq.0 .or. out1file) then
+ write (iout,*) "Partitioning of DFA work"
+ write (iout,'(5a10)') 'Rank','DFA_dis','DFA_phi','DFA_the',
+ & 'DFA_nei'
+ do i=0,nfgtasks-1
+ write (iout,'(i10,8i5)') i,idfadis_start_all(i),
+ & idfadis_end_all(i),idfaphi_start_all(i),
+ & idfaphi_end_all(i),idfathe_start_all(i),
+ & idfathe_end_all(i),idfanei_start_all(i),
+ & idfanei_end_all(i)
+ enddo
+ endif
+ endif
#else
idfadis_start=1
idfadis_end=idfadis