1 subroutine pdbout(etot,tytul,iunit)
2 implicit real*8 (a-h,o-z)
5 include 'COMMON.INTERACT'
7 include 'COMMON.IOUNITS'
8 include 'COMMON.HEADER'
9 include 'COMMON.SBRIDGE'
10 include 'COMMON.DISTFIT'
14 write (iunit,'(3a,1pe15.5)') 'REMARK ',tytul,' ENERGY ',etot
15 cmodel write (iunit,'(a5,i6)') 'MODEL',1
21 write (iunit,'(a5,i5,1x,a1,i1,2x,a3,i7,2x,a3,i7,i3,t76,i5)')
23 & restyp(iti),hfrag(1,j)-1,
24 & restyp(itj),hfrag(2,j)-1,1,hfrag(2,j)-hfrag(1,j)
26 write (iunit,'(a5,i5,1x,a1,i2,1x,a3,i7,2x,a3,i7,i3)')
28 & restyp(iti),hfrag(1,j)-1,
29 & restyp(itj),hfrag(2,j)-1,1,hfrag(2,j)-hfrag(1,j)
39 itj=itype(bfrag(2,j)-1)
41 write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3)')
43 & restyp(iti),bfrag(1,j)-1,
44 & restyp(itj),bfrag(2,j)-2,0
46 if (bfrag(3,j).gt.bfrag(4,j)) then
49 itl=itype(bfrag(4,j)+1)
51 write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3,
52 & 2x,a1,2x,a3,i6,3x,a1,2x,a3,i6)')
54 & restyp(itl),bfrag(4,j),
55 & restyp(itk),bfrag(3,j)-1,-1,
56 & "N",restyp(itk),bfrag(3,j)-1,
57 & "O",restyp(iti),bfrag(1,j)-1
62 itl=itype(bfrag(4,j)-1)
65 write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3,
66 & 2x,a1,2x,a3,i6,3x,a1,2x,a3,i6)')
68 & restyp(itk),bfrag(3,j)-1,
69 & restyp(itl),bfrag(4,j)-2,1,
70 & "N",restyp(itk),bfrag(3,j)-1,
71 & "O",restyp(iti),bfrag(1,j)-1
82 write(iunit,'(a6,i4,1x,a3,i7,4x,a3,i7)')
83 & 'SSBOND',i,'CYS',ihpb(i)-1-nres,
84 & 'CYS',jhpb(i)-1-nres
94 write (iunit,10) iatom,restyp(iti),ires,(c(j,i),j=1,3),vtot(i)
97 write (iunit,20) iatom,restyp(iti),ires,(c(j,nres+i),j=1,3),
101 write (iunit,'(a)') 'TER'
103 if (itype(i).eq.10) then
104 write (iunit,30) ica(i),ica(i+1)
106 write (iunit,30) ica(i),ica(i+1),ica(i)+1
109 if (itype(nct).ne.10) then
110 write (iunit,30) ica(nct),ica(nct)+1
114 c write (iunit,30) ica(ihpb(i))+1,ica(jhpb(i))+1
116 write (iunit,'(a6)') 'ENDMDL'
117 10 FORMAT ('ATOM',I7,' CA ',A3,I6,4X,3F8.3,f15.3)
118 20 FORMAT ('ATOM',I7,' CB ',A3,I6,4X,3F8.3,f15.3)
119 30 FORMAT ('CONECT',8I5)
122 c------------------------------------------------------------------------------
123 subroutine MOL2out(etot,tytul)
124 C Prints the Cartesian coordinates of the alpha-carbons in the Tripos mol2
126 implicit real*8 (a-h,o-z)
128 include 'COMMON.CHAIN'
129 include 'COMMON.INTERACT'
130 include 'COMMON.NAMES'
131 include 'COMMON.IOUNITS'
132 include 'COMMON.HEADER'
133 include 'COMMON.SBRIDGE'
134 character*32 tytul,fd
136 character*6 res_num,pom,ucase
144 write (imol2,'(a)') '#'
146 & '# Creating user name: unres'
147 write (imol2,'(2a)') '# Creation time: ',
149 write (imol2,'(/a)') '\@<TRIPOS>MOLECULE'
150 write (imol2,'(a)') tytul
151 write (imol2,'(5i5)') nct-nnt+1,nct-nnt+nss+1,nct-nnt+nss+1,0,0
152 write (imol2,'(a)') 'SMALL'
153 write (imol2,'(a)') 'USER_CHARGES'
154 write (imol2,'(a)') '\@<TRIPOS>ATOM'
156 write (zahl,'(i3)') i
157 pom=ucase(restyp(itype(i)))
158 res_num = pom(:3)//zahl(2:)
159 write (imol2,10) i,(c(j,i),j=1,3),i,res_num,0.0
161 write (imol2,'(a)') '\@<TRIPOS>BOND'
163 write (imol2,'(i5,2i6,i2)') i-nnt+1,i-nnt+1,i-nnt+2,1
166 write (imol2,'(i5,2i6,i2)') nct-nnt+i,ihpb(i),jhpb(i),1
168 write (imol2,'(a)') '\@<TRIPOS>SUBSTRUCTURE'
170 write (zahl,'(i3)') i
171 pom = ucase(restyp(itype(i)))
172 res_num = pom(:3)//zahl(2:)
173 write (imol2,30) i-nnt+1,res_num,i-nnt+1,0
175 10 FORMAT (I7,' CA ',3F10.4,' C.3',I8,1X,A,F11.4,' ****')
176 30 FORMAT (I7,1x,A,I14,' RESIDUE',I13,' **** ****')
179 c------------------------------------------------------------------------
181 implicit real*8 (a-h,o-z)
183 include 'COMMON.IOUNITS'
184 include 'COMMON.CHAIN'
186 include 'COMMON.LOCAL'
187 include 'COMMON.INTERACT'
188 include 'COMMON.NAMES'
190 write (iout,'(/a)') 'Geometry of the virtual chain.'
191 write (iout,'(7a)') ' Res ',' d',' Theta',
192 & ' Gamma',' Dsc',' Alpha',' Beta '
195 write (iout,'(a3,i4,6f10.3)') restyp(iti),i,vbld(i),
196 & rad2deg*theta(i),rad2deg*phi(i),vbld(nres+i),rad2deg*alph(i),
201 c---------------------------------------------------------------------------
202 subroutine briefout(it,ener)
203 implicit real*8 (a-h,o-z)
205 include 'COMMON.IOUNITS'
206 include 'COMMON.CHAIN'
208 include 'COMMON.LOCAL'
209 include 'COMMON.INTERACT'
210 include 'COMMON.NAMES'
212 include 'COMMON.SBRIDGE'
213 c print '(a,i5)',intname,igeom
214 #if defined(AIX) || defined(PGI)
215 open (igeom,file=intname,position='append')
217 open (igeom,file=intname,access='append')
220 WRITE (igeom,180) IT,ENER,NSS,(IHPB(I),JHPB(I),I=1,NSS)
222 WRITE (igeom,180) IT,ENER,NSS,(IHPB(I),JHPB(I),I=1,9)
223 WRITE (igeom,190) (IHPB(I),JHPB(I),I=10,NSS)
225 c IF (nvar.gt.nphi) WRITE (igeom,200) (RAD2DEG*THETA(I),I=3,NRES)
226 WRITE (igeom,200) (RAD2DEG*THETA(I),I=3,NRES)
227 WRITE (igeom,200) (RAD2DEG*PHI(I),I=4,NRES)
228 c if (nvar.gt.nphi+ntheta) then
229 write (igeom,200) (rad2deg*alph(i),i=2,nres-1)
230 write (igeom,200) (rad2deg*omeg(i),i=2,nres-1)
233 180 format (I5,F12.3,I2,9(1X,2I3))
234 190 format (3X,11(1X,2I3))
245 c----------------------------------------------------------------
247 subroutine cartout(time)
249 subroutine cartoutx(time)
251 implicit real*8 (a-h,o-z)
253 include 'COMMON.CHAIN'
254 include 'COMMON.INTERACT'
255 include 'COMMON.NAMES'
256 include 'COMMON.IOUNITS'
257 include 'COMMON.HEADER'
258 include 'COMMON.SBRIDGE'
259 include 'COMMON.DISTFIT'
261 double precision time
262 #if defined(AIX) || defined(PGI)
263 open(icart,file=cartname,position="append")
265 open(icart,file=cartname,access="append")
267 write (icart,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
268 write (icart,'(i4,$)')
269 & nss,(ihpb(j),jhpb(j),j=1,nss)
270 write (icart,'(i4,20f7.4)') nfrag+npair+3*nfrag_back,
271 & (qfrag(i),i=1,nfrag),(qpair(i),i=1,npair),
272 & (utheta(i),ugamma(i),uscdiff(i),i=1,nfrag_back)
273 write (icart,'(8f10.5)')
274 & ((c(k,j),k=1,3),j=1,nres),
275 & ((c(k,j+nres),k=1,3),j=nnt,nct)
279 c-----------------------------------------------------------------
281 subroutine cartout(time)
282 implicit real*8 (a-h,o-z)
286 include 'COMMON.SETUP'
290 include 'COMMON.CHAIN'
291 include 'COMMON.INTERACT'
292 include 'COMMON.NAMES'
293 include 'COMMON.IOUNITS'
294 include 'COMMON.HEADER'
295 include 'COMMON.SBRIDGE'
296 include 'COMMON.DISTFIT'
298 double precision time
300 real xcoord(3,maxres2+2),prec
303 call xdrfopen_(ixdrf,cartname, "a", iret)
304 call xdrffloat_(ixdrf, real(time), iret)
305 call xdrffloat_(ixdrf, real(potE), iret)
306 call xdrffloat_(ixdrf, real(uconst), iret)
307 call xdrffloat_(ixdrf, real(uconst_back), iret)
308 call xdrffloat_(ixdrf, real(t_bath), iret)
309 call xdrfint_(ixdrf, nss, iret)
311 call xdrfint_(ixdrf, ihpb(j), iret)
312 call xdrfint_(ixdrf, jhpb(j), iret)
314 call xdrfint_(ixdrf, nfrag+npair+3*nfrag_back, iret)
316 call xdrffloat_(ixdrf, real(qfrag(i)), iret)
319 call xdrffloat_(ixdrf, real(qpair(i)), iret)
322 call xdrffloat_(ixdrf, real(utheta(i)), iret)
323 call xdrffloat_(ixdrf, real(ugamma(i)), iret)
324 call xdrffloat_(ixdrf, real(uscdiff(i)), iret)
327 call xdrfopen(ixdrf,cartname, "a", iret)
328 call xdrffloat(ixdrf, real(time), iret)
329 call xdrffloat(ixdrf, real(potE), iret)
330 call xdrffloat(ixdrf, real(uconst), iret)
331 call xdrffloat(ixdrf, real(uconst_back), iret)
332 call xdrffloat(ixdrf, real(t_bath), iret)
333 call xdrfint(ixdrf, nss, iret)
335 call xdrfint(ixdrf, ihpb(j), iret)
336 call xdrfint(ixdrf, jhpb(j), iret)
338 call xdrfint(ixdrf, nfrag+npair+3*nfrag_back, iret)
340 call xdrffloat(ixdrf, real(qfrag(i)), iret)
343 call xdrffloat(ixdrf, real(qpair(i)), iret)
346 call xdrffloat(ixdrf, real(utheta(i)), iret)
347 call xdrffloat(ixdrf, real(ugamma(i)), iret)
348 call xdrffloat(ixdrf, real(uscdiff(i)), iret)
359 xcoord(j,nres+i-nnt+1)=c(j,i+nres)
365 call xdrf3dfcoord_(ixdrf, xcoord, itmp, prec, iret)
366 call xdrfclose_(ixdrf, iret)
368 call xdrf3dfcoord(ixdrf, xcoord, itmp, prec, iret)
369 call xdrfclose(ixdrf, iret)
374 c-----------------------------------------------------------------
375 subroutine statout(itime)
376 implicit real*8 (a-h,o-z)
378 include 'COMMON.CONTROL'
379 include 'COMMON.CHAIN'
380 include 'COMMON.INTERACT'
381 include 'COMMON.NAMES'
382 include 'COMMON.IOUNITS'
383 include 'COMMON.HEADER'
384 include 'COMMON.SBRIDGE'
385 include 'COMMON.DISTFIT'
387 include 'COMMON.REMD'
388 include 'COMMON.SETUP'
390 double precision energia(0:n_ene)
391 double precision gyrate
394 character*256 line1,line2
395 character*4 format1,format2
399 open(istat,file=statname,position="append")
403 open(istat,file=statname,position="append")
405 open(istat,file=statname,access="append")
409 call rms_nac_nnc(rms,frac,frac_nn,co,.false.)
410 if(tnp .or. tnp1 .or. tnh) then
411 write (line1,'(i10,f15.2,3f12.3,f12.6,f7.2,4f6.3,3f12.3,i5,$)')
412 & itime,totT,EK,potE,totE,hhh,
413 & rms,frac,frac_nn,co,amax,kinetic_T,t_bath,gyrate(),me
416 write (line1,'(i10,f15.2,3f12.3,f7.2,4f6.3,3f12.3,i5,$)')
417 & itime,totT,EK,potE,totE,
418 & rms,frac,frac_nn,co,amax,kinetic_T,t_bath,gyrate(),me
422 if(tnp .or. tnp1 .or. tnh) then
423 write (line1,'(i10,f15.2,7f12.3,f12.6,i5,$)')
424 & itime,totT,EK,potE,totE,hhh,
425 & amax,kinetic_T,t_bath,gyrate(),me
428 write (line1,'(i10,f15.2,7f12.3,i5,$)')
429 & itime,totT,EK,potE,totE,
430 & amax,kinetic_T,t_bath,gyrate(),me
434 if(usampl.and.totT.gt.eq_time) then
435 write(line2,'(i5,2f9.4,300f7.4)') iset,uconst,uconst_back,
436 & (qfrag(ii1),ii1=1,nfrag),(qpair(ii2),ii2=1,npair),
437 & (utheta(i),ugamma(i),uscdiff(i),i=1,nfrag_back)
438 write(format2,'(a1,i3.3)') "a",23+7*nfrag+7*npair
440 elseif(hremd.gt.0) then
441 write(line2,'(i5)') iset
447 if (print_compon) then
449 write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2,
451 write (istat,format) "#","",
452 & (ename(print_order(i)),i=1,nprint_ene)
454 write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2,
456 write (istat,format) line1,line2,
457 & (potEcomp(print_order(i)),i=1,nprint_ene)
459 write(format,'(a1,a4,a1,a4,a1)') "(",format1,",",format2,")"
460 write (istat,format) line1,line2
469 c---------------------------------------------------------------
470 double precision function gyrate()
471 implicit real*8 (a-h,o-z)
473 include 'COMMON.INTERACT'
474 include 'COMMON.CHAIN'
475 double precision cen(3),rg
487 cen(j)=cen(j)/dble(nct-nnt+1)
492 rg = rg + (c(j,i)-cen(j))**2
495 gyrate = sqrt(rg/dble(nct-nnt+1))