dfa & multichain cluster
authorCezary Czaplewski <czarek@chem.univ.gda.pl>
Mon, 15 Jun 2020 21:38:20 +0000 (23:38 +0200)
committerCezary Czaplewski <czarek@chem.univ.gda.pl>
Mon, 15 Jun 2020 21:38:20 +0000 (23:38 +0200)
13 files changed:
source/cluster/wham/src-HCD/COMMON.DFA
source/cluster/wham/src-HCD/DIMENSIONS
source/unres/src-HCD-5D/COMMON.LOCAL
source/unres/src-HCD-5D/DIMENSIONS
source/unres/src-HCD-5D/Makefile_MPICH_ifort-okeanos
source/unres/src-HCD-5D/Makefile_MPICH_ifort-prometheus
source/unres/src-HCD-5D/Makefile_MPICH_ifort-tryton
source/unres/src-HCD-5D/chainbuild.F
source/unres/src-HCD-5D/dfa.F
source/unres/src-HCD-5D/gen_rand_conf.F
source/unres/src-HCD-5D/readrtns_CSA.F
source/wham/src-HCD/COMMON.DFA
source/wham/src-HCD/DIMENSIONS

index c6add4f..064a7ce 100644 (file)
@@ -11,7 +11,7 @@ C Total : ~ 11 * Nres restraints
 C
 C
       INTEGER IDFAMAX,IDFAMX2,IDFACMD,IDMAXMIN, MAXN
-      PARAMETER(IDFAMAX=4000,IDFAMX2=1000,IDFACMD=500,IDMAXMIN=500)
+      PARAMETER(IDFAMAX=10000,IDFAMX2=1000,IDFACMD=500,IDMAXMIN=500)
       PARAMETER(MAXN=4)
       real*8 wwdist,wwangle,wwnei
       parameter(wwdist=1.0d0,wwangle=1.0d0,wwnei=1.0d0)
index e6a29b3..247819a 100644 (file)
@@ -26,7 +26,7 @@ C Max number of symetric chains
       integer maxchain
       parameter (maxchain=50)
       integer maxperm
-      parameter (maxperm=120)
+      parameter (maxperm=5040)
 C Max. number of derivatives of virtual-bond and side-chain vectors in theta
 C or phi.
       integer maxdim
index 1c1ed2f..f4828fc 100644 (file)
@@ -2,10 +2,11 @@
      &  sigc0,dsc,dsc_inv,bsc,censc,gaussc,dsc0
       integer nlob
 C Parameters of the virtual-bond-angle probability distribution
-      common /thetas/ a0thet(-ntyp:ntyp),athet(2,-ntyp:ntyp,-1:1,-1:1),
-     &  bthet(2,-ntyp:ntyp,-1:1,-1:1),polthet(0:3,-ntyp:ntyp),
-     & gthet(3,-ntyp:ntyp),theta0(-ntyp:ntyp),sig0(-ntyp:ntyp),
-     &  sigc0(-ntyp:ntyp)
+      common /thetas/ a0thet(-ntyp1:ntyp1),
+     & athet(2,-ntyp1:ntyp1,-1:1,-1:1),
+     &  bthet(2,-ntyp1:ntyp1,-1:1,-1:1),polthet(0:3,-ntyp1:ntyp1),
+     & gthet(3,-ntyp1:ntyp1),theta0(-ntyp1:ntyp1),sig0(-ntyp1:ntyp1),
+     &  sigc0(-ntyp1:ntyp1)
 C Parameters of the side-chain probability distribution
       common /sclocal/ dsc(ntyp1),dsc_inv(ntyp1),bsc(maxlob,ntyp),
      &  censc(3,maxlob,-ntyp:ntyp),gaussc(3,3,maxlob,-ntyp:ntyp),
index 9803b23..ed21dfe 100644 (file)
@@ -16,10 +16,10 @@ C Max. number of coarse-grain processors
       parameter (max_cg_procs=maxprocs)
 C Max. number of AA residues
       integer maxres
