wham with mpich2 (no aliasing) and new dimenstions
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Thu, 28 Jan 2016 15:56:14 +0000 (16:56 +0100)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Thu, 28 Jan 2016 15:56:14 +0000 (16:56 +0100)
source/cluster/wham/src/DIMENSIONS
source/cluster/wham/src/main_clust.F
source/cluster/wham/src/probabl.F
source/cluster/wham/src/sizesclu.dat
source/cluster/wham/src/wrtclust.f

index 31da998..03af0c6 100644 (file)
@@ -9,7 +9,7 @@ C Max. number of processors.
       parameter (maxprocs=16)
 C Max. number of AA residues
       integer maxres,maxres2
-      parameter (maxres=650)
+      parameter (maxres=350)
 C Appr. max. number of interaction sites
       parameter (maxres2=2*maxres)
 C Max. number of variables
index b5124ac..810dcae 100644 (file)
@@ -36,6 +36,7 @@ C
       integer i,j,k,l,m,n,len,lev,idum,ii,ind,ioffset,jj,icut,ncon,
      & it,ncon_work,ind1,ilen
       double precision t1,t2,tcpu,difconf
+      real diss_(maxdist)
       
       double precision varia(maxvar)
       double precision hrtime,mintime,sectime
@@ -146,7 +147,11 @@ C
           if (ind.ge.indstart(me) .and. ind.le.indend(me)) then
 #endif
           ind1=ind1+1
+#ifdef MPI
+          DISS_(IND1)=DIFCONF(I,J)
+#else
           DISS(IND1)=DIFCONF(I,J)
+#endif
 c          write (iout,'(2i4,i10,f10.5)') i,j,ind,DISS(IND)
 #ifdef MPI
           endif
@@ -160,7 +165,7 @@ c          write (iout,'(2i4,i10,f10.5)') i,j,ind,DISS(IND)
       PRINT '(a)','End of distance computation'
 
 #ifdef MPI
-      call MPI_Gatherv(diss(1),scount(me),MPI_REAL,diss(1),
+      call MPI_Gatherv(diss_(1),scount(me),MPI_REAL,diss(1),
      &     scount(0),idispl(0),MPI_REAL,Master,MPI_COMM_WORLD, IERROR)
       if (me.eq.master) then
 #endif
index da1bf5c..2f34f61 100644 (file)
@@ -31,8 +31,9 @@
       character*5 ctemper
       integer ilen
       external ilen
-      real*4 Fdimless(maxconf)
+      real*4 Fdimless(maxconf),Fdimless_(maxconf)
       double precision energia(0:max_ene)
+      double precision totfree_(maxconf),entfac_(maxconf)
       do i=1,ncon
         list_conf(i)=i
       enddo
@@ -193,8 +194,13 @@ cc        if (wcorr6.eq.0) ecorr6=0.0d0
      &  +wdfa_tor*edfator+wdfa_nei*edfanei+wdfa_beta*edfabet
      &  +wbond*estr+ehomology_constr
 #endif
+#ifdef MPI
+        Fdimless_(i)=beta_h(ib)*etot+entfac(ii)
+        totfree_(i)=etot
+#else
         Fdimless(i)=beta_h(ib)*etot+entfac(ii)
         totfree(i)=etot
+#endif
 #ifdef DEBUG
         
         write (iout,*) "etrop", i,ii,ib,
@@ -203,19 +209,22 @@ cc        if (wcorr6.eq.0) ecorr6=0.0d0
 #endif
       enddo   ! i
 #ifdef MPI
-      call MPI_Gatherv(Fdimless(1),scount(me),
+      call MPI_Gatherv(Fdimless_(1),scount(me),
      & MPI_REAL,Fdimless(1),
      & scount(0),idispl(0),MPI_REAL,Master,
      & MPI_COMM_WORLD, IERROR)
-      call MPI_Gatherv(totfree(1),scount(me),
+      call MPI_Gatherv(totfree_(1),scount(me),
      & MPI_DOUBLE_PRECISION,totfree(1),
      & scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
      & MPI_COMM_WORLD, IERROR)
       call MPI_Gatherv(entfac(indstart(me)+1),scount(me),
-     & MPI_DOUBLE_PRECISION,entfac(1),
+     & MPI_DOUBLE_PRECISION,entfac_(1),
      & scount(0),idispl(0),MPI_DOUBLE_PRECISION,Master,
      & MPI_COMM_WORLD, IERROR)
       if (me.eq.Master) then
+        do i=1,ncon
+          entfac(i)=entfac_(i)
+        enddo
 #endif
 #ifdef DEBUG
         write (iout,*) "The FDIMLESS array before sorting"
index 531d2f7..2b23a71 100644 (file)
@@ -5,7 +5,7 @@
 * Max. number of conformations in the data set.
 *
       integer maxconf,maxstr_proc
-      PARAMETER (MAXCONF=10000)
+      PARAMETER (MAXCONF=15000)
       parameter (maxstr_proc=maxconf/2)
 *
 * Max. number of "distances" between conformations.
index 8303f0c..6012b05 100644 (file)
@@ -263,9 +263,9 @@ c create InsightII command file for their displaying in different colors
   200 FORMAT (/'FAMILY ',I4,' WITH TOTAL FREE ENERGY',1pE15.5,
      & ' CONTAINS ',I4,' CONFORMATION(S): ')
 c 300 FORMAT ( 8(I4,F6.1))
-  300 FORMAT (5(I4,1pe12.3))
+  300 FORMAT (5(I6,1pe12.3))
   400 FORMAT (//'ASSIGNMENT OF CONSECUTIVE CONFORMATIONS TO FAMILIES:')
-  500 FORMAT (8(2I4,2X)) 
+  500 FORMAT (8(I6,I4,2X)) 
   600 FORMAT ('REMARK FAMILY',I4,' CONFORMATION',I4,' ENERGY ',E15.6)
       RETURN
       END