X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2Fgeomout.F;h=8357bdbab2ad910146b49fcde30949ae29a0a15c;hb=39bffec2e960cdaa362c075425c0aa94bbd673c9;hp=29e35297dde2196544316b150d69eb3cf0f5c2d6;hpb=2613142be7b5226fb002eaceb389e3f26766aa65;p=unres.git diff --git a/source/unres/src_MD/geomout.F b/source/unres/src_MD/geomout.F index 29e3529..8357bdb 100644 --- a/source/unres/src_MD/geomout.F +++ b/source/unres/src_MD/geomout.F @@ -110,7 +110,8 @@ cmodel write (iunit,'(a5,i6)') 'MODEL',1 write (iunit,30) ica(nct),ica(nct)+1 endif do i=1,nss - write (iunit,30) ica(ihpb(i)-nres)+1,ica(jhpb(i)-nres)+1 +c trzeba uporzdkowac +c write (iunit,30) ica(ihpb(i))+1,ica(jhpb(i))+1 enddo write (iunit,'(a6)') 'ENDMDL' 10 FORMAT ('ATOM',I7,' CA ',A3,I6,4X,3F8.3,f15.3) @@ -130,7 +131,7 @@ C format. include 'COMMON.IOUNITS' include 'COMMON.HEADER' include 'COMMON.SBRIDGE' - character*50 tytul,fd + character*32 tytul,fd character*3 zahl character*6 res_num,pom,ucase #ifdef AIX @@ -369,6 +370,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) @@ -444,6 +563,12 @@ c----------------------------------------------------------------- line2=' ' endif if (print_compon) then + if(itime.eq.0) then + write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2, + & ",20a12)" + write (istat,format) "#","", + & (ename(print_order(i)),i=1,nprint_ene) + endif write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2, & ",20f12.3)" write (istat,format) line1,line2,