-      parameter (maxres=2000)
+      parameter (maxres=10000)
 C Max. number of AA residues per chain
       integer maxres_chain
-      parameter (maxres_chain=800)
+      parameter (maxres_chain=1200)
 C Max. number of cysteines and other bridging residues
       integer max_cyst
       parameter (max_cyst=100)
@@ -32,7 +32,7 @@ C Max number of symetric chains
       integer maxchain
       parameter (maxchain=50)
       integer maxperm
-      parameter (maxperm=120) 
+      parameter (maxperm=5040) 
 C Max. number of variables
       integer maxvar
       parameter (maxvar=6*maxres)
index b851430..853e319 100644 (file)
@@ -4,20 +4,17 @@
 
 FC = ftn
 
-OPT =  -O3 -ip -mcmodel=medium -shared-intel -dynamic
-#OPT =  -g -CA -CB -mcmodel=medium -shared-intel -dynamic
-OPT2 = -g -O0 -mcmodel=medium -shared-intel -dynamic
+OPT  = -O3 -ip -mcmodel=medium -shared-intel -dynamic
 OPTE = -c  -O3 -ipo  -mcmodel=medium -shared-intel -dynamic
-#OPTE = ${OPT} -c
-
-FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include 
-#FFLAGS1 = -c  -g -CA -CB -I$(INSTALL_DIR)/include 
-#FFLAGS = ${FFLAGS1}
-FFLAGS1 = ${FFLAGS}
-FFLAGS2 = -c ${OPT2} -I$(INSTALL_DIR)/include  
-FFLAGSE = ${OPTE} -I$(INSTALL_DIR)/include
-#FFLAGSE = ${FFLAGS}
+OPT2 = -O2 -ip -mcmodel=medium -shared-intel -dynamic
+OPT0 = -g -O0 -mcmodel=medium -shared-intel -dynamic
+OPT1 = -g -CA -CB -mcmodel=medium -shared-intel -dynamic
 
+FFLAGS  = -c ${OPT}
+FFLAGSE = -c ${OPTE}
+FFLAGS2 = -c ${OPT2}
+FFLAGS1 = -c ${OPT1}
+FFLAGS0 = -c ${OPT0}
 
 LIBS = -L$(INSTALL_DIR)/lib -lmpich xdrf/libxdrf.a
 #/opt/cray/mpt/7.3.2/gni/mpich-intel/15.0/lib/libmpich.a
@@ -162,7 +159,7 @@ chainbuild.o: chainbuild.F
        ${FC} ${FFLAGS} ${CPPFLAGS} chainbuild.F
 
 djacob.o: djacob.f
-       ${FC} ${FFLAGS2} djacob.f
+       ${FC} ${FFLAGS0} djacob.f
 
 matmult.o: matmult.f
        ${FC} ${FFLAGS} ${CPPFLAGS} matmult.f
@@ -177,10 +174,10 @@ cartder.o : cartder.F
        ${FC} ${FFLAGS} ${CPPFLAGS} cartder.F
 
 readpdb.o : readpdb.F
-       ${FC} ${FFLAGS2} ${CPPFLAGS} readpdb.F
+       ${FC} ${FFLAGS0} ${CPPFLAGS} readpdb.F
 
 readpdb-mult.o : readpdb-mult.F
-       ${FC} ${FFLAGS2} ${CPPFLAGS} readpdb-mult.F
+       ${FC} ${FFLAGS0} ${CPPFLAGS} readpdb-mult.F
 
 sumsld.o : sumsld.f
        ${FC} ${FFLAGS} ${CPPFLAGS} sumsld.f
@@ -213,10 +210,13 @@ add.o : add.f
        ${FC} ${FFLAGS1} add.f
 
 eigen.o : eigen.f
-       ${FC} ${FFLAGS2} eigen.f
+       ${FC} ${FFLAGS0} eigen.f
 
 dfa.o: dfa.F
