#
#   Makefile for bsnsq_2d 		96/02/05 S.Takehiro
#       

include	Mkinclude

LIBSUBDIRS	= admin dynamics io gtintfc \
		  util sysdep 

SUBDIRS		= $(LIBSUBDIRS) include nonstd prep dyn_pinf

FFLAGS        = $(STDFFLAGS) -Iinclude $(AUTODBL)

CFLAGS        = $(STDCFLAGS) -Iinclude

CPPFLAGS       = $(STDCPPFLAGS) -Iinclude \
                 -DNAME=\'\($(RESOLUTION)$(MODELNAME)\)\'

LDFLAGS        = $(STDLDFLAGS)

OBJS_GCM       = bsn_main.o

SRCS_GCM       = bsn_main.F
SRCS	       = bsn_main.F

NONSTDS	       = $(SPECIAL) $(NONSTD) $(NODCL)

EXTHDRS	      = include/zcdim.F \
		include/zhdim.F

all: gcm

GCM		= $(BINDIR)/bsn.$(RESOLUTION)$(MODELNAME)

gcm:	$(GCM)

$(GCM):		includes $(OBJS_GCM) $(NONSTDS) $(LIBRARY)
	$(FC) $(LDFLAGS) $(OBJS_GCM) $(NONSTDS) $(LIBS) $(STDLIBS) -o $@

init:	includes
	@cd prep ; $(MAKE) init

sst:	includes 
	@cd prep ; $(MAKE) sst

axis:	includes
	@cd prep ; $(MAKE) axis

lib:	includes 
	@echo "Making $(LIBRARY)"
	@for i in $(LIBSUBDIRS) ; do \
	  cd $$i ; \
	  echo "Making $$i/" ; \
	  $(MAKE) ; \
	  cd .. ; \
	done

tools:
	@cd graph ; $(MAKE)

includes:
	@cd include; $(MAKE)

$(NONSTDS) nonstd/usphxz.o nonstd/usphyz.o nonstd/lstmtxf.o:
	@cd $(@D); $(MAKE) $(@F)

clean: clean.local clean.dir

clean.local:
	$(RM) *.o *~ core *.trace *.f

clean.dir:
	@for i in $(SUBDIRS) ; do \
	  cd $$i ; \
	  echo "Cleaning $$i/" ; \
	  $(MAKE) clean ; \
	  cd .. ; \
	done

tags: tags.local tags.dir

tags.local:
	@$(TAGS) *.F */*.F

tags.dir:
	@for i in $(SUBDIRS) ; do \
	  cd $$i ; \
          $(MAKE) tags ; \
          cd .. ; \
        done
