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
15 logical oneletter,iblnk
24 if (iargc().lt.3) then
26 & "Usage: xdrf2pdb one/three seqfile cxfile [freq] [pdbfile]"
29 call getarg(1,onethree)
30 onethree = ucase(onethree)
31 if (onethree.eq.'ONE') then
33 else if (onethree.eq.'THREE') then
36 print *,"ONE or THREE must be specified"
38 call getarg(2,seqfile)
39 open (1,file=seqfile,status='old')
41 read(1,'(80a1)',end=10,err=10) (sequenc(i)(1:1),i=1,maxres)
45 do while (.not.iblnk(sequenc(i+1)(1:1)))
50 itype(i)=rescode(i,sequenc(i),1)
53 read(1,'(20(a3,1x))',end=11,err=11) (sequenc(i),i=1,maxres)
57 do while (.not.iblnk(sequenc(i+1)(1:1)))
63 itype(i)=rescode(i,sequenc(i),0)
67 iext = index(arg,'.cx') - 1
69 print *,"Error - not a cx file"
72 if (iargc().gt.3) then
76 if (iargc().gt.4) then
77 call getarg(5,pdbfile)
79 pdbfile=arg(:iext)//'.pdb'
83 if (itype(1).eq.21) nnt = 2
85 if (itype(nres).eq.21) nct = nres-1
87 call xdrfopen_(ixdrf,arg, "r", iret)
91 call xdrffloat_(ixdrf, time, iret)
94 call xdrffloat_(ixdrf, potE, iret)
95 call xdrffloat_(ixdrf, uconst, iret)
96 call xdrffloat_(ixdrf, t_bath, iret)
97 call xdrfint_(ixdrf, nss, iret)
99 call xdrfint_(ixdrf, ihpb(j), iret)
100 call xdrfint_(ixdrf, jhpb(j), iret)
102 call xdrfint_(ixdrf, nfrag, iret)
104 call xdrffloat_(ixdrf, qfrag(i), iret)
109 call xdrf3dfcoord_(ixdrf, coord, isize, prec, iret)
112 c write (*,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
113 c write (*,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
114 c write (*,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
115 c write (*,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
116 if (mod(kk,ifreq).eq.0) then
117 if (isize .ne. nres + nct - nnt + 1) then
118 print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
129 c(j,i+nres)=coord(j,ii+nres)
133 write (tytul,'(a,i6)') "Structure",kk
134 call pdbout(etot,tytul,9)