# makefile for nssl_porcess
#! /bin/sh -v

# Define the fortran compiler and options

FC  =  mpif90 -free -f90=ifort
CC  = cc
FLAGS= -fp-model precise -assume byterecl -g -traceback $(LDFLAGS) -DLINUX ## -convert big_endian
CPPFLAGS =  -D_UNDERSCORE -DLINUX -Dfunder -DFortranByte=char -DFortranInt=int -DFortranLlong='long long'
GSILIBS =../../../lib -lw3emc_i4r8 -lw3nco_i4r8 -lbacio -lbufr_i4r8

G2_VER=v2.5.0
G2TMPL_VER=v1.3.0
JASPER_VER=v1.900.1
PNG_VER=v1.2.44
Z_VER=v1.2.6

CORELIB  = /scratch3/NCEPDEV/nwprod/lib

G2_INC4     = -I${CORELIB}/g2/$(G2_VER)/incmod/g2_$(G2_VER)_4
G2TMPL_INC  = -I${CORELIB}/g2tmpl/$(G2TMPL_VER)/incmod/g2tmpl_${G2TMPL_VER}
G2_LIB4     = ${CORELIB}/g2/$(G2_VER)/libg2_$(G2_VER)_4.a
G2TMPL_LIB  = ${CORELIB}/g2tmpl/$(G2TMPL_VER)/libg2tmpl_${G2TMPL_VER}.a
JASPER_LIB  = ${CORELIB}/jasper/$(JASPER_VER)/libjasper_$(JASPER_VER).a
PNG_LIB     = ${CORELIB}/png/$(PNG_VER)/libpng.a
Z_LIB       = ${CORELIB}/z/$(Z_VER)/libz_$(Z_VER).a
NETCDF      = /apps/netcdf/3.6.3-intel

INCLD=  -I${NETCDF}/include -I../../../include ${G2_INC4}
LIBS =  \
        ${G2_LIB4} ${G2TMPL_LIB} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB} \
        -L${NETCDF}/lib -lnetcdf -L${GSILIBS}

OBJS = netCDFsub.o netCDFsub_geo.o write_bufr_ref.o process_NSSL_mosaic.o \
       read_nssl_binary.o read_grib2_mod.o read_ncep_binary.o # read_grib2.o

# all: process_NSSL_mosaic read_grib2
all: process_NSSL_mosaic

process_NSSL_mosaic: ${OBJS}
	${FC} -o process_NSSL_mosaic.exe ${FLAGS} ${OBJS} ${LIBS} 

read_bufr: readbufr.o
	${FC} -o read_bufr.exe ${FLAGS} readbufr.o ${LIBS} 

read_grib2: read_grib2.o
	${FC} -o read_grib2.exe ${FLAGS} read_grib2.o ${LIBS} 

write_bufr: write_bufr_ref.o write_bufr_test.o
	${FC} -o write_bufr.exe ${FLAGS} write_bufr_ref.o write_bufr_test.o  ${LIBS} 

.SUFFIXES : .F90 .f90 .f .c .o

.F90.o :
	${FC} ${FLAGS} ${INCLD} -c $<

.f90.o :
	${FC} ${FLAGS} ${INCLD} -c $<

clean:
	/bin/rm -f *.o *.exe