1 implicit real*8 (a-h,o-z)
4 include 'COMMON.INTERACT'
5 include 'COMMON.SBRIDGE'
7 real*4 prec,time,potE,uconst,t_bath,qfrag(100)
9 character*80 arg,seqfile,pdbfile
10 character*3 sequenc(maxres)
12 character*8 onethree,cfreq,cntraj,citraj
16 logical oneletter,iblnk
21 if (iargc().lt.5) then
23 & "Usage: xdrf2pdb-m one/three seqfile cxfile ntraj itraj",
27 call getarg(1,onethree)
28 onethree = ucase(onethree)
29 if (onethree.eq.'ONE') then
31 else if (onethree.eq.'THREE') then
34 print *,"ONE or THREE must be specified"
36 call getarg(2,seqfile)
37 open (1,file=seqfile,status='old')
39 read(1,'(80a1)',end=10,err=10) (sequenc(i)(1:1),i=1,maxres)
43 do while (.not.iblnk(sequenc(i+1)(1:1)))
48 itype(i)=rescode(i,sequenc(i),1)
51 read(1,'(20(a3,1x))',end=11,err=11) (sequenc(i),i=1,maxres)
55 do while (.not.iblnk(sequenc(i+1)(1:1)))
60 itype(i)=rescode(i,sequenc(i),0)
63 print '(20(a3,1x))',(sequenc(i),i=1,nres)
66 iext = index(arg,'.cx') - 1
68 print *,"Error - not a cx file"
75 if (iargc().gt.5) then
76 call getarg(6,pdbfile)
78 write(licz,'(bz,i3.3)') itraj
79 pdbfile=arg(:iext)//'_'//licz//'.pdb'
81 if (iargc().gt.6) then
85 c print *,"ifreq",ifreq," ntraj",ntraj," itraj",itraj
88 if (itype(1).eq.ntyp1) nnt = 2
90 if (itype(nres).eq.ntyp1) nct = nres-1
91 print *,"nnt",nnt," nct",nct
92 call xdrfopen(ixdrf,arg, "r", iret)
95 call xdrffloat(ixdrf, time, iret)
98 call xdrffloat(ixdrf, potE, iret)
99 call xdrffloat(ixdrf, uconst, iret)
101 c call xdrffloat(ixdrf, uconst_back, iret)
103 call xdrffloat(ixdrf, t_bath, iret)
104 call xdrfint(ixdrf, nss, iret)
106 call xdrfint(ixdrf, ihpb(j), iret)
107 call xdrfint(ixdrf, jhpb(j), iret)
109 call xdrfint(ixdrf, nfrag, iret)
110 call xdrfint(ixdrf, iset, iret)
112 call xdrffloat(ixdrf, qfrag(i), iret)
115 c print *,'nss=',nss,'nfrag=',nfrag,'iset=',iset
117 call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
120 c write (*,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
121 c write (*,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
122 c write (*,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
123 c write (*,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
124 if (mod(kk/ntraj,ifreq).eq.0 .and. mod(kk,ntraj).eq.itraj) then
125 if (isize .ne. nres+nct-nnt+1) then
126 print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
137 c(j,i+nres)=coord(j,ii+nres)
141 write (tytul,'(a1,i6,a8,f6.1,a6,f10.1)') "#",kk," t_bath ",
142 & t_bath, " time ",time
143 call pdbout(etot,tytul,9)