added source code
[unres.git] / source / cluster / wham / src / int_from_cart1.f
1       subroutine int_from_cart1(lprn)
2       implicit real*8 (a-h,o-z)
3       include 'DIMENSIONS'
4       include 'sizesclu.dat'
5       include 'COMMON.IOUNITS'
6       include 'COMMON.VAR'
7       include 'COMMON.CHAIN'
8       include 'COMMON.GEO'
9       include 'COMMON.INTERACT'
10       include 'COMMON.LOCAL'
11       include 'COMMON.NAMES'
12       logical lprn 
13       if (lprn) write (iout,'(/a)') 'Recalculated internal coordinates'
14       vbld(nres+1)=0.0d0
15       vbld(2*nres)=0.0d0
16       vbld_inv(nres+1)=0.0d0
17       vbld_inv(2*nres)=0.0d0
18       do i=2,nres
19         dnorm1=dist(i-1,i)
20         dnorm2=dist(i,i+1)
21         do j=1,3
22           c(j,maxres2)=0.5D0*(2*c(j,i)+(c(j,i-1)-c(j,i))/dnorm1
23      &     +(c(j,i+1)-c(j,i))/dnorm2)
24         enddo
25         be=0.0D0
26         if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1)
27         omeg(i)=beta(nres+i,i,maxres2,i+1)
28         theta(i+1)=alpha(i-1,i,i+1)
29         alph(i)=alpha(nres+i,i,maxres2)
30         vbld(i)=dist(i-1,i)
31         vbld_inv(i)=1.0d0/vbld(i)
32         vbld(nres+i)=dist(nres+i,i)
33         if (itype(i).ne.10) then
34           vbld_inv(nres+i)=1.0d0/vbld(nres+i)
35         else
36           vbld_inv(nres+i)=0.0d0
37         endif
38       enddo   
39       do i=1,nres-1
40         do j=1,3
41           dc(j,i)=c(j,i+1)-c(j,i)
42           dc_norm(j,i)=dc(j,i)*vbld_inv(i+1)
43         enddo
44       enddo
45       do i=1,nres
46         do j=1,3
47           dc(j,i+nres)=c(j,i+nres)-c(j,i)
48           dc_norm(j,i+nres)=dc(j,i+nres)*vbld_inv(i+nres)
49         enddo
50       enddo
51       if (lprn) then
52       do i=2,nres
53        write (iout,1212) restyp(itype(i)),i,vbld(i),
54      &rad2deg*theta(i),rad2deg*phi(i),vbld(nres+i),
55      &rad2deg*alph(i),rad2deg*omeg(i)
56       enddo
57       endif
58  1212 format (a3,'(',i3,')',2(f15.10,2f10.2))
59       return
60       end