subroutine store_parm(iparm) C C Store parameters of set IPARM C valence angles and the side chains and energy parameters. C implicit none include 'DIMENSIONS' include 'DIMENSIONS.ZSCOPT' include 'DIMENSIONS.FREE' include 'COMMON.IOUNITS' include 'COMMON.CHAIN' include 'COMMON.INTERACT' include 'COMMON.GEO' include 'COMMON.LOCAL' include 'COMMON.TORSION' include 'COMMON.FFIELD' include 'COMMON.NAMES' include 'COMMON.SBRIDGE' include 'COMMON.SCROT' include 'COMMON.SCCOR' include 'COMMON.ALLPARM' integer i,j,k,l,m,mm,iparm c Store weights ww_all(1,iparm)=wsc ww_all(2,iparm)=wscp ww_all(3,iparm)=welec ww_all(4,iparm)=wcorr ww_all(5,iparm)=wcorr5 ww_all(6,iparm)=wcorr6 ww_all(7,iparm)=wel_loc ww_all(8,iparm)=wturn3 ww_all(9,iparm)=wturn4 ww_all(10,iparm)=wturn6 ww_all(11,iparm)=wang ww_all(12,iparm)=wscloc ww_all(13,iparm)=wtor ww_all(14,iparm)=wtor_d ww_all(15,iparm)=wstrain ww_all(16,iparm)=wvdwpp ww_all(17,iparm)=wbond ww_all(19,iparm)=wsccor c Store bond parameters vbldp0_all(iparm)=vbldp0 akp_all(iparm)=akp do i=1,ntyp nbondterm_all(i,iparm)=nbondterm(i) do j=1,nbondterm(i) vbldsc0_all(j,i,iparm)=vbldsc0(j,i) aksc_all(j,i,iparm)=aksc(j,i) abond0_all(j,i,iparm)=abond0(j,i) enddo enddo c Store bond angle parameters #ifdef CRYST_THETA do i=1,ntyp a0thet_all(i,iparm)=a0thet(i) do j=1,2 athet_all(j,i,iparm)=athet(j,i) bthet_all(j,i,iparm)=bthet(j,i) enddo do j=0,3 polthet_all(j,i,iparm)=polthet(j,i) enddo do j=1,3 gthet_all(j,i,iparm)=gthet(j,i) enddo theta0_all(i,iparm)=theta0(i) sig0_all(i,iparm)=sig0(i) sigc0_all(i,iparm)=sigc0(i) enddo #else nthetyp_all(iparm)=nthetyp ntheterm_all(iparm)=ntheterm ntheterm2_all(iparm)=ntheterm2 ntheterm3_all(iparm)=ntheterm3 nsingle_all(iparm)=nsingle ndouble_all(iparm)=ndouble nntheterm_all(iparm)=nntheterm do i=1,ntyp1 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 l=1,ntheterm aathet_all(l,i,j,k,iparm)=aathet(l,i,j,k) 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) 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) 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 k=1,3 censc_all(k,j,i,iparm)=censc(k,j,i) enddo do k=1,3 do l=1,3 gaussc_all(l,k,j,i,iparm)=gaussc(l,k,j,i) enddo enddo enddo enddo #else do i=1,ntyp do j=1,65 sc_parmin_all(j,i,iparm)=sc_parmin(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 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 enddo c Store parameters of the cumulants do i=1,nloctyp 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) 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) enddo enddo enddo c Store the parameters of electrostatic interactions do i=1,2 do j=1,2 app_all(j,i,iparm)=app(j,i) bpp_all(j,i,iparm)=bpp(j,i) ael6_all(j,i,iparm)=ael6(j,i) ael3_all(j,i,iparm)=ael3(j,i) enddo enddo 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) 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) enddo enddo do i=1,ntyp chip_all(i,iparm)=chip(i) alp_all(i,iparm)=alp(i) enddo c Store the SCp parameters do i=1,ntyp do j=1,2 aad_all(i,j,iparm)=aad(i,j) bad_all(i,j,iparm)=bad(i,j) enddo enddo c Store disulfide-bond parameters ebr_all(iparm)=ebr d0cm_all(iparm)=d0cm akcm_all(iparm)=akcm akth_all(iparm)=akth akct_all(iparm)=akct v1ss_all(iparm)=v1ss 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) enddo enddo enddo return end c-------------------------------------------------------------------------- subroutine restore_parm(iparm) C C Store parameters of set IPARM C valence angles and the side chains and energy parameters. C implicit none include 'DIMENSIONS' include 'DIMENSIONS.ZSCOPT' include 'DIMENSIONS.FREE' include 'COMMON.IOUNITS' include 'COMMON.CHAIN' include 'COMMON.INTERACT' include 'COMMON.GEO' include 'COMMON.LOCAL' include 'COMMON.TORSION' include 'COMMON.FFIELD' include 'COMMON.NAMES' include 'COMMON.SBRIDGE' include 'COMMON.SCROT' include 'COMMON.SCCOR' include 'COMMON.ALLPARM' integer i,j,k,l,m,mm,iparm c Restore weights wsc=ww_all(1,iparm) wscp=ww_all(2,iparm) welec=ww_all(3,iparm) wcorr=ww_all(4,iparm) wcorr5=ww_all(5,iparm) wcorr6=ww_all(6,iparm) wel_loc=ww_all(7,iparm) wturn3=ww_all(8,iparm) wturn4=ww_all(9,iparm) wturn6=ww_all(10,iparm) wang=ww_all(11,iparm) wscloc=ww_all(12,iparm) wtor=ww_all(13,iparm) wtor_d=ww_all(14,iparm) wstrain=ww_all(15,iparm) wvdwpp=ww_all(16,iparm) wbond=ww_all(17,iparm) wsccor=ww_all(19,iparm) c Restore bond parameters vbldp0=vbldp0_all(iparm) akp=akp_all(iparm) do i=1,ntyp nbondterm(i)=nbondterm_all(i,iparm) do j=1,nbondterm(i) vbldsc0(j,i)=vbldsc0_all(j,i,iparm) aksc(j,i)=aksc_all(j,i,iparm) abond0(j,i)=abond0_all(j,i,iparm) enddo enddo c Restore bond angle parameters #ifdef CRYST_THETA do i=1,ntyp a0thet(i)=a0thet_all(i,iparm) do j=1,2 athet(j,i)=athet_all(j,i,iparm) bthet(j,i)=bthet_all(j,i,iparm) enddo do j=0,3 polthet(j,i)=polthet_all(j,i,iparm) enddo do j=1,3 gthet(j,i)=gthet_all(j,i,iparm) enddo theta0(i)=theta0_all(i,iparm) sig0(i)=sig0_all(i,iparm) sigc0(i)=sigc0_all(i,iparm) enddo #else nthetyp=nthetyp_all(iparm) ntheterm=ntheterm_all(iparm) ntheterm2=ntheterm2_all(iparm) ntheterm3=ntheterm3_all(iparm) nsingle=nsingle_all(iparm) ndouble=ndouble_all(iparm) nntheterm=nntheterm_all(iparm) do i=1,ntyp1 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 l=1,ntheterm aathet(l,i,j,k)=aathet_all(l,i,j,k,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) 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) 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 k=1,3 censc(k,j,i)=censc_all(k,j,i,iparm) enddo do k=1,3 do l=1,3 gaussc(l,k,j,i)=gaussc_all(l,k,j,i,iparm) enddo enddo enddo enddo #else do i=1,ntyp do j=1,65 sc_parmin(j,i)=sc_parmin_all(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 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 enddo c Restore parameters of the cumulants do i=1,nloctyp 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) 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) enddo enddo enddo c Restore the parameters of electrostatic interactions do i=1,2 do j=1,2 app(j,i)=app_all(j,i,iparm) bpp(j,i)=bpp_all(j,i,iparm) ael6(j,i)=ael6_all(j,i,iparm) ael3(j,i)=ael3_all(j,i,iparm) enddo enddo 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) 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) enddo enddo do i=1,ntyp chip(i)=chip_all(i,iparm) alp(i)=alp_all(i,iparm) enddo c Restore the SCp parameters do i=1,ntyp do j=1,2 aad(i,j)=aad_all(i,j,iparm) bad(i,j)=bad_all(i,j,iparm) enddo enddo c Restore disulfide-bond parameters ebr=ebr_all(iparm) d0cm=d0cm_all(iparm) akcm=akcm_all(iparm) akth=akth_all(iparm) akct=akct_all(iparm) v1ss=v1ss_all(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) enddo enddo enddo return end