X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2Fgeomout.F;h=28ff99a90f807d1fa0f8b11810030ebfe45a10cc;hb=2a226bfc86eabc6e4eae0c3ad1cbc3cb5417a05a;hp=df698f50a92d224cdd7187176245440f61665a68;hpb=f9e536df1fd1627429123fe8990edfcdc2cc1a9a;p=unres.git diff --git a/source/unres/src_MD/geomout.F b/source/unres/src_MD/geomout.F index df698f5..28ff99a 100644 --- a/source/unres/src_MD/geomout.F +++ b/source/unres/src_MD/geomout.F @@ -394,6 +394,124 @@ c----------------------------------------------------------------- #endif return end +c----------------------------------------------- + subroutine read_cx(ixdrf,*) +c xdrfopen should be called before this subroutine + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' +#ifdef MPI + include 'mpif.h' + include 'COMMON.SETUP' +#else + parameter (me=0) +#endif + include 'COMMON.CHAIN' + include 'COMMON.INTERACT' + include 'COMMON.NAMES' + include 'COMMON.IOUNITS' + include 'COMMON.HEADER' + include 'COMMON.SBRIDGE' + include 'COMMON.DISTFIT' + include 'COMMON.MD' + include 'COMMON.LOCAL' + double precision time + integer iret,itmp + real xcoord(3,maxres2+2),prec + real r_time,r_potE,r_uconst,r_uconst_back,r_t_bath + + +#ifdef AIX +c call xdrfopen_(ixdrf,cartname, "r", iret) + call xdrffloat_(ixdrf, r_time, iret) + if(iret.eq.0) return1 + + call xdrffloat_(ixdrf, r_potE), iret) + call xdrffloat_(ixdrf, r_uconst), iret) + call xdrffloat_(ixdrf, r_uconst_back), iret) + call xdrffloat_(ixdrf, r_t_bath), iret) + call xdrfint_(ixdrf, nss, iret) + do j=1,nss + call xdrfint_(ixdrf, ihpb(j), iret) + call xdrfint_(ixdrf, jhpb(j), iret) + enddo + call xdrfint_(ixdrf, nfrag+npair+3*nfrag_back, iret) + do i=1,nfrag + call xdrffloat_(ixdrf, real(qfrag(i)), iret) + enddo + do i=1,npair + call xdrffloat_(ixdrf, real(qpair(i)), iret) + enddo + do i=1,nfrag_back + call xdrffloat_(ixdrf, real(utheta(i)), iret) + call xdrffloat_(ixdrf, real(ugamma(i)), iret) + call xdrffloat_(ixdrf, real(uscdiff(i)), iret) + enddo +#else +c call xdrfopen(ixdrf,cartname, "r", iret) + call xdrffloat(ixdrf, r_time, iret) + if(iret.eq.0) return1 + + call xdrffloat(ixdrf, r_potE, iret) + call xdrffloat(ixdrf, r_uconst, iret) + call xdrffloat(ixdrf, r_uconst_back, iret) + call xdrffloat(ixdrf, r_t_bath, iret) + call xdrfint(ixdrf, nss, iret) + do j=1,nss + call xdrfint(ixdrf, ihpb(j), iret) + call xdrfint(ixdrf, jhpb(j), iret) + enddo + call xdrfint(ixdrf, nfrag+npair+3*nfrag_back, iret) + do i=1,nfrag + call xdrffloat(ixdrf, real(qfrag(i)), iret) + enddo + do i=1,npair + call xdrffloat(ixdrf, real(qpair(i)), iret) + enddo + do i=1,nfrag_back + call xdrffloat(ixdrf, real(utheta(i)), iret) + call xdrffloat(ixdrf, real(ugamma(i)), iret) + call xdrffloat(ixdrf, real(uscdiff(i)), iret) + enddo +#endif + prec=10000.0 + + itmp=nres+nct-nnt+1 +#ifdef AIX + call xdrf3dfcoord_(ixdrf, xcoord, itmp, prec, iret) +c call xdrfclose_(ixdrf, iret) +#else + call xdrf3dfcoord(ixdrf, xcoord, itmp, prec, iret) +c call xdrfclose(ixdrf, iret) +#endif + + do i=1,nres + do j=1,3 + c(j,i)=xcoord(j,i) + enddo + enddo + do i=nnt,nct + do j=1,3 + c(j,i+nres)=xcoord(j,nres+i-nnt+1) + enddo + enddo + + call int_from_cart1(.false.) + + do i=1,nres-1 + do j=1,3 + dc(j,i)=c(j,i+1)-c(j,i) + dc_norm(j,i)=dc(j,i)*vbld_inv(i+1) + enddo + enddo + do i=2,nres-1 + do j=1,3 + dc(j,i+nres)=c(j,i+nres)-c(j,i) + dc_norm(j,i+nres)=dc(j,i+nres)*vbld_inv(i+nres) + enddo + enddo + + return + end #endif c----------------------------------------------------------------- subroutine statout(itime)