-       ${FC} ${FFLAGS2} dfa.F
+       ${FC} ${CPPFLAGS} ${FFLAGS} dfa.F
+
+rmscalc.o: rmscalc.F
+       ${FC} ${FFLAGS2} ${CPPFLAGS} rmscalc.F
 
 proc_proc.o: proc_proc.c
        ${CC} ${CFLAGS} proc_proc.c
index 6d4851b..e51973e 100644 (file)
@@ -4,20 +4,19 @@
 
 FC = mpif90 -fc=ifort
 
-OPT =  -O3 -ip -mcmodel=medium -shared-intel 
-#OPT =  -O3 
-#OPT =  -g -CA -CB -mcmodel=medium -shared-intel
-
-FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include 
-FFLAGS1 = -c  -g -CA -CB -mcmodel=medium -shared-intel 
-#FFLAGS = ${FFLAGS1}
-FFLAGS2 = -c  -g -O0 -mcmodel=medium -shared-intel 
-FFLAGSE = -c  -O3 -ipo -mcmodel=medium -shared-intel 
-#FFLAGSE = ${FFLAGS}
-
-
-#LIBS = -L$(INSTALL_DIR)/lib -lmpi xdrf/libxdrf.a
-LIBS = -lmpi xdrf/libxdrf.a
+OPT  = -O3 -ip -mcmodel=medium -shared-intel
+OPTE = -O3 -ipo -mcmodel=medium -shared-intel
+OPT2 = -O2 -ip -mcmodel=medium -shared-intel
+OPT0 = -g -O0 -mcmodel=medium -shared-intel
+OPT1 = -g -CA -CB -mcmodel=medium -shared-intel
+
+FFLAGS  = -c ${OPT}
+FFLAGSE = -c ${OPTE}
+FFLAGS2 = -c ${OPT2}
+FFLAGS1 = -c ${OPT1}
+FFLAGS0 = -c ${OPT0}
+
+LIBS = -L$(INSTALL_DIR)/lib -lmpi xdrf/libxdrf.a
 #/opt/cray/mpt/7.3.2/gni/mpich-intel/15.0/lib/libmpich.a
 
 ARCH = LINUX
@@ -25,7 +24,7 @@ PP = /lib/cpp -P
 
 
 all: no_option
-       @echo "Specify force field: GAB, 4P or E0LL2Y"
+       @echo "Specify force field: GAB, 4P, E0LL2Y or NEWCORR"
 
 .SUFFIXES: .F
 .F.o:
@@ -34,26 +33,31 @@ all: no_option
 
 object = unres.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o \
         matmult.o readrtns_CSA.o parmread.o gen_rand_conf.o printmat.o map.o \
-        pinorm.o randgens.o rescode.o intcor.o timing.o misc.o intlocal.o \
-        cartder.o checkder_p.o econstr_local.o econstr_qlike.o econstrq-PMF.o PMFprocess.o energy_p_new_barrier.o \
+        pinorm.o randgens.o rescode.o intcor.o timing.o misc.o \
+        cart2intgrad.o checkder_p.o contact_cp econstr_local.o econstr_qlike.o \
+       econstrq-PMF.o PMFprocess.o energy_p_new_barrier.o make_xx_list.o \
        energy_p_new-sep_barrier.o gradient_p.o minimize_p.o sumsld.o \
-        cored.o rmdd.o geomout.o readpdb.o permut.o regularize.o thread.o fitsq.o mcm.o \
-        mc.o bond_move.o refsys.o check_sc_distr.o check_bond.o contact.o djacob.o \
+        cored.o rmdd.o geomout.o readpdb-mult.o int_from_cart.o regularize.o \
+       thread.o fitsq.o mcm.o \
+        mc.o bond_move.o refsys.o check_sc_distr.o check_bond.o contact.o \
         eigen.o blas.o add.o entmcm.o minim_mcmf.o \
         together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o \
         indexx.o MP.o compare_s1.o prng_32.o \
