#
#------------------------------------------------------------------------------
#   
#   Supported compilers are Portland Group (pgf90), Intel (ifort) and 
#   GNU (gfortran). Uncomment out the correct variable assignments for 
#   your compiler. Also, update the pathnames to your NetCDF build. If 
#   you want compression set the CHUNK variable to -DCHUNK
#   
#------------------------------------------------------------------------------
#
.SUFFIXES: .c .f .o .f90 .F90

NCF_INST = /usr/local/netcdf

CHUNK = -DCHUNK

MOD_DIR = ./Mod_src
NCF_DIR = ./IO_NCF

FC = pgf90
FLGS =  -O2 -byteswapio -Mextend -Bstatic_pgi -I./Includes -I$(NCF_INST)/include
MODULES=-I${MOD_DIR} -module ${MOD_DIR}

###FC = ifort
###FLGS =  -O2 -convert big_endian -extend_source -Bstatic -I./Includes -I$(NCF_INST)/include
###MODULES=-I${MOD_DIR} -module ${MOD_DIR}

###FC = gfortran
###FLGS =  -fbounds-check -g -O2 -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0 -I./Includes -I$(NCF_INST)/include
###MODULES=-J${MOD_DIR} -I${MOD_DIR}

LIBS =  \
-L$(NCF_INST)/lib -lnetcdff -lnetcdf


MOD_OBJ = \
$(MOD_DIR)/camx2ncf_incs.o \
$(MOD_DIR)/ncf_iomod.o

OBJCTS = \
rdopts_pts.o \
rdpthdr.o \
readpt.o \
camx2ncf_pts.o \
getime.o \
uptime.o \
juldate.o \
rdspclst.o \
fndchr.o \
jstlft.o \
istrln.o \
toupper.o \
$(NCF_DIR)/ncf_set_compress_flag.o \
$(NCF_DIR)/ncf_createfile.o \
$(NCF_DIR)/ncf_set_vars_base.o \
$(NCF_DIR)/ncf_set_tstep.o \
$(NCF_DIR)/ncf_set_specatt_pts.o \
$(NCF_DIR)/ncf_set_global.o \
$(NCF_DIR)/ncf_wrt_dim.o \
$(NCF_DIR)/ncf_wrt_global.o \
$(NCF_DIR)/ncf_wrt_vars_base.o \
$(NCF_DIR)/ncf_wrt_vars_species.o \
$(NCF_DIR)/ncf_wrt_data_pts.o \
$(NCF_DIR)/ncf_wrt_data_tstep.o \
$(NCF_DIR)/ncf_wrt_data_species.o


TARGT = camx2ncf_pts

$(TARGT): $(MOD_OBJ) $(OBJCTS)
	$(FC) -o $(TARGT) $(FLGS) $(MOD_OBJ) $(OBJCTS) $(LIBS)
.f.o	:
	$(FC) -c -o $@ $(FLGS) $(MODULES) $<
.F90.o  :
	$(FC) -c -o $@ $(CHUNK) $(FLGS) $(MODULES) $<
.f90.o  :
	$(FC) -c -o $@ $(FLGS) $(MODULES) $<

clean:
	rm -rvf *.o */*.o */*.mod *.mod $(TARGT) 
