complier=gfortran-12
flags_fast=-O3 -ffree-line-length-none -fopenmp -flto=auto -fwhole-program
flags_prof=-O3 -ffree-line-length-none -fopenmp -pg -flto=auto -fwhole-program
flags_debug=-g -fbacktrace -fcheck=all -ffree-line-length-none -ffpe-trap=invalid,zero,overflow -Wall -Wextra -pedantic
source =mod_parameters.f90
source+=mod_plib.f90
source+=mod_variables.f90
source+=mod_read_f.f90
source+=mod_potential.f90
source+=mod_write_f.f90
source+=mod_allocation.f90
source+=mod_preprocess.f90
source+=mod_LU.f90
source+=mod_matrix_coeffs.f90
source+=mod_matrix.f90
source+=mod_math.f90
source+=mod_displacement.f90
source+=mod_rhs.f90
source+=mod_solver.f90
source+=mod_norms.f90
source+=mod_coriolis.f90
source+=mod_time_integration.f90
source+=main.f90
object=$(source:.f90=.o)
target=lgan.exe

all: $(target)

%.o: %.f90
	$(complier) $(flags_fast) -o $@ -c $<


$(target): $(object)
	$(complier) $(flags_fast) -o $(target) $(object)


clean:
	rm -f *.o *.exe *.mod 