checkgrad_inc added to input for checkgrad cart
[unres.git] / source / unres / src_MD / geomout.F
index 460b7be..94fd7d7 100644 (file)
@@ -9,7 +9,7 @@
       include 'COMMON.SBRIDGE'
       include 'COMMON.DISTFIT'
       include 'COMMON.MD'
-      character*50 tytul
+      character*(*) tytul
       dimension ica(maxres)
       write (iunit,'(3a,1pe15.5)') 'REMARK ',tytul,' ENERGY ',etot
 cmodel      write (iunit,'(a5,i6)') 'MODEL',1
@@ -79,9 +79,15 @@ cmodel      write (iunit,'(a5,i6)') 'MODEL',1
 
       if (nss.gt.0) then
         do i=1,nss
+         if (dyn_ss) then
           write(iunit,'(a6,i4,1x,a3,i7,4x,a3,i7)') 
-     &         'SSBOND',i,'CYS',ihpb(i)-1-nres,
-     &                    'CYS',jhpb(i)-1-nres
+     &         'SSBOND',i,'CYS',idssb(i)-nnt+1,
+     &                    'CYS',jdssb(i)-nnt+1
+         else
+          write(iunit,'(a6,i4,1x,a3,i7,4x,a3,i7)') 
+     &         'SSBOND',i,'CYS',ihpb(i)-nnt+1-nres,
+     &                    'CYS',jhpb(i)-nnt+1-nres
+         endif
         enddo
       endif
       
@@ -110,7 +116,11 @@ cmodel      write (iunit,'(a5,i6)') 'MODEL',1
         write (iunit,30) ica(nct),ica(nct)+1
       endif
       do i=1,nss
+       if (dyn_ss) then
+        write (iunit,30) ica(idssb(i))+1,ica(jdssb(i))+1
+       else
         write (iunit,30) ica(ihpb(i)-nres)+1,ica(jhpb(i)-nres)+1
+       endif
       enddo
       write (iunit,'(a6)') 'ENDMDL'     
   10  FORMAT ('ATOM',I7,'  CA  ',A3,I6,4X,3F8.3,f15.3)
@@ -258,14 +268,20 @@ c----------------------------------------------------------------
       include 'COMMON.DISTFIT'
       include 'COMMON.MD'
       double precision time
+      write (iout,*) "cartout: cartname ",cartname
 #if defined(AIX) || defined(PGI)
       open(icart,file=cartname,position="append")
 #else
       open(icart,file=cartname,access="append")
 #endif
       write (icart,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
-      write (icart,'(i4,$)')
+      if (dyn_ss) then
+       write (icart,'(i4,$)')
+     &   nss,(idssb(j)+nres,jdssb(j)+nres,j=1,nss)       
+      else
+       write (icart,'(i4,$)')
      &   nss,(ihpb(j),jhpb(j),j=1,nss)
+       endif
        write (icart,'(i4,20f7.4)') nfrag+npair+3*nfrag_back,
      & (qfrag(i),i=1,nfrag),(qpair(i),i=1,npair),
      & (utheta(i),ugamma(i),uscdiff(i),i=1,nfrag_back)
@@ -307,8 +323,13 @@ c-----------------------------------------------------------------
       call xdrffloat_(ixdrf, real(t_bath), iret)
       call xdrfint_(ixdrf, nss, iret) 
       do j=1,nss
+       if (dyn_ss) then
+        call xdrfint_(ixdrf, idssb(j)+nres, iret)
+        call xdrfint_(ixdrf, jdssb(j)+nres, iret)
+       else
         call xdrfint_(ixdrf, ihpb(j), iret)
         call xdrfint_(ixdrf, jhpb(j), iret)
+       endif
       enddo
       call xdrfint_(ixdrf, nfrag+npair+3*nfrag_back, iret)
       do i=1,nfrag
@@ -331,8 +352,13 @@ c-----------------------------------------------------------------
       call xdrffloat(ixdrf, real(t_bath), iret)
       call xdrfint(ixdrf, nss, iret) 
       do j=1,nss
+       if (dyn_ss) then
+        call xdrfint(ixdrf, idssb(j)+nres, iret)
+        call xdrfint(ixdrf, jdssb(j)+nres, iret)
+       else
         call xdrfint(ixdrf, ihpb(j), iret)
         call xdrfint(ixdrf, jhpb(j), iret)
+       endif
       enddo
       call xdrfint(ixdrf, nfrag+npair+3*nfrag_back, iret)
       do i=1,nfrag
@@ -406,23 +432,37 @@ c-----------------------------------------------------------------
 #endif
        if (refstr) then
          call rms_nac_nnc(rms,frac,frac_nn,co,.false.)
+        if(tnp .or. tnp1 .or. tnh) then
+        write (line1,'(i10,f15.2,3f12.3,f12.6,f7.2,4f6.3,3f12.3,i5,$)')
+     &          itime,totT,EK,potE,totE,hhh,
+     &          rms,frac,frac_nn,co,amax,kinetic_T,t_bath,gyrate(),me
+          format1="a145"
+        else
           write (line1,'(i10,f15.2,3f12.3,f7.2,4f6.3,3f12.3,i5,$)')
      &          itime,totT,EK,potE,totE,
      &          rms,frac,frac_nn,co,amax,kinetic_T,t_bath,gyrate(),me
           format1="a133"
+        endif
+       else
+        if(tnp .or. tnp1 .or. tnh) then
+          write (line1,'(i10,f15.2,7f12.3,f12.6,i5,$)')
+     &           itime,totT,EK,potE,totE,hhh,
+     &           amax,kinetic_T,t_bath,gyrate(),me
+          format1="a126"
         else
           write (line1,'(i10,f15.2,7f12.3,i5,$)')
      &           itime,totT,EK,potE,totE,
      &           amax,kinetic_T,t_bath,gyrate(),me
           format1="a114"
         endif
+       endif
         if(usampl.and.totT.gt.eq_time) then
            write(line2,'(i5,2f9.4,300f7.4)') iset,uconst,uconst_back,
      &      (qfrag(ii1),ii1=1,nfrag),(qpair(ii2),ii2=1,npair),
      &      (utheta(i),ugamma(i),uscdiff(i),i=1,nfrag_back)
            write(format2,'(a1,i3.3)') "a",23+7*nfrag+7*npair
      &             +21*nfrag_back
-        elseif(hremd.gt.0) then
+        elseif(hremd.gt.0.or.homol_nset.gt.1) then
            write(line2,'(i5)') iset
            format2="a005"
         else
@@ -430,8 +470,14 @@ c-----------------------------------------------------------------
            line2=' '
         endif
         if (print_compon) then
+          if(itime.eq.0) then
+           write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2,
+     &                                                     ",100a12)"
+           write (istat,format) "#","",
+     &      (ename(print_order(i)),i=1,nprint_ene)
+          endif
           write(format,'(a1,a4,a1,a4,a10)') "(",format1,",",format2,
-     &                                                     ",20f12.3)"
+     &                                                     ",100f12.3)"
           write (istat,format) line1,line2,
      &      (potEcomp(print_order(i)),i=1,nprint_ene)
         else