# Machine dependent definitions:
#-------- --------- ------------
#include ~/bin/Makedefs.Plot
include Makedefs.Intel
#
#  Plotting Programs Using NCAR's GKS primitive routines.
#---------- -------- ------------ --- --------- ---------
#  BINDIR      Directory path for executable programs
#  CNTBIN      Noncolor horizontal contours program
#  CCNTBIN     Color horizontal contours program
#  SECBIN      Noncolor cross-sections program
#  CSECBIN     Cross-section color

 BINDIR = $(HOME)/bin
 CNTBIN = $(BINDIR)/cnt
CCNTBIN = $(BINDIR)/ccnt
 SECBIN = $(BINDIR)/sec
CSECBIN = $(BINDIR)/csec

UTIL_SRCS=read_inputs.F	read_varids.F	get_date.F\
	opencdf.F	what_flds.F	get_nc1dat.F\
	get_nc2dat.F	get_nc3dat.F	get_nc2pos.F	get_nc3pos.F\
	cgrid.F		zgrid.F		lenstr.F	checkstrm.F\
	get_pltday.F	cntint.F	chose_scale.F\
	pretty_string.F	depth_lab.F	caldate.F	datestr.F\
	geodesic_dist.F	great_int.F	crash.F

PHYS_SRCS=get_scoor.F	get_2dfld.F	get_3dfld.F	fdiag.F\
	zisopyc.F	cvector.F	cfield.F	depth_iso.F\
	bernoulli.F	get_bernoulli.F	dens.F		svel.F\
	bv_freq.F	get_bvf.F	ertel.F		get_ertel.F\
	relvor.F	get_rvor.F	hordiv.F	get_hdiv.F\
	curlz.F		get_wcurl.F	jebar.F		get_jebar.F\
	ri_number.F	get_rig.F	get_ape.F	get_dpres.F\
	get_entropy.F	get_hslope.F	get_isosur.F	get_pv.F\
	sec_rotvec.F	velocity.F	mskscl.F

PLOT_SRCS=gks_init.F	set_palette.F	viewport.F	cnt_set_frame.F\
	maptitles.F	colorbar.F	dombox.F	cnt_end_frame.F\
	draw_line.F	draw_user.F	sec_set_frame.F\
	box.F		areafill.F	sec_end_frame.F\
	xhslice.F	vindices.F	lintrp.F	domain_contour.F\
	xsection.F	hindices.F	spline.F	bcintrp.F\
	cntpack.F	cntcolor.F	vecpack.F	streamlines.F\
	landfill.F


NCAR_SRCS=colram.F cpclam.F cptreg.F\
	drawcl.F arpram.F armpia.F vvectr.F vvtext.F
# cpcldr.F


 UTIL_OBJS = $(UTIL_SRCS:.F=.o)
 PHYS_OBJS = $(PHYS_SRCS:.F=.o)
 PLOT_OBJS = $(PLOT_SRCS:.F=.o)
    MYNCAR = $(NCAR_SRCS:.F=.o)

  PHYS_LIB = lib_phys.a
  PLOT_LIB = lib_plot.a
  UTIL_LIB = lib_util.a
   MYLNCAR = lib_myncar.a
#
# Both sequences work just fine.
#
   ALL_LIB = $(PHYS_LIB) $(PLOT_LIB) $(UTIL_LIB) $(MYLNCAR)
#  ALL_LIB = $(PLOT_LIB) $(PHYS_LIB) $(UTIL_LIB) $(MYLNCAR)
#
#  Target for all plotting programs.
#
all: tools $(CNTBIN) $(CCNTBIN) $(SECBIN) $(CSECBIN)
#
#  Build libraries 
#
$(UTIL_LIB): $(UTIL_OBJS) Makefile
	/bin/rm -f $(UTIL_LIB)
	ar rv $(UTIL_LIB) $(UTIL_OBJS); $(RANLIB) $(UTIL_LIB)

$(PHYS_LIB): $(PHYS_OBJS) Makefile
	/bin/rm -f $(PHYS_LIB)
	ar rv $(PHYS_LIB) $(PHYS_OBJS); $(RANLIB) $(PHYS_LIB)

$(PLOT_LIB): $(PLOT_OBJS) Makefile
	/bin/rm -f $(PLOT_LIB) 
	ar rv $(PLOT_LIB) $(PLOT_OBJS); $(RANLIB) $(PLOT_LIB)

$(MYLNCAR): $(MYNCAR) Makefile
	/bin/rm -f $(MYLNCAR)
	ar rv $(MYLNCAR) $(MYNCAR); $(RANLIB) $(MYLNCAR)


#
# Targets for plottting programs executables.
#
$(CNTBIN): cnt.o cpmpxy2d.o mapeod.o stumsl.o stumxy.o vvumxy.o $(ALL_LIB)
	$(LDR) $(FFLAGS) -o $(CNTBIN) cnt.o cpmpxy2d.o mapeod.o \
	stumsl.o stumxy.o vvumxy.o $(ALL_LIB) $(LIBS)

$(CCNTBIN): ccnt.o cpmpxy2d.o mapeod.o stumsl.o stumxy.o vvumxy.o $(ALL_LIB)
	$(LDR) $(FFLAGS) -o $(CCNTBIN) ccnt.o cpmpxy2d.o mapeod.o \
	stumsl.o stumxy.o vvumxy.o $(ALL_LIB) $(LIBS)

$(SECBIN): sec.o cpmpxz2d.o $(ALL_LIB)
	$(LDR) $(FFLAGS) -o $(SECBIN) sec.o cpmpxz2d.o $(ALL_LIB) $(LIBS)

$(CSECBIN): csec.o cpmpxz2d.o $(ALL_LIB)
	$(LDR) $(FFLAGS) -o $(CSECBIN) csec.o cpmpxz2d.o $(ALL_LIB) $(LIBS)
fieldid: fieldid.o read_varids.o lenstr.o
	$(LDR) $(FFLAGS) -o fieldid fieldid.o read_varids.o lenstr.o
#
# Tools: mpc and dependency checker
#
tools: $(BINDIR)/mpc_clean cross_matrix
$(BINDIR)/mpc_clean: mpc.F
	$(CPP) -P mpc.F > mpc.f
	$(LDR) $(FFLAGS) -o $(BINDIR)/mpc_clean mpc.f
cross_matrix: cross_matrix.o
	$(LDR) $(FFLAGS) -o cross_matrix cross_matrix.o
#
# Target to create dependecies.
#
depend: cross_matrix Makefile
	cross_matrix *.F
#
# Target to create tar file.
#
tarfile:
	tar cvf plot.tar M* *.h *.F *README*
#
# Cleaning... 
#
clean:
	/bin/rm -f *.o *.f *.s $(ALL_LIB) core *.trace $(COMP_FILES)
#
# List of dependencies
#
include Make.depend