-        test.o banach.o distfit.o rmsd.o elecont.o dihed_cons.o \
-        sc_move.o local_move.o \
+        banach.o distfit.o rmsd.o rmscalc.o elecont.o dihed_cons.o \
+        sc_move.o local_move.o djacob.o \
         intcartderiv.o lagrangian_lesyng.o\
+       chain_symmetry.o permut.o seq2chains.o iperm.o\
        stochfric.o kinetic_lesyng.o MD_A-MTS.o moments.o int_to_cart.o \
         surfatom.o sort.o muca_md.o MREMD.o rattle.o gauss.o energy_split-sep.o \
-       q_measure.o gnmr1.o ssMD.o
+       q_measure.o gnmr1.o mygauss.o ssMD.o
+
+object_lbfgs = inform.o iounit.o keys.o linmin.o math.o minima.o scales.o output.o lbfgs.o search.o optsave_dum.o
 
 no_option:
 
 GAB: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
-       -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC
-GAB: BIN = ../../../bin/unres/MD/unres-mult-symetr_KCC_ifort_MPICH-prometheus_GAB.exe
+       -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DFOURBODY
+GAB: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_GAB-HCD.exe
 GAB: ${object} xdrf/libxdrf.a
        gcc -o compinfo compinfo.c
        ./compinfo | true
@@ -61,8 +65,8 @@ GAB: ${object} xdrf/libxdrf.a
        ${FC} ${OPT} ${object} cinfo.o ${LIBS}  -o ${BIN}
 
 4P: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
-       -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC
-4P: BIN = ../../../bin/unres/MD/unres-mult-symetr_KCC_ifort_MPICH-prometheus_4P.exe
+       -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DFOURBODY
+4P: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_4P-HCD.exe
 4P: ${object} xdrf/libxdrf.a
        gcc -o compinfo compinfo.c
        ./compinfo | true
@@ -70,22 +74,58 @@ GAB: ${object} xdrf/libxdrf.a
        ${FC} ${OPT} ${object} cinfo.o ${LIBS}  -o ${BIN}
 
 E0LL2Y: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
-       -DSPLITELE -DLANG0
-E0LL2Y: BIN = ../../../bin/unres/MD/unres-mult-symetr_KCC_ifort_MPICH-prometheus_E0LL2Y.exe
+       -DSPLITELE -DLANG0 -DFOURBODY
+E0LL2Y: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_E0LL2Y-HCD.exe
 E0LL2Y: ${object} xdrf/libxdrf.a
        gcc -o compinfo compinfo.c
        ./compinfo | true
        ${FC} ${FFLAGS} cinfo.f
        ${FC} ${OPT} ${object} cinfo.o ${LIBS}  -o ${BIN}
 
+E0LL2Y_DFA: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
+       -DSPLITELE -DLANG0 -DFOURBODY -DDFA
+E0LL2Y_DFA: BIN = ~/bin/bin/unres_ifort_MPICH-prometheus_E0LL2Y-HCD-DFA.exe
+E0LL2Y_DFA: ${object} dfa.o xdrf/libxdrf.a
+       gcc -o compinfo compinfo.c
+       ./compinfo | true
+       ${FC} ${FFLAGS} cinfo.f
+       ${FC} ${OPT} ${object} dfa.o cinfo.o ${LIBS}  -o ${BIN}
+
 NEWCORR: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
-       -DSPLITELE -DLANG0 -DNEWCORR -DCORRCD
-NEWCORR: BIN = ~/unres/bin/unres-mult-symetr_KCC_ifort_MPICH-prometheus_NEWCORR-SAXS-NMRAMB.exe
+       -DSPLITELE -DLANG0 -DNEWCORR -DCORRCD #-DFOURBODY #-DMYGAUSS #-DTIMING
+NEWCORR: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_SC-HCD.exe
 NEWCORR: ${object} xdrf/libxdrf.a
        gcc -o compinfo compinfo.c
        ./compinfo | true
        ${FC} ${FFLAGS} cinfo.f
