# 表題  コンパイル用 Makefile
#
# 履歴  1998/10/02  小高正嗣
#	1998/10/08  小高正嗣
#	1999/01/31  小高正嗣
#	2000/11/02  小高正嗣
#
include	../../Mkinclude
include	../Mkinclude

PWD	= nagare

XZCONT_W	= xzcont_w
XZCONT_W_CL	= xzcont_w_cl
XZCONT_U_CL	= xzcont_u_cl
XZCONT_Q	= xzcont_q
XZCONT_Q_CL	= xzcont_q_cl
XZCONT_QW_CL	= xzcont_qw_cl
XZCONT_QK_CL	= xzcont_qk_cl
XZCONT_QRAD	= xzcont_qrad
XZCONT_PT	= xzcont_pt
XZCONT_PT_CL	= xzcont_pt_cl
XZCONT_UW	= xzcont_uw_cl
XZCONT_UWT	= xzcont_uwt_cl
XZCONT_UWTK	= xzcont_uwtk_cl
XZCONT_PTM	= xzcont_ptm
XZCONT_PTM3	= xzcont_ptm_3
XZCONT_K	= xzcont_k_cl
XSTRESS		= xstress
VSURF	= vsurf
VSURF2	= vsurf2
FXMOM	= fxmom
FXMOM2	= fxmom2
HFLUX	= hfluxprf

TGRAND	= tgrand
NETFLUX = netheat
TAUDV	= taudv

PTDVLOP	= ptdvlop
PTDVLOP_BL	= ptdvlop_bl
TURBPRF	= turbprf_bl
QVDVLOP = qvdvlop
PTTEND	= pttend
QVTEND	= qvtend
PTRAD	= ptrad




UTIL	= ../${TIODIR}/${FOPEN}.f ../${TIODIR}/${FCLOSE}.f
UOBJ	= ${UTIL:.f=.o}

ALLTARGET= ${XZCONT_Q} ${XZCONT_UWT} ${XZCONT_W} ${PTDVLOP} ${QVDVLOP} \
	   ${TGRAND} ${PTTEND} ${QVTEND} ${XSTRESS} ${XZCONT_PTM3} \
	   ${XZCONT_PT} ${FXMOM} ${NETFLUX} ${TAUDV} ${XZCONT_QRAD} \
	   ${XZCONT_K} ${PTDVLOP_BL} ${XZCONT_PTM} ${TURBPRF} ${FXMOM2} \
	   ${XZCONT_W_CL}  ${VSURF} ${VSURF2} ${HFLUX} \
	   ${XZCONT_PT_CL} ${XZCONT_U_CL} ${XZCONT_Q_CL} \
	   ${ENERGY} ${EKPROF} ${EKPLOT} ${XZCONT_UW_CL} ${XZCONT_QW_CL} \
	   ${XZCONT_QK_CL} ${XZCONT_UWTK_CL} ${PTRAD}


ALLOBJ	= ${XZCONT_Q}.o ${XZCONT_UWT}.o ${XZCONT_W}.o ${PTDVLOP}.o \
	  ${QVDVLOP}.o ${TGRAND}.o ${PTTEND}.o ${QVTEND}.o ${XSTRESS}.o \
	  ${XZCONT_PTM3}.o ${XZCONT_PT}.o ${FXMOM}.o ${NETFLUX}.o ${TAUDV}.o \
	  ${XZCONT_QRAD}.o ${XZCONT_K}.o ${PTDVLOP_BL}.o ${XZCONT_PTM}.o \
	  ${TURBPRF}.o ${FXMOM2}.o ${XZCONT_W_CL}.o ${VSURF}.o ${VSURF}.o \
	  ${HFLUX}.o ${XZCONT_PT_CL}.o ${XZCONT_U_CL}.o \
	  ${XZCONT_Q_CL}.o ${ENERGY}.o ${EKPROF}.o ${EKPLOT}.o \
	  ${XZCONT_UW_CL}.o ${XZCONT_QW_CL}.o ${XZCONT_QK_CL}.o \
	  ${XZCONT_UWTK_CL}.o ${PTRAD}.o

SCRIPT	= ${PTDVLOP}.sh ${QVDVLOP}.sh ${PTTEND}.sh ${QVTEND}.sh \
	  ${XZCONT_PTM3}.sh ${TAUDV}.sh ${ENERGY}.sh ${ENERGY}.pl ${EKPROF}.sh


