FC = gfortran
OPT = #-g -O0 -fbounds-check

EXE = advdiff.x

# Catalyst
BUILD_CATALYST_ADAPTOR=1
PARAVIEW_DIR = /PRODCOM/PARAVIEW/linux86-64/Paraview5.1.0_osmesa_compile
PARAVIEW_INCDIR = $(PARAVIEW_DIR)/include/paraview-5.1
PARAVIEW_LIBS = `$(PARAVIEW_DIR)/bin/paraview-config --libs vtkPVPythonCatalyst` -lstdc++ 


OBJS = modules.o prog.o lecture.o creer_maillage.o vitesse.o \
pas_de_temps.o initialisation.o calcul_advection.o calcul_diffusion.o \
calcul_advection_diffusion.o mainloop.o simulate_one_timestep.o result_vtr.o

ifeq ($(BUILD_CATALYST_ADAPTOR),1)
       OPT += -DUSE_CATALYST
       CXXOPT = -I$(PARAVIEW_INCDIR)
       OBJS += catalyst.o\
               catalyst_callbacks.o
       LIBS= $(PARAVIEW_LIBS)
       EXE = advdiff_catalyst.x
endif


exe :	$(OBJS) 
	$(FC) $(OPT) $(OBJS) $(INCLUDE) $(LIBS) -o $(EXE)
	
modules.o:	modules.f90
	$(FC) $(OPT) $(INCLUDE) $(LIBS) modules.f90 -c
	
prog.o :	prog.f90
	$(FC) $(OPT) $(INCLUDE) $(LIBS) prog.f90 -c
	
lecture.o:		lecture.f90
	$(FC) $(OPT) lecture.f90 -c

	
creer_maillage.o:		creer_maillage.f90
	$(FC) $(OPT) creer_maillage.f90 -c
	
vitesse.o:		vitesse.f90
	$(FC) $(OPT) vitesse.f90 -c
	
pas_de_temps.o:		pas_de_temps.f90
	$(FC) $(OPT) pas_de_temps.f90 -c

initialisation.o:		initialisation.f90
	$(FC) $(OPT) initialisation.f90 -c

calcul_advection.o:		calcul_advection.f90
	$(FC) $(OPT) calcul_advection.f90 -c

calcul_diffusion.o:		calcul_diffusion.f90
	$(FC) $(OPT) calcul_diffusion.f90 -c
	
calcul_advection_diffusion.o:		calcul_advection_diffusion.f90
	$(FC) $(OPT) calcul_advection_diffusion.f90 -c
	
mainloop.o:		mainloop.f90
	$(FC) -cpp $(OPT) $(INCLUDE) $(LIBS) mainloop.f90 -c
	
result_vtr.o:		result_vtr.f90
	$(FC) -cpp $(OPT) $(INCLUDE) $(LIBS) result_vtr.f90 -c
	
simulate_one_timestep.o:	simulate_one_timestep.f90
	$(FC) $(OPT) $(INCLUDE)  $(LIBS) simulate_one_timestep.f90 -c
	
catalyst.o : catalyst.f90
	$(FC) -c $(OPT) catalyst.f90
        
catalyst_callbacks.o : catalyst_callbacks.cxx
	$(CXX) -c -g $(CXXOPT) $(INCLUDE) catalyst_callbacks.cxx

clean :
	/bin/rm -f $(OBJS) $(EXE) *.mod
