FC = gfortran 

INC_NC  = -I/usr/include
LIB_NC  = -L/usr/lib -lnetcdff -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -lnetcdf -lnetcdf -ldl -lz -lcurl -lm

FESMUTILSROOT=fesm-utils/utils
INC_FESMUTILS = -I${FESMUTILSROOT}/include-serial
LIB_FESMUTILS = -L${FESMUTILSROOT}/include-serial -lfesmutils

LISROOT = fesm-utils/lis-serial
INC_LIS = -I${LISROOT}/include 
LIB_LIS = -L${LISROOT}/lib/ -llis

PETSCROOT = /opt/local/lib/petsc
INC_PETSC = -I $(PETSC_DIR)/include
LIB_PETSC = -L${PETSC_DIR}/lib -lpetsc

FFLAGS  = -ffree-line-length-none -I$(objdir) -J$(objdir)

ifeq ($(openmp), 1)
    FESMUTILSROOT=fesm-utils/utils
    INC_FESMUTILS = -I${FESMUTILSROOT}/include-omp
    LIB_FESMUTILS = -L${FESMUTILSROOT}/include-omp -lfesmutils

    LISROOT = fesm-utils/lis-omp
    INC_LIS = -I${LISROOT}/include 
    LIB_LIS = -L${LISROOT}/lib/ -llis

    FFLAGS  = -no-wrap-margin -module $(objdir) -L$(objdir) -qopenmp 
endif

# Define which linear solvers to include (LIS necessary, PETSC optional)
INC_LINEAR = $(INC_LIS)
LIB_LINEAR = $(LIB_LIS)
ifeq ($(petsc), 1)
    # Add petsc library to flags
    INC_LINEAR = $(INC_LIS) $(INC_PETSC) 
    LIB_LINEAR = $(LIB_LIS) $(LIB_PETSC)
endif

LFLAGS  = $(LIB_NC) $(LIB_FESMUTILS) $(LIB_LINEAR) -Wl,-zmuldefs

DFLAGS_NODEBUG = -O2
DFLAGS_DEBUG   = -w -g -p -ggdb -ffpe-trap=invalid,zero,overflow,underflow -fbacktrace -fcheck=all
DFLAGS_PROFILE = -O2 -pg