LDFLAGS	= ${DCLLIBPATH} ${XLIBPATH}
LDLIBS	= ${DCLLIBOPT} ${XLIBOPT} ${MATHLIBOPT} 


.suffixes: .o .F

.F.o: ../../${INCDIR}/${GRIDSIZE}.f
#	${CPP} -I../../${INCDIR} $< | sed '/^#/d' > $*.f
#	${FC} ${FFLAGS}  -c $*.f
	${FC} -I../../${INCDIR} ${FFLAGS}  -c $<

all:w uwt qvap ptdvlop qvdvlop tgrand pttend qvtend stress ptemp_3 ptemp \
	fxmom netheat taudv kturb qrad ptm ptdvlop_bl turbprf fxmom2 \
	w_cl vsurf vsurf2 hflux ptrad

hflux:${UOBJ} ${HFLUX}.o setup
	${FC} ${FFLAGS} -o ${HFLUX} ${UOBJ} ${HFLUX}.o \
	../../${SETDIR}/${SETCST}.o ${LDFLAGS} ${LDLIBS}

vsurf:${UOBJ} ${VSURF}.o 
	${FC} ${FFLAGS} -o ${VSURF} ${UOBJ} ${VSURF}.o ${LDFLAGS} ${LDLIBS}

vsurf2:${UOBJ} ${VSURF2}.o 
	${FC} ${FFLAGS} -o ${VSURF2} ${UOBJ} ${VSURF2}.o ${LDFLAGS} ${LDLIBS}

w:${UOBJ} ${XZCONT_W}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_W} ${UOBJ} ${XZCONT_W}.o \
	../../${SETDIR}/${SETGRD}.o ${LDFLAGS} ${LDLIBS}

w_cl:${UOBJ} ${XZCONT_W_CL}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_W_CL} ${UOBJ} ${XZCONT_W_CL}.o \
	../../${SETDIR}/${SETGRD}.o ${LDFLAGS} ${LDLIBS}

u_cl:${UOBJ} ${XZCONT_U_CL}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_U_CL} ${UOBJ} ${XZCONT_U_CL}.o \
	../../${SETDIR}/${SETGRD}.o ${LDFLAGS} ${LDLIBS}

uw_cl:${UOBJ} ${XZCONT_UW_CL}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_UW_CL} ${UOBJ} ${XZCONT_UW_CL}.o \
	../../${SETDIR}/${SETGRD}.o ${LDFLAGS} ${LDLIBS}

qw_cl:${UOBJ} ${XZCONT_QW_CL}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_QW_CL} ${UOBJ} ${XZCONT_QW_CL}.o \
	../../${SETDIR}/${SETGRD}.o ${LDFLAGS} ${LDLIBS}


qk_cl:${UOBJ} ${XZCONT_QK_CL}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_QK_CL} ${UOBJ} ${XZCONT_QK_CL}.o \
	../../${SETDIR}/${SETGRD}.o ${LDFLAGS} ${LDLIBS}

qvap:${UOBJ} ${XZCONT_Q}.o
	${FC} ${FFLAGS} -o ${XZCONT_Q} ${UOBJ} ${XZCONT_Q}.o \
	${LDFLAGS} ${LDLIBS}

qvap_cl:${UOBJ} ${XZCONT_Q_CL}.o
	${FC} ${FFLAGS} -o ${XZCONT_Q_CL} ${UOBJ} ${XZCONT_Q_CL}.o \
	${LDFLAGS} ${LDLIBS}

ptemp:${UOBJ} ${XZCONT_PT}.o
	${FC} ${FFLAGS} -o ${XZCONT_PT} ${UOBJ} ${XZCONT_PT}.o \
	${LDFLAGS} ${LDLIBS}

ptempcl:${UOBJ} ${XZCONT_PT_CL}.o
	${FC} ${FFLAGS} -o ${XZCONT_PT_CL} ${UOBJ} ${XZCONT_PT_CL}.o \
	${LDFLAGS} ${LDLIBS}

ptm:${UOBJ} ${XZCONT_PTM}.o
	${FC} ${FFLAGS} -o ${XZCONT_PTM} ${UOBJ} ${XZCONT_PTM}.o \
	${LDFLAGS} ${LDLIBS}

