cleaning water
[unres4.git] / source / unres / io_base.F90
index f66a9b5..f6058d7 100644 (file)
@@ -5,7 +5,7 @@
       implicit none
 !-----------------------------------------------------------------------------
 ! Max. number of AA residues
-      integer,parameter :: maxres=6500!1200
+      integer,parameter :: maxres=101000!1200
 ! Appr. max. number of interaction sites
       integer,parameter :: maxres2=2*maxres
 !      parameter (maxres6=6*maxres)
 !-----------------------------------------------------------------------------
       subroutine read_x(kanal,*)
 
-     use geometry_data
-     use energy_data
-     use geometry, only:int_from_cart1
+      use geometry_data
+      use energy_data
+      use geometry, only:int_from_cart1
 !      implicit real*8 (a-h,o-z)
 !      include 'DIMENSIONS'
 !      include 'COMMON.GEO'
 
       use geometry_data, only: c,nres,boxxsize,boxysize,boxzsize
       use energy_data
-!      use energy, only: to_box
 !     use control
       use compare_data
       use MD_data
       ires=0 
       write(iout,*) "TUTUT"
       do i=nnt,nct 
-        write(iout,*), "coord",c(1,i),c(2,i),c(3,i)
+!        write(iout,*), "coord",c(1,i),c(2,i),c(3,i)
         iti=itype(i,molnum(i))
         print *,i,molnum(i)
         if (molnum(i+1).eq.0) then
 !        if (zi.lt.0.0d0) zi=zi+boxzsize
         write (iunit,60) iatom,restyp(iti,molnum(i)),chainid(ichain),&
            ires,xi,yi,zi,vtot(i)
-        else 
+        elseif (molnum(i).eq.5) then
+        xi=c(1,i)
+        yi=c(2,i)
+        zi=c(3,i)
+        xi=dmod(xi,boxxsize)
+        if (xi.lt.0.0d0) xi=xi+boxxsize
+        yi=dmod(yi,boxysize)
+        if (yi.lt.0.0d0) yi=yi+boxysize
+        zi=dmod(zi,boxzsize)
+        if (zi.lt.0.0d0) zi=zi+boxzsize
+        write (iunit,60) iatom,restyp(iti,molnum(i)),chainid(ichain),&
+           ires,xi,yi,zi,vtot(i)
+        else
         write (iunit,60) iatom,restyp(iti,molnum(i)),chainid(ichain),&
            ires,(c(j,i),j=1,3),vtot(i)
         endif
       enddo
       write (iunit,'(a)') 'TER'
       do i=nnt,nct-1
+        if (molnum(i).eq.5) cycle
         if (itype(i,1).eq.ntyp1) cycle
         if ((itype(i,1).eq.10 .and. itype(i+1,1).ne.ntyp1).or.(molnum(i).eq.5)) then
           write (iunit,30) ica(i),ica(i+1)
       do i=1,nres
        iti=itype(i,1)
 !         print *,vbld(i),"vbld(i)",i
-        write (iout,'(a3,i4,6f10.3)') restyp(iti,1),i,vbld(i),&
+        write (iout,'(a3,i6,6f10.3)') restyp(iti,1),i,vbld(i),&
            rad2deg*theta(i),rad2deg*phi(i),vbld(nres+i),rad2deg*alph(i),&
            rad2deg*omeg(i)
       enddo
 !-----------------------------------------------------------------------------
 ! permut.F
 !-----------------------------------------------------------------------------
-      subroutine permut(isym)
-
-      use geometry_data, only: tabperm
-!      implicit real*8 (a-h,o-z) 
-!      include 'DIMENSIONS'
-!      include 'COMMON.LOCAL'
-!      include 'COMMON.VAR'
-!      include 'COMMON.CHAIN'
-!      include 'COMMON.INTERACT'
-!      include 'COMMON.IOUNITS'
-!      include 'COMMON.GEO'
-!      include 'COMMON.NAMES'
-!      include 'COMMON.CONTROL'
-
-      integer :: n,isym
+      subroutine permut(isym,nperm,tabperm)
+!c      integer maxperm,maxsym
+!c      parameter (maxperm=3628800)
+!c      parameter (maxsym=10)
+!      include "DIMENSIONS"
+      integer n,a,tabperm,nperm,kkk,i,isym
 !      logical nextp
-!el      external nextp
-      integer,dimension(isym) :: a
-!      parameter(n=symetr)
-!el local variables
-      integer :: kkk,i
-
+!      external nextp
+      dimension a(isym),tabperm(50,5040)
       n=isym
+      nperm=1
       if (n.eq.1) then
         tabperm(1,1)=1
         return
       endif
+      do i=2,n
+        nperm=nperm*i
+      enddo
       kkk=0
       do i=1,n
       a(i)=i
       enddo
-   10 print *,(a(i),i=1,n)
+   10 continue
+!c     print '(i3,2x,100i3)',kkk+1,(a(i),i=1,n)
       kkk=kkk+1
       do i=1,n
-      tabperm(kkk,i)=a(i)
-!      write (iout,*) "tututu", kkk
+      tabperm(i,kkk)=a(i)
       enddo
       if(nextp(n,a)) go to 10
       return
-      end subroutine permut
+      end subroutine
+
+
 !-----------------------------------------------------------------------------
       logical function nextp(n,a)
 
 !-----------------------------------------------------------------------------
       integer function rescode(iseq,nam,itype,molecule)
 
-!      use io_base, only: ucase
 !      implicit real*8 (a-h,o-z)
 !      include 'DIMENSIONS'
 !      include 'COMMON.NAMES'