ENDMDL cluster_wham/src
[unres.git] / source / unres / src_MD / dfa.F
index 00cf12c..412943a 100644 (file)
@@ -74,6 +74,9 @@ C
       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!!
@@ -93,6 +96,7 @@ C
       open(iodfa, file = 'dist_dfa.dat', status = 'old', err=33)
       goto 34
  33   write(iout,'(a)') 'Error opening dist_dfa.dat file'
+      print *,'Error opening dist_dfa.dat file'
       stop
  34   continue
       write(iout,'(a)') 'dist_dfa.dat is opened!'
@@ -125,7 +129,8 @@ C     READ ANGLE RESTRAINTS
 C     PHI RESTRAINTS
       open(iodfa, file='phi_dfa.dat',status='old',err=35)
       goto 36
- 35   write(iout,'(a)') 'Error opening dist_dfa.dat file'
+ 35   write(iout,'(a)') 'Error opening phi_dfa.dat file'
+      print *, 'Error opening phi_dfa.dat file'
       stop
 
  36   continue
@@ -164,7 +169,8 @@ C     READ NUMBER OF RESTRAINTS
 C     THETA RESTRAINTS
       open(iodfa, file='theta_dfa.dat',status='old',err=41)
       goto 42
- 41   write(iout,'(a)') 'Error opening dist_dfa.dat file'
+ 41   write(iout,'(a)') 'Error opening theta_dfa.dat file'
+      print *,'Error opening theta_dfa.dat file'
       stop
  42   continue
       write(iout,'(a)') 'theta_dfa.dat is opened!'            
@@ -204,6 +210,7 @@ C     NUMBER OF NEIGHBOR CAs
       open(iodfa,file='nei_dfa.dat',status='old',err=37)
       goto 38
  37   write(iout,'(a)') 'Error opening nei_dfa.dat file'
+      print *,'Error opening nei_dfa.dat file'
       stop
  38   continue
       write(iout,'(a)') 'nei_dfa.dat is opened!'
@@ -235,10 +242,42 @@ C            write(*,*) 'READ NEI:',i,j,fnei(i,j)
       close(iodfa)
 C     END OF NEIGHBORING CA
 
+C     init parallel
+C     BETA is not parallel !
+#ifdef MPI
+      if (wdfa_beta.ne.0.0 .and. nfgtasks.gt.1) then
+            write (iout,*) "ERRROR dfa_beta works only for FGPROCS=1"
+            print *,"ERRROR dfa_beta works only for FGPROCS=1"
+            stop
+      endif 
+      call int_bounds(idfadis,idfadis_start,idfadis_end)
+      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) 
+     &  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
+#else
+      idfadis_start=1
+      idfadis_end=idfadis
+      idfaphi_start=1
+      idfaphi_end=idfaphi
+      idfathe_start=1
+      idfathe_end=idfathe
+      idfanei_start=1
+      idfanei_end=idfanei
+#endif
+
+
 C     READ BETA RESTRAINT
+      if (wdfa_beta.eq.0.0) return
       open(iodfa, file='beta_dfa.dat',status='old',err=39)
       goto 40
  39   write(iout,'(a)') 'Error opening beta_dfa.dat file'
+      print *,'Error opening beta_dfa.dat file'
       stop
  40   continue
       write(iout,'(a)') 'beta_dfa.dat is opened!'
@@ -258,6 +297,7 @@ c            write(*,*) 'BETA:',i,j,wtmp,wshet(i,j)
       
       close(iodfa)
 C     END OF BETA RESTRAINT
+
       
       return
       END
@@ -278,7 +318,7 @@ C     END OF BETA RESTRAINT
       edfadis=0
       gdfad=0.0d0
 
-      do i=1, idfadis
+      do i=idfadis_start,idfadis_end
 
          iatm1=idislis(1,i)+ishiftca
          iatm2=idislis(2,i)+ishiftca
@@ -361,7 +401,7 @@ C     DFA torsion angle
       gdfat(:,:) = 0.0d0
 
 C     START OF PHI ANGLE
-      do i=1, idfaphi
+      do i=idfaphi_start,idfaphi_end
 
          aphi = 0.0d0
          do iii=1,5
@@ -560,7 +600,7 @@ c     end of single assignment statement
 C     END OF PHI RESTRAINT
 
 C     START OF THETA ANGLE
-      do i=1, idfathe
+      do i=idfathe_start,idfathe_end
 
          athe = 0.0d0
          do iii=1,5
@@ -794,7 +834,7 @@ C     DFA neighboring CA restraint
 c      print*, 's1:', s1(:)
 c      print*, 's2:', s2(:)
 
-      do i=1, idfanei
+      do i=idfanei_start,idfanei_end
 
          kshnum=kshell(i)
          n1atom=ineilis(i)+ishiftca