uwt:${UOBJ} ${XZCONT_UWT}.o
	${FC} ${FFLAGS} -o ${XZCONT_UWT} ${UOBJ} ${XZCONT_UWT}.o \
	${LDFLAGS} ${LDLIBS}

uwtk:${UOBJ} ${XZCONT_UWTK}.o
	${FC} ${FFLAGS} -o ${XZCONT_UWTK} ${UOBJ} ${XZCONT_UWTK}.o \
	${LDFLAGS} ${LDLIBS}

kturb:${UOBJ} ${XZCONT_K}.o
	${FC} ${FFLAGS} -o ${XZCONT_K} ${UOBJ} ${XZCONT_K}.o \
	${LDFLAGS} ${LDLIBS}

turbprf:${UOBJ} ${TURBPRF}.o
	${FC} ${FFLAGS} -o ${TURBPRF} ${UOBJ} ${TURBPRF}.o \
	${LDFLAGS} ${LDLIBS}

ptdvlop:${UOBJ} ${PTDVLOP}.o
	${FC} ${FFLAGS} -o ${PTDVLOP} ${PTDVLOP}.o ${UOBJ} \
	${LDFLAGS} ${LDLIBS} 

ptdvlop_bl:${UOBJ} ${PTDVLOP_BL}.o
	${FC} ${FFLAGS} -o ${PTDVLOP_BL} ${PTDVLOP_BL}.o ${UOBJ} \
	${LDFLAGS} ${LDLIBS} 

qvdvlop:${UOBJ} ${QVDVLOP}.o
	${FC} ${FFLAGS} -o ${QVDVLOP} ${QVDVLOP}.o ${UOBJ} \
	${LDFLAGS} ${LDLIBS} 

tgrand:${UOBJ} ${TGRAND}.o
	${FC} ${FFLAGS} -o ${TGRAND} ${TGRAND}.o ${UOBJ} \
	${LDFLAGS} ${LDLIBS} 

pttend:${UOBJ} ${PTTEND}.o setup
	${FC} ${FFLAGS} -o ${PTTEND} ${PTTEND}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ${LDFLAGS} ${LDLIBS} 

qvtend:${UOBJ} ${QVTEND}.o 
	${FC} ${FFLAGS} -o ${QVTEND} ${QVTEND}.o ${UOBJ} \
	${LDFLAGS} ${LDLIBS} 

ptrad:${UOBJ} ${PTRAD}.o setup
	${FC} ${FFLAGS} -o ${PTRAD} ${PTRAD}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ${LDFLAGS} ${LDLIBS} 

stress:${UOBJ} ${XSTRESS}.o setup physics
	${FC} ${FFLAGS} -o ${XSTRESS} ${XSTRESS}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ../../${PHYSDIR}/${CLDRAG}.o \
	../../${PHYSDIR}/${CLRICH}.o ${LDFLAGS} ${LDLIBS} 

fxmom:${UOBJ} ${FXMOM}.o setup physics
	${FC} ${FFLAGS} -o ${FXMOM} ${FXMOM}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ../../${PHYSDIR}/${CLDRAG}.o \
	../../${PHYSDIR}/${CLRICH}.o ${LDFLAGS} ${LDLIBS} 

fxmom2:${UOBJ} ${FXMOM2}.o setup physics
	${FC} ${FFLAGS} -o ${FXMOM2} ${FXMOM2}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ../../${PHYSDIR}/${CLDRAG}.o \
	../../${PHYSDIR}/${CLRICH}.o ${LDFLAGS} ${LDLIBS} 

ptemp_3:${UOBJ} ${XZCONT_PTM3}.o setup
	${FC} ${FFLAGS} -o ${XZCONT_PTM3} ${UOBJ} ${XZCONT_PTM3}.o \
	../../${SETDIR}/${SETCST}.o ${LDFLAGS} ${LDLIBS}

taudv:${TAUDV}.o setup
	${FC} ${FFLAGS} -o ${TAUDV} ${TAUDV}.o ../../${SETDIR}/${SETDUST}.o \
	${LDFLAGS} ${LDLIBS} 	

