- subroutine store_parm(iparm)
+ subroutine store_parm(iparm)
C
C Store parameters of set IPARM
C valence angles and the side chains and energy parameters.
include 'COMMON.SCROT'
include 'COMMON.SCCOR'
include 'COMMON.ALLPARM'
- integer i,j,k,l,m,mm,iparm
+ integer i,ii,j,k,l,m,mm,iparm,ichir1,ichir2,iblock,iii
c Store weights
ww_all(1,iparm)=wsc
ww_all(16,iparm)=wvdwpp
ww_all(17,iparm)=wbond
ww_all(19,iparm)=wsccor
+ ww_all(22,iparm)=wliptran
c Store bond parameters
vbldp0_all(iparm)=vbldp0
akp_all(iparm)=akp
enddo
c Store bond angle parameters
#ifdef CRYST_THETA
- do i=1,ntyp
+ do i=-ntyp,ntyp
a0thet_all(i,iparm)=a0thet(i)
+ do ichir1=-1,1
+ do ichir2=-1,1
do j=1,2
- athet_all(j,i,iparm)=athet(j,i)
- bthet_all(j,i,iparm)=bthet(j,i)
+ athet_all(j,i,ichir1,ichir2,iparm)=athet(j,i,ichir1,ichir2)
+ bthet_all(j,i,ichir1,ichir2,iparm)=bthet(j,i,ichir1,ichir2)
+ enddo
+ enddo
enddo
do j=0,3
polthet_all(j,i,iparm)=polthet(j,i)
nsingle_all(iparm)=nsingle
ndouble_all(iparm)=ndouble
nntheterm_all(iparm)=nntheterm
- do i=1,ntyp1
+ do i=-ntyp,ntyp
ithetyp_all(i,iparm)=ithetyp(i)
enddo
- do i=1,maxthetyp1
- do j=1,maxthetyp1
- do k=1,maxthetyp1
- aa0thet_all(i,j,k,iparm)=aa0thet(i,j,k)
+ do iblock=1,2
+ do i=-maxthetyp1,maxthetyp1
+ do j=-maxthetyp1,maxthetyp1
+ do k=-maxthetyp1,maxthetyp1
+ aa0thet_all(i,j,k,iblock,iparm)=aa0thet(i,j,k,iblock)
do l=1,ntheterm
- aathet_all(l,i,j,k,iparm)=aathet(l,i,j,k)
+ aathet_all(l,i,j,k,iblock,iparm)=aathet(l,i,j,k,iblock)
enddo
do l=1,ntheterm2
do m=1,nsingle
- bbthet_all(m,l,i,j,k,iparm)=bbthet(m,l,i,j,k)
- ccthet_all(m,l,i,j,k,iparm)=ccthet(m,l,i,j,k)
- ddthet_all(m,l,i,j,k,iparm)=ddthet(m,l,i,j,k)
- eethet_all(m,l,i,j,k,iparm)=eethet(m,l,i,j,k)
+ bbthet_all(m,l,i,j,k,iblock,iparm)=
+ & bbthet(m,l,i,j,k,iblock)
+ ccthet_all(m,l,i,j,k,iblock,iparm)=
+ &ccthet(m,l,i,j,k,iblock)
+ ddthet_all(m,l,i,j,k,iblock,iparm)=
+ &ddthet(m,l,i,j,k,iblock)
+ eethet_all(m,l,i,j,k,iblock,iparm)=
+ &eethet(m,l,i,j,k,iblock)
enddo
enddo
do l=1,ntheterm3
do m=1,ndouble
do mm=1,ndouble
- ffthet_all(mm,m,l,i,j,k,iparm)=ffthet(mm,m,l,i,j,k)
- ggthet_all(mm,m,l,i,j,k,iparm)=ggthet(mm,m,l,i,j,k)
+ if (iblock.eq.1) then
+ ffthet_all1(mm,m,l,i,j,k,iparm)=
+ & ffthet(mm,m,l,i,j,k,iblock)
+ ggthet_all1(mm,m,l,i,j,k,iparm)=
+ &ggthet(mm,m,l,i,j,k,iblock)
+ else
+ ffthet_all2(mm,m,l,i,j,k,iparm)=
+ & ffthet(mm,m,l,i,j,k,iblock)
+ ggthet_all2(mm,m,l,i,j,k,iparm)=
+ &ggthet(mm,m,l,i,j,k,iblock)
+ endif
enddo
enddo
enddo
enddo
enddo
enddo
+ enddo
#endif
#ifdef CRYST_SC
c Store the sidechain rotamer parameters
- do i=1,ntyp
- nlob_all(i,iparm)=nlob(i)
- do j=1,nlob(i)
- bsc_all(j,i,iparm)=bsc(j,i)
+ do i=-ntyp,ntyp
+ iii=iabs(i)
+cc write (iout,*) i,"storeparm1"
+ if (i.eq.0) cycle
+ nlob_all(iii,iparm)=nlob(iii)
+ do j=1,nlob(iii)
+ bsc_all(j,iii,iparm)=bsc(j,iii)
do k=1,3
censc_all(k,j,i,iparm)=censc(k,j,i)
enddo
enddo
#endif
c Store the torsional parameters
- do i=1,ntortyp
- do j=1,ntortyp
- v0_all(i,j,iparm)=v0(i,j)
- nterm_all(i,j,iparm)=nterm(i,j)
- nlor_all(i,j,iparm)=nlor(i,j)
- do k=1,nterm(i,j)
- v1_all(k,i,j,iparm)=v1(k,i,j)
- v2_all(k,i,j,iparm)=v2(i,i,j)
+ do iblock=1,2
+ do i=-ntortyp+1,ntortyp-1
+ do j=-ntortyp+1,ntortyp-1
+ v0_all(i,j,iblock,iparm)=v0(i,j,iblock)
+ nterm_all(i,j,iblock,iparm)=nterm(i,j,iblock)
+ nlor_all(i,j,iblock,iparm)=nlor(i,j,iblock)
+ do k=1,nterm(i,j,iblock)
+ v1_all(k,i,j,iblock,iparm)=v1(k,i,j,iblock)
+ v2_all(k,i,j,iblock,iparm)=v2(k,i,j,iblock)
enddo
- do k=1,nlor(i,j)
+ do k=1,nlor(i,j,iblock)
vlor1_all(k,i,j,iparm)=vlor1(k,i,j)
vlor2_all(k,i,j,iparm)=vlor2(k,i,j)
vlor3_all(k,i,j,iparm)=vlor3(k,i,j)
enddo
enddo
+ enddo
enddo
c Store the double torsional parameters
- do i=1,ntortyp
- do j=1,ntortyp
- do k=1,ntortyp
- ntermd1_all(i,j,k,iparm)=ntermd_1(i,j,k)
- ntermd2_all(i,j,k,iparm)=ntermd_2(i,j,k)
- do l=1,ntermd_1(i,j,k)
- v1c_all(1,l,i,j,k,iparm)=v1c(1,l,i,j,k)
- v1c_all(2,l,i,j,k,iparm)=v1c(2,l,i,j,k)
- v2c_all(1,l,i,j,k,iparm)=v2c(1,l,i,j,k)
- v2c_all(2,l,i,j,k,iparm)=v2c(2,l,i,j,k)
+ do iblock=1,2
+ do i=-ntortyp+1,ntortyp-1
+ do j=-ntortyp+1,ntortyp-1
+ do k=-ntortyp+1,ntortyp-1
+ ntermd1_all(i,j,k,iblock,iparm)=ntermd_1(i,j,k,iblock)
+ ntermd2_all(i,j,k,iblock,iparm)=ntermd_2(i,j,k,iblock)
+ do l=1,ntermd_1(i,j,k,iblock)
+ v1c_all(1,l,i,j,k,iblock,iparm)=v1c(1,l,i,j,k,iblock)
+ v1c_all(2,l,i,j,k,iblock,iparm)=v1c(2,l,i,j,k,iblock)
+ v2c_all(1,l,i,j,k,iblock,iparm)=v2c(1,l,i,j,k,iblock)
+ v2c_all(2,l,i,j,k,iblock,iparm)=v2c(2,l,i,j,k,iblock)
enddo
- do l=1,ntermd_2(i,j,k)
- do m=1,ntermd_2(i,j,k)
- v2s_all(l,m,i,j,k,iparm)=v2s(l,m,i,j,k)
+ do l=1,ntermd_2(i,j,k,iblock)
+ do m=1,ntermd_2(i,j,k,iblock)
+ v2s_all(l,m,i,j,k,iblock,iparm)=v2s(l,m,i,j,k,iblock)
enddo
enddo
enddo
enddo
enddo
+ enddo
c Store parameters of the cumulants
- do i=1,nloctyp
+#ifdef NEWCORR
+ do i=-nloctyp+1,nloctyp-1
+ do ii=1,3
+ do j=1,2
+ bnew1_all(ii,j,i,iparm)=bnew1(ii,j,i)
+ bnew2_all(ii,j,i,iparm)=bnew2(ii,j,i)
+ enddo
+ enddo
do j=1,2
- b1_all(j,i,iparm)=b1(j,i)
- b1tilde_all(j,i,iparm)=b1tilde(j,i)
- b2_all(j,i,iparm)=b2(j,i)
+ do k=1,3
+ ccnew_all(k,j,i,iparm)=ccnew(k,j,i)
+ ddnew_all(k,j,i,iparm)=ddnew(k,j,i)
+ enddo
+ enddo
+ do ii=1,2
+ do j=1,2
+ do k=1,2
+ eenew_all(k,j,ii,i,iparm)=eenew(k,j,ii,i)
+ enddo
+ enddo
+ enddo
+ do ii=1,2
+ e0new_all(ii,i,iparm)=e0new(ii,i)
+ enddo
+ enddo
+#else
+ do i=-nloctyp,nloctyp
+ do j=1,5
+ b_all(j,i,iparm)=b(j,i)
enddo
do j=1,2
do k=1,2
- cc_all(k,j,i,iparm)=cc(k,j,i)
- ctilde_all(k,j,i,iparm)=ctilde(k,j,i)
- dd_all(k,j,i,iparm)=dd(k,j,i)
- dtilde_all(k,j,i,iparm)=dtilde(k,j,i)
- ee_all(k,j,i,iparm)=ee(k,j,i)
+ ccold_all(k,j,i,iparm)=ccold(k,j,i)
+ ddold_all(k,j,i,iparm)=ddold(k,j,i)
+ eeold_all(k,j,i,iparm)=eeold(k,j,i)
enddo
enddo
enddo
+#endif
c Store the parameters of electrostatic interactions
do i=1,2
do j=1,2
c Store sidechain parameters
do i=1,ntyp
do j=1,ntyp
- aa_all(j,i,iparm)=aa(j,i)
- bb_all(j,i,iparm)=bb(j,i)
+ aa_aq_all(j,i,iparm)=aa_aq(j,i)
+ bb_aq_all(j,i,iparm)=bb_aq(j,i)
+ aa_lip_all(j,i,iparm)=aa_lip(j,i)
+ bb_lip_all(j,i,iparm)=bb_lip(j,i)
r0_all(j,i,iparm)=r0(j,i)
sigma_all(j,i,iparm)=sigma(j,i)
chi_all(j,i,iparm)=chi(j,i)
augm_all(j,i,iparm)=augm(j,i)
eps_all(j,i,iparm)=eps(j,i)
+ epslip_all(j,i,iparm)=epslip(j,i)
enddo
enddo
do i=1,ntyp
v2ss_all(iparm)=v2ss
v3ss_all(iparm)=v3ss
c Store SC-backbone correlation parameters
- nterm_sccor_all(iparm)=nterm_sccor
- do i=1,20
- do j=1,20
- do k=1,nterm_sccor
- v1sccor_all(k,i,j,iparm)=v1sccor(k,i,j)
- v2sccor_all(k,i,j,iparm)=v2sccor(k,i,j)
+ do i=-nsccortyp,nsccortyp
+ do j=-nsccortyp,nsccortyp
+
+ nterm_sccor_all(j,i,iparm)=nterm_sccor(j,i)
+c do i=1,20
+c do j=1,20
+ do l=1,3
+ do k=1,nterm_sccor(j,i)
+ v1sccor_all(k,l,j,i,iparm)=v1sccor(k,l,j,i)
+ v2sccor_all(k,l,j,i,iparm)=v2sccor(k,l,j,i)
+ enddo
enddo
enddo
enddo
include 'COMMON.SCROT'
include 'COMMON.SCCOR'
include 'COMMON.ALLPARM'
- integer i,j,k,l,m,mm,iparm
+ integer i,ii,j,k,l,m,mm,iparm,ichir1,ichir2,iblock,iii
c Restore weights
wsc=ww_all(1,iparm)
wvdwpp=ww_all(16,iparm)
wbond=ww_all(17,iparm)
wsccor=ww_all(19,iparm)
+ wliptran=ww_all(22,iparm)
c Restore bond parameters
vbldp0=vbldp0_all(iparm)
akp=akp_all(iparm)
enddo
c Restore bond angle parameters
#ifdef CRYST_THETA
- do i=1,ntyp
+ do i=-ntyp,ntyp
a0thet(i)=a0thet_all(i,iparm)
+ do ichir1=-1,1
+ do ichir2=-1,1
do j=1,2
- athet(j,i)=athet_all(j,i,iparm)
- bthet(j,i)=bthet_all(j,i,iparm)
+ athet(j,i,ichir1,ichir2)=athet_all(j,i,ichir1,ichir2,iparm)
+ bthet(j,i,ichir1,ichir2)=bthet_all(j,i,ichir1,ichir2,iparm)
+ enddo
+ enddo
enddo
do j=0,3
polthet(j,i)=polthet_all(j,i,iparm)
nsingle=nsingle_all(iparm)
ndouble=ndouble_all(iparm)
nntheterm=nntheterm_all(iparm)
- do i=1,ntyp1
+ do i=-ntyp,ntyp
ithetyp(i)=ithetyp_all(i,iparm)
enddo
- do i=1,maxthetyp1
- do j=1,maxthetyp1
- do k=1,maxthetyp1
- aa0thet(i,j,k)=aa0thet_all(i,j,k,iparm)
+ do iblock=1,2
+ do i=-maxthetyp1,maxthetyp1
+ do j=-maxthetyp1,maxthetyp1
+ do k=-maxthetyp1,maxthetyp1
+ aa0thet(i,j,k,iblock)=aa0thet_all(i,j,k,iblock,iparm)
do l=1,ntheterm
- aathet(l,i,j,k)=aathet_all(l,i,j,k,iparm)
+ aathet(l,i,j,k,iblock)=aathet_all(l,i,j,k,iblock,iparm)
enddo
do l=1,ntheterm2
do m=1,nsingle
- bbthet(m,l,i,j,k)=bbthet_all(m,l,i,j,k,iparm)
- ccthet(m,l,i,j,k)=ccthet_all(m,l,i,j,k,iparm)
- ddthet(m,l,i,j,k)=ddthet_all(m,l,i,j,k,iparm)
- eethet(m,l,i,j,k)=eethet_all(m,l,i,j,k,iparm)
+ bbthet(m,l,i,j,k,iblock)=
+ &bbthet_all(m,l,i,j,k,iblock,iparm)
+ ccthet(m,l,i,j,k,iblock)=
+ &ccthet_all(m,l,i,j,k,iblock,iparm)
+ ddthet(m,l,i,j,k,iblock)=
+ &ddthet_all(m,l,i,j,k,iblock,iparm)
+ eethet(m,l,i,j,k,iblock)=
+ &eethet_all(m,l,i,j,k,iblock,iparm)
enddo
enddo
do l=1,ntheterm3
do m=1,ndouble
do mm=1,ndouble
- ffthet(mm,m,l,i,j,k)=ffthet_all(mm,m,l,i,j,k,iparm)
- ggthet(mm,m,l,i,j,k)=ggthet_all(mm,m,l,i,j,k,iparm)
+ if (iblock.eq.1) then
+ ffthet(mm,m,l,i,j,k,iblock)=
+ &ffthet_all1(mm,m,l,i,j,k,iparm)
+ ggthet(mm,m,l,i,j,k,iblock)=
+ &ggthet_all1(mm,m,l,i,j,k,iparm)
+ else
+ ffthet(mm,m,l,i,j,k,iblock)=
+ &ffthet_all2(mm,m,l,i,j,k,iparm)
+ ggthet(mm,m,l,i,j,k,iblock)=
+ &ggthet_all2(mm,m,l,i,j,k,iparm)
+ endif
enddo
enddo
enddo
enddo
enddo
enddo
+ enddo
#endif
c Restore the sidechain rotamer parameters
#ifdef CRYST_SC
- do i=1,ntyp
- nlob(i)=nlob_all(i,iparm)
- do j=1,nlob(i)
- bsc(j,i)=bsc_all(j,i,iparm)
+ do i=-ntyp,ntyp
+ if (i.eq.0) cycle
+ iii=iabs(i)
+ nlob(iii)=nlob_all(iii,iparm)
+ do j=1,nlob(iii)
+ bsc(j,iii)=bsc_all(j,iii,iparm)
do k=1,3
censc(k,j,i)=censc_all(k,j,i,iparm)
enddo
enddo
#endif
c Restore the torsional parameters
- do i=1,ntortyp
- do j=1,ntortyp
- v0(i,j)=v0_all(i,j,iparm)
- nterm(i,j)=nterm_all(i,j,iparm)
- nlor(i,j)=nlor_all(i,j,iparm)
- do k=1,nterm(i,j)
- v1(k,i,j)=v1_all(k,i,j,iparm)
- v2(i,i,j)=v2_all(k,i,j,iparm)
+ do iblock=1,2
+ do i=-ntortyp+1,ntortyp-1
+ do j=-ntortyp+1,ntortyp-1
+ v0(i,j,iblock)=v0_all(i,j,iblock,iparm)
+ nterm(i,j,iblock)=nterm_all(i,j,iblock,iparm)
+ nlor(i,j,iblock)=nlor_all(i,j,iblock,iparm)
+ do k=1,nterm(i,j,iblock)
+ v1(k,i,j,iblock)=v1_all(k,i,j,iblock,iparm)
+ v2(k,i,j,iblock)=v2_all(k,i,j,iblock,iparm)
enddo
- do k=1,nlor(i,j)
+ do k=1,nlor(i,j,iblock)
vlor1(k,i,j)=vlor1_all(k,i,j,iparm)
vlor2(k,i,j)=vlor2_all(k,i,j,iparm)
vlor3(k,i,j)=vlor3_all(k,i,j,iparm)
enddo
enddo
enddo
+ enddo
c Restore the double torsional parameters
- do i=1,ntortyp
- do j=1,ntortyp
- do k=1,ntortyp
- ntermd_1(i,j,k)=ntermd1_all(i,j,k,iparm)
- ntermd_2(i,j,k)=ntermd2_all(i,j,k,iparm)
- do l=1,ntermd_1(i,j,k)
- v1c(1,l,i,j,k)=v1c_all(1,l,i,j,k,iparm)
- v1c(2,l,i,j,k)=v1c_all(2,l,i,j,k,iparm)
- v2c(1,l,i,j,k)=v2c_all(1,l,i,j,k,iparm)
- v2c(2,l,i,j,k)=v2c_all(2,l,i,j,k,iparm)
+ do iblock=1,2
+ do i=-ntortyp+1,ntortyp-1
+ do j=-ntortyp+1,ntortyp-1
+ do k=-ntortyp+1,ntortyp-1
+ ntermd_1(i,j,k,iblock)=ntermd1_all(i,j,k,iblock,iparm)
+ ntermd_2(i,j,k,iblock)=ntermd2_all(i,j,k,iblock,iparm)
+ do l=1,ntermd_1(i,j,k,iblock)
+ v1c(1,l,i,j,k,iblock)=v1c_all(1,l,i,j,k,iblock,iparm)
+ v1c(2,l,i,j,k,iblock)=v1c_all(2,l,i,j,k,iblock,iparm)
+ v2c(1,l,i,j,k,iblock)=v2c_all(1,l,i,j,k,iblock,iparm)
+ v2c(2,l,i,j,k,iblock)=v2c_all(2,l,i,j,k,iblock,iparm)
enddo
- do l=1,ntermd_2(i,j,k)
- do m=1,ntermd_2(i,j,k)
- v2s(l,m,i,j,k)=v2s_all(l,m,i,j,k,iparm)
+ do l=1,ntermd_2(i,j,k,iblock)
+ do m=1,ntermd_2(i,j,k,iblock)
+ v2s(l,m,i,j,k,iblock)=v2s_all(l,m,i,j,k,iblock,iparm)
enddo
enddo
enddo
enddo
enddo
+ enddo
c Restore parameters of the cumulants
- do i=1,nloctyp
+#ifdef NEWCORR
+ do i=-nloctyp+1,nloctyp-1
+ do ii=1,3
+ do j=1,2
+ bnew1(ii,j,i)=bnew1_all(ii,j,i,iparm)
+ bnew2(ii,j,i)=bnew2_all(ii,j,i,iparm)
+ enddo
+ enddo
do j=1,2
- b1(j,i)=b1_all(j,i,iparm)
- b1tilde(j,i)=b1tilde_all(j,i,iparm)
- b2(j,i)=b2_all(j,i,iparm)
+ do k=1,3
+ ccnew(k,j,i)=ccnew_all(k,j,i,iparm)
+ ddnew(k,j,i)=ddnew_all(k,j,i,iparm)
+ enddo
+ enddo
+ do ii=1,2
+ do j=1,2
+ do k=1,2
+ eenew(k,j,ii,i)=eenew_all(k,j,ii,i,iparm)
+ enddo
+ enddo
+ enddo
+ do ii=1,2
+ e0new(ii,i)=e0new_all(ii,i,iparm)
+ enddo
+ enddo
+#else
+ do i=-nloctyp,nloctyp
+ do j=1,5
+ b(j,i)=b_all(j,i,iparm)
enddo
do j=1,2
do k=1,2
- cc(k,j,i)=cc_all(k,j,i,iparm)
- ctilde(k,j,i)=ctilde_all(k,j,i,iparm)
- dd(k,j,i)=dd_all(k,j,i,iparm)
- dtilde(k,j,i)=dtilde_all(k,j,i,iparm)
- ee(k,j,i)=ee_all(k,j,i,iparm)
+ ccold(k,j,i)=ccold_all(k,j,i,iparm)
+ ddold(k,j,i)=ddold_all(k,j,i,iparm)
+ eeold(k,j,i)=eeold_all(k,j,i,iparm)
enddo
enddo
enddo
+#endif
c Restore the parameters of electrostatic interactions
do i=1,2
do j=1,2
c Restore sidechain parameters
do i=1,ntyp
do j=1,ntyp
- aa(j,i)=aa_all(j,i,iparm)
- bb(j,i)=bb_all(j,i,iparm)
+ aa_aq(j,i)=aa_aq_all(j,i,iparm)
+ bb_aq(j,i)=bb_aq_all(j,i,iparm)
+ aa_lip(j,i)=aa_lip_all(j,i,iparm)
+ bb_lip(j,i)=bb_lip_all(j,i,iparm)
r0(j,i)=r0_all(j,i,iparm)
sigma(j,i)=sigma_all(j,i,iparm)
chi(j,i)=chi_all(j,i,iparm)
augm(j,i)=augm_all(j,i,iparm)
eps(j,i)=eps_all(j,i,iparm)
+ epslip(j,i)=epslip_all(j,i,iparm)
enddo
enddo
do i=1,ntyp
v2ss=v2ss_all(iparm)
v3ss=v3ss_all(iparm)
c Restore SC-backbone correlation parameters
- nterm_sccor=nterm_sccor_all(iparm)
- do i=1,20
- do j=1,20
- do k=1,nterm_sccor
- v1sccor(k,i,j)=v1sccor_all(k,i,j,iparm)
- v2sccor(k,i,j)=v2sccor_all(k,i,j,iparm)
+ do i=-nsccortyp,nsccortyp
+ do j=-nsccortyp,nsccortyp
+
+ nterm_sccor(j,i)=nterm_sccor_all(j,i,iparm)
+ do l=1,3
+ do k=1,nterm_sccor(j,i)
+ v1sccor(k,l,j,i)=v1sccor_all(k,l,j,i,iparm)
+ v2sccor(k,l,j,i)=v2sccor_all(k,l,j,i,iparm)
+ enddo
enddo
enddo
enddo