#
#       Makefile for GCM5(admin)
#
#				92/04/02 S.Takehiro
#--------------------------------------------------------------
#
include		../../Mkinclude
#
#	Define model resolution
#
#RESOLUTION = v00l16
#RESOLUTION = t42l12
#RESOLUTION = t42l16
RESOLUTION = t42l23
#
# 	Dry adjustment subroutine
#
DRYADJ	= p2dad0.F
#DRYADJ	= p2dadj.F
#
# 	Moist adjustment subroutine
#
#MOISTADJ= p2madj.F
MOISTADJ= p2kuoc.F
#MOISTADJ= p2cum0.F


PROGSRC	= aadmn.F
PROGOBJ	= $(PROGSRC:%.F=%.o)

ASRCS		= aparm.F apcon.F asavb.F asetc.F asetl.F \
	  	  asets.F astep.F astrt.F atfil.F atime.F
ADIR		= .
ADMINSRCS	= $(ASRCS:%.F=$(ADIR)/%.F)
ADMINOBJS	= $(ASRCS:%.F=%.o)

DSRCS		= dadmn.F ddiag.F ddifc.F dg2wd.F dgdyn.F \
	  	  dgeng.F dhydr.F dintg.F dmtrx.F dphis.F \
		  dsetc.F dsetv.F dsphe.F dstrt.F
DDIR		= ../dynamics
DYNSRCS		= $(DSRCS:%.F=$(DDIR)/%.F)
DYNOBJS		= $(DSRCS:%.F=%.o)

PSRCS		= p2admn.F p2ccll.F p2diag.F p2grdm.F p2imtx.F \
		  p2misc.F p2mlsc.F p2radi.F p2radl.F p2radm.F \
		  p2rads.F p2rmnq.F p2sfcl.F p2sfcm.F p2shlt.F \
		  p2vdfm.F p2vdfy.F \
		  $(DRYADJ) $(MOISTADJ)
PDIR		= ../physics
PHYSSRCS	= $(PSRCS:%.F=$(PDIR)/%.F)
PHYSOBJS	= $(PSRCS:%.F=%.o)

ISRCS		= iavrg.F icord.F idiag.F ifopn.F \
		  ihdef.F ihead.F ihist.F ihsub.F \
		  imoni.F iprin.F ircon.F irwgd.F
IDIR		= ../inout
INOUTSRCS	= $(ISRCS:%.F=$(IDIR)/%.F)
INOUTOBJS	= $(ISRCS:%.F=%.o)

ZCDIM		= zcdim.F
ZCDIMDIR	= ../include/z$(RESOLUTION)
ZCDIMSRC	= $(ZCDIMDIR)/$(ZCDIM)

INCDIR		= ../include
INCLUDES	= zhdim.F zidim.F zccom.F zqsat.F
INCLUDEALL	= $(INCLUDES) $(ZCDIM)


all:	$(PROGOBJ) $(ADMINOBJS) $(DYNOBJS) $(PHYSOBJS) $(INOUTOBJS)
	@echo "Making $(GCM)"
	$(GFDFRT)	$(PROGOBJ)     	\
	       		$(ADMINOBJS) 	\
			$(DYNOBJS)	\
			$(PHYSOBJS)	\
			$(INOUTOBJS) 	\
		     -o $(WORKDIR)/$(GCM)

link:	$(DSRCS) $(PSRCS) $(ISRCS) $(INCLUDEALL)

$(DSRCS):
	ln -s $(DDIR)/$@ $@

$(PSRCS):
	ln -s $(PDIR)/$@ $@

$(ISRCS):
	ln -s $(IDIR)/$@ $@

$(ZCDIM):
	ln -s $(ZCDIMSRC) $(ZCDIM)

$(INCLUDES):
	ln -s $(INCDIR)/$@ $@

$(PROGOBJ) $(ADMINOBJS) $(DYNOBJS) $(PHYSOBJS) $(INOUTOBJS):$(INCLUDEALL)


clean:
	$(RM) *.o *~ $(LIBNAME) 

cleanall:
	$(RM) *.o *~ $(LIBNAME) $(DSRCS) $(PSRCS) $(ISRCS) $(INCLUDEALL)


