###############################################################################
#
# Makefile for flex_extract, Fortran code to calculate etadot
# Makefile created using by mkmf 19.3.0
#
# Copyright: Leopold Haimberger, Petra Seibert
# SPDX-License-Identifier: GPL-2.0 
# 
# Version for a machine with eccodes and emoslib installed on standard paths
# with optimisation
#
###############################################################################


EXE      =  calc_etadot_fast.out

ECCODES_LIB =  -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm 
EMOSLIB=-lemosR64
LIB =  $(ECCODES_LIB) $(EMOSLIB)

ECCODES_INCLUDE_DIR=/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15
#/usr/local/include/ #oldstable

INC = -I. -I$(ECCODES_INCLUDE_DIR)

FC = gfortran 
OPT = -O3 # -O3 -march=native
FFLAGS =   $(OPT) $(LIB) $(INC) -fdefault-real-8 -fopenmp -fconvert=big-endian 
LDFLAGS =  $(OPT) $(LIB) -fopenmp
SRC = ./rwgrib2.f90 ./calc_etadot.f90 ./ftrafo.f90 ./grphreal.f90 ./posnam.f90 ./phgrreal.f90
OBJ = rwgrib2.o calc_etadot.o ftrafo.o grphreal.o posnam.o phgrreal.o
MOD = ftrafo.mod  grtoph.mod	phtogr.mod  rwgrib2.mod

.DEFAULT:
	-echo $@ does not exist.

all: ${EXE}
ftrafo.o: ./ftrafo.f90 phgrreal.o
	$(FC)  $(FFLAGS)  -c	./ftrafo.f90
grphreal.o: ./grphreal.f90 phgrreal.o
	$(FC)  $(FFLAGS)  -c	./grphreal.f90
phgrreal.o: ./phgrreal.f90
	$(FC)  $(FFLAGS)  -c	./phgrreal.f90
posnam.o: ./posnam.f90
	$(FC)  $(FFLAGS)  -c	./posnam.f90
calc_etadot.o: ./calc_etadot.f90 phgrreal.o grphreal.o ftrafo.o rwgrib2.o
	$(FC)  $(FFLAGS)  -c	./calc_etadot.f90
rwgrib2.o: ./rwgrib2.f90
	$(FC)  $(FFLAGS)  -c	./rwgrib2.f90

clean: 
	-rm -f $(OBJ) ${EXE} $(MOD) calc_etadot

${EXE}: $(OBJ)
	$(FC) $(OBJ) -o ${EXE}  $(LDFLAGS)
	ln -sf ${EXE} calc_etadot