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.21) nnt = 2
90 if (itype(nres).eq.21) 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 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)
111 call xdrffloat(ixdrf, qfrag(i), iret)
116 call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
119 c write (*,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
120 c write (*,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
121 c write (*,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
122 c write (*,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
123 if (mod(kk/ntraj,ifreq).eq.0 .and. mod(kk,ntraj).eq.itraj) then
124 if (isize .ne. nres+nct-nnt+1) then
125 print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
136 c(j,i+nres)=coord(j,ii+nres)
140 write (tytul,'(a,i6)') "Structure",kk
141 call pdbout(etot,tytul,9)