Newer
Older
#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
#MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
#MNH_LIC for details. version 1.
##########################################################
# #
# MACRO : dependance_flist #
# generate the dependance list for ALL fortran #
# "*.f*" files #
# searching in PATH=$(1) #
##########################################################
#
dependance_flist = $(notdir $(shell find $(1) -follow -type f \
-name '*.f' -o -name '*.f90' -o -name '*.fx90' -o -name '*.F90'\
| grep -v ',v' | sed -e 's/\.f.*/.D/g' -e 's/\.F.*/.D/g' ))
obj_flist = $(notdir $(shell find $(1) -follow -type f \
-name 'spll_*.f*' | sed -e 's/\(.*\)\(\.\).*/\1.o/g' ))
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#
##########################################################
# #
# COMPILER & ARCHITECTURE CONFIGURATION #
# #
##########################################################
#
include Rules.$(ARCH)$(F).mk
#
##########################################################
##########################################################
##########################################################
# #
# DONT MODIFY LINES AFTER THIS !!!!!!!!!!!!! #
# #
##########################################################
##########################################################
##########################################################
##########################################################
# #
# AUTOMATIQUE DEPENDANCE GENERATION !!!!!!!!!!!!! #
# #
# "*.D" files contain dependance deduceed #
# form all "*.f*" FORTRAN sources files #
# #
# "use" key word #
# --> dependance on "*.mod" module files #
# "module" key word key word #
# --> creation of"*.mod" module files #
# #
# The "*.D" list of files is contructed from every #
# directories of fortran sources : #
# ---> user, master , bugfix , etc... #
# with or without RCS version control #
# #
# The "*.D" list is reconstructed automaticaly #
# by the commande "spll" , each time a FORTRAN source #
# are modified or added . #
# #
# All modification are allowed !!!!! #
# adding new subroutines #
# or #
# adding new modules #
# #
# REM : if during modification, you deleting some #
# FORTRAN subroutines you must also deleted the #
# "spll_*.o" files created by this one by hand #
# to avoid potential link problems #
# #
##########################################################
##########################################################
# #
# DEP_MASTER : Automatique --> #
# Dependance file of MASTER source #
# #
##########################################################
#
OBJDIR_MASTER=$(OBJDIR_ROOT)/MASTER
DEP_MASTER= $(call dependance_flist,$(DIR_MASTER))
#
# init VPATH depending on compilation phase
#
ifdef DO_DEP_MASTER
VPATH += $(shell find $(DIR_MASTER) -follow -type d )
VPATH += $(OBJDIR_MASTER)
endif
#
ifdef DO_COMP_MASTER
VPATH += $(OBJDIR_MASTER) $(OBJDIR_MASTER)/MOD
endif
#
##########################################################
# #
# DEP_USER : Automatique --> #
# Dependance file of MY source #
# #
##########################################################
#
ifdef VER_USER
OBJDIR_USER=$(OBJDIR_ROOT)/$(VER_USER)
#
# init VPATH depending on compilation phase
#
ifdef DO_DEP_USER
DEP_USER= $(call dependance_flist,$(DIR_USER))
VPATH += $(shell find $(DIR_USER) -follow -type d )
VPATH += $(OBJDIR_USER)
endif
#
ifdef DO_COMP_USER
VPATH += $(OBJDIR_USER) $(OBJDIR_USER)/MOD $(OBJDIR_MASTER) $(OBJDIR_MASTER)/MOD

