# Universal machine independent makefile for SCRUM/ROMS model 
#========== ======= =========== ======== === ========== =====
# Set machine dependent definitions and rules.

include Makedefs.Intel
#include Makedefs.PGI
#include Makedefs.Fujitsu
#include Makedefs.GCC
#include Makedefs.p690

#                                      NOTE: This is just a subset of
# Configuration for SCRUM/ROMS model:  files barely necessary to create an 
#============== === ========== ======  executable for the two-dimensional
#                                      Equatorial Rossby Soliton example.
#

SRCS =	main2D.F	step2D_FB.F	read_inp.F	check_switches1.F\
	setup_kwds.F	check_kwds.F	check_srcs.F	check_switches2.F\
	timers.F	init_scalars.F	init_arrays.F\
	ana_grid.F	setup_grid1.F	setup_grid2.F\
	visc_rescale.F	ana_initial.F	analytical.F\
\
	zetabc.F	u2dbc_im.F	v2dbc_im.F	exchange.F\
\
	diag.F		checkdims.F\
\
	get_date.F	lenstr.F	insert_node.F	closecdf.F\
	nf_fread.F	put_global_atts.F\
	get_initial.F	get_forces.F	def_grid.F	wrt_grid.F\
	def_his.F	def_rst.F	wrt_his.F	wrt_rst.F

   RCS = $(SRCS:.F=.f)
  OBJS = $(RCS:.f=.o)
  SBIN = roms 
#
# Eecutable file.
#========== =====
#
$(SBIN): $(OBJS)
	$(LDR) $(FFLAGS) $(LDFLAGS) -o a.out $(OBJS) $(LCDF) $(LMPI)
	mv a.out $(SBIN)
#
# Everything
#===========
all: mpc depend $(SBIN)
#
# Auxiliary utility programs and List of Dependecies:
# ========= ======= ======== === ==== == ============
#
mpc: mpc.F Makefile
	$(CPP) $(CPPFLAGS) -P mpc.F > mpc.f
	$(LDR) $(FFLAGS) $(LDFLAGS) -o mpc mpc.f
cross_matrix: cross_matrix.o
	$(LDR) $(FFLAGS) $(LDFLAGS) -o cross_matrix cross_matrix.o
cppcheck: cppcheck.o
	$(LDR) $(FFLAGS) $(LDFLAGS) -o cppcheck cppcheck.o
srcscheck: srcscheck.o
	$(LDR) $(FFLAGS) $(LDFLAGS) -o srcscheck srcscheck.o
checkkwds: checkkwds.o
	$(LDR) $(FFLAGS) $(LDFLAGS) -o checkkwds checkkwds.o

checkdefs: check_switches1.F setup_kwds.F

check_switches1.F: cppcheck cppdefs.h
	cppcheck
check_srcs.F: srcscheck Makefile
	srcscheck
setup_kwds.F: checkkwds read_inp.F
	checkkwds

depend: checkdefs cross_matrix
	cross_matrix *.F

#
# Cleaning targets
# ======== =======
#
clean:
	/bin/rm -rf *.f *.o *.s $(SBIN) *.a *.trace core core.* $(COMP_FILES) 

clobber: clean
	/bin/rm -f mpc cross_matrix cppcheck srcscheck checkkwds checkdefs
	/bin/rm -f check_switches1.F setup_kwds.F check_srcs.F
#
# Include automatically generated dependency list:
#
include Make.depend

