include 'COMMON.SCROT'
include 'COMMON.SCCOR'
include 'COMMON.ALLPARM'
- integer i,j,k,l,m,mm,iparm
+ integer i,j,k,l,m,mm,iparm,ichir1,ichir2,iblock,iii
c Store weights
ww_all(1,iparm)=wsc
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)
#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)
+ 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)
- enddo
- do k=1,nlor(i,j)
- 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
+ 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,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)
- 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)
- enddo
- enddo
- enddo
- enddo
+ 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,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
+ do i=-nloctyp,nloctyp
do j=1,2
b1_all(j,i,iparm)=b1(j,i)
b1tilde_all(j,i,iparm)=b1tilde(j,i)
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=1,nsccortyp
+ do j=1,nsccortyp
+
+ nterm_sccor_all(j,i,iparm)=nterm_sccor(j,i)
+ 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
return
include 'COMMON.SCROT'
include 'COMMON.SCCOR'
include 'COMMON.ALLPARM'
- integer i,j,k,l,m,mm,iparm
+ integer i,j,k,l,m,mm,iparm,ichir1,ichir2,iblock,iii
c Restore weights
wsc=ww_all(1,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)
- enddo
+ 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)
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)
- enddo
- do k=1,nlor(i,j)
- 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
+ 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,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)
- 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)
- enddo
- enddo
- enddo
- enddo
+ 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,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
+ do i=-nloctyp,nloctyp
do j=1,2
b1(j,i)=b1_all(j,i,iparm)
b1tilde(j,i)=b1tilde_all(j,i,iparm)
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=1,nsccortyp
+ do j=1,nsccortyp
+
+ nterm_sccor(j,i)=nterm_sccor_all(j,i,iparm)
+c do i=1,20
+c do j=1,20
+ 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
return