#
# frt
#
FC     = frt
FFLAGS =
FFLAGS = -Am -Cpp
FFLAGS = -Am -Cpp -Kfast,SSE2,prefetch
FFLAGS = -Am -Cpp -H aesux
DEF    =
NCDIR  = /home/yot/local/netcdf-3.6.1-Fujitsu
LIB    = -lnetcdf

#
# gfortran
#
FC     = gfortran
FFLAGS =
#FFLAGS = -pedantic -O3 -g -fopenmp -fbacktrace -msse2 -msse -msse3 -ffpe-trap=invalid,zero,overflow -Wall -fbounds-check
FFLAGS  = -Ofast -g -fopenmp -fbacktrace -ffpe-trap=invalid,zero,overflow -fbounds-check -Wall
DEF    =
NCDIR  = /usr
LIB    = -lnetcdff


NCINC   = -I$(NCDIR)/include
NCLIB   = -L$(NCDIR)/lib


###############################################################################

RM = rm -f

###############################################################################


LM = a.out

MAIN_SRCS = main.f90 vtype_module.f90 refindex.f90 ni3_module.f90
# for test
#MAIN_SRCS = main_test.f90
MAIN_OBJS = $(MAIN_SRCS:.f90=.o)

MAIN_SRCS_F = 
MAIN_OBJS_F = $(MAIN_SRCS_F:.f=.o)

MIE_SRCS = mie.f90
MIE_OBJS = $(MIE_SRCS:.f90=.o)


MAIN_DIR     = src/main
MIE_DIR      = src/mie


VPATH = $(MAIN_DIR):$(MIE_DIR)

OBJS_ALL = $(MAIN_OBJS) $(MAIN_OBJS_F) $(MIE_OBJS)


.SUFFIXES: 
.SUFFIXES: .f .f90 .o


all: $(LM)

$(LM): $(OBJS_ALL)
	$(FC) $(FFLAGS) $(DEF) -o $@ $(OBJS_ALL) $(NCINC) $(NCLIB) $(LIB)

.f90.o:
	$(FC) $(FFLAGS) $(DEF) $(NCINC) -c $<

.f.o:
	$(FC) $(FFLAGS) $(DEF) -c $<


cleanLM:
	$(RM) $(LM)

clean:
	$(RM) core $(OBJS_ALL) *.mod *~
	$(RM) $(MAIN_DIR)/*~
	$(RM) $(MIE_DIR)/*~

realclean: cleanLM clean

distclean: realclean


###############################################################################
#
# Dependence
#
#
# main:
#
main.o: mie.o vtype_module.o refindex.o
refindex.o: vtype_module.o ni3_module.o
main_test.o: mie.o
