include ../../configure.hycom
FC=$(DM_FC)
FC=$(SFC)

SHELL         = /bin/sh

.SUFFIXES: 
.SUFFIXES: .c .F .f .o

#CPPFLAGS+= -DMPI
LIBS+=   -L../../libs -lofs_mods -L../../../hwrf-utilities/libs/ -lw3_i4r4 -lbacio $(NETCDF4_LINK_OPTS) $(NETCDF_LDFLAGS_F)
FFLAGS+= $(NETCDF4_INCLUDE_OPTS) $(NETCDF_FFLAGS) -I../../libs/src/ofs_mods -I.


MODS     =	mod_plot.o mod_xc.o mod_za.o          wtime.o
MODB     =	mod_plot.o mod_xc.o mod_za.o mod_zb.o wtime.o
EXEC     =      ../../exec

programs=  ../../exec/hwrf_ofs_archv2data2d \
	   ../../exec/hwrf_ofs_archv2data2d_insitu \
	   ../../exec/hwrf_ofs_archv2data3z_insitu

all: ${programs}

clean:
	/bin/rm -f *.o *.a mod_plot.mod  mod_xc.mod    mod_za.mod    mod_zb.mod \
	${programs}

install:
	mv -f ${programs} ${EXEC}

DATAX_OBJ = 	bigrid.o  bigrd1.o blkin.o    \
		extrct.o  extrot.o fordate.o  \
                getdat.o  getdtm.o getdepth.o \
		          indxi.o  indxj.o    \
                pakk.o    poisnd.o psmoo.o    \
		sbmerg.o  zebra.o  zh.o       \
                dum_gks.o 

DATAH_OBJ = 	$(DATAX_OBJ) horout_nc.o
DATAZ_OBJ = 	$(DATAH_OBJ) layer2z.o

NCDFH_OBJ = 	$(DATAX_OBJ) horout_nc.o
NCDFZ_OBJ = 	$(NCDFH_OBJ) layer2z.o

GRIB_OBJ = 	ab2grib.o gribit.o grib_maps.o

#THERM_OBJ=      feistel.o
THERM_OBJ=      pot2pot0.o

#
# --- executables.
#

../../exec/hwrf_ofs_archv2data2d:  $(MODB) archv2data2d.o  $(NCDFH_OBJ) $(GRIB_OBJ) $(THERM_OBJ)
	$(FC) $(LDFLAGS) -o $@  archv2data2d.o  $(MODB) $(NCDFH_OBJ) $(GRIB_OBJ)  $(THERM_OBJ) $(LIBS) 

../../exec/hwrf_ofs_archv2data2d_insitu:  $(MODB) archv2data2d_insitu.o  $(NCDFH_OBJ) $(GRIB_OBJ) $(THERM_OBJ)
	$(FC) $(LDFLAGS) -o $@  archv2data2d_insitu.o  $(MODB) $(NCDFH_OBJ) $(GRIB_OBJ) $(THERM_OBJ) $(LIBS) 

../../exec/hwrf_ofs_archv2data3z_insitu:  $(MODB) archv2data3z_insitu.o  $(NCDFZ_OBJ) $(GRIB_OBJ) $(THERM_OBJ)
	$(FC) $(LDFLAGS) -o $@  archv2data3z_insitu.o  $(MODB) $(NCDFZ_OBJ) $(GRIB_OBJ) $(THERM_OBJ) $(LIBS)



archv2data2d.o:  archv2data2d.f  mod_plot.o mod_za.o
archv2data2d_insitu.o:  archv2data2d_insitu.f  mod_plot.o mod_za.o
archv2data3z_insitu.o:  archv2data3z_insitu.f  mod_plot.o mod_za.o

bigrd1.o:   bigrd1.f      mod_plot.o
bigrid.o:   bigrid.f      mod_plot.o
blkin.o:    blkin.f
dum_gks.o:  dum_gks.f
extrct.o:   extrct.f
extrot.o:   extrot.f
fordate.o:  fordate.f
getdat.o:   getdat.f      mod_plot.o mod_za.o
getdepth.o: getdepth.f    mod_plot.o mod_za.o
getdtm.o:   getdtm.f      mod_plot.o mod_za.o
horout_nc.o:   horout_nc.f      mod_plot.o mod_xc.o mod_zb.o
horout_nc.o: horout_nc.f  mod_plot.o mod_xc.o mod_zb.o grib_block.h locale.inc clib.inc 
indxi.o:    indxi.f       mod_plot.o
indxj.o:    indxj.f       mod_plot.o
layer2z.o:  layer2z.f
pakk.o:     pakk.f
poisnd.o:   poisnd.f      mod_plot.o
prtmsk.o:   prtmsk.f
psmoo.o:    psmoo.f       mod_plot.o
putdat.o:   putdat.f      mod_plot.o mod_za.o
ab2grib.o:  ab2grib.f     
gribit.o:   gribit.f
sbmerg.o:   sbmerg.f      mod_plot.o
wtime.o:    wtime.F
zebra.o:    zebra.f

mod_plot.o: mod_plot.F
mod_xc.o:   mod_xc.F   
mod_za.o:   mod_za.F   mod_xc.o
mod_zb.o:   mod_zb.F

zh.o:       zh.F zh_sun.f zh_t3e.f zh_ymp.f