ESCOBAR MUNOZ Juan
committed
INC += -I$(B)$(OBJDIR_USER)/MOD -I$(B)$(OBJDIR_MASTER)/MOD
endif
#
endif
##########################################################
# #
# VPATH ADJUSTEMENT : #
# #
##########################################################
#
#
#VPATH := $(filter-out $(VPATH_EXCLUDE),$(VPATH))
#
##########################################################
# #
# OBJS : all *.o to compile #
# #
##########################################################
#
# MASTER
#
OBJS_LISTE_MASTER := $(OBJS_LISTE_MASTER) $(notdir $(shell find $(OBJDIR_MASTER) -follow -type f -name "spll_*.f*" | sed -e 's/\(.*\)\(\.\).*/\1.o/g' ))
#OBJS_LISTE_MASTER := $(OBJS_LISTE_MASTER) $(obj_flist $(OBJDIR_MASTER))
#
OBJS_LISTE_MASTER := $(sort $(filter-out $(IGNORE_OBJS),$(OBJS_LISTE_MASTER)))
#
LIB_MASTER=$(OBJDIR_MASTER)/$(LIB_OBJS_ROOT)-MASTER.a
#
# USER
#

Juan Escobar
committed
ifdef OBJDIR_USER
OBJS_LISTE_USER := $(OBJS_LISTE_USER) $(notdir $(shell find $(OBJDIR_USER) -follow -type f -name "spll_*.f*" | sed -e 's/\(.*\)\(\.\).*/\1.o/g' ))
#OBJS_LISTE_USER := $(OBJS_LISTE_USER) $(obj_flist $(OBJDIR_USER))
#
OBJS_LISTE_USER := $(sort $(filter-out $(IGNORE_OBJS), $(OBJS_LISTE_USER) $(OBJS_LISTE_MASTER) ))
#
LIB_USER=$(OBJDIR_USER)/$(LIB_OBJS_ROOT)-$(VER_USER).a

Juan Escobar
committed
endif
##########################################################
# #
# DEP_ALL : All dependance *.D to generate #
# #
##########################################################
#
DEP_ALL_MASTER = $(sort $(filter-out $(IGNORE_DEP_MASTER),$(DEP_MASTER)) )
#
DEP_ALL_USER = $(sort $(filter-out $(IGNORE_DEP_USER) ,$(DEP_USER)) )
#

WAUTELET Philippe
committed
.PHONY : clean objdir depall objs lib prog print
.DELETE_ON_ERROR:
.SUFFIXES:
.SUFFIXES: .o .f90 .f .fx90 .mod .D .a
.INTERMEDIATE: $(LIB_MASTER)

WAUTELET Philippe
committed
.SECONDARY: mpi.mod netcdf.mod openacc.mod
##########################################################
# #
# MASTER RULES #
# #
##########################################################

WAUTELET Philippe
committed
.PHONY : all objdirmaster libmaster bibmaster objmaster progmaster
.PHONY : installmaster cleanlibmaster cleanmaster cleanobjmaster cleanprogmaster
all : gribapi progmaster
objdirmaster : $(OBJDIR_MASTER)/.dummy
$(OBJDIR_MASTER)/.dummy :
-mkdir -p $(OBJDIR_MASTER)/.dummy
-mkdir -p $(OBJDIR_MASTER)/MOD

ESCOBAR MUNOZ Juan
committed
depmaster : objdirmaster
@$(MAKE) DO_DEP_MASTER=YES OBJDIR=$(OBJDIR_MASTER) filedepallmaster

ESCOBAR MUNOZ Juan
committed
ifeq "$(VER_CDF)" "CDFAUTO"
depmaster : cdf
endif
ifeq "$(VER_OASIS)" "OASISAUTO"
depmaster : oasis
endif

