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
20 if (iargc().lt.3) then
22 & "Usage: xdrf2pdb-m one/three seqfile cxfile [freq] [pdbfile] ",
26 call getarg(1,onethree)
27 onethree = ucase(onethree)
28 if (onethree.eq.'ONE') then
30 else if (onethree.eq.'THREE') then
33 print *,"ONE or THREE must be specified"
35 call getarg(2,seqfile)
36 open (1,file=seqfile,status='old')
38 read(1,'(80a1)',end=10,err=10) (sequenc(i)(1:1),i=1,maxres)
42 do while (.not.iblnk(sequenc(i+1)(1:1)))
47 itype(i)=rescode(i,sequenc(i),1)
50 read(1,'(20(a3,1x))',end=11,err=11) (sequenc(i),i=1,maxres)
54 do while (.not.iblnk(sequenc(i+1)(1:1)))
59 itype(i)=rescode(i,sequenc(i),0)
62 print '(a3,1x)',(sequenc(i),i=1,nres)
65 iext = index(arg,'.cx') - 1
67 print *,"Error - not a cx file"
70 if (iargc().gt.3) then
74 if (iargc().gt.4) then
75 call getarg(5,pdbfile)
77 pdbfile=arg(:iext)//'.pdb'
79 if (iargc().gt.5) then
85 if (iargc().gt.6) then
91 print *,"ifreq",ifreq," ntraj",ntraj," itraj",itraj
94 if (itype(1).eq.21) nnt = 2
96 if (itype(nres).eq.21) nct = nres-1
97 print *,"nnt",nnt," nct",nct
98 call xdrfopen(ixdrf,arg, "r", iret)
101 call xdrffloat(ixdrf, time, iret)
104 call xdrffloat(ixdrf, potE, iret)
105 call xdrffloat(ixdrf, uconst, iret)
107 call xdrffloat(ixdrf, uconst_back, iret)
109 call xdrffloat(ixdrf, t_bath, iret)
110 call xdrfint(ixdrf, nss, iret)
112 call xdrfint(ixdrf, ihpb(j), iret)
113 call xdrfint(ixdrf, jhpb(j), iret)
115 call xdrfint(ixdrf, nfrag, iret)
117 call xdrffloat(ixdrf, qfrag(i), iret)
122 call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
125 c write (*,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
126 c write (*,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
127 c write (*,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
128 c write (*,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
129 if (mod(kk/ntraj,ifreq).eq.0 .and. mod(kk,ntraj).eq.itraj) then
130 if (isize .ne. nres+nct-nnt+1) then
131 print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
142 c(j,i+nres)=coord(j,ii+nres)
146 write (tytul,'(a,i6)') "Structure",kk
147 call pdbout(etot,tytul,9)