#------------------------------------------------------------------------------
# @file Makefile
# @author jlinford
# @date 2014-09-23 10:48:06.492421
# @brief Makefile for Fortran90 compilation with OpenMP acceleration
# 
# Makefile for Fortran90 compilation with OpenMP acceleration
# 
# This file was generated by Kppa: http://www.paratools.com/Kppa
#------------------------------------------------------------------------------


#FC = tau_f90.sh -optVerbose -optPreProcess -optContinueBeforeOMP
FC = ifort
LD = $(FC)
#OPT_FLAGS = -cpp -O3 -fdefault-real-8 -fdefault-double-8 -fopenmp -fstack-arrays -falign-commons
OPT_FLAGS = -cpp -w -O2 -auto -fp-model source -openmp
WARN_FLAGS = -Wall
PREC_FLAGS = 

FFLAGS = $(OPT_FLAGS) $(WARN_FLAGS) $(PREC_FLAGS)
LDFLAGS = $(OPT_FLAGS)
LIBS =

OBJ = globchem_integrate.o \
      globchem_jacobian.o \
      globchem_main.o \
      globchem_parameters.o \
      globchem_rosenbrock.o \
      globchem_blas.o \
      globchem_rates.o \
      globchem_function.o \
      globchem_sparse.o \
      globchem_decomp.o \
      globchem_solve.o \
      globchem_initialize.o \
      globchem_driver_parameters.o \
      globchem_monitor.o \
      globchem_gcdata.o


EXE = globchem.exe

all: $(EXE)

$(EXE):  $(OBJ)
	$(LD) -o $(EXE) $(LDFLAGS) $(OBJ) $(LIBS)

%.o: %.mod

globchem_gcdata.o: globchem_gcdata.f90 \
        globchem_parameters.mod \
        globchem_driver_parameters.mod
	$(FC) -c $(FFLAGS) globchem_gcdata.f90 

globchem_integrate.o: globchem_integrate.f90 \
        globchem_parameters.mod \
        globchem_rosenbrock.o
	$(FC) -c $(FFLAGS) globchem_integrate.f90 

globchem_jacobian.o: globchem_jacobian.f90 \
        globchem_parameters.mod \
        globchem_sparse.o
	$(FC) -c $(FFLAGS) globchem_jacobian.f90 

globchem_main.o: globchem_main.f90 \
        globchem_parameters.mod \
        globchem_integrate.o \
        globchem_initialize.o \
        globchem_driver_parameters.mod \
        globchem_monitor.o \
	globchem_gcdata.o
	$(FC) -c $(FFLAGS) globchem_main.f90 

globchem_parameters.mod: globchem_parameters.f90
	$(FC) -c $(FFLAGS) globchem_parameters.f90

globchem_rosenbrock.o: globchem_rosenbrock.f90 \
        globchem_parameters.mod \
        globchem_blas.o \
        globchem_rates.o \
        globchem_function.o \
        globchem_decomp.o \
        globchem_solve.o \
        globchem_jacobian.o
	$(FC) -c $(FFLAGS) globchem_rosenbrock.f90 

globchem_blas.o: globchem_blas.f90 \
        globchem_parameters.mod
	$(FC) -c $(FFLAGS) globchem_blas.f90 

globchem_rates.o: globchem_rates.f90 \
        globchem_parameters.mod \
	globchem_gcdata.o
	$(FC) -c $(FFLAGS) globchem_rates.f90 

globchem_function.o: globchem_function.f90 \
        globchem_parameters.mod \
        globchem_sparse.o
	$(FC) -c $(FFLAGS) globchem_function.f90 

globchem_sparse.o: globchem_sparse.f90
	$(FC) -c $(FFLAGS) globchem_sparse.f90 

globchem_decomp.o: globchem_decomp.f90 \
        globchem_parameters.mod \
        globchem_sparse.o
	$(FC) -c $(FFLAGS) globchem_decomp.f90 

globchem_solve.o: globchem_solve.f90 \
        globchem_parameters.mod \
        globchem_sparse.o
	$(FC) -c $(FFLAGS) globchem_solve.f90 

globchem_initialize.o: globchem_initialize.f90 \
        globchem_parameters.mod \
	globchem_gcdata.o
	$(FC) -c $(FFLAGS) globchem_initialize.f90 

globchem_driver_parameters.mod: globchem_driver_parameters.f90
	$(FC) -c $(FFLAGS) globchem_driver_parameters.f90

globchem_monitor.o: globchem_monitor.f90 \
        globchem_parameters.mod
	$(FC) -c $(FFLAGS) globchem_monitor.f90 


clean:
	rm -f globchem_integrate.o globchem_jacobian.o globchem_main.o globchem_parameters.o globchem_rosenbrock.o globchem_blas.o globchem_rates.o globchem_function.o globchem_sparse.o globchem_decomp.o globchem_solve.o globchem_initialize.o globchem_driver_parameters.o globchem_monitor.o globchem_gcdata.o
	rm -f globchem_integrate.mod globchem_jacobian.mod globchem_parameters.mod globchem_rosenbrock.mod globchem_blas.mod globchem_rates.mod globchem_function.mod globchem_sparse.mod globchem_decomp.mod globchem_solve.mod globchem_initialize.mod globchem_driver_parameters.mod globchem_monitor.mod globchem_gcdata.mod
	rm -f globchem.exe
	
destroy: clean
	rm -f globchem_integrate.f90 globchem_jacobian.f90 globchem_main.f90 globchem_parameters.f90 globchem_rosenbrock.f90 globchem_blas.f90 globchem_rates.f90 globchem_function.f90 globchem_sparse.f90 globchem_decomp.f90 globchem_solve.f90 globchem_initialize.f90 globchem_driver_parameters.f90 globchem_monitor.f90 Makefile


#----------------------------- END Makefile END -------------------------------
