diff --git a/Source/Fortran/makefile_cray b/Source/Fortran/makefile_cray
index 329fad55612498c574aa964e988acfc3bcafedc5..6993d73a5a06cb9669ca05ae6fe57b8e971f1b2c 100644
--- a/Source/Fortran/makefile_cray
+++ b/Source/Fortran/makefile_cray
@@ -1,57 +1,51 @@
 ###############################################################################
 #
-# Top level Makefile for ECMWFDATA7.0 software
+# Makefile for flex_extract, Fortran code to calculate etadot
+# Makefile created using by mkmf 19.3.0
 #
-# Last modified:  December 1, 2015
+# 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
 #
 ###############################################################################
 
 
-.SUFFIXES: .o .c .c~ .f .f~ .F90 .f90 .f90~ .f95 .f95~ .F .F~ .y .y~ .l .l~ \
-           .s .s~ .sh .sh~ .h .h~ .C .C~ .a
+EXE      =  calc_etadot
 
-OPT	= 
-DEBUG	= -g
-LIB     =  $(GRIB_API_LIBS) $(EMOSLIB)
+LIB     =  $(ECCODES_LIB) $(EMOSLIB)   
+INC = -I. -I$(ECCODES_INCLUDE_DIR)
 
-FC=ftn  $(F90FLAGS)
-F90C=ftn    $(F90FLAGS)
-
-FFLAGS =  $(OPT) -I. -r8 -I$(GRIB_API_INCLUDE_DIR)
-F90FLAGS =  $(OPT) -I. -r8 -I$(GRIB_API_INCLUDE_DIR)
-
-LDFLAGS =  $(OPT)
-
-BINDIR  =      .
+FC = ftn
 
+OPT = -O3
+FFLAGS =  -s real64  $(OPT) $(LIB) $(INC) 
+LDFLAGS =  $(OPT) -fopenmp
 EXE	=      calc_etadot
 
-
 .f.o:
-	$(F90C) -c $(F90FLAGS) $(DEBUG) $*.f
-.f90.o:
-	$(F90C) -c $(F90FLAGS) $(DEBUG) $*.f90
+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
 
 all:	${EXE}
 
-clean:
-	rm *.o *.mod ${EXE}
-
-phgrreal.o: phgrreal.f
-	$(F90C) -c -g -O3 phgrreal.f
-
-grphreal.o: grphreal.f
-	$(F90C) -c -g -O3 grphreal.f
-
-ftrafo.o: ftrafo.f
-	$(F90C) -c -g -O3 ftrafo.f
-
-$(BINDIR)/${EXE}:	phgrreal.o grphreal.o ftrafo.o rwgrib2.o  posnam.o calc_etadot.o
-	$(F90C) $(DEBUG) $(OPT) -o $(BINDIR)/${EXE} ftrafo.o phgrreal.o grphreal.o rwgrib2.o posnam.o calc_etadot.o ${LIB}
-
-
-###############################################################################
-#
-# End of the Makefile
-#
-###############################################################################
+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)
diff --git a/Source/Fortran/makefile_debug b/Source/Fortran/makefile_debug
index e87cf2f190ebb1787184dc7c53bc1434e8eee8f3..47df1a3268dff0e6841d7a4ba2364903a7335450 100644
--- a/Source/Fortran/makefile_debug
+++ b/Source/Fortran/makefile_debug
@@ -6,7 +6,7 @@
 # Copyright: Leopold Haimberger, Petra Seibert
 # SPDX-License-Identifier: GPL-2.0 
 # 
-# Version for a machine with grib_api and emoslib installed on standard paths
+# Version for a machine with eccodes and emoslib installed on standard paths
 # full debugging
 #
 ###############################################################################
@@ -14,12 +14,12 @@
 
 EXE      =  calc_etadot_debug.out
 
-GRIB_API_LIB=  -Bstatic -lgrib_api_f90 -lgrib_api -Bdynamic -lm -ljasper
+GRIB_API_LIB=  -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm -ljasper
 EMOSLIB=-lemosR64
 LIB =  $(GRIB_API_LIB) $(EMOSLIB)
 
-GRIB_API_INCLUDE_DIR=/usr/include
-INC = -I. -I$(GRIB_API_INCLUDE_DIR)
+ECCODES_INCLUDE_DIR=/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15
+INC = -I. -I$(ECCODES_INCLUDE_DIR)
 
 FC = gfortran 
 OPT = -g -Og -fbacktrace -fcheck=all
@@ -46,7 +46,9 @@ calc_etadot.o: ./calc_etadot.f90 phgrreal.o grphreal.o ftrafo.o rwgrib2.o
 rwgrib2.o: ./rwgrib2.f90
 	$(FC)  $(FFLAGS)  -c	./rwgrib2.f90
 
-clean: -rm -f $(OBJ) ${EXE} $(MOD)
+clean: 
+	-rm -f $(OBJ) ${EXE} $(MOD) calc_etadot
 
 ${EXE}: $(OBJ)
 	$(FC) $(OBJ) -o ${EXE}  $(LDFLAGS)
