C lets ommit dummy atoms for now
if ((itype(i).eq.ntyp1).or.(itype(i+1).eq.ntyp1)) cycle
C now calculate distance from center of tube and direction vectors
- vectube(1)=mod((c(1,i)+c(1,i+1))/2.0d0,boxxsize)
- if (vectube(1).lt.0) vectube(1)=vectube(1)+boxxsize
- vectube(2)=mod((c(2,i)+c(2,i+1))/2.0d0,boxysize)
- if (vectube(2).lt.0) vectube(2)=vectube(2)+boxysize
+ xmin=boxxsize
+ ymin=boxysize
+ do j=-1,1
+ vectube(1)=mod((c(1,i)+c(1,i+1))/2.0d0,boxxsize)
+ vectube(1)=vectube(1)+boxxsize*j
+ vectube(2)=mod((c(2,i)+c(2,i+1))/2.0d0,boxysize)
+ vectube(2)=vectube(2)+boxysize*j
+
+ xminact=abs(vectube(1)-tubecenter(1))
+ yminact=abs(vectube(2)-tubecenter(2))
+ if (xmin.gt.xminact) then
+ xmin=xminact
+ xtemp=vectube(1)
+ endif
+ if (ymin.gt.yminact) then
+ ymin=yminact
+ ytemp=vectube(2)
+ endif
+ enddo
+ vectube(1)=xtemp
+ vectube(2)=ytemp
vectube(1)=vectube(1)-tubecenter(1)
vectube(2)=vectube(2)-tubecenter(2)
C and its 6 power
rdiff6=rdiff**6.0d0
C for vectorization reasons we will sumup at the end to avoid depenence of previous
- enetube(i)=pep_aa_tube/rdiff6**2.0d0-pep_bb_tube/rdiff6
+ enetube(i)=pep_aa_tube/rdiff6**2.0d0+pep_bb_tube/rdiff6
C write(iout,*) "TU13",i,rdiff6,enetube(i)
C print *,rdiff,rdiff6,pep_aa_tube
C pep_aa_tube and pep_bb_tube are precomputed values A=4eps*sigma^12 B=4eps*sigma^6
C now we calculate gradient
- fac=(-12.0d0*pep_aa_tube/rdiff6+
+ fac=(-12.0d0*pep_aa_tube/rdiff6-
& 6.0d0*pep_bb_tube)/rdiff6/rdiff
C write(iout,'(a5,i4,f12.1,3f12.5)') "TU13",i,rdiff6,enetube(i),
C &rdiff,fac
C in UNRES uncomment the line below as GLY has no side-chain...
C .or.(iti.eq.10)
& ) cycle
- vectube(1)=c(1,i+nres)
- vectube(1)=mod(vectube(1),boxxsize)
- if (vectube(1).lt.0) vectube(1)=vectube(1)+boxxsize
- vectube(2)=c(2,i+nres)
- vectube(2)=mod(vectube(2),boxysize)
- if (vectube(2).lt.0) vectube(2)=vectube(2)+boxysize
-
+ xmin=boxxsize
+ ymin=boxysize
+ do j=-1,1
+ vectube(1)=mod((c(1,i+nres)),boxxsize)
+ vectube(1)=vectube(1)+boxxsize*j
+ vectube(2)=mod((c(2,i+nres)),boxysize)
+ vectube(2)=vectube(2)+boxysize*j
+
+ xminact=abs(vectube(1)-tubecenter(1))
+ yminact=abs(vectube(2)-tubecenter(2))
+ if (xmin.gt.xminact) then
+ xmin=xminact
+ xtemp=vectube(1)
+ endif
+ if (ymin.gt.yminact) then
+ ymin=yminact
+ ytemp=vectube(2)
+ endif
+ enddo
+ vectube(1)=xtemp
+ vectube(2)=ytemp
+C write(iout,*), "tututu", vectube(1),tubecenter(1),vectube(2),
+C & tubecenter(2)
vectube(1)=vectube(1)-tubecenter(1)
vectube(2)=vectube(2)-tubecenter(2)
C now normalize vector
vectube(1)=vectube(1)/tub_r
vectube(2)=vectube(2)/tub_r
+
C calculte rdiffrence between r and r0
rdiff=tub_r-tubeR0
C and its 6 power
C for vectorization reasons we will sumup at the end to avoid depenence of previous
sc_aa_tube=sc_aa_tube_par(iti)
sc_bb_tube=sc_bb_tube_par(iti)
- enetube(i+nres)=sc_aa_tube/rdiff6**2.0d0-sc_bb_tube/rdiff6
+ enetube(i+nres)=sc_aa_tube/rdiff6**2.0d0+sc_bb_tube/rdiff6
C pep_aa_tube and pep_bb_tube are precomputed values A=4eps*sigma^12 B=4eps*sigma^6
C now we calculate gradient
- fac=-12.0d0*sc_aa_tube/rdiff6**2.0d0/rdiff+
+ fac=-12.0d0*sc_aa_tube/rdiff6**2.0d0/rdiff-
& 6.0d0*sc_bb_tube/rdiff6/rdiff
C now direction of gg_tube vector
do j=1,3
C and its 6 power
rdiff6=rdiff**6.0d0
C for vectorization reasons we will sumup at the end to avoid depenence of previous
- enetube(i)=pep_aa_tube/rdiff6**2.0d0-pep_bb_tube/rdiff6
+ enetube(i)=pep_aa_tube/rdiff6**2.0d0+pep_bb_tube/rdiff6
C write(iout,*) "TU13",i,rdiff6,enetube(i)
C print *,rdiff,rdiff6,pep_aa_tube
C pep_aa_tube and pep_bb_tube are precomputed values A=4eps*sigma^12 B=4eps*sigma^6
C now we calculate gradient
- fac=(-12.0d0*pep_aa_tube/rdiff6+
+ fac=(-12.0d0*pep_aa_tube/rdiff6-
& 6.0d0*pep_bb_tube)/rdiff6/rdiff
C write(iout,'(a5,i4,f12.1,3f12.5)') "TU13",i,rdiff6,enetube(i),
C &rdiff,fac
C for vectorization reasons we will sumup at the end to avoid depenence of previous
sc_aa_tube=sc_aa_tube_par(iti)
sc_bb_tube=sc_bb_tube_par(iti)
- enetube(i+nres)=(sc_aa_tube/rdiff6**2.0d0-sc_bb_tube/rdiff6)
+ enetube(i+nres)=(sc_aa_tube/rdiff6**2.0d0+sc_bb_tube/rdiff6)
& *sstube+enetube(i+nres)
C pep_aa_tube and pep_bb_tube are precomputed values A=4eps*sigma^12 B=4eps*sigma^6
C now we calculate gradient
- fac=(-12.0d0*sc_aa_tube/rdiff6**2.0d0/rdiff+
+ fac=(-12.0d0*sc_aa_tube/rdiff6**2.0d0/rdiff-
& 6.0d0*sc_bb_tube/rdiff6/rdiff)*sstube
C now direction of gg_tube vector
do j=1,3