-       ${FC} ${OPT} ${object} cinfo.o ${LIBS}  -o ${BIN}
+       ${FC} ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN}
+
+NEWCORR5D: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
+       -DSPLITELE -DLANG0 -DNEWCORR -DCORRCD -DFIVEDIAG -DLBFGS #-DMYGAUSS #-DTIMING
+NEWCORR5D: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_SC-HCD5.exe
+NEWCORR5D: ${object_lbfgs} ${object} fdisy.o fdiag.o machpd.o kinetic_CASC.o xdrf/libxdrf.a
+       gcc -o compinfo compinfo.c
+       ./compinfo | true
+       ${FC} ${FFLAGS} cinfo.f
+       ${FC} ${OPT} ${object} ${object_lbfgs} fdisy.o fdiag.o machpd.o kinetic_CASC.o cinfo.o ${LIBS} -o ${BIN}
+
+NEWCORR_DFA: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
+       -DSPLITELE -DLANG0 -DNEWCORR -DCORRCD -DDFA #-DMYGAUSS #-DTIMING
+NEWCORR_DFA: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_SC-HCD-DFA.exe
+NEWCORR_DFA: ${object} dfa.o xdrf/libxdrf.a
+       gcc -o compinfo compinfo.c
+       ./compinfo | true
+       ${FC} ${FFLAGS} cinfo.f
+       ${FC} ${OPT} ${object} dfa.o cinfo.o ${LIBS} -o ${BIN}
+
+NEWCORR5D_DFA: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
+       -DSPLITELE -DLANG0 -DNEWCORR -DCORRCD -DFIVEDIAG -DLBFGS -DDFA #-DMYGAUSS #-DTIMING
+NEWCORR5D_DFA: BIN = ~/unres/bin/unres_ifort_MPICH-prometheus_SC-HCD5-DFA.exe
+NEWCORR5D_DFA: ${object_lbfgs} ${object} dfa.o fdisy.o fdiag.o machpd.o kinetic_CASC.o xdrf/libxdrf.a
+       gcc -o compinfo compinfo.c
+       ./compinfo | true
+       ${FC} ${FFLAGS} cinfo.f
+       ${FC} ${OPT} ${object_lbfgs} ${object} fdisy.o fdiag.o machpd.o dfa.o kinetic_CASC.o cinfo.o ${LIBS}  -o ${BIN}
 
 xdrf/libxdrf.a:
        cd xdrf && make
@@ -100,6 +140,9 @@ test.o: test.F
 chainbuild.o: chainbuild.F
        ${FC} ${FFLAGS} ${CPPFLAGS} chainbuild.F
 
+djacob.o: djacob.f
+       ${FC} ${FFLAGS0} djacob.f
+
 matmult.o: matmult.f
        ${FC} ${FFLAGS} ${CPPFLAGS} matmult.f
 
@@ -113,7 +156,10 @@ cartder.o : cartder.F
        ${FC} ${FFLAGS} ${CPPFLAGS} cartder.F
 
 readpdb.o : readpdb.F
-       ${FC} ${FFLAGS2} ${CPPFLAGS} readpdb.F
+       ${FC} ${FFLAGS0} ${CPPFLAGS} readpdb.F
+
+readpdb-mult.o : readpdb-mult.F
+       ${FC} ${FFLAGS0} ${CPPFLAGS} readpdb-mult.F
 
 sumsld.o : sumsld.f
        ${FC} ${FFLAGS} ${CPPFLAGS} sumsld.f
@@ -146,7 +192,13 @@ add.o : add.f
        ${FC} ${FFLAGS1} add.f
 
 eigen.o : eigen.f
-       ${FC} ${FFLAGS2} eigen.f
+       ${FC} ${FFLAGS0} eigen.f
+
+dfa.o: dfa.F
+       ${FC} ${CPPFLAGS} ${FFLAGS} dfa.F
+
+rmscalc.o: rmscalc.F
+       ${FC} ${FFLAGS2} ${CPPFLAGS} rmscalc.F
 
 proc_proc.o: proc_proc.c
        ${CC} ${CFLAGS} proc_proc.c