ESCOBAR MUNOZ Juan
committed
filedepallmaster : $(DEP_ALL_MASTER)
find $(OBJDIR_MASTER) -follow -name "*.D" > $(OBJDIR_MASTER)/filemaster
rm -f $(OBJDIR_MASTER)/filedepallmaster
cat $(OBJDIR_MASTER)/filemaster | xargs cat >> $(OBJDIR_MASTER)/filedepallmaster
libmaster : depmaster

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_MASTER) DO_COMP_MASTER=YES OBJDIR=$(OBJDIR_MASTER) objmaster

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_MASTER) DO_COMP_MASTER=YES OBJDIR=$(OBJDIR_MASTER) $(LIB_MASTER)
mv $(LIB_MASTER) $(subst lib-,bib-,$(LIB_MASTER))
objmaster : $(OBJS_LISTE_MASTER)
$(LIB_MASTER) : $(OBJS_LISTE_MASTER)
cd $(OBJDIR_MASTER) ; find . -follow -name '*.o'| xargs $(AR) r $(LIB_MASTER)
progmaster : libmaster

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_MASTER) DO_COMP_MASTER=YES \
OBJDIR=$(OBJDIR_MASTER) \
LIB_MNH=$(LIB_MASTER) \
PROG_DIR=$(OBJDIR_MASTER) \
$(PROG_LIST) cleanlibmaster
installmaster : libmaster

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_MASTER) DO_COMP_MASTER=YES OBJDIR=$(OBJDIR_MASTER) install
cleanlibmaster :
rm -f $(LIB_MASTER)

ESCOBAR MUNOZ Juan
committed
cleanmaster :
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
test -d $(OBJDIR_MASTER) && rm -fr $(OBJDIR_MASTER)
cleanobjmaster :
test -d $(OBJDIR_MASTER) && find $(OBJDIR_MASTER) -follow -name "*.o" -o -name "*.mod" | xargs rm
cleanprogmaster :
test -d $(OBJDIR_MASTER) && cd $(OBJDIR_MASTER) && rm -f $(PROG_LIST)
##########################################################
# #
# USER RULES #
# #
##########################################################
user : proguser
objdiruser : $(OBJDIR_USER)/.dummy
$(OBJDIR_USER)/.dummy :
-mkdir -p $(OBJDIR_USER)/.dummy
-mkdir -p $(OBJDIR_USER)/MOD
depuser : objdiruser
@$(MAKE) DO_DEP_USER=YES OBJDIR=$(OBJDIR_USER) filedepalluser
filedepalluser : $(DEP_ALL_USER)
find $(OBJDIR_USER) -follow -name "*.D" > $(OBJDIR_USER)/fileuser
cat $(OBJDIR_USER)/fileuser | sed -e "s!$(OBJDIR_USER)!$(OBJDIR_MASTER)!g" > $(OBJDIR_USER)/filenotmaster
grep -F -v -f $(OBJDIR_USER)/filenotmaster $(OBJDIR_MASTER)/filemaster > $(OBJDIR_USER)/filemaster
rm -f $(OBJDIR_USER)/filedepalluser
cat $(OBJDIR_USER)/fileuser $(OBJDIR_USER)/filemaster | xargs cat >> $(OBJDIR_USER)/filedepalluser
libuser : depuser

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_USER) DO_COMP_USER=YES OBJDIR=$(OBJDIR_USER) objuser
objuser : $(OBJS_LISTE_USER)
$(LIB_USER) : $(OBJS_LISTE_USER)
rm -f $(LIB_USER)
cd $(OBJDIR_MASTER) ; find . -name "*.o" | xargs $(AR) r $(LIB_USER)
cd $(OBJDIR_USER) ; find . -name "*.o" | xargs $(AR) r $(LIB_USER)
proguser : libuser

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_USER) DO_COMP_USER=YES \
OBJDIR=$(OBJDIR_USER) \
LIB_MNH=$(LIB_USER) \
PROG_DIR="$(OBJDIR_USER) $(OBJDIR_MASTER)" \
$(PROG_LIST) # cleanlibuser
cleanlibuser :
rm -f $(LIB_USER)
installuser :

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR_USER) DO_COMP_USER=YES OBJDIR=$(OBJDIR_USER) install
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
cleanproguser :
test -d $(OBJDIR_USER) && cd $(OBJDIR_USER) && rm -f $(PROG_LIST)
##########################################################
# #
# EXTRA LIB : GRIBEX #
# #
##########################################################
ifneq "$(findstring 64,$(shell uname -m))" ""
A64=A64
endif
#$(LIB_GRIBEX) : libmaster
$(LIB_GRIBEX) :
ifneq "$(ARCH)" "SX8"
- [ ! -d $(DIR_GRIBEX)_$(ARCH) ] && cp -Rp $(DIR_GRIBEX) $(DIR_GRIBEX)_$(ARCH)
cd $(DIR_GRIBEX)_$(ARCH) && $(MAKE) -j 1 ARCH=$(TARGET_GRIBEX) R64=$(R64_GRIBEX) CNAME=$(CNAME_GRIBEX) A64=$(A64)
else
ifneq "$(findstring brodie,$(shell uname -n))" ""
#brodie
- [ ! -d $(DIR_GRIBEX)_$(ARCH) ] && mkdir -p ${workdir}/$(DIR_GRIBEX)_$(ARCH) \
&& ln -s ${workdir}/$(DIR_GRIBEX)_$(ARCH) $(DIR_GRIBEX)_$(ARCH)
cp /home/rech/mnh/rmnh007/aeronec/mesonh/binaries/libemosR64.a $(DIR_GRIBEX)_$(ARCH)/libgribexR64.a
else
#tori & yuki
- [ ! -d $(DIR_GRIBEX)_$(ARCH) ] && mkdir -p $(DIR_GRIBEX)_$(ARCH)
cp /usr/local/SX/lib/libgribex.a $(DIR_GRIBEX)_$(ARCH)/libgribexR64.a
endif
endif
gribex_clean :
- [ -d $(DIR_GRIBEX)_$(ARCH) ] && rm -fr $(DIR_GRIBEX)_$(ARCH)
##########################################################
# #
# EXTRA LIB : GRIBAPI #
# #
##########################################################
ifneq "$(findstring 64,$(shell uname -m))" ""
A64=A64
endif
gribapi : $(GRIBAPI_INC)
$(GRIBAPI_INC) :
cd ${DIR_GRIBAPI} && ./configure --disable-shared --disable-jpeg --prefix=${GRIBAPI_PATH} FC="$(FC)" ${GRIBAPI_CONF} && $(MAKE) -j 1 clean && $(MAKE) -j 1 && $(MAKE) -j 1 install && $(MAKE) -j 1 clean
gribapi_clean :
- [ -d ${GRIBAPI_PATH} ] && rm -fr ${GRIBAPI_PATH}
##########################################################
# #
# EXTRA LIB : NETCDF #
# #
##########################################################
ifeq "$(VER_CDF)" "CDFAUTO"
#

