##################################
#                                #
#   Makefile for Make_NEDT.f90   #
#                                #
##################################

SHELL = /bin/sh

#MAIN:=star_fm_GFS_main_v2
#MAIN:=star_fm_ERA5fv2_main
#MAIN:=star_fm_ERA5hres_main
#MAIN:=star_fm_ERA5v2_main
MAIN:=star_fm_ECH_main

SRC = module_earth.f90 \
			module_geodesy.f90 \
			module_datetimetypes.f90 \
			module_forward.f90 \
			module_read_write.f90 \
			${MAIN}.f90

OBJ = module_earth.o \
			module_geodesy.o \
			module_datetimetypes.o \
			module_forward.o \
			module_read_write.o \
			${MAIN}.o

EXE = ${MAIN}.exe

NC_INC        := -I${NETCDF}/include -I/data2/xinjiaz/utility/STAR_fm_netcdf/csv_code/include
NC_LIB        := -L$(NETCDF)/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz -ldl -L/data2/xinjiaz/utility/STAR_fm_netcdf/csv_code/lib -lcsv

#-------------------------------------
# Fortran Compiler, Linker, and Flags:
#-------------------------------------
FC = /usr/bin/gfortran
FL = /usr/bin/gfortran
FC_FLAGS = -c 
FL_FLAGS = -o
# FL_FLAGS = -o -fcheck=all
# FL_FLAGS = -o -fcheck=bounds


.SUFFIXES:
.SUFFIXES: .f90 .o

#--- Linking  ---
$(EXE): $(OBJ)
	$(FL) ${NC_INC} $(FL_FLAGS) $@ $(OBJ)  ${NC_LIB}
	rm -f *.mod *.o


#--- Compile  ---
.f90.o:
	$(FC) ${NC_INC} $(FC_FLAGS) $<  ${NC_LIB}


#--- Cleaning ---
clean:
	rm -f *.mod *.o


#--- Running  ---
run:
	./$(EXE)


#--- End of Makefile
