#
#     ##################################################################
#     ##################################################################
#     ######                                                      ######
#     ######      Advanced Regional Prediction System (ARPS)      ######
#     ######                   Version 5.0                        ######
#     ######                                                      ######
#     ######                     Developed by                     ######
#     ######     Center for Analysis and Prediction of Storms     ######
#     ######                University of Oklahoma                ######
#     ######                                                      ######
#     ##################################################################
#     ##################################################################
#
#=======================================================================
#
#  PURPOSE: This makefile generates mci2arps
#
#  AUTHOR:  Keith Brewster
#           04/24/1998
#
#  Modification history:
#
#           04/24/1998 (Yuhe Liu)
#           Incorporate with makearps
#
#  OTHER INFORMATION:
#       See the makearps command.
#
#=======================================================================

#-----------------------------------------------------------------------
#
# Default shell
#
#-----------------------------------------------------------------------

# SHELL=/bin/csh

#-----------------------------------------------------------------------
#
# Default names of the loader and tar, can be replaced on the command
# line for other system
#
#-----------------------------------------------------------------------

FTN = f90
LDR = f90
CC  = cc

ARPS_LD = $(LDR)

TAR = tar
AWK = awk
RM  = rm
LN  = ln

TOPDIR  = 
BINDIR  = $(TOPDIR)
INCLDIR = $(TOPDIR)/include
LIBDIR  = $(TOPDIR)/lib
ADASDIR = $(TOPDIR)/src/adas
                            # Added for linking rdsatfld.f90

#-----------------------------------------------------------------------
#
# Compiler Flag of Options. The default is for AIX Fortran xlf.
#
#-----------------------------------------------------------------------

FFLAGS =
CFLAGS =
LDFLAGS =

FIXFLAGS  =
FREEFLAGS =

MCILIBS = -L/usr/local/hdf/lib -lmfhdf -ldf -ljpeg -l

#-----------------------------------------------------------------------
#
# Dependencies
#
#-----------------------------------------------------------------------

.SUFFIXES: $(SUFFIXES) .f90

.f.o:
	$(FTN) $(FFLAGS) $(FIXFLAGS) -c $<
.f90.o:
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $<
.c.o:
	$(CC)  $(CFLAGS) -c $<

#-----------------------------------------------------------------------
#
# Executable to be generated by this make file:
#
# 88D2ARPSEXE = 88d2arps  WSR-88D radar data to ARPS remapper
#
#-----------------------------------------------------------------------

MCI2AEXE = mci2arps
PLTSATFLDEXE = pltsatfld
#wdt Copyright (c) 2001 Weather Decision Technologies, Inc. 2001-03-23 GMB
SAT2AEXE = sat2arps
SATHDF5EXE = sathdf52arps
MERGESATEXE = mergesat

#-----------------------------------------------------------------------
#
# Object library to be generated for ARPS solver:
#
# LIBARPS = libarps     ARPS shared library
# LIBADAS = libadas     ADAS shared library
#
#-----------------------------------------------------------------------
 
LIBARPS = libarps
LIBADAS = libadas

#-----------------------------------------------------------------------
#
# List of object codes
#
#-----------------------------------------------------------------------

MCI2ARPSMAINOBJ = mci2arps.o

MCI2ARPSOBJS1 = sat_read.o sat_tran.o maptran.o gldtonat.o calib.o \
                solcor.o sunfuncs.o inisatarps.o coldfilt.o wtsatfld.o

MCI2ARPSOBJS = $(MCI2ARPSMAINOBJ) $(MCI2ARPSOBJS1)

PLTSATMAINOBJ = pltsatfld.o

PLTSATOBJS1 = pltmap.o

PLTSATFLDOBJS = $(PLTSATMAINOBJ) $(PLTSATOBJS1) rdsatfld.o

#wdt Copyright (c) 2001 Weather Decision Technologies, Inc. 2001-03-23 GMB
#wdt begin block
SAT2ARPSMAINOBJ = sat2arps.o

SAT2ARPSOBJS1 = inisatarps.o coldfilt.o wtsatfld.o

SAT2ARPSOBJS = $(SAT2ARPSMAINOBJ) $(SAT2ARPSOBJS1)

MERGESATOBJS = mergesat.o wtsatfld.o
#wdt end block

SATHDF5MAINOBJ = sathdf52arps.o
SATHDF5OBJS1 = inisatarps.o coldfilt.o wtsatfld.o
SATHDF5OBJS = $(SATHDF5MAINOBJ) $(SATHDF5OBJS1)

