X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Fcluster%2Funres%2Fsrc%2Freadrtns.F;h=98388393ceabc23dad29f357ee9fa96baec241a6;hb=bb1fe0fdf449bf1d1ece624674543a9edb9f345c;hp=9d55005667f08070ccf185262b37a90b295e7235;hpb=478a9d9a1c99eb3f4bc4ca676ff3162bdd01d633;p=unres.git diff --git a/source/cluster/unres/src/readrtns.F b/source/cluster/unres/src/readrtns.F index 9d55005..9838839 100644 --- a/source/cluster/unres/src/readrtns.F +++ b/source/cluster/unres/src/readrtns.F @@ -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')