homology from okeanos
[unres.git] / source / unres / src_MD-M-SAXS-homology / rmsd.F
1       subroutine rms_nac_nnc(rms,frac,frac_nn,co,lprn)
2         implicit real*8 (a-h,o-z)
3         include 'DIMENSIONS'
4         include 'COMMON.CHAIN'
5         include 'COMMON.CONTACTS'
6         include 'COMMON.IOUNITS'
7         double precision przes(3),obr(3,3)
8         logical non_conv,lprn
9         rms=rmscalc(c(1,1),cref(1,1),ipermmin)
10         call contact(.false.,ncont,icont,co)
11         frac=contact_fract(ncont,ncont_ref,icont,icont_ref)
12         frac_nn=contact_fract_nn(ncont,ncont_ref,icont,icont_ref)
13         if (lprn) write (iout,'(a,f8.3/a,f8.3/a,f8.3/a,f8.3)')
14      &    'RMS deviation from the reference structure:',rms,
15      &    ' % of native contacts:',frac*100,
16      &    ' % of nonnative contacts:',frac_nn*100,
17      &    ' contact order:',co
18
19       return
20       end      
21 c---------------------------------------------------------------------------
22       subroutine rmsd_csa(drms)
23       implicit real*8 (a-h,o-z)
24       include 'DIMENSIONS'
25 #ifdef MPI
26       include 'mpif.h'
27 #endif
28       include 'COMMON.CHAIN'
29       include 'COMMON.IOUNITS'  
30       include 'COMMON.INTERACT'
31       logical non_conv
32       double precision przes(3),obrot(3,3)
33       double precision ccopy(3,maxres2+2),crefcopy(3,maxres2+2)
34       kkk=1
35       iatom=0
36       do i=nz_start,nz_end
37         iatom=iatom+1
38         iti=itype(i)
39         do k=1,3
40          ccopy(k,iatom)=c(k,i)
41          crefcopy(k,iatom)=crefjlee(k,i)
42         enddo
43         if (iz_sc.eq.1.and.iti.ne.10) then
44           iatom=iatom+1
45           do k=1,3
46            ccopy(k,iatom)=c(k,nres+i)
47            crefcopy(k,iatom)=crefjlee(k,nres+i)
48           enddo
49         endif
50       enddo
51
52       call fitsq(roznica,ccopy(1,1),crefcopy(1,1),iatom,
53      &                                      przes,obrot,non_conv) 
54       if (non_conv) then
55           print *,'Problems in FITSQ!!! rmsd_csa'
56           write (iout,*) 'Problems in FITSQ!!! rmsd_csa'
57           print *,'Ccopy and CREFcopy'
58           write (iout,*) 'Ccopy and CREFcopy'
59           print '(i5,3f10.5,5x,3f10.5)',(k,(ccopy(j,k),j=1,3),
60      &           (crefcopy(j,k),j=1,3),k=1,iatom)
61           write (iout,'(i5,3f10.5,5x,3f10.5)') (k,(ccopy(j,k),j=1,3),
62      &           (crefcopy(j,k),j=1,3),k=1,iatom)
63 #ifdef MPI
64           call mpi_abort(mpi_comm_world,ierror,ierrcode)
65 #else          
66           stop
67 #endif
68        endif
69        drms=dsqrt(dabs(roznica))
70        return
71        end
72