include 'DIMENSIONS'
include 'sizesclu.dat'
- external proc_proc
+c external proc_proc
#ifdef WINPGI
cMS$ATTRIBUTES C :: proc_proc
#endif
#ifdef WINPGI
idumm=proc_proc(etot,i)
#else
- call proc_proc(etot,i)
+c call proc_proc(etot,i)
#endif
if(i.eq.1)energia(0)=1.0d+99
#ifdef MPL
& +wsccor*fact(1)*gsccor_loc(i)
enddo
endif
-cd call enerprint(energia(0),fact)
+c call enerprint(energia(0),fact)
cd call intout
cd stop
return
include 'COMMON.SETUP'
include 'COMMON.NAMES'
- do i=1,19
+ do i=1,max_template
distancek(i)=9999999.9
enddo
dij=dist(i,j)
c write (iout,*) "dij(",i,j,") =",dij
do k=1,constr_homology
+ if(.not.l_homo(k,ii)) cycle
distance(k)=odl(k,ii)-dij
c write (iout,*) "distance(",k,") =",distance(k)
c
endif
enddo
- min_odl=minval(distancek)
+c min_odl=minval(distancek)
+ do kk=1,constr_homology
+ if(l_homo(kk,ii)) then
+ min_odl=distancek(kk)
+ exit
+ endif
+ enddo
+ do kk=1,constr_homology
+ if(l_homo(kk,ii) .and. distancek(kk).lt.min_odl)
+ & min_odl=distancek(kk)
+ enddo
c write (iout,* )"min_odl",min_odl
#ifdef DEBUG
write (iout,*) "ij dij",i,j,dij
c Nie wiem po co to liczycie jeszcze raz!
c odleg3=-waga_dist(iset)*((distance(i,j,k)**2)/
c & (2*(sigma_odl(i,j,k))**2))
+ if(.not.l_homo(k,ii)) cycle
if (waga_dist.ge.0.0d0) then
c
c For Gaussian-type Urestr
c & *waga_dist)+min_odl
c sgodl=-godl(k)*distance(k)*sigma_odl(k,ii)*waga_dist
c
+ if(.not.l_homo(k,ii)) cycle
if (waga_dist.ge.0.0d0) then
c For Gaussian-type Urestr
c
do i=idihconstr_start_homo,idihconstr_end_homo
kat2=0.0d0
c betai=beta(i,i+1,i+2,i+3)
- betai = phi(i+3)
+ betai = phi(i)
c write (iout,*) "betai =",betai
do k=1,constr_homology
dih_diff(k)=pinorm(dih(k,i)-betai)
c sgtheta=-gtheta(k)*theta_diff(k)*sigma_theta(k,i)*waga_theta ! right functional form?
sum_sgtheta=sum_sgtheta+sgtheta ! cum variable
enddo
-c grad_theta3=sum_sgtheta/sum_gtheta 1/*theta(i)? s. line below
-c grad_theta3=sum_sgtheta/sum_gtheta
c
c Final value of gradient using same var as in Econstr_back
dutheta(i-2)=sum_sgtheta/sum_gtheta*waga_theta
& waga_theta*Eval+waga_d*Erot)*waga_homology(iset)
c write (iout,*) "ehomology_constr=",ehomology_constr
endif
-c write (iout,*) "odleg",odleg," kat",kat," Eval",Eval," Erot",Erot
-c write (iout,*) "ehomology_constr",ehomology_constr
-c ehomology_constr=odleg+kat+Uconst_back
+#ifdef DEBUG
+ write (iout,*) "iset",iset," waga_homology",waga_homology(iset)
+ write (iout,*) "odleg",waga_dist,odleg," kat",waga_angle,kat,
+ & " Eval",waga_theta,Eval," Erot",waga_d,Erot
+ write (iout,*) "ehomology_constr",ehomology_constr
+#endif
return
748 format(a8,f12.3,a6,f12.3,a7,f12.3)
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3 .and. itype(i-3).ne.ntyp1) then
+ if (i.gt.3 .and. itype(max0(i-3,1)).ne.ntyp1) then
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
esccor=0.0D0
do i=itau_start,itau_end
esccor_ii=0.0D0
+ if ((itype(i-2).eq.ntyp1).or.(itype(i-1).eq.ntyp1)) cycle
isccori=isccortyp(itype(i-2))
isccori1=isccortyp(itype(i-1))
phii=phi(i)
cosphi=dcos(j*tauangle(intertyp,i))
sinphi=dsin(j*tauangle(intertyp,i))
esccor=esccor+v1ij*cosphi+v2ij*sinphi
+#ifdef DEBUG
+ esccor_ii=esccor_ii+v1ij*cosphi+v2ij*sinphi
+#endif
gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
enddo
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
& ,(v2sccor(j,intertyp,itori,itori1),j=1,6)
gsccor_loc(i-3)=gsccor_loc(i-3)+gloci
enddo !intertyp
+#ifdef DEBUG
+ write (iout,*) "i",i,(tauangle(j,i),j=1,3),esccor_ii
+#endif
enddo
return