X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD-M-newcorr%2Frestbin2asc.F;fp=source%2Funres%2Fsrc_MD-M-newcorr%2Frestbin2asc.F;h=d540382d3938ca785111d2fc63522c1724c1dc4a;hb=d101c97dea752458d76055fdbae49c26fff03c1f;hp=0000000000000000000000000000000000000000;hpb=325eda160c9ad2982501e091ca40606a29043712;p=unres.git diff --git a/source/unres/src_MD-M-newcorr/restbin2asc.F b/source/unres/src_MD-M-newcorr/restbin2asc.F new file mode 100644 index 0000000..d540382 --- /dev/null +++ b/source/unres/src_MD-M-newcorr/restbin2asc.F @@ -0,0 +1,482 @@ + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' +c include 'mpif.h' + include 'COMMON.MD' + include 'COMMON.IOUNITS' + include 'COMMON.REMD' + include 'COMMON.SETUP' + include 'COMMON.CHAIN' + include 'COMMON.SBRIDGE' + include 'COMMON.INTERACT' + integer*2 i_index + & (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200) + character*128 restin,restout + integer idir,n + irest2=33 + ixdrf=34 + n=iargc() + print *,"n",n + if (n.lt.5) then + print'(2a)',"Usage: restbin 0/1 NTRAJ NRES INRESTFILE", + & " OUTRESTFILE [REMD_M] [USAMPL]" + print'(a)',"0 - conversion from bin to ascii / from ascii to bin" + print'(a)',"NTRAJ: number of trajectories" + print'(a)',"NRES: number of residues" + print'(a)',"INRESTFILE: input UNRES/MREMD restart file" + print'(a)',"OUTRESTFILE: output UNRES/MREMD restart file" + print'(a)',"USAMPL [T/F] flag for umbrella-sampling" + stop + endif + call getarg(1,liczba) + read (liczba,*) idir + if (idir. ne. 0 .and. idir.ne.1) stop "idir must be 0 or 1" + call getarg(2,liczba) + read (liczba,*) nodes + call getarg(3,liczba) + read (liczba,*) nres + call getarg (4,restin) + call getarg (5,restout) + print *,"idir",idir," nodes",nodes," nres",nres + print *,"restin ",restin + print *,"restout ",restout + if (n.eq.6) then + call getarg(6,liczba) + read(liczba,*) remd_m(1) + do i=2,nodes + remd_m(i)=remd_m(1) + enddo + else + do i=2,nodes + remd_m(i)=1 + enddo + endif + if (n.eq.7) then + call getarg(7,liczba) + read(liczba,'(L1)') usampl + endif + print *,"usampl",usampl + print *,"remd_m",(remd_m(i),i=1,nodes) + if (idir.eq.0) then + mremd_rst_name=restin + call read1restart(i_index) + mremd_rst_name=restout + call write1rst_asc(i_index) + else + mremd_rst_name=restin + call read1restart_asc(i_index) + mremd_rst_name=restout + call write1rst(i_index) + endif + end +c------------------------------------------------------------------------------ + subroutine read1restart(i_index) + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' +c include 'mpif.h' + include 'COMMON.MD' + include 'COMMON.IOUNITS' + include 'COMMON.REMD' + include 'COMMON.SETUP' + include 'COMMON.CHAIN' + include 'COMMON.SBRIDGE' + include 'COMMON.INTERACT' + real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + & d_restart2(3,2*maxres*maxprocs),t5_restart1(5) + integer*2 i_index + & (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200) + common /przechowalnia/ d_restart1,d_restart2 + write (*,*) "Processor",me," called read1restart" + +#ifdef AIX + call xdrfopen_(ixdrf,mremd_rst_name, "r", iret) + print *,"restart file ",mremd_rst_name + print *,"iret",iret + + do i=0,nodes-1 + call xdrfint_(ixdrf, i2rep(i), iret) + enddo + print *,"iret",iret + do i=1,remd_m(1) + call xdrfint_(ixdrf, ifirst(i), iret) + enddo + do il=1,nodes + call xdrfint_(ixdrf, nupa(0,il), iret) + print *,"nupa(0,",il,")=",nupa(0,il) + do i=1,nupa(0,il) + call xdrfint_(ixdrf, nupa(i,il), iret) + enddo + print *,"nupa",(nupa(i,il),i=1,nupa(0,il)) + + call xdrfint_(ixdrf, ndowna(0,il), iret) + print *,"ndowna(0",il,")=",ndowna(0,il) + do i=1,ndowna(0,il) + call xdrfint_(ixdrf, ndowna(i,il), iret) + enddo + print *,"ndowna",(ndowna(i,il),i=1,ndowna(0,il)) + enddo + do il=1,nodes + do j=1,4 + call xdrffloat_(ixdrf, t_restart1(j,il), iret) + enddo + print *,"il",il,"t_restart",(t_restart1(j,il),j=1,4) + enddo +#else + call xdrfopen(ixdrf,mremd_rst_name, "r", iret) + + do i=0,nodes-1 + call xdrfint(ixdrf, i2rep(i), iret) + enddo + do i=1,remd_m(1) + call xdrfint(ixdrf, ifirst(i), iret) + enddo + do il=1,nodes + call xdrfint(ixdrf, nupa(0,il), iret) + do i=1,nupa(0,il) + call xdrfint(ixdrf, nupa(i,il), iret) + enddo + + call xdrfint(ixdrf, ndowna(0,il), iret) + do i=1,ndowna(0,il) + call xdrfint(ixdrf, ndowna(i,il), iret) + enddo + enddo + do il=1,nodes + do j=1,4 + call xdrffloat(ixdrf, t_restart1(j,il), iret) + enddo + enddo +#endif + totT=t5_restart1(1) + EK=t5_restart1(2) + potE=t5_restart1(3) + t_bath=t5_restart1(4) + + do il=0,nodes-1 + do i=1,2*nres + do j=1,3 +#ifdef AIX + call xdrffloat_(ixdrf, d_restart1(j,i+2*nres*il), iret) +#else + call xdrffloat(ixdrf, d_restart1(j,i+2*nres*il), iret) +#endif + enddo + enddo + enddo + + do il=0,nodes-1 + do i=1,2*nres + do j=1,3 +#ifdef AIX + call xdrffloat_(ixdrf, d_restart2(j,i+2*nres*il), iret) +#else + call xdrffloat(ixdrf, d_restart2(j,i+2*nres*il), iret) +#endif + enddo + enddo + enddo + + if (usampl) then +#ifdef AIX + call xdrfint_(ixdrf, nset, iret) + do i=1,nset + call xdrfint_(ixdrf,mset(i), iret) + enddo + do i=0,nodes-1 + call xdrfint_(ixdrf,i2set(i), iret) + enddo + do il=1,nset + do il1=1,mset(il) + do i=1,nrep + do j=1,remd_m(i) + call xdrfint_(ixdrf,itmp, iret) + i_index(i,j,il,il1)=itmp + enddo + enddo + enddo + enddo +#else + call xdrfint(ixdrf, nset, iret) + do i=1,nset + call xdrfint(ixdrf,mset(i), iret) + enddo + do i=0,nodes-1 + call xdrfint(ixdrf,i2set(i), iret) + enddo + do il=1,nset + do il1=1,mset(il) + do i=1,nrep + do j=1,remd_m(i) + call xdrfint(ixdrf,itmp, iret) + i_index(i,j,il,il1)=itmp + enddo + enddo + enddo + enddo +#endif +c call mpi_scatter(i2set,1,mpi_integer, +c & iset,1,mpi_integer,king, +c & CG_COMM,ierr) +c + endif +#ifdef AIX + call xdrfclose_(ixdrf, iret) +#else + call xdrfclose(ixdrf, iret) +#endif + return + end +c------------------------------------------------------------------------------------ + subroutine write1rst(i_index) + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' +c include 'mpif.h' + include 'COMMON.MD' + include 'COMMON.IOUNITS' + include 'COMMON.REMD' + include 'COMMON.SETUP' + include 'COMMON.CHAIN' + include 'COMMON.SBRIDGE' + include 'COMMON.INTERACT' + + real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + & d_restart2(3,2*maxres*maxprocs) + real t5_restart1(5) + integer iret,itmp + integer*2 i_index + & (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200) + common /przechowalnia/ d_restart1,d_restart2 + +#ifdef AIX + call xdrfopen_(ixdrf,mremd_rst_name, "w", iret) + do i=0,nodes-1 + call xdrfint_(ixdrf, i2rep(i), iret) + enddo + do i=1,remd_m(1) + call xdrfint_(ixdrf, ifirst(i), iret) + enddo + do il=1,nodes + do i=0,nupa(0,il) + call xdrfint_(ixdrf, nupa(i,il), iret) + enddo + + do i=0,ndowna(0,il) + call xdrfint_(ixdrf, ndowna(i,il), iret) + enddo + enddo + + do il=1,nodes + do j=1,4 + call xdrffloat_(ixdrf, t_restart1(j,il), iret) + enddo + enddo + + do il=0,nodes-1 + do i=1,2*nres + do j=1,3 + call xdrffloat_(ixdrf, d_restart1(j,i+2*nres*il), iret) + enddo + enddo + enddo + do il=0,nodes-1 + do i=1,2*nres + do j=1,3 + call xdrffloat_(ixdrf, d_restart2(j,i+2*nres*il), iret) + enddo + enddo + enddo + + if(usampl) then + call xdrfint_(ixdrf, nset, iret) + do i=1,nset + call xdrfint_(ixdrf,mset(i), iret) + enddo + do i=0,nodes-1 + call xdrfint_(ixdrf,i2set(i), iret) + enddo + do il=1,nset + do il1=1,mset(il) + do i=1,nrep + do j=1,remd_m(i) + itmp=i_index(i,j,il,il1) + call xdrfint_(ixdrf,itmp, iret) + enddo + enddo + enddo + enddo + + endif + call xdrfclose_(ixdrf, iret) +#else + call xdrfopen(ixdrf,mremd_rst_name, "w", iret) + do i=0,nodes-1 + call xdrfint(ixdrf, i2rep(i), iret) + enddo + do i=1,remd_m(1) + call xdrfint(ixdrf, ifirst(i), iret) + enddo + do il=1,nodes + do i=0,nupa(0,il) + call xdrfint(ixdrf, nupa(i,il), iret) + enddo + + do i=0,ndowna(0,il) + call xdrfint(ixdrf, ndowna(i,il), iret) + enddo + enddo + + do il=1,nodes + do j=1,4 + call xdrffloat(ixdrf, t_restart1(j,il), iret) + enddo + enddo + + do il=0,nodes-1 + do i=1,2*nres + do j=1,3 + call xdrffloat(ixdrf, d_restart1(j,i+2*nres*il), iret) + enddo + enddo + enddo + do il=0,nodes-1 + do i=1,2*nres + do j=1,3 + call xdrffloat(ixdrf, d_restart2(j,i+2*nres*il), iret) + enddo + enddo + enddo + + + if(usampl) then + call xdrfint(ixdrf, nset, iret) + do i=1,nset + call xdrfint(ixdrf,mset(i), iret) + enddo + do i=0,nodes-1 + call xdrfint(ixdrf,i2set(i), iret) + enddo + do il=1,nset + do il1=1,mset(il) + do i=1,nrep + do j=1,remd_m(i) + itmp=i_index(i,j,il,il1) + call xdrfint(ixdrf,itmp, iret) + enddo + enddo + enddo + enddo + + endif + call xdrfclose(ixdrf, iret) +#endif + return + end +c---------------------------------------------------------------------------- + subroutine read1restart_asc(i_index) + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' + include 'COMMON.MD' + include 'COMMON.IOUNITS' + include 'COMMON.REMD' + include 'COMMON.SETUP' + include 'COMMON.CHAIN' + include 'COMMON.SBRIDGE' + include 'COMMON.INTERACT' + + real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + & d_restart2(3,2*maxres*maxprocs) + real t5_restart1(5) + integer iret,itmp + integer*2 i_index + & (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200) + common /przechowalnia/ d_restart1,d_restart2 + + open(irest2,file=mremd_rst_name,status="old") + read (irest2,*) (i2rep(i),i=0,nodes-1) + read (irest2,*) (ifirst(i),i=1,remd_m(1)) + do il=1,nodes + read (irest2,*) nupa(0,il),(nupa(i,il),i=1,nupa(0,il)) + read (irest2,*) ndowna(0,il),(ndowna(i,il),i=1,ndowna(0,il)) + enddo + do il=1,nodes + read (irest2,*) (t_restart1(j,il),j=1,4) + enddo + do il=0,nodes-1 + do i=1,2*nres + read (irest2,*) (d_restart1(j,i+2*nres*il),j=1,3) + enddo + enddo + do il=0,nodes-1 + do i=1,2*nres + read (irest2,*) (d_restart2(j,i+2*nres*il),j=1,3) + enddo + enddo + + if (usampl) then + read (irest2,*) nset + read (irest2,*) (mset(i),i=1,nset) + read (irest2,*) (i2set(i),i=1,nodes-1) + do il=1,nset + do il1=1,mset(il) + do i=1,nrep + read (irest2,*) (i_index(i,j,il,il1),j=1,remd_m(i)) + enddo + enddo + enddo + endif + return + end +c--------------------------------------------------------------------------- + subroutine write1rst_asc(i_index) + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' + include 'COMMON.MD' + include 'COMMON.IOUNITS' + include 'COMMON.REMD' + include 'COMMON.SETUP' + include 'COMMON.CHAIN' + include 'COMMON.SBRIDGE' + include 'COMMON.INTERACT' + + real d_restart1(3,2*maxres*maxprocs),r_d(3,2*maxres), + & d_restart2(3,2*maxres*maxprocs) + real t5_restart1(5) + integer iret,itmp + integer*2 i_index + & (maxprocs/4,maxprocs/20,maxprocs/200,maxprocs/200) + common /przechowalnia/ d_restart1,d_restart2 + + open(irest2,file=mremd_rst_name,status="unknown") + write (irest2,*) (i2rep(i),i=0,nodes-1) + write (irest2,*) (ifirst(i),i=1,remd_m(1)) + do il=1,nodes + write (irest2,*) nupa(0,il),(nupa(i,il),i=1,nupa(0,il)) + write (irest2,*) ndowna(0,il),(ndowna(i,il),i=1,ndowna(0,il)) + enddo + do il=1,nodes + write (irest2,*) (t_restart1(j,il),j=1,4) + enddo + do il=0,nodes-1 + do i=1,2*nres + write (irest2,*) (d_restart1(j,i+2*nres*il),j=1,3) + enddo + enddo + do il=0,nodes-1 + do i=1,2*nres + write (irest2,*) (d_restart2(j,i+2*nres*il),j=1,3) + enddo + enddo + + if (usampl) then + write (irest2,*) nset + write (irest2,*) (mset(i),i=1,nset) + write (irest2,*) (i2set(i),i=1,nodes-1) + do il=1,nset + do il1=1,mset(il) + do i=1,nrep + write (irest2,*) (i_index(i,j,il,il1),j=1,remd_m(i)) + enddo + enddo + enddo + endif + return + end