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