1 | ############################################################################### |
---|
2 | # |
---|
3 | # Makefile for flex_extract, Fortran code to calculate etadot |
---|
4 | # Makefile created using by mkmf 19.3.0 |
---|
5 | # |
---|
6 | # Copyright: Leopold Haimberger, Petra Seibert |
---|
7 | # SPDX-License-Identifier: GPL-2.0 |
---|
8 | # |
---|
9 | # Version for a machine with eccodes and emoslib installed on standard paths |
---|
10 | # with optimisation |
---|
11 | # |
---|
12 | # 2022-07-21 Anne Tipka |
---|
13 | # Updated makefile to make use of the files for fft and get rid of emoslib |
---|
14 | # |
---|
15 | ############################################################################### |
---|
16 | |
---|
17 | |
---|
18 | EXE = calc_etadot_fast.out |
---|
19 | |
---|
20 | ECCODES_LIB = -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm |
---|
21 | LIB = $(ECCODES_LIB) |
---|
22 | |
---|
23 | ECCODES_INCLUDE_DIR=/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15 |
---|
24 | #/usr/local/include/ #oldstable |
---|
25 | |
---|
26 | INC = -I. -I$(ECCODES_INCLUDE_DIR) |
---|
27 | |
---|
28 | FC = gfortran |
---|
29 | OPT = -O3 # -O3 -march=native |
---|
30 | FFLAGS = $(OPT) $(LIB) $(INC) -fdefault-real-8 -fopenmp -fconvert=big-endian |
---|
31 | LDFLAGS = $(OPT) $(LIB) -fopenmp |
---|
32 | SRC = ./rwgrib2.f90 ./calc_etadot.f90 ./ftrafo.f90 ./grphreal.f90 ./posnam.f90 ./phgrreal.f90 ./set99.f90 ./fft99.f90 ./qpassm.f90 ./rpassm.f90 ./jsppole.f90 |
---|
33 | OBJ = rwgrib2.o calc_etadot.o ftrafo.o grphreal.o posnam.o phgrreal.o set99.o fft99.o qpassm.o rpassm.o jsppole.o |
---|
34 | MOD = ftrafo.mod grtoph.mod phtogr.mod rwgrib2.mod |
---|
35 | |
---|
36 | .DEFAULT: |
---|
37 | -echo $@ does not exist. |
---|
38 | |
---|
39 | all: ${EXE} |
---|
40 | jsppole.o: ./jsppole.f90 |
---|
41 | $(FC) $(FFLAGS) -c ./jsppole.f90 |
---|
42 | qpassm.o: ./qpassm.f90 |
---|
43 | $(FC) $(FFLAGS) -c ./qpassm.f90 |
---|
44 | rpassm.o: ./rpassm.f90 |
---|
45 | $(FC) $(FFLAGS) -c ./rpassm.f90 |
---|
46 | set99.o: ./set99.f90 |
---|
47 | $(FC) $(FFLAGS) -c ./set99.f90 |
---|
48 | fft99.o: ./fft99.f90 |
---|
49 | $(FC) $(FFLAGS) -c ./fft99.f90 |
---|
50 | ftrafo.o: ./ftrafo.f90 phgrreal.o |
---|
51 | $(FC) $(FFLAGS) -c ./ftrafo.f90 |
---|
52 | grphreal.o: ./grphreal.f90 phgrreal.o fft99.o |
---|
53 | $(FC) $(FFLAGS) -c ./grphreal.f90 |
---|
54 | phgrreal.o: ./phgrreal.f90 fft99.o |
---|
55 | $(FC) $(FFLAGS) -c ./phgrreal.f90 |
---|
56 | posnam.o: ./posnam.f90 |
---|
57 | $(FC) $(FFLAGS) -c ./posnam.f90 |
---|
58 | calc_etadot.o: ./calc_etadot.f90 phgrreal.o grphreal.o ftrafo.o rwgrib2.o jsppole.o set99.o |
---|
59 | $(FC) $(FFLAGS) -c ./calc_etadot.f90 |
---|
60 | rwgrib2.o: ./rwgrib2.f90 |
---|
61 | $(FC) $(FFLAGS) -c ./rwgrib2.f90 |
---|
62 | |
---|
63 | clean: |
---|
64 | -rm -f $(OBJ) ${EXE} $(MOD) calc_etadot |
---|
65 | |
---|
66 | ${EXE}: $(OBJ) |
---|
67 | $(FC) $(OBJ) -o ${EXE} $(LDFLAGS) |
---|
68 | ln -sf ${EXE} calc_etadot |
---|