#!Makefile
include ../Mkinclude

LIBDIRISP=/home/satoki/usr/local/ispack-1.0.4
LIBISP	= isp

#-- MT-19937 option
MTOBJ	= mt_stream.o \
	  gf2xe.o \
	  f_get_coeff.o

INSRC	= make_init.f90  \
	  make_init_g.f90 \
	  make_init_M10.f90 \
	  make_init_MK97.f90 \
	  make_init_MK97_N.f90 \
	  make_init_K08.f90 \
	  make_init_S99.f90 \
	  make_stretch_R09.f90 \
	  calc_TCenter_nc.f90

TGSRC	= solver.f90
FTARSRC	= fft_solver.f90
FMTARSRC	= fft_solver_isp.f90
SRC	=  \
	  saveval_define.f90  \
	  val_define.f90  \
	  read_namelist.f90  \
	  saveval_alloc.f90  \
	  sub_mod.f90  \
	  val_alloc.f90  \
	  val_coord.f90  \
	  force_solv.f90  \
	  time_scheme.f90
MOD	=  \
	  saveval_define.mod  \
	  val_define.mod  \
	  read_namelist.mod  \
	  saveval_alloc.mod  \
	  sub_mod.mod  \
	  val_alloc.mod  \
	  val_coord.mod  \
	  force_solv.mod  \
	  time_scheme.mod
OBJ	=  \
	  saveval_define.o  \
	  val_define.o  \
	  read_namelist.o  \
	  saveval_alloc.o  \
	  sub_mod.o  \
	  val_alloc.o  \
	  val_coord.o  \
	  force_solv.o  \
	  time_scheme.o
FFTSRC	=  \
	  fft_saveval_define.f90  \
	  fft_val_define.f90  \
	  fft_val_define_isp.f90  \
	  fft_read_namelist.f90  \
	  fft_read_namelist_mod.f90  \
	  fft_saveval_alloc.f90  \
	  fft_rotate.f90  \
	  fftsub_mod.f90  \
	  fftsub_mod_isp.f90  \
	  fft_val_alloc.f90  \
	  fft_val_alloc_isp.f90  \
	  fft_force_solv.f90  \
	  fft_force_solv_isp.f90  \
	  fft_time_scheme.f90  \
	  fft_time_scheme_isp.f90
FFTMOD	=  \
	  fft_saveval_define.mod  \
	  fft_val_define.mod  \
	  fft_val_define_isp.mod  \
	  fft_read_namelist.mod  \
	  fft_read_namelist_mod.mod  \
	  fft_saveval_alloc.mod  \
	  fft_rotate.mod  \
	  fftsub_mod.mod  \
	  fftsub_mod_isp.mod  \
	  fft_val_alloc.mod  \
	  fft_val_alloc_isp.mod  \
	  fft_force_solv.mod  \
	  fft_force_solv_isp.mod  \
	  fft_time_scheme.mod  \
	  fft_time_scheme_isp.mod
FFTOBJ	=  \
	  fft_saveval_define.o  \
	  fft_val_define.o  \
	  fft_val_define_isp.o  \
	  fft_read_namelist.o  \
	  fft_read_namelist_mod.o  \
	  fft_saveval_alloc.o  \
	  fft_rotate.o  \
	  fftsub_mod.o  \
	  fftsub_mod_isp.o  \
	  fft_val_alloc.o  \
	  fft_val_alloc_isp.o  \
	  fft_force_solv.o  \
	  fft_force_solv_isp.o  \
	  fft_time_scheme.o  \
	  fft_time_scheme_isp.o
INITAR	= make_init  \
	  make_init_g \
	  make_init_M10 \
	  make_init_MK97 \
	  make_init_MK97_N \
	  make_init_K08 \
	  make_init_S99 \
	  make_stretch_R09 \
	  calc_TCenter_nc

TARGET	= BAROVOR
FFTTAR	= FFT_BAROVOR
FFTMTAR	= FFT_BAROVOR_ISP
DCLSRC	= draw_anim.f90
DCLTG	= draw_anim
DCLOBJ	= dcl_auto.o

all: $(TARGET) $(FFTTAR) $(FFTMTAR) $(INITAR) $(DCLTG)
$(TARGET): $(TGSRC) $(OBJ)
	$(FC) ${FFLAGS} -I${INCDIR} -I${GTINC} $< $(OBJ) -L${LDFLAGS} -l${LFLAGS} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@

$(OBJ): %.o:%.f90
	$(FC) ${FFLAGS} -c -I${INCDIR} -I${GTINC} $< -L${LDFLAGS} -l${LFLAGS} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@

init: $(INITAR)
$(INITAR): %:%.f90
	$(FC) ${FFLAGS} -I${INCDIR} -I${GTINC} $< $(MTOBJ) -L${LDFLAGS} -l${LFLAGS} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@

fft: $(FFTTAR)
$(FFTTAR): $(FTARSRC) $(FFTOBJ)
	$(FC) ${FFLAGS} -I${INCDIR} -I${GTINC} $< $(FFTOBJ) -L${LDFLAGS} -l${LFLAGS} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@

fftm: $(FFTMTAR)
$(FFTMTAR): $(FMTARSRC) $(FFTOBJ)
	$(FC) ${FFLAGS} -I${INCDIR} -I${GTINC} $< $(FFTOBJ) -L${LDFLAGS} -l${LFLAGS} -L${LIBDIRISP} -l${LIBISP} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@

$(FFTOBJ): %.o:%.f90
	$(FC) ${FFLAGS} -c -I${INCDIR} -I${GTINC} $< -L${LDFLAGS} -l${LFLAGS} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@

draw: $(DCLTG)
#$(DCLTG): $(DCLSRC) $(DCLOBJ)
$(DCLTG): %:%.f90 $(DCLOBJ)
	$(FCDCL) ${FFLAGS} -I${INCDIR} -I${GTINC} $< -L${LDFLAGS} -l${LFLAGS} -L${LIBDIR} -l${LIBNM} -L${GTLIB} -l${GTF} -L${NCLIB} -l${NCF} -l${NCFF} -o $@ $(DCLOBJ)
$(DCLOBJ): %.o:%.f90
	$(FCDCL) ${FFLAGS} -c dcl_auto.f90

clean:
	rm -rf $(TARGET) $(INITAR) $(PRETG) $(DCLTG) *.o *.mod *.ps