WAUTELET Philippe
committed
HDF_OPT = ${OPT_BASE_I4:-$OPT_BASE}
NETCDF_OPT = ${OPT_BASE_I4:-$OPT_BASE}
#

ESCOBAR MUNOZ Juan
committed
cd ${DIR_HDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --with-zlib=no \

WAUTELET Philippe
committed
FC="$(FC)" FCFLAGS="$(HDF_OPT)" CPPFLAGS="-DpgiFortran" ${HDF_CONF} && make && make install && $(MAKE) -j 1 clean

WAUTELET Philippe
committed
cd ${DIR_CDF} && ./configure --disable-shared --prefix=${CDF_PATH} --libdir=${CDF_PATH}/lib64 --disable-cxx --enable-f90 --disable-dap \
FC="$(FC)" FCFLAGS="$(NETCDF_OPT)" CPPFLAGS="-DpgiFortran ${INC_NETCDF}" ${CDF_CONF} LDFLAGS=" -L${CDF_PATH}/lib64" && make && make install && $(MAKE) -j 1 clean
cleanmaster : cleancdf
cleancdf :
- [ -d ${CDF_PATH} ] && rm -fr ${CDF_PATH}
endif
##########################################################
# #
# EXTRA LIB : OASIS #
# #
##########################################################
ifeq "$(VER_OASIS)" "OASISAUTO"
#
oasis : $(OASIS_KEY)
$(OASIS_KEY):
cd ${SRC_MESONH}/src/LIB/oasis3-mct_v3/util/make_dir && make realclean -f TopMakefileOasis3 && make -f TopMakefileOasis3 && cd ${SRC_MESONH}/src/LIB/toy_v1-0 && make clean && make
cleanmaster : cleanoasis
cleanoasis :
- [ -d ${OASIS_PATH} ] && rm -fr ${OASIS_PATH}
endif
##########################################################
# #
# PROGRAM RULES #
# #
##########################################################
ifdef PROG_LIST
prog : lib $(LIB_GRIBEX)

ESCOBAR MUNOZ Juan
committed
@$(MAKE) -I$(B)$(OBJDIR) DEP=YES $(PROG_LIST)
install : $(patsubst %,%-${ARCH_XYZ},$(PROG_LIST))
$(PROG_LIST) : OBJ_PROG=$(shell find $(PROG_DIR) -follow -type f -name "spll_*.f*" \
| xargs grep -l -E -i "^[[:space:]]*program *$@" | sed -e 's/\.f.*/.o/g' | head -1 \
| xargs basename | xargs -i find $(PROG_DIR) -follow -name {} -print | head -1 )
$(PROG_LIST) : $(LIB_MNH) $(LIB_GRIBEX)
# echo OBJ_PROG=$(OBJ_PROG)
$(F90) $(LDFLAGS) -o $(OBJDIR)/$@ $(OBJ_PROG) $(LIB_MNH) $(LIBS)
%-${ARCH_XYZ} :%
ifndef DO_COMP_USER
ln -sf $(OBJDIR)/$(*F) $(SRC_MESONH)/exe/$(*F)-${ARCH_XYZ}
else
# ln -sf $(OBJDIR)/$(*F) $(SRC_MESONH)/exe/$(*F)-${ARCH_XYZ}-${VER_USER}
ln -sf $(OBJDIR)/$(*F) $(SRC_MESONH)/exe/$(*F)${XYZ}

WAUTELET Philippe
committed
endif
ifdef MNH_TOOLS
ln -sf $(OBJDIR)/LFI2CDF $(SRC_MESONH)/bin_tools/lfi2cdf
ln -sf $(OBJDIR)/LFI2CDF $(SRC_MESONH)/bin_tools/cdf2cdf
ln -sf $(OBJDIR)/LFI2CDF $(SRC_MESONH)/bin_tools/cdf2lfi
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
endif
rm -f $(SRC_MESONH)/exe/$(*F)_${ARCH_XYZ}~
##########################################################
# #
# EXAMPLES RULES #
# #
##########################################################
PWD_KTEST=$(SRC_MESONH)/MY_RUN/KTEST
EXAMPLES=001_2Drelief 002_3Drelief 003_KW78 004_Reunion 007_16janvier
examples : $(EXAMPLES)
EXAMPLES_CHIMIE=009_ICARTT 011_KW78CHEM
chimie : $(EXAMPLES_CHIMIE)
$(EXAMPLES) $(EXAMPLES_CHIMIE) 012_dust :
cd $(PWD_KTEST)/$@ ; run_$@
EXAMPLES_NCL=004_Reunion 007_16janvier
ncl1_examples : $(patsubst %,%_ncl1,$(EXAMPLES_NCL))
ncl2_examples : $(patsubst %,%_ncl2,$(EXAMPLES_NCL))
examplesclean : $(patsubst %,%_clean,$(EXAMPLES))
%_ncl1 :
cd $(PWD_KTEST)/$(*F) ; run_$(*F) all_ncl_extractdia
%_ncl2 :
cd $(PWD_KTEST)/$(*F) ; run_$(*F) all_ncl_lfi2cdf
%_clean :
cd $(PWD_KTEST)/$(*F) ; $(MAKE) clean
#
# rules to remove spll* source on MASTER directory
#
purgelist : $(patsubst %,purge_%,$(notdir $(PL)))
purge_%.f90 :
cd $(OBJDIR_MASTER) ; grep -l "depfile:$(*F).D" *.f* | xargs rm -f ; rm -f $(*F).D ; rm -f filedepallmaster filemaster
purge_%.fx90 :
cd $(OBJDIR_MASTER) ; grep -l "depfile:$(*F).D" *.f* | xargs rm -f ; rm -f $(*F).D ; rm -f filedepallmaster filemaster
purge_%.f :
cd $(OBJDIR_MASTER) ; grep -l "depfile:$(*F).D" *.f* | xargs rm -f ; rm -f $(*F).D ; rm -f filedepallmaster filemaster
#
# rules to remove spll* source on USER directory
#
purgelistu : $(patsubst %,purgeu_%,$(notdir $(PL)))
purgeu_%.f90 :
cd $(OBJDIR_USER) ; grep -l "depfile:$(*F).D" *.f* | xargs rm -f ; rm -f $(*F).D ; rm -f filedepalluse fileuser
purgeu_%.fx90 :
cd $(OBJDIR_USER) ; grep -l "depfile:$(*F).D" *.f* | xargs rm -f ; rm -f $(*F).D ; rm -f filedepalluse fileuser
purgeu_%.f :
cd $(OBJDIR_USER) ; grep -l "depfile:$(*F).D" *.f* | xargs rm -f ; rm -f $(*F).D ; rm -f filedepalluse fileuser
stat_f90 :
cd $(OBJDIR_MASTER) ; find . -name "*.f90" | wc -l
stat_o :
cd $(OBJDIR_MASTER) ; find . -name "*.o" | wc -l
endif
cleanuser :
test -d $(OBJDIR_USER) && rm -fr $(OBJDIR_USER)
clean : examplesclean gribex_clean
rm -fr $(OBJDIR_ROOT)
cleanprog :
cd $(OBJDIR_ROOT) ; rm -f $(PROG_LIST)
print :
@echo $(VAR)=$($(VAR))
ARFLAGS=r
#(%.o): %.o
# $(AR) $(ARFLAGS) $(OBJDIR)/$(@F) $(*F).o
# $(RM) $(*F).o
#
# GENERATION OF DEPENDANCE FILES : *.D
#
%.D:%.F90
$(CPP) $(INC) $(CPPFLAGS) $< > $(OBJDIR)/$(*F).f90
spll $(NSOURCE) $(OBJDIR)/$(*F).f90
rm -f $(OBJDIR)/$(*F).f90
%.D:%.f90
$(CPP) $(INC) $(CPPFLAGS) $< > $(OBJDIR)/$(*F).f90
spll $(NSOURCE) $(OBJDIR)/$(*F).f90
rm -f $(OBJDIR)/$(*F).f90
%.D:%.fx90
$(CPP) $(INC) $(CPPFLAGS) $< > $(OBJDIR)/$(*F).fx90
spll $(NSOURCE) $(OBJDIR)/$(*F).fx90
rm -f $(OBJDIR)/$(*F).fx90
%.D:%.f
$(CPP) $(INC) $(CPPFLAGS) $< > $(OBJDIR)/$(*F).f
spll $(NSOURCE) $(OBJDIR)/$(*F).f
rm -f $(OBJDIR)/$(*F).f
#
# GENERATION OF OBJET FILES : *.o
#
%.o:%.f90
$(F90) -I$(OBJDIR) $(INC) -c $(F90FLAGS) $<
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
%.o:%.f
$(F77) -I$(OBJDIR) $(INC) -c $(F77FLAGS) $<
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
%.o:%.fx90
cp $< $(OBJDIR)/$(*F).f
$(FX90) -I$(OBJDIR) $(INC) -c $(FX90FLAGS) $(OBJDIR)/$(*F).f
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
%.o : %.c
$(CC) $(INC) $(CFLAGS) $(CPPFLAGS) -c $< -o $(OBJDIR)/$(*F).o
-mv $(*F).o $(OBJDIR)/. || echo OK $(*F).o
ifeq "$(DO_COMP_MASTER)" "YES"
include filedepallmaster
endif
ifeq "$(DO_COMP_USER)" "YES"
include filedepalluser
endif

WAUTELET Philippe
committed
mpi.mod:
netcdf.mod:
openacc.mod: