# define fc flag. The default is mpiifort if not specified.
ifdef fc
   ifeq ($(fc),mpif90)
         FCFLAGS = -O3 -fopenmp 
   endif
   ifeq ($(fc),mpif90)
         FCFLAGS = -O2 -mcmodel=medium -mp
   endif
# only for "bench_dgemm_mkl_f.f90" and "bench_domatcopy_mkl_f.f90"
   ifeq ($(fc),ifort)
         FCFLAGS = -O3 -mkl -openmp 
   endif
else
         fc = mpiifort
         FCFLAGS = -O3 -openmp
         $(info The default compiler is Intel MPI ifort ...)
endif


LDFLAGS=$(CCFLAGS)

SRCS =  mpi_openmp_pi_f_v0.f90     \
	mpi_openmp_pi_f_v1.f90     \

SRCS_DGEMM = bench_dgemm_mkl_f.f90
SRCS_DOMAT = bench_domatcopy_mkl_f.f90

OBJS =	$(SRCS:.f90=.o)
PROG =  $(SRCS:.f90=)
PROG_DGEMM =  $(SRCS_DGEMM:.f90=)
PROG_DOMAT =  $(SRCS_DOMAT:.f90=)

all: $(PROG)
dgemm: $(PROG_DGEMM)
domat: $(PROG_DOMAT)


clean:
	rm -f $(PROG) $(PROG_DGEMM) $(PROG_DOMAT) $(OBJS) *.mod *~

# clenaomod only remove *.o, *.mod, and *~ file. 
# Executable file is not removed.
cleanomod:
	rm -f $(OBJS) *.mod *~


%:%.f90
	$(fc) $(FCFLAGS) -o $@  $<

