Statistiques
| Révision :

root / src / Makefile @ 1

Historique | Voir | Annoter | Télécharger (9,12 ko)

1 1 pfleura2
################### Makefile for Path ############
2 1 pfleura2
# (C) PFL 2008
3 1 pfleura2
#################################################
4 1 pfleura2
# Change the value of Machine before compiling
5 1 pfleura2
# You might also have to edit the location of
6 1 pfleura2
# some libraries (like mkl for ifort)
7 1 pfleura2
8 1 pfleura2
Machine=gfortran
9 1 pfleura2
10 1 pfleura2
###########################################
11 1 pfleura2
#                                         #
12 1 pfleura2
########### Main supported compilers     ##
13 1 pfleura2
#                                         #
14 1 pfleura2
###########################################
15 1 pfleura2
ifeq ($(Machine),ifort)
16 1 pfleura2
# Flags for Ifort
17 1 pfleura2
COMP=/opt/intel/fc/9.1.036/bin/ifort
18 1 pfleura2
F90=${COMP}
19 1 pfleura2
LINK=${COMP} -Vaxlib   -L/usr/lib/  -L/opt/intel/mkl/8.1/lib/32/ -lguide -lpthread -lmkl_lapack -lmkl_ia32  -lmkl
20 1 pfleura2
FreeF=-FR
21 1 pfleura2
endif
22 1 pfleura2
23 1 pfleura2
ifeq ($(Machine),g95)
24 1 pfleura2
# Flags for g95
25 1 pfleura2
COMP=g95 -g  -save-temps -Wall -fbounds-check
26 1 pfleura2
#COMP=g95  -fbounds-check -g -ftrace=full -ftrace=frame  -save-temps
27 1 pfleura2
F90=${COMP}
28 1 pfleura2
F77=${COMP}
29 1 pfleura2
LINK=${COMP}   -L/usr/lib/ -llapack -lblas
30 1 pfleura2
FreeF=-ffree-form
31 1 pfleura2
endif
32 1 pfleura2
33 1 pfleura2
ifeq ($(Machine),gfortran)
34 1 pfleura2
# Flags for gfortran
35 1 pfleura2
COMP=gfortran  -fbounds-check -pedantic -std=gnu
36 1 pfleura2
#COMP=g95  -fbounds-check -g -ftrace=full -ftrace=frame  -save-temps
37 1 pfleura2
F90=${COMP}
38 1 pfleura2
F77=${COMP}
39 1 pfleura2
LINK=${COMP} -L/usr/lib/  -llapack -lblas
40 1 pfleura2
FreeF=-ffree-form
41 1 pfleura2
endif
42 1 pfleura2
43 1 pfleura2
44 1 pfleura2
ifeq ($(Machine),pgf)
45 1 pfleura2
# Flags for PGF
46 1 pfleura2
COMP=pgf90
47 1 pfleura2
FLAGS= -mp  -fast -Kieee -fastsse  -tpp7 -Mipa=fast
48 1 pfleura2
F90=$(COMP)  -c  $(FLAGS)
49 1 pfleura2
LINK=pgf90 $(FLAGS)  -L/usr/local/pgi/linux86/6.2/lib -llapack  -lblas -lpthread
50 1 pfleura2
FreeF=-Mfree
51 1 pfleura2
endif
52 1 pfleura2
53 1 pfleura2
ifeq ($(Machine),pathscale)
54 1 pfleura2
# Flags for PathScale
55 1 pfleura2
COMP=/softs/pathscale/bin/pathf90
56 1 pfleura2
F90=${COMP}
57 1 pfleura2
LINK=${COMP}   -L/usr/lib/ -llapack -lblas
58 1 pfleura2
FreeF=-FR
59 1 pfleura2
endif
60 1 pfleura2
61 1 pfleura2
ifeq ($(Machine),xlf)
62 1 pfleura2
# Flags for Xlf
63 1 pfleura2
COMP=xlf
64 1 pfleura2
F90=${COMP}
65 1 pfleura2
LINK=${COMP}   -L/usr/lib/ -llapack -lblas
66 1 pfleura2
FreeF=-qfree
67 1 pfleura2
endif
68 1 pfleura2
69 1 pfleura2
############################################
70 1 pfleura2
#
71 1 pfleura2
# national center
72 1 pfleura2
#
73 1 pfleura2
############################################
74 1 pfleura2
#
75 1 pfleura2
#### IDRIS
76 1 pfleura2
#
77 1 pfleura2
ifeq ($(Machine),vargas)
78 1 pfleura2
# Flags for Xlf
79 1 pfleura2
COMP=xlf
80 1 pfleura2
F90=${COMP}
81 1 pfleura2
F77=${COMP}
82 1 pfleura2
LINK=${COMP}   -L/usr/lib/
83 1 pfleura2
FreeF=-qfree
84 1 pfleura2
endif
85 1 pfleura2
86 1 pfleura2
ifeq ($(Machine),idris)
87 1 pfleura2
# Flags for Xlf
88 1 pfleura2
COMP=xlf
89 1 pfleura2
F90=${COMP}
90 1 pfleura2
F77=${COMP}
91 1 pfleura2
LINK=${COMP}   -L/usr/lib/
92 1 pfleura2
FreeF=-qfree
93 1 pfleura2
endif
94 1 pfleura2
#
95 1 pfleura2
#### CINES
96 1 pfleura2
#
97 1 pfleura2
98 1 pfleura2
ifeq ($(Machine),jade)
99 1 pfleura2
# Flags for Ifort
100 1 pfleura2
COMP=ifort
101 1 pfleura2
F90=${COMP}
102 1 pfleura2
F77=${COMP}
103 1 pfleura2
LINK=${COMP}  -lguide -lpthread
104 1 pfleura2
FreeF=-FR
105 1 pfleura2
endif
106 1 pfleura2
107 1 pfleura2
ifeq ($(Machine),zeus)
108 1 pfleura2
# Flags for Xlf
109 1 pfleura2
COMP=xlf
110 1 pfleura2
F90=${COMP}
111 1 pfleura2
F77=${COMP}
112 1 pfleura2
LINK=${COMP}   -L/usr/lib/
113 1 pfleura2
FreeF=-qfree
114 1 pfleura2
endif
115 1 pfleura2
116 1 pfleura2
117 1 pfleura2
############################################
118 1 pfleura2
#
119 1 pfleura2
# local machines at the ENS Lyon
120 1 pfleura2
#
121 1 pfleura2
############################################
122 1 pfleura2
123 1 pfleura2
ifeq ($(Machine),arq)
124 1 pfleura2
# Flags for arq Ifort
125 1 pfleura2
COMP=ifort
126 1 pfleura2
F90=${COMP}   -g -check all -traceback
127 1 pfleura2
F77=${F90}
128 1 pfleura2
#F90=${COMP}
129 1 pfleura2
LINK=${COMP} -lguide -lpthread
130 1 pfleura2
FreeF=-FR
131 1 pfleura2
endif
132 1 pfleura2
133 1 pfleura2
134 1 pfleura2
135 1 pfleura2
ifeq ($(Machine),arqP)
136 1 pfleura2
# Flags for arq Ifort
137 1 pfleura2
COMP=ifort
138 1 pfleura2
F90=${COMP}   -g -check bounds  -check format -check uninit  -traceback
139 1 pfleura2
#F90=${COMP}   -g -check all  -traceback
140 1 pfleura2
F77=${F90}
141 1 pfleura2
#F90=${COMP}
142 1 pfleura2
LINK=${COMP} -lguide -lpthread   -L/usr/lib/ \
143 1 pfleura2
  -L/opt/intel/Compiler/11.1/064/mkl/lib/64  \
144 1 pfleura2
  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
145 1 pfleura2
           -lmkl_core -Wl,--end-group -lpthread
146 1 pfleura2
FreeF=-FR
147 1 pfleura2
endif
148 1 pfleura2
149 1 pfleura2
ifeq ($(Machine),arqg)
150 1 pfleura2
# Flags for arq GFortran
151 1 pfleura2
COMP=gfortran -fbacktrace -fbounds-check -Wall
152 1 pfleura2
F90=${COMP}
153 1 pfleura2
F77=${F90}
154 1 pfleura2
#F90=${COMP}
155 1 pfleura2
LINK=${COMP}  -L/usr/lib/   -llapack -lblas
156 1 pfleura2
FreeF=-ffree-form
157 1 pfleura2
endif
158 1 pfleura2
159 1 pfleura2
ifeq ($(Machine),psmn)
160 1 pfleura2
# Flags for PSMN PathScale
161 1 pfleura2
COMP=/softs/pathscale/bin/pathf90
162 1 pfleura2
F90=${COMP}
163 1 pfleura2
LINK=${COMP}   -L/usr/lib/
164 1 pfleura2
FreeF=-FR
165 1 pfleura2
endif
166 1 pfleura2
167 1 pfleura2
ifeq ($(Machine),psmnI)
168 1 pfleura2
# Flags for PSMN Ifort v12
169 1 pfleura2
COMP=ifort
170 1 pfleura2
F90=${COMP}   -g -check all -traceback
171 1 pfleura2
F77=${F90}
172 1 pfleura2
#F90=${COMP}
173 1 pfleura2
LINK=${COMP}    -L/softs/intel/v12.0.084/mkl/lib/intel64  \
174 1 pfleura2
  -L/softs/intel/v12.0.084/lib/intel64  -L/usr/lib \
