dist1cut statout 2 rmsd
[unres.git] / source / unres / src-HCD-5D / 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
22 c---------------------------------------------------------------------------
23       subroutine rms_template(k,rms)
24         implicit real*8 (a-h,o-z)
25         include 'DIMENSIONS'
26         include 'COMMON.CHAIN'
27         include 'COMMON.CONTACTS'
28         include 'COMMON.IOUNITS'
29         integer k
30         double precision przes(3),obr(3,3)
31         logical non_conv,lprn
32         rms=rmscalc(c(1,1),chomo(1,1,k),ipermmin)
33       return
34       end      
35
36 c---------------------------------------------------------------------------
37       subroutine rmsd_csa(drms)
38       implicit real*8 (a-h,o-z)
39       include 'DIMENSIONS'
40 #ifdef MPI
41       include 'mpif.h'
42 #endif
43       include 'COMMON.CHAIN'
44       include 'COMMON.IOUNITS'  
45       include 'COMMON.INTERACT'
46       logical non_conv
47       double precision przes(3),obrot(3,3)
48       double precision ccopy(3,maxres2+2),crefcopy(3,maxres2+2)
49       kkk=1
50       iatom=0
51       do i=nz_start,nz_end
52         iatom=iatom+1
53         iti=itype(i)
54         do k=1,3
55          ccopy(k,iatom)=c(k,i)
56          crefcopy(k,iatom)=crefjlee(k,i)
57         enddo
58         if (iz_sc.eq.1.and.iti.ne.10) then
59           iatom=iatom+1
60           do k=1,3
61            ccopy(k,iatom)=c(k,nres+i)
62            crefcopy(k,iatom)=crefjlee(k,nres+i)
63           enddo
64         endif
65       enddo
66
67       call fitsq(roznica,ccopy(1,1),crefcopy(1,1),iatom,
68      &                                      przes,obrot,non_conv) 
69       if (non_conv) then
70           print *,'Problems in FITSQ!!! rmsd_csa'
71           write (iout,*) 'Problems in FITSQ!!! rmsd_csa'
72           print *,'Ccopy and CREFcopy'
73           write (iout,*) 'Ccopy and CREFcopy'
74           print '(i5,3f10.5,5x,3f10.5)',(k,(ccopy(j,k),j=1,3),
75      &           (crefcopy(j,k),j=1,3),k=1,iatom)
76           write (iout,'(i5,3f10.5,5x,3f10.5)') (k,(ccopy(j,k),j=1,3),
77      &           (crefcopy(j,k),j=1,3),k=1,iatom)
78 #ifdef MPI
79           call mpi_abort(mpi_comm_world,ierror,ierrcode)
80 #else          
81           stop
82 #endif
83        endif
84        drms=dsqrt(dabs(roznica))
85        return
86        end
87