#==============================================================================
# Makefile macros for "conejo," Linux cluster at LANL
#==============================================================================

INCLDIR    := -I. -I/usr/include
SLIBS      := -L/usr/lib
ULIBS      := 
CPP        := /usr/bin/cpp
CPPFLAGS   := -P -traditional
CPPDEFS    := -DLINUX
CFLAGS     := -c -O2
ifeq ($(COMMDIR), mpi)
   FC         := mpif90
else
   FC         := ifort
endif
FIXEDFLAGS := -132
FREEFLAGS  := 
FFLAGS     := -r8 -i4 -O2 -align all -w -ftz -convert big_endian -assume byterecl -fp-model precise
#FFLAGS     := -r8 -i4  -align all -w -ftz -convert big_endian -assume byterecl -fp-model precise -g
#FFLAGS     := -r8 -i4 -align all -w -ftz -convert big_endian -assume byterecl -fpe0 -CB -traceback 
#FFLAGS     := -r8 -i4 -align all -w -ftz -convert big_endian -assume byterecl -fpe0 -CB -check uninit

ifeq ($(THRD), yes)
   FFLAGS  :=  $(FFLAGS) -openmp
#cesm   CPPDEFS :=  $(CPPDEFS) -DTHREADED_OMP
endif

MOD_SUFFIX := mod
LD         := $(FC)
LDFLAGS    := $(FFLAGS) -v

    CPPDEFS :=  $(CPPDEFS) -DNXGLOB=$(NXGLOB) -DNYGLOB=$(NYGLOB) \
                -DBLCKX=$(BLCKX) -DBLCKY=$(BLCKY) -DMXBLCKS=$(MXBLCKS) \
                -DNICELYR=$(NICELYR) -DNSNWLYR=$(NSNWLYR) -DNICECAT=$(NICECAT) \
                -DTRAGE=$(TRAGE) -DTRFY=$(TRFY) -DTRLVL=$(TRLVL) -DTRPND=$(TRPND) \
                -DTRBRI=$(TRBRI) -DNTRAERO=$(NTRAERO) -DTRZS=$(TRZS) \
                -DNBGCLYR=$(NBGCLYR) -DTRALG=$(TRALG) -DTRBGCZ=$(TRBGCZ) \
                -DTRDOC=$(TRDOC) -DTRDOC=$(TRDOC) -DTRDIC=$(TRDIC) \
                -DTRDON=$(TRDON) -DTRFED=$(TRFED) -DTRFEP=$(TRFEP) \
                -DTRZAERO=$(TRZAERO)  \
                -DTRBGCS=$(TRBGCS) -DNUMIN=$(NUMIN) -DNUMAX=$(NUMAX)
#   CPPDEFS :=  $(CPPDEFS) -DAOMIP

ifeq ($(DITTO), yes)
   CPPDEFS :=  $(CPPDEFS) -DREPRODUCIBLE
endif
ifeq ($(BARRIERS), yes)
   CPPDEFS :=  $(CPPDEFS) -Dgather_scatter_barrier
endif

ifeq ($(IO_TYPE), netcdf)
   CPPDEFS :=  $(CPPDEFS) -Dncdf
#   INCLDIR := $(INCLDIR) $(NETCDF)/include
#   SLIBS   := $(SLIBS) $(NETCDF)/lib -lnetcdf
   INCLDIR := $(INCLDIR) -I/apps/unsupported/netcdf/4.3.3.1-intel/include
   SLIBS   := $(SLIBS) -L/apps/unsupported/netcdf/4.3.3.1-intel/lib -lnetcdf
endif

### if using parallel I/O, load all 3 libraries.  PIO must be first!
#ifeq ($(IO_TYPE), pio)
#   INCLDIR := $(INCLDIR) -I/usr/projects/climate/SHARED_CLIMATE/software/conejo/pio/1.7.2/intel-13.0.1/openmpi-1.6.3/netcdf-3.6.3-parallel-netcdf-1.3.1/include
#   SLIBS   := $(SLIBS) -L/usr/projects/climate/SHARED_CLIMATE/software/conejo/pio/1.7.2/intel-13.0.1/openmpi-1.6.3/netcdf-3.6.3-parallel-netcdf-1.3.1/lib -lpio

#   INCLDIR := $(INCLDIR) -I/usr/projects/climate/SHARED_CLIMATE/software/conejo/parallel-netcdf/1.3.1/intel-13.0.1/openmpi-1.6.3/include
#   SLIBS   := $(SLIBS) -L/usr/projects/climate/SHARED_CLIMATE/software/conejo/parallel-netcdf/1.3.1/intel-13.0.1/openmpi-1.6.3/lib -lpnetcdf

#   CPPDEFS :=  $(CPPDEFS) -Dncdf
#   INCLDIR := $(INCLDIR) -I/usr/projects/climate/SHARED_CLIMATE/software/conejo/netcdf/3.6.3/intel-13.0.1/include
#   SLIBS   := $(SLIBS) -L/usr/projects/climate/SHARED_CLIMATE/software/conejo/netcdf/3.6.3/intel-13.0.1/lib -lnetcdf

#endif