175 1 pfleura2
  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
176 1 pfleura2
           -lmkl_core -Wl,--end-group
177 1 pfleura2
FreeF=-FR
178 1 pfleura2
endif
179 1 pfleura2
180 1 pfleura2
181 1 pfleura2
ifeq ($(Machine),psmnI11)
182 1 pfleura2
# Flags for PSMN Ifort v11
183 1 pfleura2
COMP=ifort
184 1 pfleura2
F90=${COMP}   -g -check all -traceback
185 1 pfleura2
F77=${F90}
186 1 pfleura2
#F90=${COMP}
187 1 pfleura2
LINK=${COMP} -lguide -lpthread   -L/usr/lib/ \
188 1 pfleura2
  -L/softs/intel/v11.1.069/mkl/lib/em64t  \
189 1 pfleura2
  -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential \
190 1 pfleura2
           -lmkl_core -Wl,--end-group -lpthread
191 1 pfleura2
FreeF=-FR
192 1 pfleura2
endif
193 1 pfleura2
194 1 pfleura2
195 1 pfleura2
ifeq ($(Machine),duo)
196 1 pfleura2
# Flags for DUO Ifort
197 1 pfleura2
COMP=/opt/intel/fc/9.1.037/bin/ifort
198 1 pfleura2
#F90=${COMP}   -g -check all
199 1 pfleura2
F90=${COMP}
200 1 pfleura2
LINK=${COMP} -Vaxlib   -L/usr/lib/  -L/opt/intel/mkl/8.1/lib/32/ -lguide -lpthread  -lmkl_lapack64 -lmkl
201 1 pfleura2
FreeF=-FR
202 1 pfleura2
endif
203 1 pfleura2
204 1 pfleura2
ifeq ($(Machine),commander)
205 1 pfleura2
# Flags for Commander Ifort
206 1 pfleura2
COMP=/opt/intel/fc/9.0/bin/ifort
207 1 pfleura2
#F90=${COMP}   -g -check all
208 1 pfleura2
F90=${COMP}
209 1 pfleura2
LINK=${COMP} -Vaxlib   -L/usr/lib/  -L/opt/intel/mkl/8.1/lib/32/ -lguide -lpthread -lmkl_lapack -lmkl_ia32  -lmkl
210 1 pfleura2
FreeF=-FR
211 1 pfleura2
endif
212 1 pfleura2
213 1 pfleura2
Version=1.0
214 1 pfleura2
215 1 pfleura2
216 1 pfleura2
###############################################################
217 1 pfleura2
#
218 1 pfleura2
# Help Makefile
219 1 pfleura2
# voir: http://gl.developpez.com/tutoriel/outil/makefile/
220 1 pfleura2
#
221 1 pfleura2
###############################################################
222 1 pfleura2
# $@  	Le nom de la cible
223 1 pfleura2
# $< 	Le nom de la première dépendance
224 1 pfleura2
# $^ 	La liste des dépendances
225 1 pfleura2
# $? 	La liste des dépendances plus récentes que la cible
226 1 pfleura2
# $* 	Le nom du fichier sans suffixe
227 1 pfleura2
228 1 pfleura2
SRC=  Path.f90 \
229 1 pfleura2
      PathCreate.f90 \
230 1 pfleura2
      Read_geom.f90 \
231 1 pfleura2
      Calc_zmat.f90 \
232 1 pfleura2
      Calc_zmat_frag.f90 \
233 1 pfleura2
      Calc_zmat_constr_frag.f90 \
234 1 pfleura2
      Decomp_frag.f90 \
235 1 pfleura2
      Calc_mixed_frag.f90 \
236 1 pfleura2
      Calc_baker.f90 \
237 1 pfleura2
      Calc_Xprim.f90 \
238 1 pfleura2
      Calc_baker_allGeomF.f90 \
239 1 pfleura2
      ConvertZmat_cart.f90  \
240 1 pfleura2
      ConvertBakerInternal_cart.f90  \
241 1 pfleura2
      ConvertZmat_cart_3.f90  \
242 1 pfleura2
      Egrad.f90  \
243 1 pfleura2
      EgradPath.f90 \
244 1 pfleura2
      egrad_gaussian.f90 \
245 1 pfleura2
      egrad_mopac.f90 \
246 1 pfleura2
      egrad_ext.f90 \
247 1 pfleura2
      egrad_test.f90 \
248 1 pfleura2
      egrad_vasp.f90 \
249 1 pfleura2
      egrad_turbomole.f90 \
250 1 pfleura2
      egrad_chamfre.f90 \
251 1 pfleura2
      CalcHess.f90 \
252 1 pfleura2
      Hupdate_all.f90 \
253 1 pfleura2
      Hupdate_MS.f90 \
254 1 pfleura2
      Hupdate_Bofill.f90 \
255 1 pfleura2
      Hinvup_BFGS.f90 \
256 1 pfleura2
      Hinvup_DFP.f90 \
257 1 pfleura2
      CalcTangent.f90 \
258 1 pfleura2
      Step_RFO_all.f90 \
259 1 pfleura2
      Step_GEDIIS.f90  \
260 1 pfleura2
      Step_GEDIIS_All.f90 \
261 1 pfleura2
      Energy_GEDIIS.f90 \
262 1 pfleura2
      Step_DIIS_all.f90 \
263 1 pfleura2
      Extrapol_int.f90 \
264 1 pfleura2
      Extrapol_baker.f90 \
265 1 pfleura2
      Extrapol_mixed.f90 \
266 1 pfleura2
      Extrapol_cart.f90 \
267 1 pfleura2
      IntCoord_der.f90 \
268 1 pfleura2
      Step_DIIS.f90 \
269 1 pfleura2
      Step_GDIIS_Simple_Err.f90  \
270 1 pfleura2
      minv.f90 \
271 1 pfleura2
      Space.f90 \
272 1 pfleura2
      Space_GEDIIS.f90 \
273 1 pfleura2
      Space_GEDIIS_all.f90 \
274 1 pfleura2
      Space_all.f90 \
275 1 pfleura2
      freemv.f90 \
276 1 pfleura2
      Mat_util.f90 \
277 1 pfleura2
      refsor.f90 \
278 1 pfleura2
      Ginvse.f90
