cluster unres
[unres.git] / source / cluster / unres / src / readrtns.F
index 9d55005..9838839 100644 (file)
@@ -48,10 +48,22 @@ C Set up the time limit (caution! The time must be input in minutes!)
       lgrp=(index(controlcard,'LGRP').gt.0)
       caonly=(index(controlcard,'CA_ONLY').gt.0)
       print_dist=(index(controlcard,'PRINT_DIST').gt.0)
+      print *,"print_dist",print_dist
       call multreada(controlcard,'CUTOFF',rcutoff,ncut,-1.0d0)
       call readi(controlcard,'IOPT',iopt,2) 
+      print *,"iopt",iopt
       lside = index(controlcard,"SIDE").gt.0
       efree = index(controlcard,"EFREE").gt.0
+      print *,controlcard
+      call readi(controlcard,'ISTART',is,1)
+      print *,"is",is
+      call readi(controlcard,'IEND',ie,10000000)
+      print *,"ie",ie
+      call readi(controlcard,'ISAMPL',isampl,1)
+      print *,"isampl",isampl
+      call reada(controlcard,'TS',ts,1.0d10)
+      call reada(controlcard,'TE',te,1.0d10)
+      print *,"is",is," ie",ie
       if (min_var) iopt=1
       return
       end
@@ -353,6 +365,37 @@ c----------------------------------------------------------------------------
       return
       end
 c----------------------------------------------------------------------------
+      subroutine split_string(rekord,tablica,dim,nsub)
+      implicit none
+      integer dim,nsub,i,ii,ll,kk
+      character*(*) tablica(dim)
+      character*(*) rekord
+      integer ilen
+      external ilen
+      do i=1,dim
+        tablica(i)=" "
+      enddo
+      ii=1
+      ll = ilen(rekord)
+      nsub=0
+      do i=1,dim
+C Find the start of term name
+        kk = 0
+        do while (ii.le.ll .and. rekord(ii:ii).eq." ")
+          ii = ii+1
+        enddo
+C Parse the name into TABLICA(i) until blank found
+        do while (ii.le.ll .and. rekord(ii:ii).ne." ")
+          kk = kk+1
+          tablica(i)(kk:kk)=rekord(ii:ii)
+          ii = ii+1
+        enddo
+        if (kk.gt.0) nsub=nsub+1
+        if (ii.gt.ll) return
+      enddo
+      return
+      end
+c----------------------------------------------------------------------------
       subroutine card_concat(card)
       include 'DIMENSIONS'
       include 'COMMON.IOUNITS'
@@ -385,26 +428,44 @@ c----------------------------------------------------------------------------
       call getenv('PDB',cfrom_pdb)
       call getenv('PRINTCOOR',cprint)
       from_cart = index(ucase(cfrom_pdb),'CART').gt.0
-      lprint_cart = index(ucase(cprint),'PRINT_CART').gt.0
-      lprint_int = index(ucase(cprint),'PRINT_INT').gt.0
-      if (from_cart  .and. .not.lprint_int) then
-        lprint_cart=.true.
-        lprint_int=.false.
-      endif
-      if (.not.lprint_cart .and. .not.lprint_int) lprint_int=.true.
+      from_cx = index(ucase(cfrom_pdb),'CX').gt.0
+      lprint_cart = index(ucase(cprint),'CART').gt.0
+      lprint_int = index(ucase(cprint),'INT').gt.0
+c      if (.not.lprint_cart .and. .not.lprint_int) lprint_int=.true.
       lenpre=ilen(prefix)
       lenout=ilen(prefout)
       lenint=ilen(prefintin)
 C Get the names and open the input files
       open (inp,file=prefix(:ilen(prefix))//'.inp',status='old')
       outname=prefout(:lenout)//'_clust.out'
-      if (lprint_cart) then
-        intname=prefintin(:lenint)//'_clust'//'.x'
+      if (from_cart) then
         intinname=prefintin(:lenint)//'.x'
+      else if (from_cx) then
+        write (iout,*) "cx files: ",prefintin(:ilen(prefintin))
+        call split_string(prefintin,cxfiles(1),maxfiles,nfiles)
+        write (iout,*) "nfiles",nfiles
+        write (iout,*) "Split cxfiles"
+        do i=1,nfiles
+          cxfiles(i)=cxfiles(i)(:ilen(cxfiles(i)))//'.cx'
+          write (iout,*) cxfiles(i)(:ilen(cxfiles(i)))
+        enddo
       else
         intname=prefintin(:lenint)//'_clust'//'.int'
         intinname=prefintin(:lenint)//'.int'
       endif
+      if (lprint_cart) then
+        if (.not. from_cx) then
+          intname=prefintin(:lenint)//'_clust'//'.x'
+        else
+          intname=cxfiles(1)(:ilen(cxfiles(1)))//'_clust'//'.x'
+        endif
+      else if (lprint_int) then
+        if (.not. from_cx) then
+          intname=prefintin(:lenint)//'_clust'//'.int'
+        else
+          intname=cxfiles(1)(:ilen(cxfiles(1)))//'_clust'//'.int'
+        endif
+      endif
       rmsname=prefintin(:lenint)//'.rms'
       statinname=prefintin(:lenint)//'.stat'
       print *,statinname
@@ -412,7 +473,7 @@ C Get the names and open the input files
       open (jplot,file=prefout(:ilen(prefout))//'.tex',
      &       status='unknown')
       print *,'unit',jplot,' opened'
-      open (intin,file=intinname,status='old')
+      if (.not. from_cx) open (intin,file=intinname,status='old')
       print *,'unit',intin,' opened'
       open (jrms,file=rmsname,status='unknown')
       open (jstatin,file=statinname,status='unknown')