FC = gfortran 

# ajr: set NC_CROOT and NC_FROOT in .zshrc
#NC_CROOT=/opt/homebrew/Cellar/netcdf/4.9.3
#NC_FROOT=/opt/homebrew/Cellar/netcdf-fortran/4.6.1_2
INC_NC  = -I${NC_FROOT}/include
LIB_NC  = -L${NC_FROOT}/lib -lnetcdff -L${NC_CROOT}/lib -lnetcdf 

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 = -I$(objdir) -J$(objdir) -ffree-line-length-none 

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  = -I$(objdir) -J$(objdir) -ffree-line-length-none -fopenmp 
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)

DFLAGS_NODEBUG = -O2 -march=native
DFLAGS_DEBUG   = -w -g -ggdb -ffpe-trap=invalid,zero,overflow -fbacktrace -fcheck=all -Wp,-DDEBUG
DFLAGS_PROFILE = -O2 -p -ggdb

#DFLAGS_DEBUG   = -w -g -p -ggdb -ffpe-trap=invalid,zero,overflow,underflow -fbacktrace -fcheck=all