netheat:$(UOBJ) $(NETFLUX).o setup setrad 
	${FC} ${FFLAGS} -o ${NETFLUX} ${NETFLUX}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ../../${SETDIR}/${SETCS2}.o \
	../../${SETDIR}/${SETCSP}.o ../../${SETDIR}/${SETDUST}.o \
	../../${SETDIR}/${SETGRD}.o  \
	../../${RADDIR}/${RBASIC}.o ../../${RADDIR}/${QALB_DE}.o \
	../../${RADDIR}/${QASM_DE}.o \
	../../${RADDIR}/${CLFXSOL}.o ../../${RADDIR}/${CLRAD}.o \
	../../${RADDIR}/${CLSRAD}.o ../../${RADDIR}/${CLDIRAD}.o \
	../../${RADDIR}/${CLTAUN}.o ../../${RADDIR}/${CLDSRAD}.o \
	../../${RADDIR}/${CLBBRAD}.o ../../${RADDIR}/${CLFXRDU}.o \
	../../${RADDIR}/${CLFXRDD}.o ../../${RADDIR}/${CLFXRDN}.o \
	../../${RADDIR}/${CLQRAD}.o ../../${RADDIR}/${CLSCMTRX}.o \
	../../${RADDIR}/${CLSCRAD}.o ../../${RADDIR}/${EDDIN}.o \
	../../${RADDIR}/${PLANK}.o ../../${RADDIR}/${SETQTAU}.o \
	../../${RADDIR}/${SETOPL}.o ../../${UTILDIR}/${BOUND}.o \
	${LDFLAGS} ${LDLIBS}

qrad:${UOBJ} ${XZCONT_QRAD}.o setup setrad 
	${FC} ${FFLAGS} -o ${XZCONT_QRAD} ${XZCONT_QRAD}.o ${UOBJ} \
	../../${SETDIR}/${SETCST}.o ../../${SETDIR}/${SETCS2}.o \
	../../${SETDIR}/${SETCSP}.o ../../${SETDIR}/${SETDUST}.o \
	../../${SETDIR}/${SETGRD}.o  \
	../../${RADDIR}/${RBASIC}.o ../../${RADDIR}/${QALB_DE}.o \
	../../${RADDIR}/${QASM_DE}.o \
	../../${RADDIR}/${CLFXSOL}.o ../../${RADDIR}/${CLRAD}.o \
	../../${RADDIR}/${CLSRAD}.o ../../${RADDIR}/${CLDIRAD}.o \
	../../${RADDIR}/${CLTAUN}.o ../../${RADDIR}/${CLDSRAD}.o \
	../../${RADDIR}/${CLBBRAD}.o ../../${RADDIR}/${CLFXRDU}.o \
	../../${RADDIR}/${CLFXRDD}.o ../../${RADDIR}/${CLFXRDN}.o \
	../../${RADDIR}/${CLQRAD}.o ../../${RADDIR}/${CLSCMTRX}.o \
	../../${RADDIR}/${CLSCRAD}.o ../../${RADDIR}/${EDDIN}.o \
	../../${RADDIR}/${PLANK}.o ../../${RADDIR}/${SETQTAU}.o \
	../../${RADDIR}/${SETOPL}.o ../../${UTILDIR}/${BOUND}.o \
	${LDFLAGS} ${LDLIBS}

energy:${ENERGY}.o 
	${FC} ${FFLAGS} -o ${ENERGY} ${ENERGY}.o ${LDFLAGS} ${LDLIBS}

${UOBJ}:
	@cd ../${TIODIR} ; \
	${MAKE} ; \
	cd ../${PWD}

setup:
	cd ../../${SETDIR} ; \
	${MAKE} ; \
	cd ../${TOOLSDIR}/${PWD}

physics:
	cd ../../${PHYSDIR} ; \
	${MAKE} ; \
	cd ../${TOOLSDIR}/${PWD}

setrad:
	@cd ../../${RADDIR} ; \
	${MAKE} ; \
	cd ../${TOOLSDIR}/${PWD}



install:
	@if [ ! -d ${INSTALLDIR} ] ; \
	then echo "making working dir" ; \
	  mkdir ${INSTALLDIR} ; \
	fi ; \
	mv ${ALLTARGET} ${INSTALLDIR}
	cp ${SCRIPT} ${INSTALLDIR}

clean.all:clean
	cd ${INSTALLDIR} ;\
	${RM} -f ${ALLTARGET}

clean:clean.io
	${RM} -f ${ALLOBJ} ${ALLTARGET} a.out core *.trace *~ 

clean.io:
	@cd ../${TIODIR} ; \
	${MAKE} clean ; \
	cd ../${CONTDIR}

