Merge branch 'UCGM' of mmka.chem.univ.gda.pl:unres4 into UCGM
[unres4.git] / source / cluster / cluster.F90
index 70b685e..a47f418 100644 (file)
 
       call probabl(iT,ncon_work,ncon,*20)
 
-!elwrite(iout,*)"after probabl, ncon_work=", ncon_work,ncon
+       write(iout,*)"after probabl, ncon_work=", ncon_work,ncon
 
       if (ncon_work.lt.2) then
         write (iout,*) "Too few conformations; clustering skipped"
       call work_partition(.true.,ndis)
 #endif
 !el      call alloc_clust_arrays(ncon_work)
+      write(iout,*) "before icc allocate",(allocated(ICC)),ncon_work
+      if (allocated(ICC)) then
+       deallocate(ICC)
+       deallocate(DISS)
+      endif
       allocate(ICC(ncon_work))
       allocate(DISS(maxdist))
-
+      write(iout,*) "after icc allocate",(allocated(ICC)),ncon_work
       DO I=1,NCON_work
         ICC(I)=I
       ENDDO
 ! CALCULATE DISTANCES
 !
       call daread_ccoords(1,ncon_work)
+      write(iout,*) "after daread_ccoords"
       ind1=0
       DO I=1,NCON_work-1
         if (mod(i,100).eq.0) print *,'Calculating RMS i=',i
        'Time for distance calculation:',T2-T1,' sec.'
       t1=tcpu()
       PRINT '(a)','End of distance computation'
+      if (allocated(diss_)) then
+       deallocate(diss_)
+       deallocate(scount_)
+      endif
 !el---------------
       allocate(diss_(maxdist))
       allocate(scount_(0:nprocs))
 !
 ! Print out the RMS deviation matrix.
 !
+      write(iout,*) "before distout"
       if (print_dist) CALL DISTOUT(NCON_work)
+      write(iout,*) "after distout"
 !
 !  call hierarchical clustering HC from F. Murtagh
 !
         write (iout,'(2i5,f10.5)') i,list_conf(i),totfree(i)
       enddo
 #endif
+      write (iout,*) "before CRIT", allocated(CRIT)
+      if (allocated(CRIT)) then
+      deallocate(CRIT)
+      deallocate(MEMBR)
+      deallocate(CRITVAL)
+      deallocate(IA)
+      deallocate(IB)
+      deallocate(IORDER)
+      deallocate(HEIGHT)
+      deallocate(ICLASS)
+      deallocate(HVALS)
+      deallocate(nn)
+      deallocate(DISNN)
+      deallocate(FLAG)
+      endif
       allocate(CRIT(N),MEMBR(N)) !(maxconf)
       allocate(CRITVAL(N-1)) !(maxconf-1)
       allocate(IA(N),IB(N))
       allocate(nn(N)) !(maxconf)
       allocate(DISNN(N)) !(maxconf)
       allocate(FLAG(N)) !(maxconf)
+      write (iout,*) "after CRIT", allocated(CRIT)
       call flush(iout)
       CALL HC(N,M,LEN,IOPT,IA,IB,CRIT,MEMBR,NN,DISNN,FLAG,DISS)
       LEV = N-1
       endif
       CALL HCASS(N,IA,IB,CRIT,LEV,ICLASS,HVALS,IORDER,CRITVAL,HEIGHT)
 !      CALL HCDEN(LEV,IORDER,HEIGHT,CRITVAL)
-
+      if (allocated(licz)) then
+      deallocate(licz)
+      deallocate(iass)
+      deallocate(nconf)
+      deallocate(totfree_gr)
+      endif
       allocate(licz(maxgr))
       allocate(iass(maxgr))
       allocate(nconf(maxgr,maxingr))
 !
 ! Compute free energies of clusters
 !
+      if (allocated(prob)) deallocate(prob)
       allocate(prob(maxgr))
 
       do igr=1,ngr