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'
13 character*1 chainid(26) /'A','B','C','D','E','F','G','H','I','J',
14 & 'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'/
17 write (iunit,'(3a,1pe15.5)') 'REMARK ',tytul,' ENERGY ',etot
18 cmodel write (iunit,'(a5,i6)') 'MODEL',1
24 write (iunit,'(a5,i5,1x,a1,i1,2x,a3,i7,2x,a3,i7,i3,t76,i5)')
26 & restyp(iti),hfrag(1,j)-1,
27 & restyp(itj),hfrag(2,j)-1,1,hfrag(2,j)-hfrag(1,j)
29 write (iunit,'(a5,i5,1x,a1,i2,1x,a3,i7,2x,a3,i7,i3)')
31 & restyp(iti),hfrag(1,j)-1,
32 & restyp(itj),hfrag(2,j)-1,1,hfrag(2,j)-hfrag(1,j)
42 itj=itype(bfrag(2,j)-1)
44 write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3)')
46 & restyp(iti),bfrag(1,j)-1,
47 & restyp(itj),bfrag(2,j)-2,0
49 if (bfrag(3,j).gt.bfrag(4,j)) then
52 itl=itype(bfrag(4,j)+1)
54 write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3,
55 & 2x,a1,2x,a3,i6,3x,a1,2x,a3,i6)')
57 & restyp(itl),bfrag(4,j),
58 & restyp(itk),bfrag(3,j)-1,-1,
59 & "N",restyp(itk),bfrag(3,j)-1,
60 & "O",restyp(iti),bfrag(1,j)-1
65 itl=itype(bfrag(4,j)-1)
68 write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3,
69 & 2x,a1,2x,a3,i6,3x,a1,2x,a3,i6)')
71 & restyp(itk),bfrag(3,j)-1,
72 & restyp(itl),bfrag(4,j)-2,1,
73 & "N",restyp(itk),bfrag(3,j)-1,
74 & "O",restyp(iti),bfrag(1,j)-1
86 write(iunit,'(a6,i4,1x,a3,i7,4x,a3,i7)')
87 & 'SSBOND',i,'CYS',idssb(i)-nnt+1,
88 & 'CYS',jdssb(i)-nnt+1
90 write(iunit,'(a6,i4,1x,a3,i7,4x,a3,i7)')
91 & 'SSBOND',i,'CYS',ihpb(i)-nnt+1-nres,
92 & 'CYS',jhpb(i)-nnt+1-nres
102 if ((iti.eq.ntyp1).and.((itype(i+1)).eq.ntyp1)) then
105 write (iunit,'(a)') 'TER'
110 if (iti.ne.ntyp1) then
111 write (iunit,10) iatom,restyp(iti),chainid(1+mod(ichain/2,26)),
112 & ires,(c(j,i),j=1,3),vtot(i)
115 write (iunit,20) iatom,restyp(iti),chainid(1+mod(ichain/2,26)),
116 & ires,(c(j,nres+i),j=1,3),
122 write (iunit,'(a)') 'TER'
124 if (itype(i).eq.ntyp1) cycle
125 if (itype(i).eq.10 .and. itype(i+1).ne.ntyp1) then
126 write (iunit,30) ica(i),ica(i+1)
127 else if (itype(i).ne.10 .and. itype(i+1).ne.ntyp1) then
128 write (iunit,30) ica(i),ica(i+1),ica(i)+1
129 else if (itype(i).ne.10 .and. itype(i+1).eq.ntyp1) then
130 write (iunit,30) ica(i),ica(i)+1
133 if (itype(nct).ne.10) then
134 write (iunit,30) ica(nct),ica(nct)+1
138 write (iunit,30) ica(idssb(i))+1,ica(jdssb(i))+1
140 write (iunit,30) ica(ihpb(i)-nres)+1,ica(jhpb(i)-nres)+1
143 write (iunit,'(a6)') 'ENDMDL'
144 10 FORMAT ('ATOM',I7,' CA ',A3,1X,A1,I4,4X,3F8.3,f15.3)
145 20 FORMAT ('ATOM',I7,' CB ',A3,1X,A1,I4,4X,3F8.3,f15.3)
146 30 FORMAT ('CONECT',8I5)
149 c------------------------------------------------------------------------------
150 subroutine MOL2out(etot,tytul)
151 C Prints the Cartesian coordinates of the alpha-carbons in the Tripos mol2
153 implicit real*8 (a-h,o-z)
155 include 'COMMON.CHAIN'
156 include 'COMMON.INTERACT'
157 include 'COMMON.NAMES'
158 include 'COMMON.IOUNITS'
159 include 'COMMON.HEADER'
160 include 'COMMON.SBRIDGE'
161 character*50 tytul,fd
163 character*6 res_num,pom,ucase
171 write (imol2,'(a)') '#'
173 & '# Creating user name: unres'
174 write (imol2,'(2a)') '# Creation time: ',
176 write (imol2,'(/a)') '\@<TRIPOS>MOLECULE'
177 write (imol2,'(a)') tytul
178 write (imol2,'(5i5)') nct-nnt+1,nct-nnt+nss+1,nct-nnt+nss+1,0,0
179 write (imol2,'(a)') 'SMALL'
180 write (imol2,'(a)') 'USER_CHARGES'
181 write (imol2,'(a)') '\@<TRIPOS>ATOM'
183 write (zahl,'(i3)') i
184 pom=ucase(restyp(itype(i)))
185 res_num = pom(:3)//zahl(2:)
186 write (imol2,10) i,(c(j,i),j=1,3),i,res_num,0.0
188 write (imol2,'(a)') '\@<TRIPOS>BOND'
190 write (imol2,'(i5,2i6,i2)') i-nnt+1,i-nnt+1,i-nnt+2,1
193 write (imol2,'(i5,2i6,i2)') nct-nnt+i,ihpb(i),jhpb(i),1
195 write (imol2,'(a)') '\@<TRIPOS>SUBSTRUCTURE'
197 write (zahl,'(i3)') i
198 pom = ucase(restyp(itype(i)))
199 res_num = pom(:3)//zahl(2:)
200 write (imol2,30) i-nnt+1,res_num,i-nnt+1,0
202 10 FORMAT (I7,' CA ',3F10.4,' C.3',I8,1X,A,F11.4,' ****')
203 30 FORMAT (I7,1x,A,I14,' RESIDUE',I13,' **** ****')
206 c------------------------------------------------------------------------
208 implicit real*8 (a-h,o-z)
210 include 'COMMON.IOUNITS'
211 include 'COMMON.CHAIN'
213 include 'COMMON.LOCAL'
214 include 'COMMON.INTERACT'
215 include 'COMMON.NAMES'
217 include 'COMMON.TORSION'
218 write (iout,'(/a)') 'Geometry of the virtual chain.'
219 write (iout,'(7a)') ' Res ',' d',' Theta',
220 & ' Gamma',' Dsc',' Alpha',' Beta '
223 write (iout,'(a3,i4,6f10.3)') restyp(iti),i,vbld(i),
224 & rad2deg*theta(i),rad2deg*phi(i),vbld(nres+i),rad2deg*alph(i),
229 c---------------------------------------------------------------------------
230 subroutine briefout(it,ener)
231 implicit real*8 (a-h,o-z)
233 include 'COMMON.IOUNITS'
234 include 'COMMON.CHAIN'
236 include 'COMMON.LOCAL'
237 include 'COMMON.INTERACT'
238 include 'COMMON.NAMES'
240 include 'COMMON.SBRIDGE'
241 c print '(a,i5)',intname,igeom
242 #if defined(AIX) || defined(PGI)
243 open (igeom,file=intname,position='append')
245 open (igeom,file=intname,access='append')
248 WRITE (igeom,180) IT,ENER,NSS,(IHPB(I),JHPB(I),I=1,NSS)
250 WRITE (igeom,180) IT,ENER,NSS,(IHPB(I),JHPB(I),I=1,9)
251 WRITE (igeom,190) (IHPB(I),JHPB(I),I=10,NSS)
253 c IF (nvar.gt.nphi) WRITE (igeom,200) (RAD2DEG*THETA(I),I=3,NRES)
254 WRITE (igeom,200) (RAD2DEG*THETA(I),I=3,NRES)
255 WRITE (igeom,200) (RAD2DEG*PHI(I),I=4,NRES)
256 c if (nvar.gt.nphi+ntheta) then
257 write (igeom,200) (rad2deg*alph(i),i=2,nres-1)
258 write (igeom,200) (rad2deg*omeg(i),i=2,nres-1)
261 180 format (I5,F12.3,I2,9(1X,2I3))
262 190 format (3X,11(1X,2I3))
273 c----------------------------------------------------------------
275 subroutine cartout(time)
277 subroutine cartoutx(time)
279 implicit real*8 (a-h,o-z)
281 include 'COMMON.CHAIN'
282 include 'COMMON.INTERACT'
283 include 'COMMON.NAMES'
284 include 'COMMON.IOUNITS'
285 include 'COMMON.HEADER'
286 include 'COMMON.SBRIDGE'
287 include 'COMMON.DISTFIT'
289 double precision time
290 write (iout,*) "cartout: cartname ",cartname
291 #if defined(AIX) || defined(PGI)
292 open(icart,file=cartname,position="append")
294 open(icart,file=cartname,access="append")
296 write (icart,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
298 write (icart,'(i4,$)')
299 & nss,(idssb(j)+nres,jdssb(j)+nres,j=1,nss)
301 write (icart,'(i4,$)')
302 & nss,(ihpb(j),jhpb(j),j=1,nss)
304 write (icart,'(i4,20f7.4)') nfrag+npair+3*nfrag_back,
305 & (qfrag(i),i=1,nfrag),(qpair(i),i=1,npair),
306 & (utheta(i),ugamma(i),uscdiff(i),i=1,nfrag_back)
307 write (icart,'(8f10.5)')
308 & ((c(k,j),k=1,3),j=1,nres),
309 & ((c(k,j+nres),k=1,3),j=nnt,nct)
313 c-----------------------------------------------------------------
315 subroutine cartout(time)
316 implicit real*8 (a-h,o-z)
320 include 'COMMON.SETUP'
324 include 'COMMON.CHAIN'
325 include 'COMMON.INTERACT'
326 include 'COMMON.NAMES'
327 include 'COMMON.IOUNITS'
328 include 'COMMON.HEADER'
329 include 'COMMON.SBRIDGE'
330 include 'COMMON.DISTFIT'
332 double precision time
334 real xcoord(3,maxres2+2),prec
337 call xdrfopen_(ixdrf,cartname, "a", iret)
338 call xdrffloat_(ixdrf, real(time), iret)
339 call xdrffloat_(ixdrf, real(potE), iret)
340 call xdrffloat_(ixdrf, real(uconst), iret)
341 call xdrffloat_(ixdrf, real(uconst_back), iret)
342 call xdrffloat_(ixdrf, real(t_bath), iret)
343 call xdrfint_(ixdrf, nss, iret)
346 call xdrfint_(ixdrf, idssb(j)+nres, iret)
347 call xdrfint_(ixdrf, jdssb(j)+nres, iret)
349 call xdrfint_(ixdrf, ihpb(j), iret)
350 call xdrfint_(ixdrf, jhpb(j), iret)
353 call xdrfint_(ixdrf, nfrag+npair+3*nfrag_back, iret)
355 call xdrffloat_(ixdrf, real(qfrag(i)), iret)
358 call xdrffloat_(ixdrf, real(qpair(i)), iret)
361 call xdrffloat_(ixdrf, real(utheta(i)), iret)
362 call xdrffloat_(ixdrf, real(ugamma(i)), iret)
363 call xdrffloat_(ixdrf, real(uscdiff(i)), iret)
366 call xdrfopen(ixdrf,cartname, "a", iret)
367 call xdrffloat(ixdrf, real(time), iret)
368 call xdrffloat(ixdrf, real(potE), iret)
369 call xdrffloat(ixdrf, real(uconst), iret)
370 call xdrffloat(ixdrf, real(uconst_back), iret)
371 call xdrffloat(ixdrf, real(t_bath), iret)
372 call xdrfint(ixdrf, nss, iret)
375 call xdrfint(ixdrf, idssb(j)+nres, iret)
376 call xdrfint(ixdrf, jdssb(j)+nres, iret)
378 call xdrfint(ixdrf, ihpb(j), iret)
379 call xdrfint(ixdrf, jhpb(j), iret)
382 call xdrfint(ixdrf, nfrag+npair+3*nfrag_back, iret)
384 call xdrffloat(ixdrf, real(qfrag(i)), iret)
387 call xdrffloat(ixdrf, real(qpair(i)), iret)
390 call xdrffloat(ixdrf, real(utheta(i)), iret)
391 call xdrffloat(ixdrf, real(ugamma(i)), iret)
392 call xdrffloat(ixdrf, real(uscdiff(i)), iret)
403 xcoord(j,nres+i-nnt+1)=c(j,i+nres)
409 call xdrf3dfcoord_(ixdrf, xcoord, itmp, prec, iret)
410 call xdrfclose_(ixdrf, iret)
412 call xdrf3dfcoord(ixdrf, xcoord, itmp, prec, iret)
413 call xdrfclose(ixdrf, iret)
418 c-----------------------------------------------------------------
419 subroutine statout(itime)
420 implicit real*8 (a-h,o-z)
422 include 'COMMON.CONTROL'
423 include 'COMMON.CHAIN'
424 include 'COMMON.INTERACT'
425 include 'COMMON.NAMES'
426 include 'COMMON.IOUNITS'
427 include 'COMMON.HEADER'
428 include 'COMMON.SBRIDGE'
429 include 'COMMON.DISTFIT'
431 include 'COMMON.REMD'
432 include 'COMMON.SETUP'
434 double precision energia(0:n_ene)
435 double precision gyrate
438 character*256 line1,line2
439 character*4 format1,format2
443 open(istat,file=statname,position="append")
447 open(istat,file=statname,position="append")
449 open(istat,file=statname,access="append")
452 if (AFMlog.gt.0) then
454 call rms_nac_nnc(rms,frac,frac_nn,co,.false.)
455 write (line1,'(i10,f15.2,3f12.3,f7.2,2f6.3,4f12.3,i5,$)')
456 & itime,totT,EK,potE,totE,
457 & rms,frac,frac_nn,kinetic_T,t_bath,gyrate(),
461 C print *,'A CHUJ',potEcomp(23)
462 write (line1,'(i10,f15.2,7f12.3,i5,$)')
463 & itime,totT,EK,potE,totE,
464 & kinetic_T,t_bath,gyrate(),
468 else if (selfguide.gt.0) then
471 distance=distance+(c(j,afmend)-c(j,afmbeg))**2
473 distance=dsqrt(distance)
475 call rms_nac_nnc(rms,frac,frac_nn,co,.false.)
476 write (line1,'(i10,f15.2,3f12.3,f7.2,2f6.3,f12.3,f10.1,2f8.2,
478 & itime,totT,EK,potE,totE,
479 & rms,frac,frac_nn,kinetic_T,t_bath,gyrate(),
480 & distance,potEcomp(23),me
484 C print *,'A CHUJ',potEcomp(23)
485 write (line1,'(i10,f15.2,8f12.3,i5,$)')
486 & itime,totT,EK,potE,totE,
487 & kinetic_T,t_bath,gyrate(),
488 & distance,potEcomp(23),me
493 call rms_nac_nnc(rms,frac,frac_nn,co,.false.)
494 write (line1,'(i10,f15.2,3f12.3,f7.2,4f6.3,3f12.3,i5,$)')
495 & itime,totT,EK,potE,totE,
496 & rms,frac,frac_nn,co,amax,kinetic_T,t_bath,gyrate(),me
499 write (line1,'(i10,f15.2,7f12.3,i5,$)')
500 & itime,totT,EK,potE,totE,
501 & amax,kinetic_T,t_bath,gyrate(),me
505 if(usampl.and.totT.gt.eq_time) then
506 write(line2,'(i5,2f9.4,300f7.4)') iset,uconst,uconst_back,
507 & (qfrag(ii1),ii1=1,nfrag),(qpair(ii2),ii2=1,npair),
508 & (utheta(i),ugamma(i),uscdiff(i),i=1,nfrag_back)
509 write(format2,'(a1,i3.3)') "a",23+7*nfrag+7*npair
511 elseif(hremd.gt.0.or.homol_nset.gt.1) then
512 write(line2,'(i5)') iset
518 if (print_compon) then
520 write (iout,*) "itime",itime," temperature",t_bath,
521 & " potential energy",potE,potEcomp(0)
522 call enerprint(potEcomp)
525 write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2,
527 write (istat,format) "#","",
528 & (ename(print_order(i)),i=1,nprint_ene)
530 write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2,
532 write (istat,format) line1,line2,
533 & (potEcomp(print_order(i)),i=1,nprint_ene)
535 write(format,'(a1,a4,a1,a4,a1)') "(",format1,",",format2,")"
536 write (istat,format) line1,line2
545 c---------------------------------------------------------------
546 double precision function gyrate()
547 implicit real*8 (a-h,o-z)
549 include 'COMMON.INTERACT'
550 include 'COMMON.CHAIN'
551 double precision cen(3),rg
563 cen(j)=cen(j)/dble(nct-nnt+1)
568 rg = rg + (c(j,i)-cen(j))**2
571 gyrate = sqrt(rg/dble(nct-nnt+1))