279 1 pfleura2
280 1 pfleura2
SRC0= ConvertNumAt.f90 \
281 1 pfleura2
      CheckPeriodicBound.f90 \
282 1 pfleura2
      Check_step.f90 \
283 1 pfleura2
      TestCart.f90 \
284 1 pfleura2
      Opt_Geom.f90 \
285 1 pfleura2
      PrintGeom.f90 \
286 1 pfleura2
      PrintGeomVasp.f90 \
287 1 pfleura2
      test_zmat.f90 \
288 1 pfleura2
      Annul.f90 \
289 1 pfleura2
      addligne.f90 \
290 1 pfleura2
      Splin1D.f90 \
291 1 pfleura2
      bib_oper.f90 \
292 1 pfleura2
      VectorPer.f90 \
293 1 pfleura2
      ZmatBuild.f90 \
294 1 pfleura2
      CalcCnct.f90 \
295 1 pfleura2
      ConvXyzZmat.f90 \
296 1 pfleura2
      ConvXyzMixed.f90 \
297 1 pfleura2
      Add2indzmat.f90 \
298 1 pfleura2
      CalcRmsd.f90\
299 1 pfleura2
      AlignPartial.f90 \
300 1 pfleura2
      Rotation_matrix.f90 \
301 1 pfleura2
      valid.f90  \
302 1 pfleura2
      upcase.f90\
303 1 pfleura2
      CalcBMat_int.f90 \
304 1 pfleura2
      CalcBMat_mixed.f90 \
305 1 pfleura2
      ConvGrad_Cart2Int.f90 \
306 1 pfleura2
      Int2cart.f90 \
307 1 pfleura2
      Mixed2cart.f90 \
308 1 pfleura2
      Write_path.f90  \
309 1 pfleura2
      Write_vasp.f90  \
310 1 pfleura2
      Std_ori.f90 \
311 1 pfleura2
      Tensor.f90 \
312 1 pfleura2
      cmshft.f90 \
313 1 pfleura2
      sinangle.f90 \
314 1 pfleura2
      Header.f90 \
315 1 pfleura2
      gaussj.f90  \
316 1 pfleura2
      Expand.f90
317 1 pfleura2
318 1 pfleura2
MAIN= $(SRC:.f90=.o)
319 1 pfleura2
TOOLS= $(SRC0:.f90=.o)
320 1 pfleura2
321 1 pfleura2
MOD = VarTypes.mod \
322 1 pfleura2
      Path_module.mod \
323 1 pfleura2
      Io_module.mod  \
324 1 pfleura2
      m_mrgrnk.mod
