X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc-HCD-5D%2Fdfa.F;h=62e88928f6f28080895def3424216a83a7bc87cc;hb=f9783c27de185ff3e1d6e874a37a1a8c4d3c93a3;hp=f69b81abc4515980edecc6efd801d703721044da;hpb=3d04f1babd4ae90f9a0b8f256a2ce0a2c5751f33;p=unres.git diff --git a/source/unres/src-HCD-5D/dfa.F b/source/unres/src-HCD-5D/dfa.F index f69b81a..62e8892 100644 --- a/source/unres/src-HCD-5D/dfa.F +++ b/source/unres/src-HCD-5D/dfa.F @@ -71,12 +71,16 @@ C read fragment informations 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!! @@ -90,6 +94,7 @@ C THIS SHOULD BE MODIFIED!! integer ica1, ica2,ica3,ica4,ica5 integer ishell, inca, itmp,iitmp double precision wtmp + logical lprn /.false./ C C READ DISTANCE C @@ -254,12 +259,55 @@ C BETA is not parallel ! 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 + 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 #else idfadis_start=1 idfadis_end=idfadis