1 subroutine check_cartgrad
2 C Check the gradient of Cartesian coordinates in internal coordinates.
5 include 'COMMON.CONTROL'
6 include 'COMMON.IOUNITS'
10 include 'COMMON.LOCAL'
11 include 'COMMON.DERIV'
12 double precision temp(6,maxres),xx(3),gg(3),thet,theti,phii,alphi,
16 indmat(i,j)=((2*(nres-2)-i)*(i-1))/2+j-1
19 * Check the gradient of the virtual-bond and SC vectors in the internal
22 print '("Calling CHECK_ECART",1pd12.3)',aincr
23 write (iout,'("Calling CHECK_ECART",1pd12.3)') aincr
25 call chainbuild_extconf
27 write (iout,'(a)') '**************** dx/dalpha'
33 temp(k,i)=dc(k,nres+i)
35 call chainbuild_extconf
37 gg(k)=(dc(k,nres+i)-temp(k,i))/aincr
38 xx(k)=dabs((gg(k)-dxds(k,i))/(aincr*dabs(dxds(k,i))+aincr))
40 write (iout,'(i4,3e15.6/4x,3e15.6,3f9.3)')
41 & i,(gg(k),k=1,3),(dxds(k,i),k=1,3),(xx(k),k=1,3)
44 call chainbuild_extconf
47 write (iout,'(a)') '**************** dx/domega'
53 temp(k,i)=dc(k,nres+i)
55 call chainbuild_extconf
57 gg(k)=(dc(k,nres+i)-temp(k,i))/aincr
58 xx(k)=dabs((gg(k)-dxds(k+3,i))/
59 & (aincr*dabs(dxds(k+3,i))+aincr))
61 write (iout,'(i4,3e15.6/4x,3e15.6,3f9.3)')
62 & i,(gg(k),k=1,3),(dxds(k+3,i),k=1,3),(xx(k),k=1,3)
65 call chainbuild_extconf
68 write (iout,'(a)') '**************** dx/dtheta'
72 theta(i)=theta(i)+aincr
75 temp(k,j)=dc(k,nres+j)
78 call chainbuild_extconf
81 c print *,'i=',i-2,' j=',j-1,' ii=',ii
83 gg(k)=(dc(k,nres+j)-temp(k,j))/aincr
84 xx(k)=dabs((gg(k)-dxdv(k,ii))/
85 & (aincr*dabs(dxdv(k,ii))+aincr))
87 write (iout,'(2i4,3e14.6/8x,3e14.6,3f9.3)')
88 & i,j,(gg(k),k=1,3),(dxdv(k,ii),k=1,3),(xx(k),k=1,3)
93 call chainbuild_extconf
95 write (iout,'(a)') '***************** dx/dphi'
101 temp(k,j)=dc(k,nres+j)
104 call chainbuild_extconf
109 gg(k)=(dc(k,nres+j)-temp(k,j))/aincr
110 xx(k)=dabs((gg(k)-dxdv(k+3,ii))/
111 & (aincr*dabs(dxdv(k+3,ii))+aincr))
113 write (iout,'(2i4,3e14.6/8x,3e14.6,3f9.3)')
114 & i,j,(gg(k),k=1,3),(dxdv(k+3,ii),k=1,3),(xx(k),k=1,3)
118 call chainbuild_extconf
120 write (iout,'(a)') '****************** ddc/dtheta'
123 theta(i+2)=thet+aincr
129 call chainbuild_extconf
134 gg(k)=(dc(k,j)-temp(k,j))/aincr
135 xx(k)=dabs((gg(k)-dcdv(k,ii))/
136 & (aincr*dabs(dcdv(k,ii))+aincr))
138 write (iout,'(2i4,3e14.6/8x,3e14.6,3f9.3)')
139 & i,j,(gg(k),k=1,3),(dcdv(k,ii),k=1,3),(xx(k),k=1,3)
149 write (iout,'(a)') '******************* ddc/dphi'
158 call chainbuild_extconf
163 gg(k)=(dc(k,j)-temp(k,j))/aincr
164 xx(k)=dabs((gg(k)-dcdv(k+3,ii))/
165 & (aincr*dabs(dcdv(k+3,ii))+aincr))
167 write (iout,'(2i4,3e14.6/8x,3e14.6,3f9.3)')
168 & i,j,(gg(k),k=1,3),(dcdv(k+3,ii),k=1,3),(xx(k),k=1,3)