+	ln -sf ${EXE} calc_etadot
diff --git a/Source/Fortran/makefile_ecgate b/Source/Fortran/makefile_ecgate
index dace8ad8983469b8549da1c07665dd3eee9cfb7c..e68960f32d10fda286914789e297dc5812791b56 100644
--- a/Source/Fortran/makefile_ecgate
+++ b/Source/Fortran/makefile_ecgate
@@ -1,58 +1,48 @@
 ###############################################################################
 #
-# Top level Makefile for ECMWFDATA7.0 software
+# Makefile for flex_extract, Fortran code to calculate etadot
+# Makefile created using by mkmf 19.3.0
 #
-# Last modified:  December 1, 2015
+# 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
 #
 ###############################################################################
 
 
-.SUFFIXES: .o .c .c~ .f .f~ .F90 .f90 .f90~ .f95 .f95~ .F .F~ .y .y~ .l .l~ \
-           .s .s~ .sh .sh~ .h .h~ .C .C~ .a
+EXE      =  calc_etadot_fast.out
 
-OPT	= -O3
-DEBUG	= -g
 LIB     =  $(ECCODES_LIB) $(EMOSLIB)   
-
-FC=gfortran   -m64 -fdefault-real-8 -fcray-pointer -fno-second-underscore  -ffixed-line-length-132 -fopenmp  -fconvert=big-endian  
-F90C=gfortran   -m64 -fdefault-real-8 -fcray-pointer -fno-second-underscore  -ffixed-line-length-132 -fopenmp  -fconvert=big-endian 
-
-FFLAGS =  $(OPT) -I. -I$(ECCODES_INCLUDE_DIR) 
-
-F90FLAGS =  $(OPT) -I. -I$(ECCODES_INCLUDE_DIR)
-
-LDFLAGS =  $(OPT)
-
-BINDIR  =      .
-
-EXE	=      calc_etadot
-
-
-.f.o:
-	$(F90C) -c $(F90FLAGS) $(DEBUG) $*.f
-.f90.o:
-	$(F90C) -c $(F90FLAGS) $(DEBUG) $*.f90
-
-all:	${EXE}
-
-clean:
-	rm *.o *.mod ${EXE}
-
-phgrreal.o: phgrreal.f
-	$(F90C) -c -g -O3 -fopenmp phgrreal.f
-
-grphreal.o: grphreal.f
-	$(F90C) -c -g -O3 -fopenmp grphreal.f
-
-ftrafo.o: ftrafo.f
-	$(F90C) -c -g -O3 -fopenmp ftrafo.f
-
-$(BINDIR)/${EXE}:	phgrreal.o grphreal.o ftrafo.o rwgrib2.o  posnam.o calc_etadot.o
-	$(F90C) $(DEBUG) $(OPT) -o $(BINDIR)/${EXE} ftrafo.o phgrreal.o grphreal.o rwgrib2.o posnam.o calc_etadot.o ${LIB}
-
-
-###############################################################################
-#
-# End of the Makefile
-#
-###############################################################################
+INC = -I. -I$(ECCODES_INCLUDE_DIR)
+
+FC=gfortran  
+
+OPT = -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
+
+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
diff --git a/Source/Fortran/makefile_fast b/Source/Fortran/makefile_fast
index 478b37b77c3b2d563c7377753b92353e7108dd4c..aee8a1befdf050e9d8c5c56396a93fa3876dab52 100644
--- a/Source/Fortran/makefile_fast
+++ b/Source/Fortran/makefile_fast
@@ -6,20 +6,19 @@
 # Copyright: Leopold Haimberger, Petra Seibert
 # SPDX-License-Identifier: GPL-2.0 
 # 
-# Version for a machine with grib_api and emoslib installed on standard paths
-# full debugging
+# Version for a machine with eccodes and emoslib installed on standard paths
+# with optimisation
 #
 ###############################################################################
 
 
-EXE      =  calc_etadot
+EXE      =  calc_etadot_fast.out
 
-#GRIB_API_LIB=  -Bstatic -lgrib_api_f90 -lgrib_api -Bdynamic -lm -ljasper
-ECCODES_LIB= -L/usr/local/lib -leccodes_f90 -leccodes -lm
+ECCODES_LIB =  -Bstatic -leccodes_f90 -leccodes -Bdynamic -lm -ljasper
 EMOSLIB=-lemosR64
 LIB =  $(ECCODES_LIB) $(EMOSLIB)
 
-ECCODES_INCLUDE_DIR=/usr/local/include
+ECCODES_INCLUDE_DIR=/usr/lib/x86_64-linux-gnu/fortran/gfortran-mod-15
 INC = -I. -I$(ECCODES_INCLUDE_DIR)
 
 FC = gfortran 
@@ -48,7 +47,8 @@ rwgrib2.o: ./rwgrib2.f90
 	$(FC)  $(FFLAGS)  -c	./rwgrib2.f90
 
 clean: 
-	-rm -f $(OBJ) ${EXE} $(MOD)
+	-rm -f $(OBJ) ${EXE} $(MOD) calc_etadot
 
 ${EXE}: $(OBJ)
 	$(FC) $(OBJ) -o ${EXE}  $(LDFLAGS)
+	ln -sf ${EXE} calc_etadot