index c6a571b..1ca2bbc 100644 (file)
@@ -3,14 +3,17 @@
 
 FC = mpif90 -fc=ifort
 
-OPT =  -O3 -ip -mcmodel=medium -shared-intel
-#OPT =  -g -CA -CB -mcmodel=medium -shared-intel
-
-FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include
-FFLAGS1 = -c  -g -CA -CB -mcmodel=medium -shared-intel
-#FFLAGS1 = ${FFLAGS}
-FFLAGS2 = -c  -g -O0 -mcmodel=medium -shared-intel
-FFLAGSE = -c  -O3 -ipo -mcmodel=medium -shared-intel
+OPT  = -O3 -ip -mcmodel=medium -shared-intel
+OPTE = -O3 -ipo -mcmodel=medium -shared-intel
+OPT2 = -O2 -ip -mcmodel=medium -shared-intel
+OPT0 = -g -O0 -mcmodel=medium -shared-intel
+OPT1 = -g -CA -CB -mcmodel=medium -shared-intel
+
+FFLAGS  = -c ${OPT} 
+FFLAGSE = -c ${OPTE}
+FFLAGS2 = -c ${OPT2}
+FFLAGS1 = -c ${OPT1}
+FFLAGS0 = -c ${OPT0}
 #FFLAGSE = ${FFLAGS}
 
 
@@ -140,7 +143,7 @@ chainbuild.o: chainbuild.F
        ${FC} ${FFLAGS} ${CPPFLAGS} chainbuild.F
 
 djacob.o: djacob.f
-       ${FC} ${FFLAGS2} djacob.f
+       ${FC} ${FFLAGS0} djacob.f
 
 matmult.o: matmult.f
        ${FC} ${FFLAGS} ${CPPFLAGS} matmult.f
@@ -154,11 +157,8 @@ intcor.o : intcor.f
 cartder.o : cartder.F
        ${FC} ${FFLAGS} ${CPPFLAGS} cartder.F
 
-readpdb.o : readpdb.F
-       ${FC} ${FFLAGS2} ${CPPFLAGS} readpdb.F
-
 readpdb-mult.o : readpdb-mult.F
-       ${FC} ${FFLAGS2} ${CPPFLAGS} readpdb-mult.F
+       ${FC} ${FFLAGS0} ${CPPFLAGS} readpdb-mult.F
 
 sumsld.o : sumsld.f
        ${FC} ${FFLAGS} ${CPPFLAGS} sumsld.f
@@ -191,10 +191,13 @@ add.o : add.f
        ${FC} ${FFLAGS1} add.f
 
 eigen.o : eigen.f
-       ${FC} ${FFLAGS2} eigen.f
+       ${FC} ${FFLAGS0} eigen.f
 
 dfa.o: dfa.F
-       ${FC} ${FFLAGS2} dfa.F
+       ${FC} ${FFLAGS} ${CPPFLAGS} dfa.F
+
+rmscalc.o: rmscalc.F
+       ${FC} ${FFLAGS2} ${CPPFLAGS} rmscalc.F
 
 proc_proc.o: proc_proc.c
        ${CC} ${CFLAGS} proc_proc.c
index 51419ef..7902f15 100644 (file)
@@ -240,6 +240,86 @@ C
       return
       end
 c-----------------------------------------------------------------------------
+      subroutine sc_coord_rebuild(i)
+C 
+C Locate the side-chain centroid i, 1 < i < NRES. Put in C(*,NRES+i).
+C
+      implicit none
+      include 'DIMENSIONS'
+      include 'COMMON.CHAIN'
+      include 'COMMON.LOCAL'
+      include 'COMMON.GEO'
+      include 'COMMON.VAR'
+      include 'COMMON.IOUNITS'
+      include 'COMMON.NAMES'
+      include 'COMMON.INTERACT'
+      integer i,j,k
+      double precision xx(3)
+      double precision dsci,dsci_inv,alphi,omegi,cosalphi,sinalphi,
+     &  cosomegi,sinomegi,rp(3),theta2,cost2,sint2,rj
+      double precision scalar
+      double precision ref(3,3),scalp,sscalp,refnorm
+      double precision alpha,beta
+c      dsci=dsc(itype(i))
+c      dsci_inv=dsc_inv(itype(i))
+      dsci=vbld(i+nres)
+      dsci_inv=vbld_inv(i+nres)
+#ifdef OSF
+      alphi=alph(i)
+      omegi=omeg(i)
+      if (alphi.ne.alphi) alphi=100.0
+      if (omegi.ne.omegi) omegi=-100.0
+#else
+      alphi=alph(i)
+      omegi=omeg(i)
+#endif
+      cosalphi=dcos(alphi)
+      sinalphi=dsin(alphi)
+      cosomegi=dcos(omegi)
+      sinomegi=dsin(omegi) 
+      rp(1)= cosalphi
+      rp(2)= sinalphi*cosomegi
+      rp(3)=-sinalphi*sinomegi
+c Build the reference system
+      do j=1,3
+        ref(j,1)=-dc_norm(j,i-1)+dc_norm(j,i)
+      enddo
+      refnorm=dsqrt(scalar(ref(1,1),ref(1,1)))
+      do j=1,3
+        ref(j,1)=ref(j,1)/refnorm
+      enddo
+      scalp=scalar(ref(1,1),dc_norm(1,i))
+      sscalp=1.0d0/dsqrt(1.0d0-scalp*scalp)
+      do j=1,3
+        ref(j,2)=(dc_norm(j,i)-scalp*ref(j,1))*sscalp
+      enddo
+      ref(1,3)= ref(2,1)*ref(3,2)-ref(3,1)*ref(2,2)
+      ref(2,3)=-ref(1,1)*ref(3,2)+ref(3,1)*ref(1,2)
+      ref(3,3)= ref(1,1)*ref(2,2)-ref(2,1)*ref(1,2)
+c      do j=1,3
+c        write (iout,*) j,scalar(ref(1,j),ref(1,1)),
+c     &  scalar(ref(1,j),ref(1,2)),scalar(ref(1,j),ref(1,3))
+c      enddo
+c Bring the coordinates to the global reference system
+      do j=1,3
+        dc_norm(j,nres+i)=0.0d0
+        do k=1,3
+          dc_norm(j,nres+i)=dc_norm(j,nres+i)+ref(j,k)*rp(k)
+        enddo
+        dc(j,nres+i)=dc_norm(j,nres+i)*dsci
+        c(j,nres+i)=c(j,i)+dc(j,nres+i)
+      enddo 
+c      write (iout,*) scalar(dc_norm(1,i+nres),dc_norm(1,i+nres)),
+c     &  dsqrt(scalar(dc(1,i+nres),dc(1,i+nres)))
+c Check the internal coordinates
+c      c(:,2*nres+1)=ref(:,1)+c(:,i)
+c      write (iout,*) "alpha",rad2deg*alphi,
+c     & rad2deg*alpha(nres+i,i,2*nres+1)
+c      write (iout,*) "omega",rad2deg*omegi,
+c     & rad2deg*beta(nres+i,i,2*nres+1,i+1)
+      return
+      end
+c-----------------------------------------------------------------------------
       subroutine locate_side_chain(i)
 C 
 C Locate the side-chain centroid i, 1 < i < NRES. Put in C(*,NRES+i).
@@ -296,7 +376,7 @@ cd   &   xp,yp,zp,(xx(k),k=1,3)
       xx(2)=xloc(2,i)*r(2,2,i-1)+xloc(3,i)*r(2,3,i-1)
       xx(3)=xloc(2,i)*r(3,2,i-1)+xloc(3,i)*r(3,3,i-1)
       do j=1,3
-       xrot(j,i)=xx(j)
+        xrot(j,i)=xx(j)
       enddo
       do j=1,3
         rj=0.0D0
index 62e8892..7de4015 100644 (file)
@@ -270,6 +270,7 @@ C     BETA is not parallel !
      & "idfaphi ",idfaphi,idfaphi_start,idfaphi_end,
      & "idfathe ",idfathe,idfathe_start,idfathe_end,
      & "idfanei ",idfanei,idfanei_start,idfanei_end
+      if (nfgprocs.gt.1) then
       do i=0,max_fg_procs-1
         idfadis_start_all(j)=0
         idfadis_end_all(j)=0
@@ -308,6 +309,7 @@ C     BETA is not parallel !
      &     idfanei_end_all(i)
         enddo
       endif
+      endif
 #else
       idfadis_start=1
       idfadis_end=idfadis
index 9f5567d..ea009b6 100644 (file)
@@ -144,6 +144,7 @@ C Check for SC-SC overlaps.
 cd    print *,'nnt=',nnt,' nct=',nct
       do j=nnt,i-1
         itj=iabs(itype(j))
+        if (itj.eq.ntyp1) cycle
         if (j.lt.i-1 .or. ipot.ne.4) then
           rcomp=sigmaii(iti,itj)
         else 
@@ -798,13 +799,16 @@ c     overlapping residues left, or false otherwise (success)
             fail=.true.
             do while (fail.and.nsi.le.maxsi)
               call gen_side(iti,theta(i+1),alph(i),omeg(i),fail)
+              call sc_coord_rebuild(i)
               nsi=nsi+1
             enddo
             if(fail) goto 999
           endif
         enddo
 
-        call chainbuild_extconf
+c        write (iout,*) "before chaincuild overlap_sc_list: dc0",dc(:,0)
+c        call chainbuild_extconf
+c        write (iout,*) "after chaincuild overlap_sc_list: dc0",dc(:,0)
         call overlap_sc_list(ioverlap,ioverlap_last)
         write (iout,*) 'Overlaping residues ',ioverlap_last,
      &           (ioverlap(j),j=1,ioverlap_last)
index da28aa3..e5f0b41 100644 (file)
@@ -1297,7 +1297,7 @@ c            return
           enddo
           call bond_regular
           call chainbuild_extconf
-        else
+        else if (.not. start_from_model) then
           if(me.eq.king.or..not.out1file)
      &     write (iout,'(a)') 'Random-generated initial geometry.'
           call bond_regular
@@ -3654,6 +3654,7 @@ c
       call getenv("FRAGFILE",fragfile) 
       open(ientin,file=fragfile,status="old",err=10)
       read(ientin,*) constr_homology,nclust
+      nmodel_start=constr_homology
       l_homo = .false.
       sigma_theta=0.0
       sigma_d=0.0
index c6add4f..064a7ce 100644 (file)
@@ -11,7 +11,7 @@ C Total : ~ 11 * Nres restraints
 C
 C
       INTEGER IDFAMAX,IDFAMX2,IDFACMD,IDMAXMIN, MAXN
-      PARAMETER(IDFAMAX=4000,IDFAMX2=1000,IDFACMD=500,IDMAXMIN=500)
+      PARAMETER(IDFAMAX=10000,IDFAMX2=1000,IDFACMD=500,IDMAXMIN=500)
       PARAMETER(MAXN=4)
       real*8 wwdist,wwangle,wwnei
       parameter(wwdist=1.0d0,wwangle=1.0d0,wwnei=1.0d0)
index 65b3e75..c360026 100644 (file)
@@ -27,7 +27,7 @@ c Max. number of chains
       parameter (maxchain=50)
 C Max number of symetries
        integer maxsym,maxperm
-       parameter (maxsym=maxchain,maxperm=120)
+       parameter (maxsym=maxchain,maxperm=5040)
 C Max. number of variables
       integer maxvar
       parameter (maxvar=4*maxres)