#-----------------------------------------------------------------------
#
# Set Default
#
#-----------------------------------------------------------------------

default: $(MCI2AEXE)

#-----------------------------------------------------------------------
#
# Compile and link archive-II radar remapping executable, mci2arps
#
#-----------------------------------------------------------------------

$(MCI2AEXE): $(BINDIR)/$(MCI2AEXE)
	ls -l $(BINDIR)/$(MCI2AEXE)

$(BINDIR)/$(MCI2AEXE): $(MCI2ARPSOBJS) $(LIBDIR)/$(LIBARPS).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(MCI2ARPSOBJS) \
                            $(LIBDIR)/$(LIBARPS).a $(LIBS)

$(PLTSATFLDEXE): $(PLTSATFLDOBJS) $(LIBDIR)/$(LIBARPS).a
	$(ARPS_LD) $(LDFLAGS) -o $(BINDIR)/$@ $(PLTSATFLDOBJS) \
                            $(LIBDIR)/$(LIBARPS).a $(LIBS)

$(SAT2AEXE): $(SAT2ARPSOBJS) $(LIBDIR)/$(LIBARPS).a
	$(ARPS_LD) $(LDFLAGS) -o $(BINDIR)/$@ $(SAT2ARPSOBJS) \
                            $(LIBDIR)/$(LIBARPS).a $(LIBS)
$(MERGESATEXE): $(MERGESATOBJS) $(LIBDIR)/$(LIBARPS).a
	$(ARPS_LD) $(LDFLAGS) -o $(BINDIR)/$@ $(MERGESATOBJS) \
                            $(LIBDIR)/$(LIBARPS).a $(LIBS)

$(SATHDF5EXE): $(SATHDF5OBJS) $(LIBDIR)/$(LIBARPS).a
	$(ARPS_LD) $(LDFLAGS) -o $(BINDIR)/$@ $(SATHDF5OBJS) \
	$(LIBDIR)/$(LIBARPS).a $(LIBS)

#-----------------------------------------------------------------------
#
# Remove the object code for individual programs
#
#-----------------------------------------------------------------------

#wdt Copyright (c) 2001 Weather Decision Technologies, Inc. SAT2ARPSOBJS
clean.mci2arps:
	-$(RM) -f $(BINDIR)/$(MCI2AEXE) $(BINDIR)/$(MERGESATEXE) \
                  $(BINDIR)/$(PLTSATFLDEXE)  $(BINDIR)/$(SATHDF5EXE) \
                  $(MCI2ARPSOBJS) $(PLTSATFLDOBJS) \
                  $(SAT2ARPSOBJS) $(SATHDF5OBJS) $(MERGESATOBJS)

#-----------------------------------------------------------------------
#
# Object code dependency list:
#
#-----------------------------------------------------------------------

mci2arps.o   : mci2arps.c      $(INCLDIR)/wxp.h     \
                               $(INCLDIR)/mc_area.h
calib.o      : calib.c         $(INCLDIR)/mc_area.h
gldtonat.o   : gldtonat.c
inisatarps.o : inisatarps.f90  $(INCLDIR)/globcst.inc \
                               $(INCLDIR)/grid.inc
maptran.o    : maptran.c       $(INCLDIR)/wxp.h
sat_read.o   : sat_read.c      $(INCLDIR)/wxp.h     \
                               $(INCLDIR)/mc_area.h
solcor.o     : solcor.f90
sunfuncs.o   : sunfuncs.f90
coldfilt.o   : coldfilt.f90
wtsatfld.o   : wtsatfld.f90    $(INCLDIR)/globcst.inc \
                               $(INCLDIR)/grid.inc

pltsatfld.o  : pltsatfld.f90   $(INCLDIR)/globcst.inc \
                               $(INCLDIR)/grid.inc
pltmap.o     : pltmap.f90

sat2arps.o      : sat2arps.c
mergesat.o      : mergesat.c
sathdf52arps.o  : sathdf52arps.f90

# Added for pltsatfld to link src/adas/rdsatfld.o
rdsatfld.o  : $(ADASDIR)/rdsatfld.f90   $(INCLDIR)/globcst.inc \
                                        $(INCLDIR)/grid.inc
	$(FTN) $(FFLAGS) $(FREEFLAGS) -c $(ADASDIR)/rdsatfld.f90
