C Check the gradient of Cartesian coordinates in internal coordinates.
implicit real*8 (a-h,o-z)
include 'DIMENSIONS'
+ include 'COMMON.CONTROL'
include 'COMMON.IOUNITS'
include 'COMMON.VAR'
include 'COMMON.CHAIN'
* Check the gradient of the virtual-bond and SC vectors in the internal
* coordinates.
*
- aincr=1.0d-7
- aincr2=5.0d-8
+ print '("Calling CHECK_ECART",1pd12.3)',aincr
+ write (iout,'("Calling CHECK_ECART",1pd12.3)') aincr
+ aincr2=0.5d0*aincr
call cartder
write (iout,'(a)') '**************** dx/dalpha'
write (iout,'(a)')
do k=1,3
temp(k,i)=dc(k,nres+i)
enddo
- call chainbuild
+ call chainbuild_extconf
do k=1,3
gg(k)=(dc(k,nres+i)-temp(k,i))/aincr
xx(k)=dabs((gg(k)-dxds(k,i))/(aincr*dabs(dxds(k,i))+aincr))
& i,(gg(k),k=1,3),(dxds(k,i),k=1,3),(xx(k),k=1,3)
write (iout,'(a)')
alph(i)=alphi
- call chainbuild
+ call chainbuild_extconf
enddo
write (iout,'(a)')
write (iout,'(a)') '**************** dx/domega'
do k=1,3
temp(k,i)=dc(k,nres+i)
enddo
- call chainbuild
+ call chainbuild_extconf
do k=1,3
gg(k)=(dc(k,nres+i)-temp(k,i))/aincr
xx(k)=dabs((gg(k)-dxds(k+3,i))/
& i,(gg(k),k=1,3),(dxds(k+3,i),k=1,3),(xx(k),k=1,3)
write (iout,'(a)')
omeg(i)=omegi
- call chainbuild
+ call chainbuild_extconf
enddo
write (iout,'(a)')
write (iout,'(a)') '**************** dx/dtheta'
temp(k,j)=dc(k,nres+j)
enddo
enddo
- call chainbuild
+ call chainbuild_extconf
do j=i-1,nres-1
ii = indmat(i-2,j)
c print *,'i=',i-2,' j=',j-1,' ii=',ii
enddo
write (iout,'(a)')
theta(i)=theti
- call chainbuild
+ call chainbuild_extconf
enddo
write (iout,'(a)') '***************** dx/dphi'
write (iout,'(a)')
temp(k,j)=dc(k,nres+j)
enddo
enddo
- call chainbuild
+ call chainbuild_extconf
do j=i-1,nres-1
ii = indmat(i-2,j)
c print *,'ii=',ii
write(iout,'(a)')
enddo
phi(i)=phi(i)-aincr
- call chainbuild
+ call chainbuild_extconf
enddo
write (iout,'(a)') '****************** ddc/dtheta'
do i=1,nres-2
temp(k,j)=dc(k,j)
enddo
enddo
- call chainbuild
+ call chainbuild_extconf
do j=i+1,nres-1
ii = indmat(i,j)
c print *,'ii=',ii
temp(k,j)=dc(k,j)
enddo
enddo
- call chainbuild
+ call chainbuild_extconf
do j=i+2,nres-1
ii = indmat(i+1,j)
c print *,'ii=',ii
C Check the gradient of the energy in Cartesian coordinates.
implicit real*8 (a-h,o-z)
include 'DIMENSIONS'
+ include 'COMMON.CONTROL'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
include 'COMMON.IOUNITS'
nf=0
nfl=0
call zerograd
- aincr=1.0D-7
- print '(a)','CG processor',me,' calling CHECK_CART.'
+ print '("Calling CHECK_ECART",1pd12.3)',aincr
+ write (iout,'("Calling CHECK_ECART",1pd12.3)') aincr
nf=0
icall=0
call geom_to_var(nvar,x)
integer uiparm(1)
double precision urparm(1)
external fdum
- r_cut=2.0d0
- rlambd=0.3d0
+c r_cut=2.0d0
+c rlambd=0.3d0
icg=1
nf=0
nfl=0
+ print *,"ATU 3"
call intout
c call intcartderiv
c call checkintcartgrad
call zerograd
- aincr=1.0D-5
- write(iout,*) 'Calling CHECK_ECARTINT.'
+c aincr=8.0D-7
+c aincr=1.0D-7
+ print '("Calling CHECK_ECARTINT",1pd12.3)',aincr
+ write (iout,'("Calling CHECK_ECARTINT",1pd12.3)') aincr
nf=0
icall=0
call geom_to_var(nvar,x)
write (iout,*) "exit cartgrad"
call flush(iout)
icall =1
+ write (iout,*) "gcard and gxcart"
do i=1,nres
- write (iout,'(i5,3f10.5)') i,(gradxorr(j,i),j=1,3)
+ write (iout,'(i5,3f10.5,5x,3f10.5)') i,(gcart(j,i),j=1,3),
+ & (gxcart(j,i),j=1,3)
enddo
do j=1,3
grad_s(j,0)=gcart(j,0)
endif
write (iout,'(/a/)') 'Gradient in virtual-bond and SC vectors'
do i=0,nres
+ print *,i
do j=1,3
xx(j)=c(j,i+nres)
ddc(j)=dc(j,i)
c write(iout,'(2i5,2(a,f15.10))')i,j," etot",etot," etot1",etot1
dc(j,i)=ddc(j)-aincr
call chainbuild_cart
+C print *,c(j,i)
c call int_from_cart1(.false.)
if (.not.split_ene) then
call etotal(energia1(0))
#else
do i=2,nres
#endif
+C print *,i
dnorm1=dist(i-1,i)
- dnorm2=dist(i,i+1)
+ dnorm2=dist(i,i+1)
+C print *,i,dnorm1,dnorm2
do j=1,3
c(j,maxres2)=0.5D0*(2*c(j,i)+(c(j,i-1)-c(j,i))/dnorm1
& +(c(j,i+1)-c(j,i))/dnorm2)
enddo
be=0.0D0
- if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1)
+ if (i.gt.2) then
+ if (i.le.nres) phi(i+1)=beta(i-2,i-1,i,i+1)
+ if ((itype(i).ne.10).and.(itype(i-1).ne.10)) then
+ tauangle(3,i+1)=beta(i+nres-1,i-1,i,i+nres)
+ endif
+ if (itype(i-1).ne.10) then
+ tauangle(1,i+1)=beta(i-1+nres,i-1,i,i+1)
+ omicron(1,i)=alpha(i-2,i-1,i-1+nres)
+ omicron(2,i)=alpha(i-1+nres,i-1,i)
+ endif
+ if (itype(i).ne.10) then
+ tauangle(2,i+1)=beta(i-2,i-1,i,i+nres)
+ endif
+ endif
omeg(i)=beta(nres+i,i,maxres2,i+1)
+C print *,omeg(i)
alph(i)=alpha(nres+i,i,maxres2)
+C print *,alph(i)
theta(i+1)=alpha(i-1,i,i+1)
vbld(i)=dist(i-1,i)
+C print *,vbld(i)
vbld_inv(i)=1.0d0/vbld(i)
vbld(nres+i)=dist(nres+i,i)
+C print *,vbld(i+nres)
+
if (itype(i).ne.10) then
vbld_inv(nres+i)=1.0d0/vbld(nres+i)
else
&rad2deg*theta(i),rad2deg*phi(i),vbld(nres+i),
&rad2deg*alph(i),rad2deg*omeg(i)
enddo
+ do i=1,nres
+ write (iout,'(i5,2(3f10.5,5x),f10.5,5x,f10.5)' )
+ & i,(dc_norm(j,i),j=1,3),
+ & (dc_norm(j,nres+i),j=1,3),vbld_inv(i+1),vbld_inv(i+nres)
+ enddo
endif
1212 format (a3,'(',i3,')',2(f15.10,2f10.2))
#ifdef TIMING
C Check the gradient of energy in internal coordinates.
implicit real*8 (a-h,o-z)
include 'DIMENSIONS'
+ include 'COMMON.CONTROL'
include 'COMMON.CHAIN'
include 'COMMON.DERIV'
include 'COMMON.IOUNITS'
character*6 key
external fdum
call zerograd
- aincr=1.0D-7
- print '(a)','Calling CHECK_INT.'
+c aincr=1.0D-7
+ print '("Calling CHECK_INT",1pd12.3)',aincr
+ write (iout,'("Calling CHECK_INT",1pd12.3)') aincr
nf=0
nfl=0
icg=1
xi=x(i)
x(i)=xi-0.5D0*aincr
call var_to_geom(nvar,x)
- call chainbuild
+ call chainbuild_extconf
call etotal(energia1(0))
etot1=energia1(0)
x(i)=xi+0.5D0*aincr
call var_to_geom(nvar,x)
- call chainbuild
+ call chainbuild_extconf
call etotal(energia2(0))
etot2=energia2(0)
gg(i)=(etot2-etot1)/aincr