#
#     ##################################################################
#     ##################################################################
#     ######                                                      ######
#     ######      Advanced Regional Prediction System (ARPS)      ######
#     ######                   Version 5.2                        ######
#     ######                                                      ######
#     ######                     Developed by                     ######
#     ######     Center for Analysis and Prediction of Storms     ######
#     ######                University of Oklahoma                ######
#     ######                                                      ######
#     ##################################################################
#     ##################################################################
#
#=======================================================================
#
#  PURPOSE: This makefile generates the ARPSTRAJC executables.
#
#  Modification history:
#
#  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

#-----------------------------------------------------------------------
#
# Compiler Flag of Options
#
#-----------------------------------------------------------------------

FFLAGS =
CFLAGS =
LDFLAGS =
FREEFLAGS =

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

.SUFFIXES: $(SUFFIXES) .f90

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

#-----------------------------------------------------------------------
#
# Executable commands to be generated by this make file:
#
# TRAJCEXE    = arpstrajc
# CALCTEXE    = arpscalctrajc
#
#-----------------------------------------------------------------------

TRAJCEXE = arpstrajc
CALCTEXE = arpscalctrajc
PLT3DEXE = plt3dtrajc
PLT1DEXE = plt1dtrajc

#-----------------------------------------------------------------------
#
# ARPS shared library
#
#-----------------------------------------------------------------------

LIBARPS = libarps
LIBZXPOST = libzxpost
LIBZXNCAR = libzxncar

#-----------------------------------------------------------------------
#
# List of Makefiles
#
#-----------------------------------------------------------------------

MAKEFILE = Makefile

#-----------------------------------------------------------------------
#
# List of machine-dependent object codes
#
#-----------------------------------------------------------------------

TRAJCOBJ = arpstrajc.o 

TRAJCOBJS = $(TRAJCOBJ) 

CALCTOBJS = arpscalctrajc.o

PLT3DOBJS = plt3dtrajc.o

PLT1DOBJS = plt1dtrajc.o

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

default: All

#-----------------------------------------------------------------------
#
# Compile and link the executable, arpsintrp
#
#-----------------------------------------------------------------------

All: $(TRAJCEXE) $(CALCTEXE)

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

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

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

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

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

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

$(BINDIR)/$(PLT3DEXE): $(PLT3DOBJS) $(LIBDIR)/$(LIBZXNCAR).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(PLT3DOBJS) \
                   $(LIBDIR)/$(LIBZXNCAR).a $(LIBS)

$(BINDIR)/$(PLT1DEXE): $(PLT1DOBJS) $(LIBDIR)/$(LIBZXNCAR).a
	$(ARPS_LD) $(LDFLAGS) -o $@ $(PLT1DOBJS) \
                   $(LIBDIR)/$(LIBZXNCAR).a $(LIBS)

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

clean: clean.arpstrajc

clean.arpstrajc:
	-$(RM) -f $(BINDIR)/$(TRAJCEXE) $(BINDIR)/$(CALCTEXE)    \
                  $(BINDIR)/$(PLT3DEXE) $(BINDIR)/$(PLT1DEXE)    \
                  $(TRAJCOBJS) $(CALCTOBJS) $(PLT3DOBJS)         \
                  $(PLT1DOBJS)

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

arpstrajc.o      : arpstrajc.f90 $(INCLDIR)/globcst.inc       \
                                 $(INCLDIR)/grid.inc
arpscalctrajc.o  : arpscalctrajc.f90   $(INCLDIR)/globcst.inc \
                                       $(INCLDIR)/grid.inc