325 1 pfleura2
326 1 pfleura2
MODo = $(MOD:.mod=.o)
327 1 pfleura2
MODSRC = $(MOD:.mod=.f90)
328 1 pfleura2
329 1 pfleura2
OBJ = ${MAIN} ${TOOLS}
330 1 pfleura2
331 1 pfleura2
EXAMPLES = Path.valid  parameter.dat
332 1 pfleura2
333 1 pfleura2
334 1 pfleura2
###############################################################
335 1 pfleura2
#
336 1 pfleura2
# For now, we also give Lapack and Blas source files in case
337 1 pfleura2
# the libraries are not found by the user
338 1 pfleura2
#
339 1 pfleura2
###############################################################
340 1 pfleura2
SRCLAPACKD=$(wildcard ./lapack/double/*.f )
341 1 pfleura2
SRCLAPACKU=$(wildcard ./lapack/util/*.f )
342 1 pfleura2
SRCBLAS=$(wildcard ./blas/*.f )
343 1 pfleura2
344 1 pfleura2
OBJLAPACK=$(SCRLAPACKD:.f=.o) \
345 1 pfleura2
        $(SCRLAPACKU:.f=.o)
346 1 pfleura2
347 1 pfleura2
OBJBLAS=$(SRCBLAS:.f=.o)
348 1 pfleura2
349 1 pfleura2
all: path utils
350 1 pfleura2
351 1 pfleura2
install:
352 1 pfleura2
	mkdir -p ${PWD}/../exe
353 1 pfleura2
	ln -s ${PWD}/Path.exe ../exe/.
354 1 pfleura2
	ln -s ${PWD}/../utils/xyz2scan ../exe/.
355 1 pfleura2
	ln -s ${PWD}/../utils/xyz2path ../exe/.
356 1 pfleura2
357 1 pfleura2
path: ${MODo} ${OBJ}
358 1 pfleura2
	${LINK} -o Path.exe ${OBJ} ${MODo}
359 1 pfleura2
	@echo ""
360 1 pfleura2
	@echo "Path.exe has been created."
361 1 pfleura2
362 1 pfleura2
path_noL: ${MODo} ${OBJ} lapack blas
363 1 pfleura2
	${LINK} -o Path.exe ${OBJ} ${MODo}  ./lapack/lapack.a ./blas/blas.a
364 1 pfleura2
	@echo ""
365 1 pfleura2
	@echo "Path.exe has been created."
366 1 pfleura2
367 1 pfleura2
util: utils
368 1 pfleura2
utils:  xyz2scan xyz2path
369 1 pfleura2
	@echo ""
370 1 pfleura2
	@echo "Utilities have been created."
371 1 pfleura2
	@echo "Make sure that they are in your PATH environment"
372 1 pfleura2
373 1 pfleura2
xyz2scan: ../utils/Xyz2Scan.f90
374 1 pfleura2
	${F90} -o ../utils/xyz2scan ../utils/Xyz2Scan.f90
375 1 pfleura2
376 1 pfleura2
xyz2path: ../utils/Xyz2Path.f90 ../utils/Xyz2Path.param
377 1 pfleura2
	${F90} -o ../utils/xyz2path ../utils/Xyz2Path.f90
378 1 pfleura2
379 1 pfleura2
tgz:  ${SRC0} ${SRC} Makefile ${EXAMPLES} ${MODSRC} ${SRCLAPACKD} ${SRCLAPACKU} ${SRCBLAS}
380 1 pfleura2
	tar -cvf OpenPath_${Version}.tar ${SRC0} ${SRC} Makefile ${EXAMPLES} ${MODSRC}
381 1 pfleura2
	gzip OpenPath_${Version}.tar
382 1 pfleura2
	mv  OpenPath_${Version}.tar.gz OpenPath_${Version}.tgz
383 1 pfleura2
	@echo "OpenPath_${Version}.tgz  has been created."
384 1 pfleura2
385 1 pfleura2
lapack: ${OBJLAPACK}
386 1 pfleura2
	ar rcs ./lapack/lapack.a ${OBJLAPACK}
387 1 pfleura2
388 1 pfleura2
blas: ${OBJBLAS}
389 1 pfleura2
	ar rcs ./blas/blas.a ${OBJBLAS}
390 1 pfleura2
391 1 pfleura2
clean:
392 1 pfleura2
	rm -f *~ "#"* *.s ${OBJ} ${MOD}  ${MODo} ${OBJLAPACK} ${OBJBLAS}
393 1 pfleura2
394 1 pfleura2
veryclean: clean
395 1 pfleura2
	rm -f Path.exe ./lapack/lapack.a  ./blas/blas.a ../utils/xyz2scan ../utils/xyz2path
396 1 pfleura2
397 1 pfleura2
%.o : %.mod
398 1 pfleura2
399 1 pfleura2
%.o: %.f90 ${MOD}
400 1 pfleura2
	${F90} -c $*.f90
401 1 pfleura2
402 1 pfleura2
%.o: %.f
403 1 pfleura2
	${F90} -o $@ -c $<
404 1 pfleura2
405 1 pfleura2
%.exe: %.f90
406 1 pfleura2
	${F90} -o $*.exe $*.f90
407 1 pfleura2
	chmod u+x  $*.exe
408 1 pfleura2
409 1 pfleura2
%.mod: %.f90
410 1 pfleura2
	${F90} -c $*.f90