Something went wrong on our end
-
Paul Baumeister authoredPaul Baumeister authored
Makefile 22.18 KiB
# Makefile for kkr2
### default values
PLATFORM ?= ifort
### the user may specify TYPE=debug as a command line argument to make
TYPE ?= nodebug
### the user may specify SMP=openmp as a command line argument to make
SMP ?= none
PROGRAM = kkr.exe
# Path to put object files and module files
BUILDDIR = $(HOME)/build
EXTRA_FLAGS =
FC90FLAGS =
FCFLAGS =
PPFLAGS =
PPFLAGS += -D USE_VOROWEIGHTS
# PPFLAGS += -D BENCHMARK_tfQMR
# PPFLAGS += -D EXPORT_tfQMR_PROBLEM
# PPFLAGS += -D TRANSPOSE_TO_ROW_MAJOR
### TRANSPOSE_TO_ROW_MAJOR seems to work, however, there was a bug in col_norms about the non-linearity of DZNRM2, so we have to see which references went wrong
#PPFLAGS += -D SUPERCELL_ELECTROSTATICS=8
# -D NDEBUG
LDFLAGS =
# ========= IFF Workstations ============
ifeq ($(PLATFORM),ifort)
###> module load intel impi mkl
FC = mpiifort -warn all
FC90 = mpiifort -warn all
# -module <path> specifies where to put .mod files
ifeq ($(SMP),openmp)
FCFLAGS += -qopenmp
endif
FCFLAGS += -module $(BUILDDIR)
FCFLAGS += -I $(BUILDDIR)
# PPFLAGS += -D TASKLOCAL_FILES
FCFLAGS += -g
LDFLAGS += -g -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
ifeq ($(TYPE),debug_light)
FCFLAGS += -O0 -g
else ifeq ($(TYPE),debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
else ifeq ($(TYPE),mtradii)
FCFLAGS += -O3
PPFLAGS += -D USE_MTRADII
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),debug_mtradii)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all
PPFLAGS += -D USE_MTRADII -D USE_OLD_MESH -D NOLOGGING
else ifeq ($(TYPE),voronoi_mesh)
FCFLAGS += -O2 -xHost
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug_light)
FCFLAGS += -O0 -g
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_print_mtradii)
FCFLAGS += -O0 -g
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH -D PRINT_MTRADII
else
FCFLAGS += -O2 -xHost
PPFLAGS += -D NOLOGGING
endif
endif
ifeq ($(PLATFORM),gfortran)
FC = mpifort
FC90 = mpifort
FCFLAGS += -B $(BUILDDIR)
# -J <path> specifies where to put .mod files
FCFLAGS += -J $(BUILDDIR)
FCFLAGS += -I $(BUILDDIR) -I ./
ifeq ($(SMP),openmp)
FCFLAGS += -fopenmp
endif
# FCFLAGS += -I /usr/include ## for fftw3
# PPFLAGS += -D HAS_FFTW3 ## for fftw3
ifeq ($(TYPE),debug)
FCFLAGS += -O0 -g -Wall -Warray-bounds
else
FCFLAGS += -O3
endif
FC90FLAGS = -ffree-line-length-0
PPFLAGS += -D NOLOGGING
# FCFLAGS += -D TASKLOCAL_FILES ### breaks when TASKLOCAL_FILES is used
LDFLAGS += -L /usr/local/atlas/lib -llapack -lf77blas -lcblas -latlas
endif
# ================== JURECA ======================
# optimal setup on one node seems to be 8MPI/3OMP for 64 atoms
# The following software stages were tested and work:
# module --force purge
# module use /usr/local/software/jureca/OtherStages
# module load Stages/2016a
# module load intel-para
ifeq ($(PLATFORM),jureca)
FC = mpif77
FC90 = mpif90
# -module <path> specifies where to put .mod files
ifeq ($(SMP),openmp)
FCFLAGS += -qopenmp -qopt-report
endif
FCFLAGS += -module $(BUILDDIR)
FCFLAGS += -I $(BUILDDIR)
# PPFLAGS += -D TASKLOCAL_FILES
FCFLAGS += -g
LDFLAGS += -g -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
ifeq ($(TYPE),debug_light)
FCFLAGS += -O0 -g
else ifeq ($(TYPE),debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
else ifeq ($(TYPE),mtradii)
FCFLAGS += -O2 -xHost
PPFLAGS += -D USE_MTRADII
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),debug_mtradii)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all
PPFLAGS += -D USE_MTRADII
else ifeq ($(TYPE),voronoi_mesh)
FCFLAGS += -O2 -xHost
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug_light)
FCFLAGS += -O0 -g
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else
FCFLAGS += -O2 -xHost
PPFLAGS += -D NOLOGGING
endif
endif
# ================== JURECA KNL ======================
# optimal setup on one node seems to be 8MPI/8OMP for 64 atoms
# code does not run on standard JURECA nodes because of AVX512
# module purge
# module use /usr/local/software/mod_environment
# module load Architecture/KNL
# module load Intel IntelMPI
ifeq ($(PLATFORM),jureca_knl)
FC = mpiifort
FC90 = mpiifort
# -module <path> specifies where to put .mod files
ifeq ($(SMP),openmp)
FCFLAGS += -qopenmp -qopt-report
endif
FCFLAGS += -module $(BUILDDIR)
FCFLAGS += -I $(BUILDDIR) -I${MKLROOT}/include
# PPFLAGS += -D TASKLOCAL_FILES
FCFLAGS += -g
LDFLAGS += -g -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -ldl
ifeq ($(TYPE),debug_light)
FCFLAGS += -O0 -g
else ifeq ($(TYPE),debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
else ifeq ($(TYPE),mtradii)
FCFLAGS += -ipo -O2 -no-prec-div -fp-model fast=2 -xhost
PPFLAGS += -D USE_MTRADII
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),debug_mtradii)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all
PPFLAGS += -D USE_MTRADII
else ifeq ($(TYPE),voronoi_mesh)
FCFLAGS += -ipo -O2 -no-prec-div -fp-model fast=2 -xMIC-AVX512
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug_light)
FCFLAGS += -O0 -g
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else
FCFLAGS += -ipo -O2 -no-prec-div -fp-model fast=2 -xMIC-AVX512
PPFLAGS += -D NOLOGGING
endif
endif
# ================== HAZEL HEN ======================
# Usage of Intel compiler and Intel MKL seems to give best results:
# module swap PrgEnv-cray PrgEnv-intel
# module unload cray-libsci
# Remarks: - Bad GGA performance -> Use LDA!
# - Home directory slow -> Use Workspace (see HLRS wiki)
# - If 'seg 0' error occurs, add 'module unload craype-hugepages16M' to job file
ifeq ($(PLATFORM),hazelhen)
FC = ftn
FC90 = ftn
# -module <path> specifies where to put .mod files
ifeq ($(SMP),openmp)
FCFLAGS += -qopenmp
endif
FCFLAGS += -I $(BUILDDIR)
FCFLAGS += -I .
# PPFLAGS += -D TASKLOCAL_FILES
FCFLAGS += -g
LDFLAGS += -g
LDFLAGS += -mkl # use Intel MKL library
ifeq ($(TYPE),debug_light)
FCFLAGS += -O0 -g
else ifeq ($(TYPE),debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
else ifeq ($(TYPE),mtradii)
FCFLAGS += -O2
PPFLAGS += -D USE_MTRADII
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),debug_mtradii)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all
PPFLAGS += -D USE_MTRADII
else ifeq ($(TYPE),voronoi_mesh)
FCFLAGS += -O2
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),voronoi_mesh_debug_light)
FCFLAGS += -O0 -g
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else
FCFLAGS += -O2
PPFLAGS += -D NOLOGGING
endif
endif
# ================== QPACE3 ======================
ifeq ($(PLATFORM),qpace3)
FC = mpiifort
FC90 = mpiifort
# -module <path> specifies where to put .mod files
ifeq ($(SMP),openmp)
FCFLAGS += -qopenmp -qopt-report
endif
FCFLAGS += -module $(BUILDDIR)
FCFLAGS += -I $(BUILDDIR)
# PPFLAGS += -D TASKLOCAL_FILES
FCFLAGS += -g
LDFLAGS += -g -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
ifeq ($(TYPE),debug_light)
FCFLAGS += -O0 -g
else ifeq ($(TYPE),debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
else ifeq ($(TYPE),mtradii)
FCFLAGS += -ipo -O2 -no-prec-div -fp-model fast=2 -xhost
PPFLAGS += -D USE_MTRADII
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else ifeq ($(TYPE),debug_mtradii)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all
PPFLAGS += -D USE_MTRADII
else ifeq ($(TYPE),voronoi_mesh)
FCFLAGS += -ipo -O2 -no-prec-div -fp-model fast=2 -xMIC-AVX512
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH #-D CPP_OMP
else ifeq ($(TYPE),voronoi_mesh_debug)
FCFLAGS += -O0 -g -check bounds -traceback -debug all -check all -fpe1
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH #-D CPP_OMP
else ifeq ($(TYPE),voronoi_mesh_debug_light)
FCFLAGS += -O0 -g
PPFLAGS += -D NOLOGGING -D USE_OLD_MESH
else
FCFLAGS += -ipo -O2 -no-prec-div -fp-model fast=2 -xMIC-AVX512
PPFLAGS += -D NOLOGGING
endif
endif
# ========= HPC Cluster - RWTH Aachen ============
# MIGHT BE OUTDATED!!!
ifeq ($(PLATFORM),rwth)
FC = $(MPIF77) -warn
FC90 = $(MPIFC) -warn
# -module <path> specifies where to put .mod files
FCFLAGS += $(FLAGS_OPENMP) -module $(BUILDDIR)
FCFLAGS += -gen-interfaces -warn interfaces
FC90FLAGS +=
FCFLAGS += -I$(BUILDDIR)
PPFLAGS += -D TASKLOCAL_FILES
LDFLAGS += -O3 $(FLAGS_MATH_LINKER)
# -lpthread
endif
# ============================= JUQUEEN========================================
ifeq ($(PLATFORM),juqueen)
#ifeq ($(USETOOL),scalasca)
#FC = scalasca -instrument -user #end of line
#FC90 = scalasca -instrument -user #end of line
#TYPE = nodebug
#else
FC =
FC90 =
#endif
FC += mpixlf77_r
FC90 += mpixlf90_r
FCFLAGS = -qnosave -qdirective -qxlf2003=polymorphic -I$(PWD)
FCFLAGS += -qmoddir=$(BUILDDIR) -I$(BUILDDIR) -I/bgsys/local/fftw3/3.3.2/fftw_g/include/
PPFLAGS = -WF,-DUSE_VOROWEIGHTS -WF,-DCOMPUTE_tref_LOCALLY -WF,-DNOLOGGING
ifeq ($(SMP),openmp)
FCFLAGS += -qsmp=omp
PPFLAGS += -WF,-DCPP_hybrid
endif
#ESSL
#LDFLAGS = -L/bgsys/local/lib -L/bgsys/local/fftw3/3.3.2/fftw_g/lib/ -lesslbg -lfftw3
#ESSLSMP
LDFLAGS = -L/bgsys/local/lib -lesslsmpbg -L/opt/ibmcmp/xlsmp/3.1/bglib64 -lxlsmp -L/bgsys/local/fftw3/3.3.2/fftw_g/lib/ -lfftw3
ifeq ($(TYPE),debug)
FCFLAGS += -q64 -O0 -qstrict -g -qnosave -C -qinitauto=7FF7FFFF -WF,-DDEBUG1
else ifeq ($(TYPE),scorep)
FC = scorep mpixlf77_r
FC90 = scorep mpixlf90_r
FCFLAGS += -q64 -O3 -qstrict
else ifeq ($(TYPE),voronoi_mesh)
FCFLAGS += -q64 -O3 -qstrict
PPFLAGS += -WF,-DUSE_OLD_MESH
else
FCFLAGS += -q64 -O3 -qstrict
endif
#ifeq ($(USETOOL),scalasca)
#FCFLAGS += -g
#endif
endif
# ============================= JUQUEENgfort ========================================
ifeq ($(PLATFORM),JUQUEENgfort)
ifeq ($(USETOOL),scalasca)
FC = scalasca -instrument -user #end of line
FC90 = scalasca -instrument -user #end of line
TYPE = nodebug
else
FC =
FC90 =
endif
FC += mpigfortran
FC90 += mpigfortran
# FCFLAGS += -qsmp=omp -I/bgsys/local/fftw3/3.3.2/fftw_g/include/
FCFLAGS += -qsmp=omp:noauto -qnosave -qdirective -qxlf2003=polymorphic -I/bgsys/local/fftw3/3.3.2/fftw_g/include/
FCFLAGS += -qmoddir=$(BUILDDIR) -I$(BUILDDIR)
PPFLAGS += -WF,-DUSE_VOROWEIGHTS
# LDFLAGS += -L/opt/ibmmath/essl/5.1/lib64 -L/bgsys/local/fftw3/3.3.2/fftw_g/lib/ -lesslsmpbg -lfftw3
LDFLAGS += -L/opt/ibmmath/essl/5.1/lib64 -L/bgsys/local/fftw3/3.3.2/fftw_g/lib/ -lesslbg -lfftw3
endif
#==============================================================================
# Paths to look for files
DIRS = . DebugHelpers IterativeSolver XC madelung LDAU atomiccore xccouplings energy lattice \
parallel MixingNew datastructures shapefun IterativeSolverBCP debug_morgan
#also add BUILDDIR to VPATH to look if object files have changed
VPATH = $(DIRS) $(BUILDDIR)
SRCS = $(foreach DIR,$(DIRS),$(wildcard $(DIR)/*.f))
SRCS90 = $(foreach DIR,$(DIRS),$(wildcard $(DIR)/*.f90))
SRCSFPP = $(foreach DIR,$(DIRS),$(wildcard $(DIR)/*.F))
SRCS90FPP = $(foreach DIR,$(DIRS),$(wildcard $(DIR)/*.F90))
SRCS95TMPL = $(foreach DIR,$(DIRS),$(wildcard $(DIR)/*.F95))
# notdir extracts only filename
OBJS = $(notdir ${SRCS:.f=.o})
OBJS += $(notdir ${SRCS90:.f90=.o})
OBJS += $(notdir ${SRCSFPP:.F=.o})
OBJS += $(notdir ${SRCS90FPP:.F90=.o})
OBJS += $(notdir ${SRCS95TMPL:.F95=.o})
.PHONY: all
all: $(PROGRAM)
$(PROGRAM): $(OBJS)
$(FC90) $(FCFLAGS) -o $(PROGRAM) $(addprefix $(BUILDDIR)/,$(OBJS)) $(LDFLAGS)
%.o: %.f
$(FC) $(FCFLAGS) $(EXTRA_FLAGS) -c $< -o $(BUILDDIR)/$@
%.o: %.f90
$(FC90) $(FCFLAGS) $(EXTRA_FLAGS) $(FC90FLAGS) -c $< -o $(BUILDDIR)/$@
%.o: %.F
$(FC) $(FCFLAGS) $(EXTRA_FLAGS) $(PPFLAGS) $(PPFLAGS) -c $< -o $(BUILDDIR)/$@
%.o: %.F90
$(FC90) $(FCFLAGS) $(EXTRA_FLAGS) $(FC90FLAGS) $(PPFLAGS) -c $< -o $(BUILDDIR)/$@
### Fortran-templates:
%.o: %.F95
sed -e 's/_TYPE/D/' $< > $(BUILDDIR)/$*.F90
sed -e 's/_TYPE/C/' $< >> $(BUILDDIR)/$*.F90
sed -e 's/_TYPE/Z/' $< >> $(BUILDDIR)/$*.F90
sed -e 's/_TYPE/I/' $< >> $(BUILDDIR)/$*.F90
$(FC90) $(FCFLAGS) $(EXTRA_FLAGS) $(FC90FLAGS) $(PPFLAGS) -c $(BUILDDIR)/$*.F90 -o $(BUILDDIR)/$@
.PHONY: clean
clean:
rm -f $(BUILDDIR)/*.o
rm -f $(BUILDDIR)/*.mod
rm -f $(BUILDDIR)/*__genmod.f90
rm -f *.exe
.PHONY: test
test:
@echo $(OBJS)
@echo $(VPATH)
.PHONY: depend
depend:
$(SRCS90)
makedepend
#======================== Module dependencies ========================================
KKRnano.o: Logging_mod.o KKRzero_mod.o PotentialConverter_mod.o KKRnanoParallel_mod.o BasisAtom_mod.o AtomicCore_mod.o RadialMeshData_mod.o main2_aux_mod.o ScatteringCalculation_mod.o Main2Arrays_mod.o KKRnano_Comm_mod.o ProcessKKRresults_mod.o InputParams_mod.o EBalanceHandler_mod.o LDAUData_mod.o TimerMpi_mod.o EnergyMesh_mod.o DimParams_mod.o CalculationData_mod.o
TruncationZone_mod.o: Main2Arrays_mod.o
KKRmat_mod.o: ExchangeTable_mod.o two_sided_comm_mod.o arraytest2_mod.o Logging_mod.o TimerMpi_mod.o KKROperator_mod.o one_sided_comm_mod.o ClusterInfo_mod.o IterativeSolver_mod.o jij_calc_mod.o Truncation_mod.o SparseMatrixDescription_mod.o BCPOperator_mod.o SolverStats_mod.o InitialGuess_mod.o fillKKRMatrix_mod.o DirectSolver_mod.o
ProcessKKRresults_mod.o: arraytest2_mod.o KKRnanoParallel_mod.o AtomicForce_mod.o Logging_mod.o Lloyds_formula_mod.o wrappers_mod.o brydbm_new_com_mod.o Main2Arrays_mod.o ShapefunData_mod.o EnergyResults_mod.o LDAUData_mod.o ShapeGauntCoefficients_mod.o GauntCoefficients_mod.o CalculationData_mod.o muffin_tin_zero_mod.o RadialMeshData_mod.o MadelungPotential_mod.o broyden_kkr_mod.o EnergyMesh_mod.o BasisAtom_mod.o DensityResults_mod.o Lloyd0_new_mod.o KKRresults_mod.o InputParams_mod.o TimerMpi_mod.o DimParams_mod.o BroydenData_mod.o NearField_calc_mod.o debug_morgan_mod.o total_energy_mod.o
NearField_kkr_mod.o: Constants_mod.o
NearField_calc_mod.o: RadialMeshData_mod.o NearField_com_mod.o BasisAtom_mod.o CalculationData_mod.o
NearField_mod.o: Harmonics_mod.o MadelungCalculator_mod.o Constants_mod.o NearField_kkr_mod.o
KKRnano_Comm_mod.o: KKRnanoParallel_mod.o jij_calc_mod.o comm_patterns_mod.o Exceptions_mod.o
InputParams_mod.o: ConfigReader_mod.o
PolygonFaces_mod.o: Constants_mod.o
ShapeGeometryHelpers_mod.o: Exceptions_mod.o Constants_mod.o
ShapeStandardMesh_mod.o: Exceptions_mod.o Constants_mod.o
wrappers_mod.o: Warnings_mod.o ValenceDensity_mod.o SingleSite_mod.o BasisAtom_mod.o RadialMeshData_mod.o ShapefunData_mod.o EnergyMesh_mod.o LDAUData_mod.o ShapeGauntCoefficients_mod.o GauntCoefficients_mod.o NonCollinearMagnetism_mod.o ##AtomicCore_mod.o
BCPOperator_mod.o: ClusterInfo_mod.o Exceptions_mod.o
CalculationData_mod.o: Exceptions_mod.o ExchangeTable_mod.o KKRnanoParallel_mod.o JelliumPotentials_mod.o LatticeVectors_mod.o TruncationZone_mod.o Main2Arrays_mod.o EnergyResults_mod.o LDAUData_mod.o ShapeGauntCoefficients_mod.o GauntCoefficients_mod.o InitialGuess_mod.o MadelungCalculator_mod.o RadialMeshData_mod.o ConstructShapes_mod.o InterpolateBasisAtom_mod.o BasisAtom_mod.o ShapefunData_mod.o DensityResults_mod.o KKRresults_mod.o InputParams_mod.o RefCluster_mod.o DimParams_mod.o ClusterInfo_mod.o BroydenData_mod.o JijData_mod.o Truncation_mod.o ChebMeshData_mod.o NonCollinearMagnetismData_mod.o
NearField_com_mod.o: Logging_mod.o one_sided_comm_mod.o NearField_mod.o MadelungCalculator_mod.o NearField_kkr_mod.o
ShapeIntegrationHelpers_mod.o: Constants_mod.o
ConstructShapes_mod.o: RefCluster_mod.o ShapefunData_mod.o Voronoi_mod.o ShapeFunctions_mod.o LatticeVectors_mod.o
EnergyMesh_mod.o: EnergyMeshHelpers_mod.o
InterpolateBasisAtom_mod.o: RadialMeshData_mod.o BasisAtom_mod.o PotentialData_mod.o AtomicCoreData_mod.o
SingleSiteRef_mod.o: Harmonics_mod.o kkr_helpers_mod.o SingleSiteHelpers_mod.o Exceptions_mod.o
IterativeSolver_mod.o: tfQMR_mod.o SolverStats_mod.o TimerMpi_mod.o
kloopz1_mod.o: KKROperator_mod.o ClusterInfo_mod.o BCPOperator_mod.o KKRmat_mod.o jij_calc_mod.o IterativeSolver_mod.o InitialGuess_mod.o Constants_mod.o TimerMpi_mod.o
ShapeCriticalPoints_mod.o: Constants_mod.o ShapeGeometryHelpers_mod.o PolygonFaces_mod.o
MadelungPotential_mod.o: BasisAtom_mod.o MadelungCalculator_mod.o RadialMeshData_mod.o DensityResults_mod.o EnergyResults_mod.o CalculationData_mod.o
EBalanceHandler_mod.o: KKRnanoParallel_mod.o Exceptions_mod.o
ShapeIntegration_mod.o: ShapeIntegrationHelpers_mod.o Constants_mod.o PolygonFaces_mod.o
BasisAtom_mod.o: Exceptions_mod.o RadialMeshData_mod.o ShapefunData_mod.o PotentialData_mod.o AtomicCoreData_mod.o ChebMeshData_mod.o
tfQMR_mod.o: Logging_mod.o SolverStats_mod.o KKROperator_mod.o BCPOperator_mod.o TimerMpi_mod.o
KKRresults_mod.o: DimParams_mod.o
DimParams_mod.o: ConfigReader_mod.o Exceptions_mod.o
fillKKRMatrix_mod.o: SparseMatrixDescription_mod.o Exceptions_mod.o
Main2Arrays_mod.o: DimParams_mod.o
main2_aux_mod.o: TimerMpi_mod.o
jij_calc_mod.o: JijData_mod.o
broyden_kkr_mod.o: brydbm_new_com_mod.o broyden_second_mod.o BroydenData_mod.o CalculationData_mod.o
ShapeFunctions_mod.o: PolygonFaces_mod.o ShapeCriticalPoints_mod.o Constants_mod.o ShapeIntegration_mod.o ShapeStandardMesh_mod.o
ConfigReader_mod.o: ConfigReaderDictionary_mod.o
KKROperator_mod.o: Truncation_mod.o ClusterInfo_mod.o fillKKRMatrix_mod.o SparseMatrixDescription_mod.o bsrmm_mod.o
Lloyd0_new_mod.o: BasisAtom_mod.o RadialMeshData_mod.o ShapefunData_mod.o EnergyMesh_mod.o LDAUData_mod.o GauntCoefficients_mod.o ValenceDensity_mod.o
ClusterInfo_mod.o: Statistics_mod.o TruncationZone_mod.o RefCluster_mod.o two_sided_comm_mod.o ExchangeTable_mod.o
ScatteringCalculation_mod.o: KKRnanoParallel_mod.o Constants_mod.o SingleSiteRef_mod.o arraytest2_mod.o Logging_mod.o InputParams_mod.o TruncationZone_mod.o wrappers_mod.o Main2Arrays_mod.o KKRnano_Comm_mod.o jij_calc_mod.o BCPOperator_mod.o LDAUData_mod.o one_sided_comm_mod.o GauntCoefficients_mod.o InitialGuess_mod.o CalculationData_mod.o EBalanceHandler_mod.o EnergyMesh_mod.o KKROperator_mod.o BasisAtom_mod.o KKRresults_mod.o IterativeSolver_mod.o RefCluster_mod.o TimerMpi_mod.o DimParams_mod.o kloopz1_mod.o ClusterInfo_mod.o JijData_mod.o Truncation_mod.o two_sided_comm_mod.o ChebMeshData_mod.o NonCollinearMagnetism_mod.o
total_energy_mod.o: Quadrature_mod.o BasisAtom_mod.o RadialMeshData_mod.o ShapefunData_mod.o ShapeGauntCoefficients_mod.o
vxcgga.o: XCFunctionals_mod.o
KKRzero_mod.o: Exceptions_mod.o BrillouinZoneMesh_mod.o PositionReader_mod.o MadelungCalculator_mod.o Startb1_mod.o EnergyMesh_mod.o EnergyMeshHelpers_mod.o Lattice_mod.o BrillouinZone_mod.o ConfigReader_mod.o ConfigReaderDictionary_mod.o InputParams_mod.o Main2Arrays_mod.o DimParams_mod.o BasisAtom_mod.o ShapefunData_mod.o PotentialData_mod.o AtomicCoreData_mod.o RadialMeshData_mod.o ShapefunData_mod.o read_formatted_mod.o read_formatted_shapefun_mod.o ldauinfo_read.o ldaustart.o
SingleSite_mod.o: SingleSiteHelpers_mod.o
ldauphi.o: SingleSite_mod.o
SingleSiteHelpers_mod.o: Constants_mod.o
ValenceDensity_mod.o: Quadrature_mod.o SingleSite_mod.o SingleSiteHelpers_mod.o
Voronoi_mod.o: Exceptions_mod.o Sorting_mod.o
Exceptions_mod.o: Errors_mod.o Warnings_mod.o StringHelpers_mod.o
Errors_mod.o: Warnings_mod.o
ldauovrlp.o: Quadrature_mod.o
ldauinit.o: Quadrature_mod.o
ldauphi.o: Quadrature_mod.o
AtomicForce_mod.o: Quadrature_mod.o Constants_mod.o
mtzero_new.o: Quadrature_mod.o
epotinb_new.o: Quadrature_mod.o
vxclm.o: Quadrature_mod.o
rhototb_new.o: Quadrature_mod.o
vxcgga.o: Quadrature_mod.o
GauntCoefficients_mod.o: Harmonics_mod.o
ShapeGauntCoefficients_mod.o: Harmonics_mod.o
MadelungCalculator_mod.o: Harmonics_mod.o Lattice_mod.o Sorting_mod.o
sphere_gga.o: Harmonics_mod.o
sphere_nogga.o: Harmonics_mod.o
debug_morgan_mod.o: Harmonics_mod.o
BrillouinZone_mod.o: Symmetry_mod.o VectorMath_mod.o
Lattice_mod.o: VectorMath_mod.o Constants_mod.o
Symmetry_mod.o: VectorMath_mod.o Exceptions_mod.o
GaussWeights_mod.o: Exceptions_mod.o
EnergyMeshHelpers_mod.o: GaussWeights_mod.o Constants_mod.o
jij_calc_mod.o: Sorting_mod.o
PotentialConverter_mod.o: DimParams_mod.o BasisAtom_mod.o RadialMeshData_mod.o PotentialData_mod.o
Startb1_mod.o: RadialMeshData_mod.o BasisAtom_mod.o read_formatted_mod.o read_formatted_shapefun_mod.o InputParams_mod.o ChebMeshData_mod.o
RadialMeshData_mod.o: Exceptions_mod.o
read_formatted_mod.o: Exceptions_mod.o
BrillouinZone_mod.o: Exceptions_mod.o BrillouinZoneMesh_mod.o
KKRnanoParallel_mod.o: Exceptions_mod.o
MadelungCalculator_mod.o: Exceptions_mod.o
PositionReader_mod.o: Exceptions_mod.o
RefCluster_mod.o: Sorting_mod.o
LatticeVectors_mod.o: Sorting_mod.o
jij_calc_mod.o: Symmetry_mod.o
Harmonics_mod.o: Constants_mod.o
KKRmat_mod.o: Exceptions_mod.o InitialGuess_mod.o jij_calc_mod.o SolverStats_mod.o IterativeSolver_mod.o BCPOperator_mod.o KKROperator_mod.o TimerMpi_mod.o fillKKRMatrix_mod.o ClusterInfo_mod.o
BrillouinZoneMesh_mod.o: Exceptions_mod.o
AtomicCore_mod.o: Exceptions_mod.o Quadrature_mod.o Constants_mod.o
JelliumPotentials_mod.o: Exceptions_mod.o
DirectSolver_mod.o: Exceptions_mod.o KKROperator_mod.o fillKKRMatrix_mod.o
ExchangeTable_mod.o: ChunkIndex_mod.o
one_sided_comm_mod.o: ChunkIndex_mod.o
two_sided_comm_mod.o: ExchangeTable_mod.o
LocalAtomData_mod.o: Exceptions_mod.o RadialMeshData_mod.o ShapefunData_mod.o BasisAtom_mod.o LDAUData_mod.o JijData_mod.o RefCluster_mod.o MadelungCalculator_mod.o DensityResults_mod.o EnergyResults_mod.o KKRresults_mod.o
bsrmm_mod.o: CacheOverlap_mod.o
CacheOverlap_mod.o:
ChebMeshData_mod.o: InputParams_mod.o RadialMeshData_mod.o
Truncation_mod.o: Logging_mod.o Exceptions_mod.o TruncationZone_mod.o
NonCollinearMagnetism_mod.o: RadialMeshData_mod.o ChebMeshData_mod.o
NonCollinearMagnetismData_mod.o: Exceptions_mod.o
# DO NOT DELETE