--- /dev/null
+ subroutine rms_nac_nnc(rms,frac,frac_nn,co,lprn)
+ implicit real*8 (a-h,o-z)
+ include 'DIMENSIONS'
+ include 'COMMON.CHAIN'
+ include 'COMMON.CONTACTS'
+ include 'COMMON.IOUNITS'
+ double precision przes(3),obr(3,3)
+ logical non_conv,lprn
+c call fitsq(rms,c(1,nstart_seq),cref(1,nstart_sup),nsup,przes,
+c & obr,non_conv)
+c rms=dsqrt(rms)
+ call rmsd(rms)
+ call contact(.false.,ncont,icont,co)
+ frac=contact_fract(ncont,ncont_ref,icont,icont_ref)
+ frac_nn=contact_fract_nn(ncont,ncont_ref,icont,icont_ref)
+ if (lprn) write (iout,'(a,f8.3/a,f8.3/a,f8.3/a,f8.3)')
+ & 'RMS deviation from the reference structure:',rms,
+ & ' % of native contacts:',frac*100,
+ & ' % of nonnative contacts:',frac_nn*100,
+ & ' contact order:',co
+
+ return
+ end
+c---------------------------------------------------------------------------
+ subroutine rmsd(drms)
+ implicit real*8 (a-h,o-z)
+ include 'DIMENSIONS'
+#ifdef MPI
+ include 'mpif.h'
+#endif
+ include 'COMMON.CHAIN'
+ include 'COMMON.IOUNITS'
+ include 'COMMON.INTERACT'
+ logical non_conv
+ double precision przes(3),obrot(3,3)
+ double precision ccopy(3,maxres2+2),crefcopy(3,maxres2+2)
+
+ iatom=0
+c print *,"nz_start",nz_start," nz_end",nz_end
+ do i=nz_start,nz_end
+ iatom=iatom+1
+ iti=itype(i)
+ do k=1,3
+ ccopy(k,iatom)=c(k,i+nstart_seq-nstart_sup)
+ crefcopy(k,iatom)=cref(k,i)
+ enddo
+ if (iz_sc.eq.1.and.iti.ne.10) then
+ iatom=iatom+1
+ do k=1,3
+ ccopy(k,iatom)=c(k,nres+i+nstart_seq-nstart_sup)
+ crefcopy(k,iatom)=cref(k,nres+i)
+ enddo
+ endif
+ enddo
+
+c ----- diagnostics
+c write (iout,*) 'Ccopy and CREFcopy'
+c print '(i5,3f10.5,5x,3f10.5)',(k,(ccopy(j,k),j=1,3),
+c & (crefcopy(j,k),j=1,3),k=1,iatom)
+c write (iout,'(i5,3f10.5,5x,3f10.5)') (k,(ccopy(j,k),j=1,3),
+c & (crefcopy(j,k),j=1,3),k=1,iatom)
+c ----- end diagnostics
+
+ call fitsq(roznica,ccopy(1,1),crefcopy(1,1),iatom,
+ & przes,obrot,non_conv)
+ if (non_conv) then
+ print *,'Problems in FITSQ!!! rmsd'
+ write (iout,*) 'Problems in FITSQ!!! rmsd'
+ print *,'Ccopy and CREFcopy'
+ write (iout,*) 'Ccopy and CREFcopy'
+ print '(i5,3f10.5,5x,3f10.5)',(k,(ccopy(j,k),j=1,3),
+ & (crefcopy(j,k),j=1,3),k=1,iatom)
+ write (iout,'(i5,3f10.5,5x,3f10.5)') (k,(ccopy(j,k),j=1,3),
+ & (crefcopy(j,k),j=1,3),k=1,iatom)
+#ifdef MPI
+c call mpi_abort(mpi_comm_world,ierror,ierrcode)
+ roznica=100.0
+#else
+ stop
+#endif
+ endif
+ drms=dsqrt(dabs(roznica))
+c ---- diagnostics
+c write (iout,*) "rms",drms
+c ---- end diagnostics
+ return
+ end
+
+c--------------------------------------------
+ subroutine rmsd_csa(drms)
+ implicit real*8 (a-h,o-z)
+ include 'DIMENSIONS'
+#ifdef MPI
+ include 'mpif.h'
+#endif
+ include 'COMMON.CHAIN'
+ include 'COMMON.IOUNITS'
+ include 'COMMON.INTERACT'
+ logical non_conv
+ double precision przes(3),obrot(3,3)
+ double precision ccopy(3,maxres2+2),crefcopy(3,maxres2+2)
+
+ iatom=0
+ do i=nz_start,nz_end
+ iatom=iatom+1
+ iti=itype(i)
+ do k=1,3
+ ccopy(k,iatom)=c(k,i)
+ crefcopy(k,iatom)=crefjlee(k,i)
+ enddo
+ if (iz_sc.eq.1.and.iti.ne.10) then
+ iatom=iatom+1
+ do k=1,3
+ ccopy(k,iatom)=c(k,nres+i)
+ crefcopy(k,iatom)=crefjlee(k,nres+i)
+ enddo
+ endif
+ enddo
+
+ call fitsq(roznica,ccopy(1,1),crefcopy(1,1),iatom,
+ & przes,obrot,non_conv)
+ if (non_conv) then
+ print *,'Problems in FITSQ!!! rmsd_csa'
+ write (iout,*) 'Problems in FITSQ!!! rmsd_csa'
+ print *,'Ccopy and CREFcopy'
+ write (iout,*) 'Ccopy and CREFcopy'
+ print '(i5,3f10.5,5x,3f10.5)',(k,(ccopy(j,k),j=1,3),
+ & (crefcopy(j,k),j=1,3),k=1,iatom)
+ write (iout,'(i5,3f10.5,5x,3f10.5)') (k,(ccopy(j,k),j=1,3),
+ & (crefcopy(j,k),j=1,3),k=1,iatom)
+#ifdef MPI
+ call mpi_abort(mpi_comm_world,ierror,ierrcode)
+#else
+ stop
+#endif
+ endif
+ drms=dsqrt(dabs(roznica))
+ return
+ end
+