projects
/
unres.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
first and last GLY in seq gives correct energy in unres and wham
[unres.git]
/
source
/
wham
/
src
/
energy_p_new.F
diff --git
a/source/wham/src/energy_p_new.F
b/source/wham/src/energy_p_new.F
index
9ea237d
..
652749c
100644
(file)
--- a/
source/wham/src/energy_p_new.F
+++ b/
source/wham/src/energy_p_new.F
@@
-154,7
+154,7
@@
c write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
energia(19)=esccor
energia(20)=edihcnstr
energia(21)=evdw_t
energia(19)=esccor
energia(20)=edihcnstr
energia(21)=evdw_t
- if (dyn_ss) call dyn_set_nss
+c if (dyn_ss) call dyn_set_nss
c detecting NaNQ
#ifdef ISNAN
#ifdef AIX
c detecting NaNQ
#ifdef ISNAN
#ifdef AIX
@@
-803,8
+803,16
@@
C
do iint=1,nint_gr(i)
do j=istart(i,iint),iend(i,iint)
C in case of diagnostics write (iout,*) "TU SZUKAJ",i,j,dyn_ss_mask(i),dyn_ss_mask(j)
do iint=1,nint_gr(i)
do j=istart(i,iint),iend(i,iint)
C in case of diagnostics write (iout,*) "TU SZUKAJ",i,j,dyn_ss_mask(i),dyn_ss_mask(j)
+C /06/28/2013 Adasko: In case of dyn_ss - dynamic disulfide bond
+C formation no electrostatic interactions should be calculated. If it
+C would be allowed NaN would appear
IF (dyn_ss_mask(i).and.dyn_ss_mask(j)) THEN
IF (dyn_ss_mask(i).and.dyn_ss_mask(j)) THEN
+C /06/28/2013 Adasko: dyn_ss_mask is logical statement wheather this Cys
+C residue can or cannot form disulfide bond. There is still bug allowing
+C Cys...Cys...Cys bond formation
call dyn_ssbond_ene(i,j,evdwij)
call dyn_ssbond_ene(i,j,evdwij)
+C /06/28/2013 Adasko: dyn_ssbond_ene is dynamic SS bond foration energy
+C function in ssMD.F
evdw=evdw+evdwij
c if (energy_dec) write (iout,'(a6,2i5,0pf7.3,a3)')
c & 'evdw',i,j,evdwij,' ss'
evdw=evdw+evdwij
c if (energy_dec) write (iout,'(a6,2i5,0pf7.3,a3)')
c & 'evdw',i,j,evdwij,' ss'
@@
-3096,7
+3104,7
@@
c
include 'COMMON.FFIELD'
include 'COMMON.CONTROL'
double precision u(3),ud(3)
include 'COMMON.FFIELD'
include 'COMMON.CONTROL'
double precision u(3),ud(3)
- lprn=.false.
+ logical :: lprn=.false.
estr=0.0d0
do i=nnt+1,nct
diff = vbld(i)-vbldp0
estr=0.0d0
do i=nnt+1,nct
diff = vbld(i)-vbldp0
@@
-3429,6
+3437,8
@@
C
etheta=0.0D0
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
do i=ithet_start,ithet_end
etheta=0.0D0
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
do i=ithet_start,ithet_end
+ if ((itype(i-1).eq.ntyp1).or.(itype(i-2).eq.ntyp1).or.
+ &(itype(i).eq.ntyp1)) cycle
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
dethetai=0.0d0
dephii=0.0d0
dephii1=0.0d0
@@
-3438,7
+3448,7
@@
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
coskt(k)=dcos(k*theti2)
sinkt(k)=dsin(k*theti2)
enddo
- if (i.gt.3) 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
#ifdef OSF
phii=phi(i)
if (phii.ne.phii) phii=150.0
@@
-3452,13
+3462,13
@@
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
enddo
else
phii=0.0d0
enddo
else
phii=0.0d0
- ityp1=nthetyp+1
+ ityp1=ithetyp(itype(i-2))
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
do k=1,nsingle
cosph1(k)=0.0d0
sinph1(k)=0.0d0
enddo
endif
- if (i.lt.nres) then
+ if (i.lt.nres .and. itype(i+1).ne.ntyp1) then
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
#ifdef OSF
phii1=phi(i+1)
if (phii1.ne.phii1) phii1=150.0
@@
-3473,7
+3483,7
@@
c write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
enddo
else
phii1=0.0d0
enddo
else
phii1=0.0d0
- ityp3=nthetyp+1
+ ityp3=ithetyp(itype(i))
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
do k=1,nsingle
cosph2(k)=0.0d0
sinph2(k)=0.0d0
@@
-3582,10
+3592,13
@@
c call flush(iout)
enddo
enddo
10 continue
enddo
enddo
10 continue
- if (lprn1) write (iout,'(i2,3f8.1,9h ethetai ,f10.5)')
- & i,theta(i)*rad2deg,phii*rad2deg,
+c lprn1=.true.
+ if (lprn1) write (iout,'(a4,i2,3f8.1,9h ethetai ,f10.5)')
+ & 'ebe',i,theta(i)*rad2deg,phii*rad2deg,
& phii1*rad2deg,ethetai
& phii1*rad2deg,ethetai
+c lprn1=.false.
etheta=etheta+ethetai
etheta=etheta+ethetai
+
if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
gloc(nphi+i-2,icg)=wang*dethetai
if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
gloc(nphi+i-2,icg)=wang*dethetai
@@
-4557,6
+4570,8
@@
c write (iout,*) "EBACK_SC_COR",itau_start,itau_end,nterm_sccor
esccor=0.0D0
do i=itau_start,itau_end
esccor_ii=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)
isccori=isccortyp(itype(i-2))
isccori1=isccortyp(itype(i-1))
phii=phi(i)
@@
-4590,6
+4605,9
@@
c 3 = SC...Ca...Ca...SCi
cosphi=dcos(j*tauangle(intertyp,i))
sinphi=dsin(j*tauangle(intertyp,i))
esccor=esccor+v1ij*cosphi+v2ij*sinphi
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
gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
enddo
gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci