source: Makefile@ 4e219a3

Last change on this file since 4e219a3 was 4e219a3, checked in by baerbaer <baerbaer@…>, 16 years ago

Update Lund init and BG/P compatibility.

  • Moved call of init_lundff after initialization of the molecule. The Lund

force field needs the molecule to calculate the hydrophobicity matrix.

  • Added bgp target to Makefile to compile SMMP on a BlueGene/P
  • Split if statement in setmvs to avoid out-of-range warning for array

access.

  • Changed setup of boundaries in Protein.zimmer() to match new version of

numpy.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/smmp/trunk@15 26dc1dd8-5c4e-0410-9ffe-d298b4865968

  • Property mode set to 100644
File size: 5.5 KB
Line 
1# Makefile: smmp
2
3#.SILENT:
4
5%_p.o : %_p.f
6 $(MPIF90) $(F_FLAGS) $<
7
8%_p.o : %_p.F
9 $(MPIF90) $(F_FLAGS) $<
10
11.SUFFIXES: .o .f
12.f.o:
13 $(F90) $(F_FLAGS) $<
14
15.SUFFIXES: .o .f90
16.f90.o:
17 $(F90) $(F_FLAGS) $<
18
19# ==================================== Variables for compiling and linking
20# L_FLAGS=-g
21# Linker flags
22# Default flags, e.g., for gfortran, g77
23L_FLAGS=-O2 -g
24
25# Flags for Intel's ifort
26# L_FLAGS=-O3 -axW -g
27
28# FLAGS for Cray
29# L_FLAGS=-fastsse -Mipa
30
31# Flags for xlf
32# L_FLAGS=-O3 -qhot -q64 -qipa -qextname=flush
33
34# Optimized flag for gfortran on an i686 platform
35# L_FLAGS=-fPIC -O3 -funroll-loops -mmmx -msse2 -msse -march=i686 -malign-double -fomit-frame-pointer
36
37# Compiler flags
38# Default flags, e.g., for gfortran, g77
39F_FLAGS=-c -O2 -g
40# Flags for Intel's ifort
41# F_FLAGS=-c -O3 -axW -g -DONECALL -DBRANCHLESS
42# Flags for debugging build
43# F_FLAGS=-c -O0 -g
44# FLAGS for Cray
45# F_FLAGS=-c -fastsse -Mipa
46# Flags for xlf
47#F_FLAGS=-c -O3 -qhot -q64 -qipa -qextname=flush
48
49# Optimized flag for gfortran on an i686 platform
50# F_FLAGS=-c -fPIC -O3 -funroll-loops -mmmx -msse2 -msse -march=i686 -malign-double -fomit-frame-pointer
51
52# Select your compiler
53#F90=ifort
54#F90=pgf90
55#F90=xlf
56F90=gfortran
57MPIF90=mpif90
58
59
60# ______________________________________________ Name of program
61PROG=smmp
62# ______________________________________________ Objects
63OBJ=redseq.o bldmol.o getmol.o redvar.o setvar.o \
64difang.o setmvs.o mklist.o redstr.o dihedr.o enyflx.o addend.o opeflx.o opeshe.o minim.o minqsn.o\
65contacts.o hbond.o helix.o anneal.o metropolis.o rgyr.o zimmer.o \
66canon.o mulcan_par_mod.o outvar.o outpdb.o \
67pdbread.o rmsdfun.o enyreg.o opereg.o mincjg.o cnteny.o \
68init_energy.o init_molecule.o gradient.o energy.o \
69regul.o nursvr.o twister.o eninteract.o bgs.o eyabgn.o enylun.o utilities.o\
70partem_s.o esolan.o opesol.o
71#_________Serial implementation of ECEPP/3 and solvent
72SOBJ=enyshe.o enysol.o
73#_________Parallel implementation of ECEPP/3 and solvent
74POBJ=enyshe_p.o enysol_p.o partem_p.o
75
76FILES=metropolis.f energy.f enyflx.f enyreg.f enyshe.f enysol.f redseq.f bldmol.f \
77getmol.f redvar.f setvar.f difang.f setmvs.f mklist.f redstr.f dihedr.f addend.f \
78opeflx.f opeshe.f minim.f minqsn.f contacts.f hbond.f helix.f anneal.f rgyr.f \
79zimmer.f canon.f outvar.f outpdb.f \
80pdbread.f rmsdfun.f opereg.f mincjg.f cnteny.f init_energy.f init_molecule.f \
81gradient.f regul.f nursvr.f twister.f eninteract.f bgs.f eyabgn.f enylun.f \
82mulcan_par_mod.f90 esolan.f opesol.f
83# partem_s.f
84
85
86pyInterface=init_molecule init_energy mulcan_par mulcan_sim \
87init_lund sgrnd energy helix zimmer rgyr rmsdfun \
88anneal canon outpdb minim regul contacts interhbond hbond
89# metropolis
90# ============================================== Linking
91
92$(PROG): $(OBJ) $(SOBJ) main.o
93 $(F90) -o $(PROG) $(L_FLAGS) main.o $(OBJ) $(SOBJ)
94
95# Build parallel version of SMMP.
96parallel: $(OBJ) $(POBJ) main_p.o
97 $(MPIF90) -o $(PROG) $(L_FLAGS) main_p.o $(OBJ) $(POBJ)
98
99# Cross compile for BlueGene/L
100bgl: BGL_L_FLAGS = -L$(BGLSYS)/lib -lmpich.rts -lfmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts -qextname=flush
101bgl: F_FLAGS = -c -O5 -qhot -g -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440 -qtune=440 -qextname=flush
102bgl: BGL_F90 = blrts_xlf
103bgl: F90 = $(BGL_F90)
104bgl: MPIF90 = $(BGL_F90)
105bgl: CC = blrts_xlc
106bgl: LIBSF_MPI=-lmpich.rts -lfmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
107
108bgl: $(OBJ) $(POBJ) main_bgl_p.o
109 $(BGL_F90) -o $(PROG).rts $(BGL_L_FLAGS) main_bgl_p.o $(OBJ) $(POBJ) $(LIBSF_MPI)
110
111# Cross compile for BlueGene/P
112bgp: BGP_SYS = /bgsys/drivers/ppcfloor/comm
113bgp: DIRCOMP = /opt/ibmcmp/xlf/bg/11.1/bin
114bgp: BGP_L_FLAGS = -O3 -qhot -g -I$(BGP_SYS)/include -qarch=440 -qtune=440 -qextname=flush
115bgp: F_FLAGS = -c -O3 -qhot -g -I$(BGP_SYS)/include -qarch=440 -qtune=440 -qextname=flush
116bgp: BGP_F90 = bgxlf
117bgp: F90 = $(BGP_F90)
118bgp: MPIF90 = $(BGP_F90)
119bgp: LIBS=-Wl,-allow-multiple-definition $(MASS) $(ESSL) -L$(BGP_SYS)/lib -lmpich.cnk -ldcmfcoll.cnk -ldcmf.cnk -L/bgsys/drivers/ppcfloor/runtime/SPI -lSPI.cna -lrt -lpthread
120
121bgp: $(OBJ) $(POBJ) main_p.o
122 $(BGP_F90) -o $(PROG).rts $(BGP_L_FLAGS) main_p.o $(OBJ) $(POBJ) $(LIBS)
123
124# Build the python bindings
125pybind: $(FILES)
126 #./rmexclpoint.py $(FILES)
127 f2py -c -m smmp smmp.pyf $(FILES) --f90exec=$(F90) --f77exec=$(F90)
128 #./restoreexclpoint.py $(FILES)
129
130newpybind: $(FILES)
131 ./rmexclpoint.py $(FILES)
132 mv smmp.pyf smmp.pyf.bak
133 f2py -h smmp.pyf -m smmp only: ${pyInterface} : $(FILES)
134 ./restoreexclpoint.py $(FILES)
135
136doc:
137 $(MAKE) -w -C doc/
138 doxygen pySMMP.doxygen
139
140examples: $(PROG)
141 $(MAKE) -w -C EXAMPLES/
142
143# ______________________________________________ Dependancies
144main.o: multicanonical.mod
145
146multicanonical.mod: mulcan_par_mod.f90
147 $(F90) $(F_FLAGS) mulcan_par_mod.f90
148
149# enyshe_p.o:
150# $(MPIF90) $(F_FLAGS) enyshe_p.f
151# enysol_p.o:
152# $(MPIF90) $(F_FLAGS) enysol_p.f
153# partem_p.o:
154# $(MPIF90) $(F_FLAGS) partem_p.f
155# main_p.o:
156# $(MPIF90) $(F_FLAGS) main_p.f
157
158main.o redseq.o eyring.o bldmol.o getmol.o redvar.o setvar.o \
159difang.o setmvs.o mklist.o redstr.o dihedr.o enyflx.o\
160enyshe.o addend.o opeflx.o opeshe.o minim.o minqsn.o enysol.o esolan.o\
161contacts.o hbond.o helix.o anneal.o metropolis.o rgyr.o zimmer.o\
162pdbvars.o rmsdfun.o enyreg.o opereg.o cnteny.o opesol.o\
163init_energy.o init_molecule.o gradient.o energy.o nursvr.o\
164regul.o eninteract.o bgs.o eyabgn.o enylun.o \
165canon.o mulcan_par.o mulcan_sim.o outvar.o outpdb.o partem_s.o: INCL.H
166
167pdbread.o enyreg.o opereg.o init_molecule.o regul.o: INCP.H
168
169.PHONY: clean, restore, doc
170clean:
171 $(MAKE) -w -C EXAMPLES/ clean
172 rm -f smmp core* *.o *~ *.mod
173restore:
174 ./restoreexclpoint.py $(FILES)
175
176# end
Note: See TracBrowser for help on using the repository browser.