diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..37c6555
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,19 @@
+__pycache__
+*.py[cod]
+*.so
+*.o
+*.mod
+*.bak
+*.target
+htmlcov
+package/
+src/msspec/results.txt
+*venv/
+**/*build*/
+**/*dist/
+**/*.egg-info/
+.ropeproject
+.project
+VERSION
+tests/private
+**/man/pages
diff --git a/New_libraries/Makefile b/New_libraries/Makefile
deleted file mode 100644
index 79a5250..0000000
--- a/New_libraries/Makefile
+++ /dev/null
@@ -1,243 +0,0 @@
-#
-# Makefile for the MsSpec-DFM epsilon.f90 program
-#
-# by S. Tricot and D. Sébilleau
-#
-# Last version: 21 Apr 2021
-#
-# Compiler
-#
-FC=gfortran
-#
-# Compile flags
-#
-#FFLAGS=
-FFLAGS=-g -fbounds-check -fbacktrace -ffpe-trap=zero,overflow,underflow,invalid,denormal
-#FFLAGS=-ffast-math -O3
-#
-# Link flags
-#
-LDFLAGS=
-LDLIBS=
-#
-# Executable name
-#
-EXE=eps
-#
-# Building directory
-#
-BUILDDIR:=build2
-
-.PHONY: clean
-
-cmn_DEPS:=DFM_library/ACCURACY_LIBRARY/accuracy.f90 \
- DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 \
- DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 \
- DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 \
- DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 \
- DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 \
- DFM_library/UTILITIES_LIBRARY/physical_constants.f90 \
- DFM_library/UTILITIES_LIBRARY/factorials.f90 \
- DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 \
- DFM_library/PRINT_LIBRARY/printfiles.f90 \
- DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 \
- DFM_library/DAMPING_LIBRARY/external_damping.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
-cmn_OBJS:=$(patsubst %.f90,%.o, $(cmn_DEPS))
-
-tool_SRCS:=$(cmn_DEPS) \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 \
- DFM_library/UTILITIES_LIBRARY/derivation.f90 \
- DFM_library/UTILITIES_LIBRARY/smoothing.f90 \
- DFM_library/UTILITIES_LIBRARY/interpolation.f90 \
- DFM_library/UTILITIES_LIBRARY/integration.f90 \
- DFM_library/UTILITIES_LIBRARY/integration4.f90 \
- DFM_library/UTILITIES_LIBRARY/transforms.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
-util_SRCS:=$(cmn_DEPS) \
- DFM_library/UTILITIES_LIBRARY/utilities_1.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 \
- DFM_library/UTILITIES_LIBRARY/find_zero.f90 \
- DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90
-prop_SRCS:=$(cmn_DEPS) \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 \
- DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 \
- DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
- DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 \
- DFM_library/ENERGIES_LIBRARY/delta_t.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 \
- DFM_library/SCREENING_LIBRARY/screening_vec1.f90 \
- DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 \
- DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 \
- DFM_library/UTILITIES_LIBRARY/utilities_3.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 \
- DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 \
- DFM_library/ENERGIES_LIBRARY/xc_energies.f90 \
- DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 \
- DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 \
- DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 \
- DFM_library/UTILITIES_LIBRARY/utilities_4.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
-#
-# Read input data file:
-#
-read_SRCS:=DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90
-read_OBJS:=$(patsubst %.f90,%.o, $(tool_SRCS) $(util_SRCS) $(prop_SRCS) $(read_SRCS))
-
-io_SRCS:=DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 \
- DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 \
- DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 \
- DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 \
- DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 \
- DFM_library/PRINT_LIBRARY/print_headers.f90 \
- DFM_library/PRINT_LIBRARY/print_calc_type.f90 \
- DFM_library/PRINT_LIBRARY/print_Fermi.f90 \
- DFM_library/PRINT_LIBRARY/print_plasmons.f90 \
- DFM_library/PRINT_LIBRARY/print_scale_param.f90 \
- DFM_library/PRINT_LIBRARY/print_material_lengths.f90 \
- DFM_library/PRINT_LIBRARY/print_thermal.f90 \
- DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 \
- DFM_library/PRINT_LIBRARY/print_energies.f90 \
- DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90
-io_OBJS:=$(patsubst %.f90,%.o, $(io_SRCS))
-
-calc_DEPS:=$(cmn_DEPS) \
- DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 \
- DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 \
- DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 \
- DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 \
- DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 \
- DFM_library/MOMENTS_LIBRARY/loss_moments.f90 \
- DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 \
- DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 \
- DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 \
- DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 \
- DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 \
- DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 \
- DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 \
- DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 \
- DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 \
- DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 \
- DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 \
- DFM_library/SCREENING_LIBRARY/screening_vec2.f90 \
- DFM_library/UTILITIES_LIBRARY/velocities.f90 \
- DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
- DFM_library/MOMENTS_LIBRARY/moments.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 \
- DFM_library/DAMPING_LIBRARY/packing_fraction.f90 \
- DFM_library/DAMPING_LIBRARY/classical_fluid.f90 \
- DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 \
- DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 \
- DFM_library/DAMPING_LIBRARY/scattering_length.f90 \
- DFM_library/DAMPING_LIBRARY/lifetime.f90 \
- DFM_library/DAMPING_LIBRARY/viscosity.f90 \
- DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 \
- DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 \
- DFM_library/DAMPING_LIBRARY/decay_rate.f90 \
- DFM_library/DAMPING_LIBRARY/calc_damping.f90 \
- DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 \
- DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 \
- DFM_library/PLASMON_LIBRARY/q_bounds.f90 \
- DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 \
- DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 \
- DFM_library/UTILITIES_LIBRARY/utilities_2.f90 \
- DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 \
- DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 \
- DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 \
- DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 \
- DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 \
- DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 \
- DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 \
- DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 \
- DFM_library/DAMPING_LIBRARY/decay_rate.f90 \
- DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 \
- DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 \
- DFM_library/DAMPING_LIBRARY/mean_free_path.f90 \
- DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 \
- DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 \
- DFM_library/PRINT_LIBRARY/print_asymptotic.f90 \
- DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 \
- DFM_library/MOMENTS_LIBRARY/moments_loss.f90 \
- DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
-#
-# Calculators:
-#
-calc_SRCS:=DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90
-#
-# Test_integrals:
-#
-calc_TEST:=DFM_library/TEST_LIBRARY/test_integrals_2.f90 \
- DFM_library/TEST_LIBRARY/test_integrals_3.f90 \
- DFM_library/TEST_LIBRARY/test_integrals_8.f90 \
- DFM_library/TEST_LIBRARY/test_int_Hubbard.f90
-#
-# Post-processing:
-#
-calc_POST:=DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 \
- DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 \
- DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90
-
-calc_OBJS:=$(patsubst %.f90,%.o, $(calc_DEPS) $(calc_SRCS) $(calc_TEST) $(calc_POST))
-
-
-
-SRCS:= $(patsubst %.o,%.f90,$(read_OBJS) $(io_OBJS) $(calc_OBJS))
-OBJS:= $(addprefix $(BUILDDIR)/,$(notdir $(read_OBJS) $(io_OBJS) $(calc_OBJS)))
-
-
-all: obj $(EXE)
-
-
-obj: src $(OBJS)
-
-
-$(EXE): $(OBJS) $(BUILDDIR)/epsilon.f90
- @echo "building main $@..."
- @$(FC) $(FFLAGS) $(LDFLAGS) $(LDLIBS) -J $(BUILDDIR) -o $@ $^
-
-
-%.o: %.f90
- @echo "Compiling $@..."
- @$(FC) $(FFLAGS) -J $(BUILDDIR) -I. -o $@ -c $^
-
-
-src: $(SRCS) epsilon.f90
- @echo "updating source tree..."
- @mkdir -p $(BUILDDIR)
- @rsync -av $^ $(BUILDDIR)
-
-
-clean:
- @echo "Cleaning..."
- @rm -rf $(BUILDDIR)
- @rm -rf $(EXE)
-
diff --git a/examples/example00.py b/examples/example00.py
new file mode 100644
index 0000000..e98360e
--- /dev/null
+++ b/examples/example00.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/msspec_dfm/version.py
+# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+
+
+# This example shows how to compute the plasmon dispersion for
+# different values of electron densities
+
+# Import section
+from matplotlib import pyplot as plt
+import numpy as np
+
+from msspec_dfm import compute
+
+
+# Electron densities (electrons/cm**3)
+densities = np.array([1e17, 1e18, 1e20, 1e23])
+# Bohr radius (cm)
+a0 = 0.529e-8
+# Temperature
+T = 300
+
+# Loop over density values
+for d in densities:
+ # The density is controlled by the 'RS' parameter, so
+ # compute the corresponding averaged radius (in Bohr units)
+ rs = ( (1/d) / ((4/3) * np.pi) ) ** (1/3) / a0
+ # Some output printing
+ stem = 'plas_disp'
+ print("Computing {} for RS={}".format(stem, rs))
+ # Here is the actual call to calculate
+ data = compute(N_Q=100, RS=rs, T=T)
+ # 'data' is a dict, each key is the name of an output file (without extansion).
+ # The value is the array of output values. The size of this array depends on
+ # the number of points chosen and on the kind of output file.
+
+ # Reading data
+ X, Y = data[stem].T
+ # Plotting
+ plt.plot(X, Y, label=r'density={:.2e} $e/cm^3$'.format(d))
+
+# Plot setup
+plt.xlabel(r'$q/k_F$')
+plt.ylabel(r'$E/E_F$')
+plt.title('Plasmon Energy [T = {:.1f}K]'.format(T))
+plt.grid(True)
+plt.legend()
+# Pops up the graph window
+plt.show()
+
+
+
+
+
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..2540d34
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,335 @@
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/Makefile
+# Last modified: Fri, 25 Feb 2022 17:27:18 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+#
+# Type 'make help' for some help
+#
+###############################################################################
+# OPTIONS #
+###############################################################################
+DEBUG = 0
+BUILDDIR = build
+SO = eps.so
+FC = gfortran
+PREFIX = $(HOME)/.local
+AUTHORS = Didier Sébilleau , \
+ Aditi Mandal , \
+ Sylvain Tricot
+
+################################################################################
+# /!\ DO NOT EDIT BELOW THAT LINE (unlesss you know what you're doing...) #
+# CORE CONFIGURATION #
+################################################################################
+SHELL = bash
+
+ifeq ($(DEBUG),0)
+ FFLAGS =
+else
+ FFLAGS = -g -fbounds-check -fbacktrace -ffpe-trap=zero,overflow,underflow,invalid,denormal
+endif
+
+# Make sure to use binaries of the of the virtualenv
+ifdef VIRTUAL_ENV
+ PYTHON = $(VIRTUAL_ENV)/bin/python
+ F2PY = $(VIRTUAL_ENV)/bin/f2py
+ PIP = $(VIRTUAL_ENV)/bin/pip
+else
+ PYTHON = $(shell which python)
+ F2PY = $(shell which f2py)
+ PIP = $(shell which pip)
+endif
+F2PYFLAGS = --f77exec=$(FC) --f90exec=$(FC)
+
+
+# Ensure FC exists
+ifeq (,$(shell which $(FC)))
+ $(error Missing $(FC) compiler)
+endif
+
+# Ensure python exists
+ifeq (,$(shell which $(PYTHON)))
+ $(error Missing Python executable)
+endif
+
+# Ensure pip is installed
+ifeq (,$(shell which $(PIP)))
+ $(error pip was not found)
+endif
+
+
+
+PYTHON_PKG_NAME = msspec_dfm
+VERSION = $(shell cd python && $(PYTHON) -c 'from $(PYTHON_PKG_NAME) import __version__; print(__version__)')
+SRCDIR = fortran/DFM_library
+PYPKG = python/$(PYTHON_PKG_NAME)
+
+
+# Source files
+MANPAGE := man/eps.1
+
+cmn_DEPS:=$(SRCDIR)/ACCURACY_LIBRARY/accuracy.f90 \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/input_values.f90 \
+ $(SRCDIR)/DIMENSIONS_LIBRARY/dimensions.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/simple_numbers.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/powers_of_ten.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/mathematical_constants.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/physical_constants.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/factorials.f90 \
+ $(SRCDIR)/ERROR_HANDLING_LIBRARY/error_caltech.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/printfiles.f90 \
+ $(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/external_damping.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
+
+tool_SRCS:=$(cmn_DEPS) \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/derivation.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/smoothing.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/interpolation.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/integration.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/integration4.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/transforms.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
+
+util_SRCS:=$(cmn_DEPS) \
+ $(SRCDIR)/UTILITIES_LIBRARY/utilities_1.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/find_zero.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/polynomial_equations.f90
+
+prop_SRCS:=$(cmn_DEPS) \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 \
+ $(SRCDIR)/PLASMON_LIBRARY/plasmon_ene.f90 \
+ $(SRCDIR)/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
+ $(SRCDIR)/ENERGIES_LIBRARY/correlation_energies.f90 \
+ $(SRCDIR)/ENERGIES_LIBRARY/delta_t.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 \
+ $(SRCDIR)/SCREENING_LIBRARY/screening_vec1.f90 \
+ $(SRCDIR)/CONFINEMENT_LIBRARY/confinement_ff.f90 \
+ $(SRCDIR)/CONFINEMENT_LIBRARY/coulomb.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/utilities_3.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 \
+ $(SRCDIR)/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 \
+ $(SRCDIR)/ENERGIES_LIBRARY/xc_energies.f90 \
+ $(SRCDIR)/ENERGIES_LIBRARY/exchange_energies.f90 \
+ $(SRCDIR)/ENERGIES_LIBRARY/kinetic_energies.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 \
+ $(SRCDIR)/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/utilities_4.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
+#
+# Read input data file:
+#
+read_SRCS:=$(tool_SRCS) $(util_SRCS) $(prop_SRCS) \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/read_data.f90
+
+io_SRCS:=$(SRCDIR)/INPUT_OUTPUT_LIBRARY/filenames.f90 \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/outfiles.f90 \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/change_filenames.f90 \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/store_coef.f90 \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/open_files.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_headers.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_calc_type.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_Fermi.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_plasmons.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_scale_param.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_material_lengths.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_thermal.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_thermodynamics.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_energies.f90 \
+ $(SRCDIR)/INPUT_OUTPUT_LIBRARY/close_files.f90
+
+calc_DEPS:=$(cmn_DEPS) \
+ $(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 \
+ $(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 \
+ $(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 \
+ $(SRCDIR)/CONFINEMENT_LIBRARY/confinement_wf.f90 \
+ $(SRCDIR)/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 \
+ $(SRCDIR)/MOMENTS_LIBRARY/loss_moments.f90 \
+ $(SRCDIR)/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 \
+ $(SRCDIR)/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 \
+ $(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 \
+ $(SRCDIR)/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 \
+ $(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 \
+ $(SRCDIR)/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 \
+ $(SRCDIR)/LOCAL_FIELD_LIBRARY/local_field_static.f90 \
+ $(SRCDIR)/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 \
+ $(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 \
+ $(SRCDIR)/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 \
+ $(SRCDIR)/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 \
+ $(SRCDIR)/SCREENING_LIBRARY/screening_vec2.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/velocities.f90 \
+ $(SRCDIR)/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 \
+ $(SRCDIR)/MOMENTS_LIBRARY/moments.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/packing_fraction.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/classical_fluid.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/diffusion_coefficient.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/electron_phonon_int.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/scattering_length.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/lifetime.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/viscosity.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/relaxation_time_static.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/utic_parameters.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/decay_rate.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/calc_damping.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/diffusion_coefficient_2.f90 \
+ $(SRCDIR)/PLASMON_LIBRARY/plasmon_dispersion.f90 \
+ $(SRCDIR)/PLASMON_LIBRARY/q_bounds.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/plasmon_damping.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 \
+ $(SRCDIR)/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 \
+ $(SRCDIR)/UTILITIES_LIBRARY/utilities_2.f90 \
+ $(SRCDIR)/LANDAU_PARAMETERS_LIBRARY/landau.f90 \
+ $(SRCDIR)/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 \
+ $(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 \
+ $(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 \
+ $(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 \
+ $(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 \
+ $(SRCDIR)/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 \
+ $(SRCDIR)/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/decay_rate.f90 \
+ $(SRCDIR)/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 \
+ $(SRCDIR)/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 \
+ $(SRCDIR)/DAMPING_LIBRARY/mean_free_path.f90 \
+ $(SRCDIR)/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 \
+ $(SRCDIR)/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 \
+ $(SRCDIR)/PRINT_LIBRARY/print_asymptotic.f90 \
+ $(SRCDIR)/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 \
+ $(SRCDIR)/MOMENTS_LIBRARY/moments_loss.f90 \
+ $(SRCDIR)/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
+#
+# Calculators:
+#
+calc_SRCS:=$(SRCDIR)/CALCULATORS_LIBRARY/calculators_1.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_2.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_3.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_5.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_7.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_8.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_9.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_1.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_2.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_3.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_5.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_7.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_8.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_9.f90
+#
+# Test_integrals:
+#
+calc_TEST:=$(SRCDIR)/TEST_LIBRARY/test_integrals_2.f90 \
+ $(SRCDIR)/TEST_LIBRARY/test_integrals_3.f90 \
+ $(SRCDIR)/TEST_LIBRARY/test_integrals_8.f90 \
+ $(SRCDIR)/TEST_LIBRARY/test_int_Hubbard.f90
+#
+# Post-processing:
+#
+calc_POST:=$(SRCDIR)/PLASMON_LIBRARY/plasmon_dispersion_2.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/calculators_p.f90 \
+ $(SRCDIR)/CALCULATORS_LIBRARY/call_calc_p.f90
+
+
+SRCS:=$(read_SRCS) $(io_SRCS) $(calc_DEPS) $(calc_SRCS) $(calc_TEST) $(calc_POST)
+OBJS:=$(addprefix $(BUILDDIR)/,$(patsubst %.f90,%.o,$(SRCS)))
+
+
+.PHONY: all obj so pypkg required_python_packages install uninstall man clean help
+
+
+all: required_python_packages so
+
+
+obj: $(OBJS)
+
+
+so: python/$(PYTHON_PKG_NAME)/$(SO)
+
+
+pypkg: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
+
+
+required_python_packages:
+ @$(PIP) install numpy matplotlib click-man
+
+
+python/VERSION:
+ @cat $(VERSION) > $@
+
+
+install: python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz
+ @echo "Installing $^"
+ @$(PIP) install $^
+
+
+python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/$(PYTHON_PKG_NAME)/$(SO)
+python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: man
+python/dist/$(PYTHON_PKG_NAME)-$(VERSION).tar.gz: python/MANIFEST.in python/setup.py python/pip.freeze $(shell find python/$(PYTHON_PKG_NAME) -name '*.py')
+ @cd python && $(PYTHON) setup.py sdist
+
+
+python/$(PYTHON_PKG_NAME)/$(SO): $(OBJS) $(SRCDIR)/../_dfm.f90
+ @echo "Building $@ shared object..."
+ @mkdir -p $(BUILDDIR)
+ @$(F2PY) $(F2PYFLAGS) -I$(BUILDDIR) -m $(BUILDDIR).$(basename $(@F)) -c $(filter-out $(lastword $^), $^) $(SRCDIR)/../_dfm.f90 && mv $(BUILDDIR)/*.so $@
+
+
+$(BUILDDIR)/%.o: %.f90
+ @echo "Compiling $@..."
+ @mkdir -p $(BUILDDIR)/$(dir $^)
+ @$(FC) $(FFLAGS) -J $(BUILDDIR) -I $(BUILDDIR) -fPIC -o $@ -c $<
+
+
+man: python/man/inputfile.spec
+ @cd python && $(PYTHON) setup.py --command-packages=click_man.commands man_pages --target ./man/pages
+ @cd python/man/pages && cat ../inputfile.spec >> *-generate.1
+ @cd python/man/pages && echo -e ".SH AUTHORS\n.PP\n$(AUTHORS)" | tee -a *.1 > /dev/null
+ @cd python/man/pages && gzip -f *.1
+
+
+uninstall:
+ @$(PIP) uninstall -y $(PYTHON_PKG_NAME)
+
+
+clean:
+ @rm -rf $(BUILDDIR)
+ @rm -f python/$(PYTHON_PKG_NAME)/*.so
+ @rm -rf python/dist
+ @rm -rf python/*.egg-info
+ @rm -f python/VERSION
+ @rm -rf python/man/pages
+
+
+help:
+ @echo "Type 'make' or 'make all' to build."
+ @echo "Type 'make install' to install the code."
diff --git a/New_libraries/DFM_library/ACCURACY_LIBRARY/accuracy.f90 b/src/fortran/DFM_library/ACCURACY_LIBRARY/accuracy.f90
similarity index 100%
rename from New_libraries/DFM_library/ACCURACY_LIBRARY/accuracy.f90
rename to src/fortran/DFM_library/ACCURACY_LIBRARY/accuracy.f90
diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90
similarity index 100%
rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90
rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/calc_asymptotic.f90
diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90
similarity index 100%
rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90
rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gamma_asymptotic.f90
diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90
similarity index 100%
rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90
rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/gr_asymptotic.f90
diff --git a/New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90 b/src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90
similarity index 100%
rename from New_libraries/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90
rename to src/fortran/DFM_library/ASYMPTOTIC_VALUES_LIBRARY/sq_asymptotic.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_1.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_2.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_3.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_4.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_5.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_6.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_7.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_8.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_9.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/calculators_p.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_1.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_2.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_3.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_4.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_5.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_6.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_7.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_8.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_9.f90
diff --git a/New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90 b/src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90
similarity index 100%
rename from New_libraries/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90
rename to src/fortran/DFM_library/CALCULATORS_LIBRARY/call_calc_p.f90
diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/Note.txt b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/Note.txt
similarity index 100%
rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/Note.txt
rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/Note.txt
diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90 b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90
similarity index 100%
rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90
rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_ff.f90
diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90 b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90
similarity index 100%
rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90
rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90
diff --git a/New_libraries/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90 b/src/fortran/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90
similarity index 100%
rename from New_libraries/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90
rename to src/fortran/DFM_library/CONFINEMENT_LIBRARY/coulomb.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/calc_damping.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/calc_damping.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/calc_damping.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/calc_damping.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/classical_fluid.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/classical_fluid.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/classical_fluid.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/classical_fluid.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/decay_rate.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/decay_rate.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/decay_rate.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/decay_rate.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/diffusion_coefficient_2.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/electron_phonon_int.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/external_damping.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/external_damping.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/external_damping.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/external_damping.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/lifetime.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/lifetime.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/lifetime.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/lifetime.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/mean_free_path.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/mean_free_path.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/mean_free_path.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/mean_free_path.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/packing_fraction.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/packing_fraction.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/packing_fraction.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/packing_fraction.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/plasmon_damping.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_dynamic.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/relaxation_time_static.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/scattering_length.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/scattering_length.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/scattering_length.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/scattering_length.f90
diff --git a/New_libraries/DFM_library/DAMPING_LIBRARY/viscosity.f90 b/src/fortran/DFM_library/DAMPING_LIBRARY/viscosity.f90
similarity index 100%
rename from New_libraries/DFM_library/DAMPING_LIBRARY/viscosity.f90
rename to src/fortran/DFM_library/DAMPING_LIBRARY/viscosity.f90
diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90
similarity index 100%
rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90
rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_magn_dynamic.f90
diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90
similarity index 100%
rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90
rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90
diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~ b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~
similarity index 100%
rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~
rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic.f90~
diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90
similarity index 100%
rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90
rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_stan_dynamic_2.f90
diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90
similarity index 100%
rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90
rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfuncl_static.f90
diff --git a/New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90 b/src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90
similarity index 100%
rename from New_libraries/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90
rename to src/fortran/DFM_library/DIELECTRIC_FUNCTIONS_LIBRARY/dfunct_dynamic.f90
diff --git a/New_libraries/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90 b/src/fortran/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90
similarity index 100%
rename from New_libraries/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90
rename to src/fortran/DFM_library/DIMENSIONS_LIBRARY/dimensions.f90
diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf b/src/fortran/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf
similarity index 100%
rename from New_libraries/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf
rename to src/fortran/DFM_library/ENERGIES_LIBRARY/PhysRevB.11.113.pdf
diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90
similarity index 100%
rename from New_libraries/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90
rename to src/fortran/DFM_library/ENERGIES_LIBRARY/correlation_energies.f90
diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/delta_t.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/delta_t.f90
similarity index 100%
rename from New_libraries/DFM_library/ENERGIES_LIBRARY/delta_t.f90
rename to src/fortran/DFM_library/ENERGIES_LIBRARY/delta_t.f90
diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90
similarity index 100%
rename from New_libraries/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90
rename to src/fortran/DFM_library/ENERGIES_LIBRARY/exchange_energies.f90
diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90
similarity index 100%
rename from New_libraries/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90
rename to src/fortran/DFM_library/ENERGIES_LIBRARY/kinetic_energies.f90
diff --git a/New_libraries/DFM_library/ENERGIES_LIBRARY/xc_energies.f90 b/src/fortran/DFM_library/ENERGIES_LIBRARY/xc_energies.f90
similarity index 100%
rename from New_libraries/DFM_library/ENERGIES_LIBRARY/xc_energies.f90
rename to src/fortran/DFM_library/ENERGIES_LIBRARY/xc_energies.f90
diff --git a/New_libraries/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90 b/src/fortran/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90
similarity index 100%
rename from New_libraries/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90
rename to src/fortran/DFM_library/ERROR_HANDLING_LIBRARY/error_caltech.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/change_filenames.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/close_files.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/diel_func.txt
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/filenames.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/input_values.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/missing.txt
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/nomenclature.txt
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/open_files.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90
similarity index 73%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90
index 063f149..78f340f 100644
--- a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90
+++ b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/outfiles.f90
@@ -6,6 +6,7 @@ MODULE OUTFILES
! This module contains functions/subroutines for working with
! the output files
!
+ CHARACTER (LEN = 80) :: OUTDIR
CONTAINS
!
!
@@ -59,104 +60,104 @@ CONTAINS
!
IMPLICIT NONE
!
- CHARACTER (LEN = 100) :: FLIST(NOFFN)
+ CHARACTER (LEN = 100) :: FLIST(NOFFN)
!
! Filenames:
!
- DFFILE='Results/diel_func.dat' ! dielectric function file
- PZFILE='Results/pola_func.dat' ! polarization function
- SUFILE='Results/susc_func.dat' ! susceptibility function
- CDFILE='Results/cond_func.dat' ! electrical conductivity
+ DFFILE=TRIM(OUTDIR)//'/diel_func.dat' ! dielectric function file
+ PZFILE=TRIM(OUTDIR)//'/pola_func.dat' ! polarization function
+ SUFILE=TRIM(OUTDIR)//'/susc_func.dat' ! susceptibility function
+ CDFILE=TRIM(OUTDIR)//'/cond_func.dat' ! electrical conductivity
!
- PDFILE='Results/plas_disp.dat' ! plasmon dispersion file
- EHFILE='Results/elec_hole.dat' ! electron-hole dispersion file
- E2FILE='Results/elec_hol2.dat' ! two electron-hole dispersion
- CKFILE='Results/int_pot_k.dat' ! interaction potential (k-space)
- CRFILE='Results/int_pot_r.dat' ! interaction potential (real space)
- PKFILE='Results/plas_kine.dat' ! plasmon kinetic energy file
+ PDFILE=TRIM(OUTDIR)//'/plas_disp.dat' ! plasmon dispersion file
+ EHFILE=TRIM(OUTDIR)//'/elec_hole.dat' ! electron-hole dispersion file
+ E2FILE=TRIM(OUTDIR)//'/elec_hol2.dat' ! two electron-hole dispersion
+ CKFILE=TRIM(OUTDIR)//'/int_pot_k.dat' ! interaction potential (k-space)
+ CRFILE=TRIM(OUTDIR)//'/int_pot_r.dat' ! interaction potential (real space)
+ PKFILE=TRIM(OUTDIR)//'/plas_kine.dat' ! plasmon kinetic energy file
!
- LFFILE='Results/loca_fiel.dat' ! local-field correction file G(q,om)
- IQFILE='Results/ginf_fiel.dat' ! G(q,inf) file
- SFFILE='Results/stru_fact.dat' ! structure factor file S(q,om)
- PCFILE='Results/pair_corr.dat' ! pair correlation function file
- P2FILE='Results/pair_dist.dat' ! pair distribution function file
- VXFILE='Results/vertex_fu.dat' ! vertex function Gamma(q,om)
- DCFILE='Results/plas_damp.dat' ! plasmon damping coefficient Im[eps]/q^2
- MDFILE='Results/mome_dist.dat' ! momentum distribution
- LDFILE='Results/landau_pa.dat' ! Landau parameters
- DPFILE='Results/damp_file.dat' ! damping file
- LTFILE='Results/life_time.dat' ! plasmon lifetime file
- BRFILE='Results/broadenin.dat' ! plasmon broadening
- PEFILE='Results/plas_ener.dat' ! plasmon energy
- QCFILE='Results/qc_bounds.dat' ! plasmon q-bounds
- RLFILE='Results/rela_time.dat' ! relaxation time
- KSFILE='Results/screen_wv.dat' ! screening wave vector
- OQFILE='Results/omega_qvf.dat' ! omega = q * v_F file
- MEFILE='Results/moments_e.dat' ! moments of epsilon
- MSFILE='Results/moments_s.dat' ! moments of S(q,omega)
- MLFILE='Results/moments_l.dat' ! moments of loss function
- MCFILE='Results/moments_c.dat' ! moments of conductivity
- DEFILE='Results/deri_epsi.dat' ! derivative of Re[ dielectric function ]
- ZEFILE='Results/ree0_file.dat' ! Re[ dielectric function ] = 0
- SRFILE='Results/sum_rules.dat' ! sum rules for epsilon
- CWFILE='Results/confin_wf.dat' ! confinement wave function
- CFFILE='Results/confin_pt.dat' ! confinement potential
- EMFILE='Results/effe_mass.dat' ! effective mass
- MFFILE='Results/mean_path.dat' ! mean free path
- SPFILE='Results/spec_func.dat' ! spectral function
- SEFILE='Results/self_ener.dat' ! self-energy
- SBFILE='Results/subb_ener.dat' ! subband energies
- ESFILE='Results/elia_func.dat' ! Eliashberg function
- GRFILE='Results/grune_par.dat' ! Grüneisen parameter
- FDFILE='Results/fermi_dir.dat' ! Fermi-Dirac distribution
- BEFILE='Results/bose_eins.dat' ! Bose-Einstein distribution
- MXFILE='Results/maxwell_d.dat' ! Maxwell distribution
- SCFILE='Results/scale_par.dat' ! scale parameters
- DSFILE='Results/dens_stat.dat' ! density of states
- NVFILE='Results/neva_four.dat' ! Nevanlinaa/memory function
- MTFILE='Results/memo_time.dat' ! time domain memory function
+ LFFILE=TRIM(OUTDIR)//'/loca_fiel.dat' ! local-field correction file G(q,om)
+ IQFILE=TRIM(OUTDIR)//'/ginf_fiel.dat' ! G(q,inf) file
+ SFFILE=TRIM(OUTDIR)//'/stru_fact.dat' ! structure factor file S(q,om)
+ PCFILE=TRIM(OUTDIR)//'/pair_corr.dat' ! pair correlation function file
+ P2FILE=TRIM(OUTDIR)//'/pair_dist.dat' ! pair distribution function file
+ VXFILE=TRIM(OUTDIR)//'/vertex_fu.dat' ! vertex function Gamma(q,om)
+ DCFILE=TRIM(OUTDIR)//'/plas_damp.dat' ! plasmon damping coefficient Im[eps]/q^2
+ MDFILE=TRIM(OUTDIR)//'/mome_dist.dat' ! momentum distribution
+ LDFILE=TRIM(OUTDIR)//'/landau_pa.dat' ! Landau parameters
+ DPFILE=TRIM(OUTDIR)//'/damp_file.dat' ! damping file
+ LTFILE=TRIM(OUTDIR)//'/life_time.dat' ! plasmon lifetime file
+ BRFILE=TRIM(OUTDIR)//'/broadenin.dat' ! plasmon broadening
+ PEFILE=TRIM(OUTDIR)//'/plas_ener.dat' ! plasmon energy
+ QCFILE=TRIM(OUTDIR)//'/qc_bounds.dat' ! plasmon q-bounds
+ RLFILE=TRIM(OUTDIR)//'/rela_time.dat' ! relaxation time
+ KSFILE=TRIM(OUTDIR)//'/screen_wv.dat' ! screening wave vector
+ OQFILE=TRIM(OUTDIR)//'/omega_qvf.dat' ! omega = q * v_F file
+ MEFILE=TRIM(OUTDIR)//'/moments_e.dat' ! moments of epsilon
+ MSFILE=TRIM(OUTDIR)//'/moments_s.dat' ! moments of S(q,omega)
+ MLFILE=TRIM(OUTDIR)//'/moments_l.dat' ! moments of loss function
+ MCFILE=TRIM(OUTDIR)//'/moments_c.dat' ! moments of conductivity
+ DEFILE=TRIM(OUTDIR)//'/deri_epsi.dat' ! derivative of Re[ dielectric function ]
+ ZEFILE=TRIM(OUTDIR)//'/ree0_file.dat' ! Re[ dielectric function ] = 0
+ SRFILE=TRIM(OUTDIR)//'/sum_rules.dat' ! sum rules for epsilon
+ CWFILE=TRIM(OUTDIR)//'/confin_wf.dat' ! confinement wave function
+ CFFILE=TRIM(OUTDIR)//'/confin_pt.dat' ! confinement potential
+ EMFILE=TRIM(OUTDIR)//'/effe_mass.dat' ! effective mass
+ MFFILE=TRIM(OUTDIR)//'/mean_path.dat' ! mean free path
+ SPFILE=TRIM(OUTDIR)//'/spec_func.dat' ! spectral function
+ SEFILE=TRIM(OUTDIR)//'/self_ener.dat' ! self-energy
+ SBFILE=TRIM(OUTDIR)//'/subb_ener.dat' ! subband energies
+ ESFILE=TRIM(OUTDIR)//'/elia_func.dat' ! Eliashberg function
+ GRFILE=TRIM(OUTDIR)//'/grune_par.dat' ! Grüneisen parameter
+ FDFILE=TRIM(OUTDIR)//'/fermi_dir.dat' ! Fermi-Dirac distribution
+ BEFILE=TRIM(OUTDIR)//'/bose_eins.dat' ! Bose-Einstein distribution
+ MXFILE=TRIM(OUTDIR)//'/maxwell_d.dat' ! Maxwell distribution
+ SCFILE=TRIM(OUTDIR)//'/scale_par.dat' ! scale parameters
+ DSFILE=TRIM(OUTDIR)//'/dens_stat.dat' ! density of states
+ NVFILE=TRIM(OUTDIR)//'/neva_four.dat' ! Nevanlinaa/memory function
+ MTFILE=TRIM(OUTDIR)//'/memo_time.dat' ! time domain memory function
!
- GPFILE='Results/gran_part.dat' ! grand partition function
- PRFILE='Results/epressure.dat' ! electronic pressure
- COFILE='Results/comp_file.dat' ! compressibility
- CPFILE='Results/chem_pote.dat' ! chemical potential
- BMFILE='Results/bulk_modu.dat' ! bulk modulus
- SHFILE='Results/shear_mod.dat' ! shear modulus
- S0FILE='Results/zero_soun.dat' ! zero sound velocity
- S1FILE='Results/firs_soun.dat' ! first sound velocity
- DTFILE='Results/Debye_tmp.dat' ! Debye temperature
- PSFILE='Results/para_susc.dat' ! Pauli paramagnetic susceptibility
- IEFILE='Results/inter_ene.dat' ! internal energy
- EIFILE='Results/exces_ene.dat' ! excess internal energy
- FHFILE='Results/helm_free.dat' ! Helmholtz free energy
- EYFILE='Results/entropy_f.dat' ! entropy
+ GPFILE=TRIM(OUTDIR)//'/gran_part.dat' ! grand partition function
+ PRFILE=TRIM(OUTDIR)//'/epressure.dat' ! electronic pressure
+ COFILE=TRIM(OUTDIR)//'/comp_file.dat' ! compressibility
+ CPFILE=TRIM(OUTDIR)//'/chem_pote.dat' ! chemical potential
+ BMFILE=TRIM(OUTDIR)//'/bulk_modu.dat' ! bulk modulus
+ SHFILE=TRIM(OUTDIR)//'/shear_mod.dat' ! shear modulus
+ S0FILE=TRIM(OUTDIR)//'/zero_soun.dat' ! zero sound velocity
+ S1FILE=TRIM(OUTDIR)//'/firs_soun.dat' ! first sound velocity
+ DTFILE=TRIM(OUTDIR)//'/Debye_tmp.dat' ! Debye temperature
+ PSFILE=TRIM(OUTDIR)//'/para_susc.dat' ! Pauli paramagnetic susceptibility
+ IEFILE=TRIM(OUTDIR)//'/inter_ene.dat' ! internal energy
+ EIFILE=TRIM(OUTDIR)//'/exces_ene.dat' ! excess internal energy
+ FHFILE=TRIM(OUTDIR)//'/helm_free.dat' ! Helmholtz free energy
+ EYFILE=TRIM(OUTDIR)//'/entropy_f.dat' ! entropy
!
- EFFILE='Results/fermi_ene.dat' ! Fermi energy
- KFFILE='Results/fermi_vec.dat' ! Fermi momentum
- VFFILE='Results/fermi_vel.dat' ! Fermi velocity
- TEFILE='Results/fermi_tmp.dat' ! Fermi temperature
- DLFILE='Results/fermi_dos.dat' ! Fermi density of states
+ EFFILE=TRIM(OUTDIR)//'/fermi_ene.dat' ! Fermi energy
+ KFFILE=TRIM(OUTDIR)//'/fermi_vec.dat' ! Fermi momentum
+ VFFILE=TRIM(OUTDIR)//'/fermi_vel.dat' ! Fermi velocity
+ TEFILE=TRIM(OUTDIR)//'/fermi_tmp.dat' ! Fermi temperature
+ DLFILE=TRIM(OUTDIR)//'/fermi_dos.dat' ! Fermi density of states
!
- TWFILE='Results/thermal_w.dat' ! thermal De Broglie wavelength
- VTFILE='Results/thermal_v.dat' ! thermal velocity
- TCFILE='Results/thermal_c.dat' ! thermal conductivity
+ TWFILE=TRIM(OUTDIR)//'/thermal_w.dat' ! thermal De Broglie wavelength
+ VTFILE=TRIM(OUTDIR)//'/thermal_v.dat' ! thermal velocity
+ TCFILE=TRIM(OUTDIR)//'/thermal_c.dat' ! thermal conductivity
!
- EGFILE='Results/ground_st.dat' ! ground state energy
- EXFILE='Results/ex_energy.dat' ! exchange energy
- XCFILE='Results/xc_energy.dat' ! exchange correlation energy
- ECFILE='Results/corr_ener.dat' ! correlation energy
- HFFILE='Results/hf_energy.dat' ! Hartree-Fock energy
- EKFILE='Results/kine_ener.dat' ! kinetic energy
- EPFILE='Results/pote_ener.dat' ! potential energy
+ EGFILE=TRIM(OUTDIR)//'/ground_st.dat' ! ground state energy
+ EXFILE=TRIM(OUTDIR)//'/ex_energy.dat' ! exchange energy
+ XCFILE=TRIM(OUTDIR)//'/xc_energy.dat' ! exchange correlation energy
+ ECFILE=TRIM(OUTDIR)//'/corr_ener.dat' ! correlation energy
+ HFFILE=TRIM(OUTDIR)//'/hf_energy.dat' ! Hartree-Fock energy
+ EKFILE=TRIM(OUTDIR)//'/kine_ener.dat' ! kinetic energy
+ EPFILE=TRIM(OUTDIR)//'/pote_ener.dat' ! potential energy
!
- VIFILE='Results/visc_coef.dat' ! shear viscosity
- DIFILE='Results/diff_coef.dat' ! diffusion coefficient
+ VIFILE=TRIM(OUTDIR)//'/visc_coef.dat' ! shear viscosity
+ DIFILE=TRIM(OUTDIR)//'/diff_coef.dat' ! diffusion coefficient
!
- FPFILE='Results/fluct_pot.dat' ! fluctuation potential file
- ELFILE='Results/ener_loss.dat' ! energy loss function
- POFILE='Results/stop_powe.dat' ! stopping power
- RFFILE='Results/refrac_in.dat' ! refractive index
- VCFILE='Results/dyna_coul.dat' ! dynamic screened Coulomb potential V(q,omega)
+ FPFILE=TRIM(OUTDIR)//'/fluct_pot.dat' ! fluctuation potential file
+ ELFILE=TRIM(OUTDIR)//'/ener_loss.dat' ! energy loss function
+ POFILE=TRIM(OUTDIR)//'/stop_powe.dat' ! stopping power
+ RFFILE=TRIM(OUTDIR)//'/refrac_in.dat' ! refractive index
+ VCFILE=TRIM(OUTDIR)//'/dyna_coul.dat' ! dynamic screened Coulomb potential V(q,omega)
!
! Corresponding fortran units
!
@@ -425,7 +426,7 @@ CONTAINS
! For instance, if we want to compute the correlation energy
! as a function of r_s, we will loop on the input data files
! with different r_s, but all results have to be written
-! into the same output file 'Results/corr_ener.dat'
+! into the same output file 'OUTDIR/corr_ener.dat'
!
!
! Author : D. Sébilleau
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/read_data.f90
diff --git a/New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 b/src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90
similarity index 100%
rename from New_libraries/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90
rename to src/fortran/DFM_library/INPUT_OUTPUT_LIBRARY/store_coef.f90
diff --git a/New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90 b/src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90
similarity index 100%
rename from New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90
rename to src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_k.f90
diff --git a/New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90 b/src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90
similarity index 100%
rename from New_libraries/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90
rename to src/fortran/DFM_library/INTERACTION_POTENTIALS_LIBRARY/interaction_potentials_r.f90
diff --git a/New_libraries/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90 b/src/fortran/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90
similarity index 100%
rename from New_libraries/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90
rename to src/fortran/DFM_library/LANDAU_PARAMETERS_LIBRARY/landau.f90
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/101.pdf
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/Multipair_excitations_and_sum_rules_in_i.pdf
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.10.3052.pdf
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/PhysRevB.17.4512.pdf
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_1.f90
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/iq_functions_2.f90
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_dynamic.f90
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static.f90
diff --git a/New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90 b/src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90
similarity index 100%
rename from New_libraries/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90
rename to src/fortran/DFM_library/LOCAL_FIELD_LIBRARY/local_field_static_2.f90
diff --git a/New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90 b/src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90
similarity index 100%
rename from New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90
rename to src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory2_functions.f90
diff --git a/New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90 b/src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90
similarity index 100%
rename from New_libraries/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90
rename to src/fortran/DFM_library/MEMORY_FUNCTIONS_LIBRARY/memory_functions.f90
diff --git a/New_libraries/DFM_library/MOMENTS_LIBRARY/loss_moments.f90 b/src/fortran/DFM_library/MOMENTS_LIBRARY/loss_moments.f90
similarity index 100%
rename from New_libraries/DFM_library/MOMENTS_LIBRARY/loss_moments.f90
rename to src/fortran/DFM_library/MOMENTS_LIBRARY/loss_moments.f90
diff --git a/New_libraries/DFM_library/MOMENTS_LIBRARY/moments.f90 b/src/fortran/DFM_library/MOMENTS_LIBRARY/moments.f90
similarity index 100%
rename from New_libraries/DFM_library/MOMENTS_LIBRARY/moments.f90
rename to src/fortran/DFM_library/MOMENTS_LIBRARY/moments.f90
diff --git a/New_libraries/DFM_library/MOMENTS_LIBRARY/moments_loss.f90 b/src/fortran/DFM_library/MOMENTS_LIBRARY/moments_loss.f90
similarity index 100%
rename from New_libraries/DFM_library/MOMENTS_LIBRARY/moments_loss.f90
rename to src/fortran/DFM_library/MOMENTS_LIBRARY/moments_loss.f90
diff --git a/New_libraries/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90 b/src/fortran/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90
similarity index 100%
rename from New_libraries/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90
rename to src/fortran/DFM_library/NEVANLINNA_FUNCTIONS_LIBRARY/Nevanlinna_functions.f90
diff --git a/New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf b/src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf
similarity index 100%
rename from New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf
rename to src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/PhysRevB.64.155102.pdf
diff --git a/New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90 b/src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90
similarity index 100%
rename from New_libraries/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90
rename to src/fortran/DFM_library/PAIR_CORRELATION_LIBRARY/pair_correlation.f90
diff --git a/New_libraries/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90 b/src/fortran/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90
similarity index 100%
rename from New_libraries/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90
rename to src/fortran/DFM_library/PAIR_DISTRIBUTION_FUNCTION/pair_distribution.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/Fermi_values.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_Fermi.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/calc_energies.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/grand_partition.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/material_properties.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_properties.f90
diff --git a/New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90 b/src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90
similarity index 100%
rename from New_libraries/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90
rename to src/fortran/DFM_library/PHYSICAL_PROPERTIES_LIBRARY/thermodynamic_quantities.f90
diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90
similarity index 100%
rename from New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90
rename to src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion.f90
diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90
similarity index 100%
rename from New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90
rename to src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_dispersion_2.f90
diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90
similarity index 100%
rename from New_libraries/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90
rename to src/fortran/DFM_library/PLASMON_LIBRARY/plasmon_ene.f90
diff --git a/New_libraries/DFM_library/PLASMON_LIBRARY/q_bounds.f90 b/src/fortran/DFM_library/PLASMON_LIBRARY/q_bounds.f90
similarity index 100%
rename from New_libraries/DFM_library/PLASMON_LIBRARY/q_bounds.f90
rename to src/fortran/DFM_library/PLASMON_LIBRARY/q_bounds.f90
diff --git a/New_libraries/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90 b/src/fortran/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90
similarity index 100%
rename from New_libraries/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90
rename to src/fortran/DFM_library/POST_PROCESSING_LIBRARY/re_eps_0_treatment.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_Fermi.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_Fermi.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_Fermi.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_Fermi.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_asymptotic.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_asymptotic.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_asymptotic.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_asymptotic.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_calc_type.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_calc_type.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_calc_type.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_calc_type.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_energies.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_energies.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_energies.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_energies.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_headers.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_headers.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_headers.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_headers.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_material.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_material.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_material.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_material.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_material_lengths.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_material_lengths.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_material_lengths.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_material_lengths.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_plasmons.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_plasmons.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_plasmons.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_plasmons.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_scale_param.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_scale_param.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_scale_param.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_scale_param.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_thermal.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_thermal.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_thermal.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_thermal.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/print_thermodynamics.f90
diff --git a/New_libraries/DFM_library/PRINT_LIBRARY/printfiles.f90 b/src/fortran/DFM_library/PRINT_LIBRARY/printfiles.f90
similarity index 100%
rename from New_libraries/DFM_library/PRINT_LIBRARY/printfiles.f90
rename to src/fortran/DFM_library/PRINT_LIBRARY/printfiles.f90
diff --git a/New_libraries/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90 b/src/fortran/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90
similarity index 100%
rename from New_libraries/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90
rename to src/fortran/DFM_library/SCALE_PARAMETERS_LIBRARY/scale_parameters.f90
diff --git a/New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec1.f90 b/src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec1.f90
similarity index 100%
rename from New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec1.f90
rename to src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec1.f90
diff --git a/New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec2.f90 b/src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec2.f90
similarity index 100%
rename from New_libraries/DFM_library/SCREENING_LIBRARY/screening_vec2.f90
rename to src/fortran/DFM_library/SCREENING_LIBRARY/screening_vec2.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_1.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_10.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_2.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_3.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_4.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_5.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_6.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_7.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_8.f90
diff --git a/New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90 b/src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90
rename to src/fortran/DFM_library/SPECIFIC_INTEGRALS_LIBRARY/specific_int_9.f90
diff --git a/New_libraries/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90 b/src/fortran/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90
similarity index 100%
rename from New_libraries/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90
rename to src/fortran/DFM_library/SPECTRAL_FUNCTION_LIBRARY/spectral_function.f90
diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf
similarity index 100%
rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf
rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/PhysRevA.8.990.pdf
diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90
similarity index 100%
rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90
rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic.f90
diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90
similarity index 100%
rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90
rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_dynamic_2.f90
diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90
similarity index 100%
rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90
rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static.f90
diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90
similarity index 100%
rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90
rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/structure_factor_static_2.f90
diff --git a/New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90 b/src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90
similarity index 100%
rename from New_libraries/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90
rename to src/fortran/DFM_library/STRUCTURE_FACTOR_LIBRARY/utic_values.f90
diff --git a/New_libraries/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90 b/src/fortran/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90
similarity index 100%
rename from New_libraries/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90
rename to src/fortran/DFM_library/SUM_RULES_LIBRARY/sum_rules.f90
diff --git a/New_libraries/DFM_library/TEST_LIBRARY/calculators_test.f90 b/src/fortran/DFM_library/TEST_LIBRARY/calculators_test.f90
similarity index 100%
rename from New_libraries/DFM_library/TEST_LIBRARY/calculators_test.f90
rename to src/fortran/DFM_library/TEST_LIBRARY/calculators_test.f90
diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90
similarity index 100%
rename from New_libraries/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90
rename to src/fortran/DFM_library/TEST_LIBRARY/test_int_Hubbard.f90
diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_integrals_2.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_integrals_2.f90
similarity index 100%
rename from New_libraries/DFM_library/TEST_LIBRARY/test_integrals_2.f90
rename to src/fortran/DFM_library/TEST_LIBRARY/test_integrals_2.f90
diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_integrals_3.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_integrals_3.f90
similarity index 100%
rename from New_libraries/DFM_library/TEST_LIBRARY/test_integrals_3.f90
rename to src/fortran/DFM_library/TEST_LIBRARY/test_integrals_3.f90
diff --git a/New_libraries/DFM_library/TEST_LIBRARY/test_integrals_8.f90 b/src/fortran/DFM_library/TEST_LIBRARY/test_integrals_8.f90
similarity index 100%
rename from New_libraries/DFM_library/TEST_LIBRARY/test_integrals_8.f90
rename to src/fortran/DFM_library/TEST_LIBRARY/test_integrals_8.f90
diff --git a/New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90 b/src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90
similarity index 100%
rename from New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90
rename to src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/chemical_potential.f90
diff --git a/New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90 b/src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90
similarity index 100%
rename from New_libraries/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90
rename to src/fortran/DFM_library/THERMAL_PROPERTIES_LIBRARY/thermal_properties.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/atomic_properties.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/derivation.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/derivation.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/derivation.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/derivation.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/factorials.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/factorials.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/factorials.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/factorials.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/find_zero.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/find_zero.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/find_zero.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/find_zero.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration2.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration2.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration2.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration2.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration3.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration3.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration3.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration3.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration4.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration4.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration4.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration4.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/integration5.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/integration5.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/integration5.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/integration5.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/interpolation.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/interpolation.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/interpolation.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/interpolation.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/mathematical_constants.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt b/src/fortran/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/oxides_properties.odt
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/physical_constants.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/physical_constants.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/physical_constants.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/physical_constants.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/polynomial_equations.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/powers_of_ten.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt b/src/fortran/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/semiconductors_properties.odt
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/simple_numbers.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/smoothing.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/smoothing.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/smoothing.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/smoothing.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/tools.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/tools.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/tools.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/tools.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/transforms.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/transforms.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/transforms.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/transforms.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utic_parameters.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_1.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_1.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_1.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_1.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_2.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_2.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_2.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_2.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_3.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_3.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_3.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_3.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_4.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_4.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/utilities_4.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/utilities_4.f90
diff --git a/New_libraries/DFM_library/UTILITIES_LIBRARY/velocities.f90 b/src/fortran/DFM_library/UTILITIES_LIBRARY/velocities.f90
similarity index 100%
rename from New_libraries/DFM_library/UTILITIES_LIBRARY/velocities.f90
rename to src/fortran/DFM_library/UTILITIES_LIBRARY/velocities.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/2F1_real.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/Lindhard_function.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/basic_functions.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/bessel.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/coulomb_log.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/digamma.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/external_functions.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/gamma.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/mod_mlf_garrappa.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/phi_function.f90
diff --git a/New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90 b/src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90
similarity index 100%
rename from New_libraries/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90
rename to src/fortran/DFM_library/VARIOUS_FUNCTIONS_LIBRARY/sph_bessel.f90
diff --git a/New_libraries/Data/epsilon.dat b/src/fortran/Data/epsilon.dat
similarity index 100%
rename from New_libraries/Data/epsilon.dat
rename to src/fortran/Data/epsilon.dat
diff --git a/New_libraries/Data/replace.sh b/src/fortran/Data/replace.sh
similarity index 100%
rename from New_libraries/Data/replace.sh
rename to src/fortran/Data/replace.sh
diff --git a/src/fortran/_dfm.f90 b/src/fortran/_dfm.f90
new file mode 100644
index 0000000..e71b065
--- /dev/null
+++ b/src/fortran/_dfm.f90
@@ -0,0 +1,345 @@
+!
+!=======================================================================
+!
+SUBROUTINE EPSILON(MYINFILE, MYOUTDIR)
+!
+! This program computes model dielectric functions for many type
+! of materials. These dielectric functions are essentially based
+! on the Fermi liquid theory.
+!
+! Several other physical quantities, based on the
+! dielectric function can also be computed, namely:
+!
+! * the loss function
+! * the EELS cross-section
+! * the plasmon fluctuation potential
+! * the stopping power
+! * the optical properties
+!
+!
+! Lead developer: Didier Sébilleau
+!
+! Co-developers : Aditi Mandal, Sylvain Tricot
+!
+!
+!
+! Main notations :
+!
+! * X : dimensionless factor --> X = q / (2 * k_F)
+!
+! * Y : dimensionless factor --> Y = q / k_F
+!
+! * Z : dimensionless factor --> Z = omega / omega_q = V / (4 * X * X)
+!
+! * U : dimensionless factor --> U = omega / (q * v_F) = X * Z = V / (4 * X)
+!
+! * V : dimensionless factor --> V = omega / omega_{k_F} = Z * Y^2 = 4 U * X
+!
+!
+!
+!
+! Last modified : 6 Aug 2021
+!
+!
+ USE ACCURACY_REAL
+ USE DIMENSION_CODE, ONLY : NSIZE
+!
+ USE SF_VALUES, ONLY : SQO_TYPE
+!
+ USE REAL_NUMBERS, ONLY : ZERO,ONE,HALF,SMALL
+ USE MATERIAL_PROP, ONLY : RS,DMN
+ USE EXT_FIELDS, ONLY : H
+!
+ USE Q_GRID
+!
+ USE FERMI_VALUES
+ USE FERMI_VALUES_M
+ USE PLASMON_ENE
+ USE PLASMA_SCALE
+ USE CALC_ASYMPT
+!
+ USE PRINT_CALC_TYPE
+ USE PRINT_HEADERS
+ USE PRINT_FERMI
+ USE PRINT_PLASMONS
+ USE PRINT_ASYMPTOTIC
+ USE PRINT_SCALE_PARAM
+ USE PRINT_MAT_LENGTHS
+ USE PRINT_THERMAL
+ USE PRINT_THERMODYNAMICS
+ USE PRINT_ENERGIES_EL
+!
+ USE DAMPING_COEF
+ USE PLASMON_DISPERSION
+!
+ USE CALL_CALC_1
+ USE CALL_CALC_2
+ USE CALL_CALC_3
+ USE CALL_CALC_5
+ USE CALL_CALC_7
+ USE CALL_CALC_9
+ USE CALL_CALC_P
+!
+ USE TEST_INTEGRALS_2
+ USE TEST_INTEGRALS_3
+ USE TEST_INTEGRALS_8
+ USE TEST_INT_HUBBARD
+!
+ USE RE_EPS_0_TREATMENT
+!
+ USE INPUT_DATA
+!
+ USE OUT_VALUES_10
+!
+ USE OUT_CALC
+!
+ USE CHANGE_FILENAMES
+!
+ USE OUTFILES
+ USE OPEN_OUTFILES
+ USE CLOSE_OUTFILES
+!
+ IMPLICIT NONE
+!
+ INTEGER :: N_IF,JF
+ INTEGER :: IQ,IE
+!
+ REAL (WP) :: Q,X
+ REAL (WP) :: EPSR(NSIZE),EPSI(NSIZE),EN(NSIZE)
+!
+ CHARACTER (LEN = 100) :: INPDATA(999)
+ CHARACTER (LEN = 100) :: LOGFILE(999)
+!
+ CHARACTER (LEN = 100) :: MYINFILE
+ CHARACTER (LEN = 80) :: MYOUTDIR
+!
+ OUTDIR = MYOUTDIR
+ CALL SYSTEM('mkdir -p '//TRIM(OUTDIR))
+!
+! Loop on the input data files
+!
+! N_IF = 11
+ N_IF = 1
+! READ(*,15) N_IF !
+! DO JF = 1,N_IF !
+! READ(*,25) INPDATA(JF) !
+! END DO !
+ INPDATA(1) = TRIM(MYINFILE)
+! INPDATA(1) = 'Data/epsilon.dat'
+! INPDATA(1) = 'Data/epsilon_00.dat'
+! INPDATA(2) = 'Data/epsilon_01.dat'
+! INPDATA(3) = 'Data/epsilon_02.dat'
+! INPDATA(4) = 'Data/epsilon_03.dat'
+! INPDATA(5) = 'Data/epsilon_04.dat'
+! INPDATA(6) = 'Data/epsilon_05.dat'
+! INPDATA(7) = 'Data/epsilon_06.dat'
+! INPDATA(8) = 'Data/epsilon_07.dat'
+! INPDATA(9) = 'Data/epsilon_08.dat'
+! INPDATA(10) = 'Data/epsilon_09.dat'
+! INPDATA(11) = 'Data/epsilon_10.dat'
+!
+!
+! Name of the corresponding log files
+!
+ CALL LOGFILE_NAMES(N_IF,LOGFILE) !
+!
+ DO JF = 1,N_IF ! start loop on files
+!
+! Initialization of the arrays
+!
+ DO IE=1,NSIZE !
+ EN(IE) = ZERO !
+ EPSR(IE) = ZERO !
+ EPSI(IE) = ZERO !
+ END DO !
+!
+! Opening input/log data files
+!
+ OPEN(UNIT=5,FILE=TRIM(INPDATA(JF)),STATUS='OLD') !
+! OPEN(UNIT=6,FILE=TRIM(LOGFILE(JF)),STATUS='UNKNOWN') !
+!
+! Printing the headers
+!
+ CALL PRINT_ASCII !
+!
+! Reading the input data file
+!
+ CALL READ_DATA !
+!
+ IF(SQO_TYPE == 'UTI') THEN !
+ OPEN(UNIT = 1, FILE = TRIM(OUTDIR)//'/utic_para.dat', & !
+ STATUS = 'unknown') !
+ END IF !
+!
+! Opening result files
+!
+ CALL OPEN_OUTPUT_FILES(N_IF,JF) !
+!
+! Post-processing:
+!
+ IF(PL_DISP == ' EXACT') THEN !
+ I_PP = I_FP + I_PD !
+ ELSE !
+ I_PP = I_FP !
+ END IF !
+!
+! Printing the information on the calculations to be performed
+!
+! CALL PRINT_CALC_INFO !
+!
+! Computation of the Fermi values and storage
+!
+ WRITE(6,10) !
+!
+ IF(H < SMALL) THEN !
+ CALL CALC_FERMI(DMN,RS) !
+ CALL PRINT_FERMI_SI !
+ ELSE !
+ CALL CALC_FERMI_M(DMN,RS) !
+ CALL PRINT_FERMI_SI_M !
+ END IF !
+!
+! Test of the integrals
+!
+ IF(I_TI /= 0) THEN !
+ IF(I_TI == 2) CALL CALC_TEST_INT_2 !
+ IF(I_TI == 3) CALL CALC_TEST_INT_3 !
+ IF(I_TI == 8) CALL CALC_TEST_INT_8 !
+ IF(I_TI == 10) CALL CALC_TEST_HUBBARD !
+ END IF !
+!
+! Computation of the plasmon properties and storage
+!
+ CALL CALC_PLASMON_ENE !
+ CALL CALC_PLASMA_SCALE !
+!
+! Computation of the asymptotic values and storage
+!
+! CALL CALC_ASYMPT_VALUES !
+!
+! Selective printing of physical properties (log file)
+!
+ IF(I_WR == 1) THEN !
+!
+! Printing the plasma properties
+!
+ WRITE(6,10) !
+ CALL PRINT_PLASMA !
+!
+! Printing the asymptotic values
+!
+ WRITE(6,10) !
+ CALL PRINT_ASYMPT_VALUES !
+!
+! Printing the scale parameters
+!
+ WRITE(6,10) !
+ CALL PRINT_SCALE_PARAMETERS !
+!
+! Printing the material's characteristic lengths
+!
+ WRITE(6,10) !
+ CALL PRINT_CHAR_LENGTHS !
+!
+! Printing the thermal properties
+!
+ WRITE(6,10) !
+ CALL PRINT_THERMAL_PROP !
+!
+! Printing the thermodynamics properties
+!
+ WRITE(6,10) !
+ CALL PRINT_THERMODYNAMICS_PROP !
+!
+! Printing the energies at q = 0
+!
+ WRITE(6,10) !
+ CALL PRINT_ENERGIES(ZERO,0,ZERO,ONE) !
+!
+ END IF !
+!
+! Calling calculator 5 (Fermi properties)
+!
+ IF(I_C5 > 0) CALL USE_CALC_5 !
+!
+! Starting the loop on q
+! (the loop on energy is inside the calculators)
+!
+!
+!.......... Loop on plasmon momentum Q ..........
+!
+ DO IQ = 1,N_Q !
+!
+ Q = Q_MIN + FLOAT(IQ - 1) * Q_STEP ! Q = q/k_F
+!
+ X = HALF * Q ! X = q/(2k_f)
+!
+! Computing and printing the damping (if any)
+!
+ CALL CALC_DAMPING(IQ,X)
+!
+! Calling calculator 1 (eps, pi, chi, sigma)
+!
+ IF(I_C1 > 0) CALL USE_CALC_1(X,EN,EPSR,EPSI) !
+!
+! Calling calculator 2
+!
+ IF(I_C2 > 0) CALL USE_CALC_2(IQ,X) !
+!
+! Calling calculator 3
+!
+ IF(I_C3 > 0) CALL USE_CALC_3(IQ,X) !
+!
+! Calling calculator 9
+!
+ IF(I_C9 > 0) CALL USE_CALC_9(X) !
+!
+! Calling test calculator
+!
+! CALL CALC_TEST(IQ,X)
+!
+!.......... End of loop on plasmon momentum Q ..........
+!
+ END DO !
+!
+! Calling calculator 7 (Energies)
+!
+ IF(I_C7 > 0) CALL USE_CALC_7 !
+!
+! Post-processing whenever requested
+!
+ IF(I_PP > 0) CALL USE_CALC_P !
+!
+ IF(I_ZE == 1) THEN !
+ CALL REORDER_EPS0_PRINT !
+ END IF !
+!
+! Closing input/log data files
+!
+ CLOSE(5) !
+! CLOSE(6) !
+!
+ IF(SQO_TYPE == 'UTI') THEN !
+ CLOSE(1) !
+ END IF !
+
+!
+! Closing the indexed result files
+!
+ CALL CLOSE_OUTPUT_FILES(0) !
+!
+! End of input data files loop
+!
+ END DO !
+!
+! Closing the other result files
+!
+ CALL CLOSE_OUTPUT_FILES(1) !
+!
+! Formats:
+!
+ 10 FORMAT(' ')
+! 15 FORMAT(I3)
+! 25 FORMAT(A50)
+!
+END SUBROUTINE
diff --git a/New_libraries/epsilon.f90 b/src/fortran/epsilon.f90
similarity index 100%
rename from New_libraries/epsilon.f90
rename to src/fortran/epsilon.f90
diff --git a/src/python/MANIFEST.in b/src/python/MANIFEST.in
new file mode 100644
index 0000000..0192b89
--- /dev/null
+++ b/src/python/MANIFEST.in
@@ -0,0 +1,2 @@
+recursive-include msspec_dfm *.so
+include pip.freeze
diff --git a/src/python/man/inputfile.spec b/src/python/man/inputfile.spec
new file mode 100644
index 0000000..8bd95c8
--- /dev/null
+++ b/src/python/man/inputfile.spec
@@ -0,0 +1,2590 @@
+.SH INPUT FILE FORMAT
+
+The input file is formatted as follows:
+
+ ******************************************************************************
+ * MsSpec DIELECTRIC FUNCTION MODULE *
+ ******************************************************************************
+ *=======+=========+=========+=========+=========+============================*
+ * GENERAL PARAMETERS : *
+ *=======+=========+=========+=========+=========+============================*
+ * (q,omega,r) : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0.010 4.000 1000 Q_MIN,Q_MAX,N_Q * in units of k_F
+ * 0.010 4.000 2000 E_MIN,E_MAX,N_E * in units of E_F
+ * 0.010 4.000 2000 R_MIN,R_MAX,N_R * in units of 1/k_F
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Material's properties : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 2.079 1.000 SCHRO 1.000 RS,MSOM,MAT_TYP,EPS_B *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * External fields : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 1.00 0.000 0.000 NO T,E,H,FLD *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * System's dimension : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 3D DIM *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Confinement : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0.000 0.000 0.00 NO-CONF R0,L,OM0,CONFIN *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Multilayer structure : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0.000 0.000 0.00 0.00 DL,D1,N_DEP,N_INV * --- EPS_1 ---
+ * NONE 12.000 12.000 H_TYPE,EPS_1,EPS_2 * EPS_2
+ *-------+---------+---------+---------+---------+----------------------------* --- EPS_1 ---
+ * Units : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * SIU SI UNIT,UNIK *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Screening : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * NO SC_TYPE *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Plasma type : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * OCP 1.000 0.000 PL_TYPE,ZION,ZION2 *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Calculation type : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * QUANTUM CAL_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * DIELECTRIC FUNCTION : *
+ *=======+=========+=========+=========+=========+============================*
+ * DYNAMIC LONG NEV3 0 ESTDY,EPS_T,D_FUNC,I_T *
+ * STA2 COCO 0.500 0.600 NEV_TYPE,MEM_TYPE,ALPHA,BETA *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Analytical plasmon dispersion : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * RP2_MOD PL_DISP *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Local-field corrections *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * STATIC ICUT IKP GSTDY,GQ_TYPE,IQ_TYPE *
+ * NONE NONE EC EC LANDAU,GQO_TYPE,G0_TYPE,GI_TYPE*
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Damping : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * RELA NONE EX1 DAMPING,LT_TYPE,RT_TYPE *
+ * NONE EXTE NONE DR_TYPE,DC_TYPE,VI_TYPE *
+ * NONE NONE NONE EE_TYPE,EP_TYPE,EI_TYPE *
+ * NONE NONE LORE 1.250 IP_TYPE,PD_TYPE,QD_TYPE,ZETA *
+ * 0.500 FEMTO 50.00 D_VALUE_1,POWER_1,EK *
+ * 5.000 FEMTO 0.80 D_VALUE_2,POWER_2,PCT *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Electron-electron interaction : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * COULO 2.590 470.000 1.500 INT_POT,S,EPS,DELTA *
+ * 1.500 5.000 7 28 RC,ALF,M,N *
+ * 1.000 1.000 1.000 1.000 A1,A2,A3,A4 *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Electron-phonon interaction : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 1500.000 1500.000 EP_C,DEBYE_T *
+ * 12.000 0.000 0.000 NA,MA,RA *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Electron-impurity interaction : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0.000 0.000 NI,EI_C *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * Classical fluid parameters : *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * SHS HSM HSP CF_TYPE,PF_TYPE,SL_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * STRUCTURE FACTOR : *
+ *=======+=========+=========+=========+=========+============================*
+ * DYNAMIC PKA EPS SSTDY,SQ_TYPE,SQO_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * PAIR CORRELATION FUNCTION : *
+ *=======+=========+=========+=========+=========+============================*
+ * SHA KIMB GR_TYPE,GR0_MODE *
+ *=======+=========+=========+=========+=========+============================*
+ * PAIR DISTRIBUTION FUNCTION : *
+ *=======+=========+=========+=========+=========+============================*
+ * CEG RH_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * SPECTRAL FUNCTION : *
+ *=======+=========+=========+=========+=========+============================*
+ * NAIC SPF_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * ENERGY CALCULATIONS : *
+ *=======+=========+=========+=========+=========+============================*
+ * GGSB_G NO NO EC_TYPE,FXC_TYPE,EXC_TYPE *
+ * HEG HEG EX_TYPE,EK_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * SPIN POLARIZATION : *
+ *=======+=========+=========+=========+=========+============================*
+ * 1 0.000 IMODE,XI *
+ *=======+=========+=========+=========+=========+============================*
+ * THERMODYNAMIC PROPERTIES : *
+ *=======+=========+=========+=========+=========+============================*
+ * QUAN IK0 TH_PROP,GP_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * ELECTRON MEAN FREE PATH : *
+ *=======+=========+=========+=========+=========+============================*
+ * 150.00 200.00 EK_INI,EK_FIN *
+ *=======+=========+=========+=========+=========+============================*
+ * CALCULATION OF MOMENTS : *
+ *=======+=========+=========+=========+=========+============================*
+ * 1 SQO N_M,M_TYPE *
+ *=======+=========+=========+=========+=========+============================*
+ * INCOMING ION BEAM : *
+ *=======+=========+=========+=========+=========+============================*
+ * 1.00 15000.00 Z_BEAM,EK_BEAM *
+ *=======+=========+=========+=========+=========+============================*
+ * OUTPUT CALCULATIONS/PRINTING : *
+ *=======+=========+=========+=========+=========+============================*
+ * 1 0 0 0 I_DF,I_PZ,I_SU,I_CD *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 1 1 0 0 I_PD,I_EH,I_E2,I_CK *
+ * 0 0 I_CR,I_PK *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 0 0 0 I_LF,I_IQ,I_SF,I_PC *
+ * 0 0 0 0 I_P2,I_VX,I_DC,I_MD *
+ * 0 0 0 0 I_LD,I_DP,I_LT,I_BR *
+ * 0 0 0 0 I_PE,I_QC,I_RL,I_KS *
+ * 0 0 0 0 I_OQ,I_ME,I_MS,I_ML *
+ * 0 0 0 0 I_MC,I_DE,I_ZE,I_SR *
+ * 0 0 0 0 I_CW,I_CF,I_EM,I_MF *
+ * 0 0 0 0 I_SP,I_SE,I_SB,I_ES *
+ * 0 0 0 0 I_GR,I_FD,I_BE,I_MX *
+ * 0 0 0 0 I_SC,I_DS,I_NV,I_MT *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 0 0 0 I_GP,I_PR,I_CO,I_CP *
+ * 0 0 0 0 I_BM,I_SH,I_S0,I_S1 *
+ * 0 0 0 0 I_DT,I_PS,I_IE,I_EI *
+ * 0 0 I_FH,I_EY *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 1 1 1 1 I_EF,I_KF,I_VF,I_TE *
+ * 1 I_DL *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 0 0 I_TW,I_VT,I_TC *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 0 0 0 I_EG,I_EX,I_XC,I_EC *
+ * 0 0 0 I_HF,I_EK,I_EP *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 0 I_VI,I_DI *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 0 0 0 I_FP,I_EL,I_PO,I_RF *
+ * 0 I_VC *
+ *-------+---------+---------+---------+---------+----------------------------*
+ * 0 2 0 I_FN,I_WR,I_TI *
+ *=======+=========+=========+=========+=========+============================*
+ * INPUT FILES : *
+ *----------------------------------------------------------------------------*
+ * NAME UNIT TYPE *
+ *=======+======================+======+=========+============================*
+ * epsilon.dat 5 INPUT DATA FILE *
+ *=======+======================+======+=========+============================*
+ * OUTPUT FILES : *
+ *----------------------------------------------------------------------------*
+ * NAME UNIT TYPE *
+ *=======+======================+======+=========+============================*
+ * epsilon.lis 6 CHECK FILE *
+ *=======+======================+======+=========+============================*
+ * END OF THE DATA FILE *
+ *============================================================================*
+ ******************************************************************************
+
+
+.SH DESCRIPTION OF THE CALCULATION PARAMETERS
+
+ *=======+=========+=========+=========+=========+===========================*
+ * GENERAL PARAMETERS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * Q_MIN : minimum value of q (in units of k_F)
+ * Q_MAX : maximum value of q (in units of k_F)
+ * N_Q : number of q-points
+
+ * E_MIN : minimum value of energy (in units of E_F)
+ * E_MAX : maximum value of energy (in units of E_F)
+ * N_E : number of E-points
+
+ * R_MIN : minimum value of distance r (in units of 1/k_F)
+ * R_MAX : maximum value of distance r (in units of 1/k_F))
+ * N_R : number of r-points
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * RS : average distance between 2 electrons (in units of a0)
+ ~
+ * MSOM : m*/m (for semiconductors)
+ ~
+ * MAT_TYP : type of material
+ MAT_TYPE = 'SCHRO' standard solid
+ MAT_TYPE = 'DIRAC' massless Fermions
+ MAT_TYPE = 'NEUTR' neutral classical liquid
+ MAT_TYPE = 'POLAR' polar classical liquid
+ ~
+ * EPS_B : material's dielectric constant
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * T : temperature (in SI)
+ ~
+ * E : external electric field (in SI)
+ ~
+ * H : external magnetic field (in SI)
+ ~
+ * FLD : strength of the magnetic field
+ FLD = 'NO' no field
+ FLD = 'WF' weak field
+ FLD = 'IF' intermediate field
+ FLD = 'LF' large field
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * DIM : dimension of the system
+ DIM = '3D'
+ DIM = '2D'
+ DIM = '1D'
+ DIM = 'Q0' quasi-0D
+ DIM = 'Q1' quasi-1D
+ DIM = 'Q2' quasi-2D
+ DIM = 'BL' bilayer
+ DIM = 'ML' multilayer
+ DIM = 'ML' multilayer
+
+ ~
+
+ * R0 : wire radius
+ ~
+ * L : length of quantum well
+ ~
+ * OM0 : frequency of the confinement potential (SI)
+ ~
+ * CONFIN : type of confinement
+ CONFIN = 'NO-CONF' no confinement
+ CONFIN = 'DSEPLAY' layer within a stacking of layers
+ CONFIN = 'CC-1111' cylindrical within subband 1
+ CONFIN = 'CC-1122' cylindrical between subbands 1 and 2
+ CONFIN = 'CC-1221' cylindrical between subbands 1 and 2
+ CONFIN = 'CC-2222' cylindrical within subband 2
+ CONFIN = 'HC-1111' harmonic within subband 1
+ CONFIN = 'HC-1122' harmonic between subbands 1 and 2
+ CONFIN = 'HC-1221' harmonic between subbands 1 and 2
+ CONFIN = 'HC-2222' harmonic within subband 2
+ CONFIN = 'INVLAYE' inversion layer in semiconductor
+ CONFIN = 'IQWE_LB' square well with an infinite barrier
+ CONFIN = 'PC1_QWI' parabolic
+ CONFIN = 'PC2_QWI' parabolic
+ CONFIN = 'SOFTCOR' soft-core potential
+ CONFIN = 'SWC_QWI' square well with an infinite barrier
+
+ ~
+
+ * DL : interlayer distance
+ ~
+ * D1 : distance between the two layers in the unit cell
+ ~
+ * N_DEP : electron concentration in depletion layer (SI)
+ ~
+ * N_INV : electron concentration in inversion layer (SI)
+
+ ~
+
+ * H_TYPE : heterostructure type
+ H_TYPE = 'SSL1' semiconductor superlattice of type I
+ H_TYPE = 'SSL2' semiconductor superlattice of type II
+ H_TYPE = 'BILA' bilayer
+ H_TYPE = 'MLA1' multilayer with with one layer / unit cell
+ H_TYPE = 'MLA2' multilayer with with two layers / unit cell
+ ~
+ * EPS_1 : background/layer dielectric constant
+ ~
+ * EPS_2 : interlayer dielectric constant
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * UNIT : system unit
+ UNIT = 'SIU' international system
+ UNIT = 'CGS' CGS system
+ UNIT = 'ATU' atomic units
+
+ * UNIK : K unit
+ UNIK = 'SI' international system
+ UNIK = 'AU' atomic units
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * SC_TYPE : type of screeening
+ SC_TYPE = 'NO' no screening
+ SC_TYPE = 'DH' Debye-Hückel
+ SC_TYPE = 'IS' Tago-Utsumi-Ichimaru
+ SC_TYPE = 'KL' Kleinman
+ SC_TYPE = 'OC' one-component plasma
+ SC_TYPE = 'RP' RPA
+ SC_TYPE = 'ST' Streitenberger
+ SC_TYPE = 'TF' Thomas-Fermi
+ SC_TYPE = 'UI' Utsumi-Ichimaru
+ SC_TYPE = 'YT' Yasuhara-Takada
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * PL_TYPE : type of plasma considered
+ PL_TYPE = 'OCP' --> one-component plasma (~ electron gas)
+ PL_TYPE = 'DCP' --> two-component plasma
+
+ * ZION : atomic number of (first) ion
+
+ * ZION2 : atomic number of second ion
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * CAL_TYPE : type of calculation
+ CAL_TYPE = 'QUANTUM' --> quantum fluid
+ CAL_TYPE = 'CLASSIC' --> classical fluid
+
+ *=======+=========+=========+=========+=========+===========================*
+ * DIELECTRIC FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+
+ * ESTDY : static vs dynamic dielectric function
+ STDY = ' STATIC'
+ STDY = 'DYNAMIC'
+
+ * EPS_T : type of dielcectric function
+ EPS_T = 'LONG' longitudinal --> D_FUNCL
+ EPS_T = 'TRAN' transverse --> D_FUNCT
+
+ * D_FUNC : model of dielectric function :
+
+ 1) Static:
+
+ ---> longitudinal:
+
+ D_FUNCL = 'LRPA' random phase approximation (3D,2D,1D)
+ D_FUNCL = 'THFE' Thomas-Fermi approximation (3D,2D,1D)
+
+ 2) Dynamic:
+
+ ---> transverse:
+
+ D_FUNCT = 'RPA1' random phase approximation (3D,2D)
+ D_FUNCT = 'RPA2' random phase approximation (3D)
+ D_FUNCT = 'LVLA' linearized Vlasov (3D)
+ D_FUNCT = 'MER1' Mermin (3D)
+ D_FUNCT = 'BLTZ' Boltzmann (3D)
+
+ ---> longitudinal:
+
+ D_FUNCL = 'ARBR' Arista-Brandt 1 <-- T-dependent
+ D_FUNCL = 'ATAS' Atwal-Ashcroft <-- T-dependent
+ D_FUNCL = 'BLZ1' Boltzmann
+ D_FUNCL = 'BLZ2' damped Boltzmann
+ D_FUNCL = 'DACA' Arista-Brandt 2 <-- T-dependent
+ D_FUNCL = 'GOTZ' Götze memory function
+ D_FUNCL = 'HEAP' Hertel-Appel
+ D_FUNCL = 'HAFO' Hartree-Fock
+ D_FUNCL = 'HUCO' Hu-O'Connell <-- damping (3D,2D,Q1)
+ D_FUNCL = 'HYDR' hydrodynamic <-- damping
+ D_FUNCL = 'KLEI' Kleinman <-- T-dependent
+ D_FUNCL = 'KLKD' Klimontovich-Kraeft <-- T-dependent
+ D_FUNCL = 'KLKN' Klimontovich-Kraeft <-- T-dependent
+ D_FUNCL = 'LAND' Landau parameters-based
+ D_FUNCL = 'LVL1' linearized Vlasov (weak coupling) <-- T-dependent
+ D_FUNCL = 'LVL2' linearized Vlasov (strong coupling) <-- T-dependent
+ D_FUNCL = 'MEM2' Two-moment memory function <-- T-dependent
+ D_FUNCL = 'MEM3' Three-moment memory function <-- T-dependent
+ D_FUNCL = 'MEM4' Four-moment memory function <-- T-dependent
+ D_FUNCL = 'MER1' Mermin 1 <-- damping (3D,2D)
+ D_FUNCL = 'MER2' Lindhard-Mermin <-- T-dependent
+ D_FUNCL = 'MER+' Mermin with Local Field Corrections <-- damping
+ D_FUNCL = 'MSAP' mean spherical approximation
+ D_FUNCL = 'NEV2' Two-moment Nevanlinna <-- T-dependent
+ D_FUNCL = 'NEV3' Three-moment Nevanlinna <-- T-dependent
+ D_FUNCL = 'NEV4' Four-moment Nevanlinna <-- T-dependent
+ D_FUNCL = 'PLPO' plasmon pole
+ D_FUNCL = 'RDF1' Altshuler et al <-- damping
+ D_FUNCL = 'RDF2' Altshuler et al <-- damping
+ D_FUNCL = 'RPA1' RPA
+ D_FUNCL = 'RPA2' RPA <-- T-dependent
+ D_FUNCL = 'RPA+' RPA + static local field corrections
+ D_FUNCL = 'RPA3' random phase approximation <-- magnetic field (2D)
+ D_FUNCL = 'SO2E' computed from S(q,omega)
+ D_FUNCL = 'UTIC' Utsumi-Ichimaru <-- T-dependent
+ D_FUNCL = 'VLFP' Vlasov-Fokker-Planck <-- damping
+
+ * I_T : way to incorporate temperature dependence
+ I_T = 0 --> no temperature (T = 0)
+ I_T = 1 --> analytical models used
+ I_T = 2 --> temperature convolution
+
+ ~
+
+ * NEV_TYPE : type of Nevalinna function used (only for D_FUNCL = 'NEVn')
+ NEV_TYPE = 'NONE' --> no function
+ NEV_TYPE = 'RELA' --> static value h(q) = i / tau
+ NEV_TYPE = 'STA1' --> static value h(q)
+ NEV_TYPE = 'STA2' --> static value h(q)
+ NEV_TYPE = 'STA3' --> static value h(q)
+ NEV_TYPE = 'STA4' --> static value h(q)
+ NEV_TYPE = 'PEEL' --> Perel'-Eliashberg function
+ NEV_TYPE = 'PE76' --> Perel'-Eliashberg by Arkhipov et al
+ NEV_TYPE = 'CCP1' -->
+ NEV_TYPE = 'CCP2' -->
+ NEV_TYPE = 'CCP3' -->
+ NEV_TYPE = 'CCP4' -->
+ NEV_TYPE = 'PST1' -->
+
+ * MEM_TYPE : type of memory function used (only for D_FUNCL = 'MEMn')
+ MEM_TYPE = 'NONE' --> no function
+ MEM_TYPE = 'DELT' --> delta function
+ MEM_TYPE = 'DGAU' --> double Gaussian functions
+ MEM_TYPE = 'EXPO' --> exponential function
+ MEM_TYPE = 'GAUS' --> Gaussian function
+ MEM_TYPE = 'LORE' --> Lorentzian function
+ MEM_TYPE = 'SINC' --> sinc function
+ MEM_TYPE = 'BES0' --> J_0(t) function
+ MEM_TYPE = 'BES1' --> J_1(t)/t function
+ MEM_TYPE = 'SEC2' --> sech^2(t) function
+ MEM_TYPE = 'COCO' --> Cole-Cole function
+ MEM_TYPE = 'CODA' --> Cole-Davidson function
+ MEM_TYPE = 'HANE' --> Habriliak-Negami function
+ MEM_TYPE = 'RAYI' --> Raganathan-Yip function
+ MEM_TYPE = 'LIHY' --> linearized hydrodynamic function
+
+ * ALPHA : value of the Habriliak-Negami first parameter (in ]0,1])
+
+ * BETA : value of the Habriliak-Negami second parameter (in ]0,1])
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * PL_DISP : method used to compute the plasmon dispersion (3D real case)
+ PL_DISP = 'HYDRODY' hydrodynamic model
+ PL_DISP = 'RP1_MOD' RPA model up to q^2
+ PL_DISP = 'RP2_MOD' RPA model up to q^4
+ PL_DISP = 'GOA_MOD' Gorobchenko model
+ PL_DISP = 'HER_APP' Hertel-Appel model <-- T-dependent
+ PL_DISP = 'HUBBARD' Hubbard model
+ PL_DISP = 'ELASTIC' elastic model
+ PL_DISP = ' EXACT' computed from the dielectric function
+ PL_DISP = 'SGBBN_M' SGBBN model
+ PL_DISP = 'AL0_MOD' gamma_0 limit
+ PL_DISP = 'ALI_MOD' gamma_inf limit
+ PL_DISP = 'NOP_MOD' Nozières-Pines model
+ PL_DISP = 'UTI_MOD' Utsumi-Ichimaru model
+ PL_DISP = 'TWA_MOD' Toigo-Woodruff model
+ PL_DISP = 'SUM_RU2' f-sum_rule
+ PL_DISP = 'SUM_RU3' 3rd-frequency sum_rule
+ * PL_DISP : method used to compute the plasmon dispersion (2D real case)
+ PL_DISP = 'HYDRODY' hydrodynamic model
+ PL_DISP = 'RPA_MOD' RPA model
+ PL_DISP = 'RAJAGOP' Rajagopal formula
+ * PL_DISP : method used to compute the plasmon dispersion (1D real case)
+ PL_DISP = 'HYDRODY' hydrodynamic model
+ PL_DISP = 'RPA_MOD' RPA model
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * GSTDY : static vs dynamic local-field corrections
+ GSTDY = ' STATIC' --> GQ_TYPE
+ GSTDY = 'DYNAMIC' --> GQO_TYPE
+
+ * GQ_TYPE : local-field correction type (3D) static
+ GQ_TYPE = 'NONE' no local field correction
+ GQ_TYPE = 'ALDA' adiabatic local density
+ GQ_TYPE = 'ALFL' Alvarellos-Flores
+ GQ_TYPE = 'BEBR' Bedell-Brown
+ GQ_TYPE = 'CDOP' TDDFT Corradini et al correction
+ GQ_TYPE = 'GEV2' Geldart-Vosko 2
+ GQ_TYPE = 'GEVO' Geldart-Vosko correction
+ GQ_TYPE = 'GOCA' Gold-Calmels
+ temperature-dep. --> GQ_TYPE = 'HNCA' hypernetted chain
+ GQ_TYPE = 'HORA' Holas-Rahman
+ GQ_TYPE = 'HUBB' Hubbard correction (only exchange)
+ GQ_TYPE = 'ICUT' Ichimaru-Utsumi correction
+ GQ_TYPE = 'IKPA' Iwamoto-Krotscheck-Pines
+ GQ_TYPE = 'IWA1' Iwamoto G_{-1}
+ GQ_TYPE = 'IWA2' Iwamoto G_{3} approx.
+ temperature-dep. --> GQ_TYPE = 'IWA3' Iwamoto G_{-1}
+ GQ_TYPE = 'IWA4' Iwamoto G_{3} exact
+ GQ_TYPE = 'JGDG' Jung-Garcia-Gonzalez-Dobson-Godby
+ GQ_TYPE = 'KLLA' Kleinman-Langreth correction
+ GQ_TYPE = 'LDAC' LDA correction
+ GQ_TYPE = 'MCSC' Moroni-Ceperley-Senatore correction
+ GQ_TYPE = 'NAGY' Nagy correction
+ GQ_TYPE = 'NEV1' Nevalinna two-moment approximation
+ GQ_TYPE = 'PGGA' Petersilka-Gossmann-Gross
+ GQ_TYPE = 'PVHF' Pavas-Vashishta Hartree-Fock correction
+ GQ_TYPE = 'RICE' Rice correction
+ GQ_TYPE = 'SHAW' Shaw correction
+ GQ_TYPE = 'SLAT' Slater correction
+ GQ_TYPE = 'STLS' Singwi et al correction
+ temperature-dep. --> GQ_TYPE = 'TKAC' Tkachenko correction
+ GQ_TYPE = 'TOUL' Toulouse parametrization of CDOP
+ GQ_TYPE = 'TRMA' Tripathy-Mandal
+ GQ_TYPE = 'VASI' Vashishta-Singwi correction
+ GQ_TYPE = 'UTI1' Utsumi-Ichimaru correction (only exchange)
+
+ * GQ_TYPE : local-field correction type (2D) static
+ GQ_TYPE = 'NONE' no local field correction
+ GQ_TYPE = 'BUTO' Bulutay-Tomak
+ GQ_TYPE = 'DPGT' Davoudi-Giuliani-Giuliani-Tosi
+ GQ_TYPE = 'GOCA' Gold-Calmels
+ GQ_TYPE = 'HUBB' Hubbard correction (only exchange)
+ GQ_TYPE = 'IWA1' Iwamoto G_{-1}
+ GQ_TYPE = 'IWA2' Iwamoto G_{3}
+ GQ_TYPE = 'SAIC' Sato-Ichimaru correction
+
+ * GQ_TYPE : local-field correction type (1D) static
+ GQ_TYPE = 'NONE' no local field correction
+ GQ_TYPE = 'GOCA' Gold-Calmels
+ GQ_TYPE = 'HUBB' Hubbard correction (only exchange)
+
+ * IQ_TYPE : type of approximation for I(q)
+ IQ_TYPE = 'NON' I(q) = 0
+ IQ_TYPE = 'GKM' Gorobchenko-Kohn-Maksimov
+ IQ_TYPE = 'HKA' Hong-Kim
+ IQ_TYPE = 'IKP' Iwamoto-Krotscheck-Pines parametrization
+ IQ_TYPE = 'KU1' Kugler 1
+ IQ_TYPE = 'KU2' Kugler 1
+
+ ~
+
+ * LANDAU : model chosen for the calculation of the Landau parameters (3D)
+ LANDAU = 'NONE' Landau's theory not used
+ LANDAU = 'CHEN' Chen's approach
+ LANDAU = 'RASC' Rayleigh-Schrödinger expansion
+ LANDAU = 'ANBR' Anderson-Brinkman model
+ LANDAU = 'GUTZ' Gutzwiller model
+ LANDAU = 'IWPI' Iwamoto-Pines model (hard-sphere)
+ LANDAU = 'GCYO' Giuliani-Vignale parametrization of
+ Yasuhara-Ousaka approach
+ LANDAU = 'SBOH' slave-boson one-band Hubbard model
+
+ * LANDAU : model chosen for the calculation of the Landau parameters (2D)
+ LANDAU = 'NONE' Landau's theory not used
+ LANDAU = 'ERZA' Engelbrecht-Randeria-Zhang approach
+ LANDAU = 'GVYO' Giuliani-Vignale parametrization of
+ Yasuhara-Ousaka approach
+ LANDAU = 'KCMP' Kwoon-Ceperley-Martin parametrization
+ * GQO_TYPE : local-field correction type (3D)
+ GQO_TYPE = 'NONE' no local field correction
+ GQO_TYPE = 'ALFL' Alvarellos-Flores correction
+ GQO_TYPE = 'BACA' Barriga-Carrasco correction
+ GQO_TYPE = 'BBSA' Bachlechner-Böhm-Schinner
+ GQO_TYPE = 'COPI' Constantin-Pitarke
+ GQO_TYPE = 'DABR' Dabrowski
+ GQO_TYPE = 'FWRA' Forstmann-Wierling-Röpke
+ GQO_TYPE = 'HOK1' Hong-Kim correction
+ GQO_TYPE = 'HOK2' Hong-Kim correction
+ GQO_TYPE = 'JEWS' Jewsbury approximation
+ GQO_TYPE = 'KUG1' Kugler q --> 0 approximation
+ GQO_TYPE = 'KUG2' Kugler approximation
+ GQO_TYPE = 'MDGA' Mithen-Daligault-Gregori
+ GQO_TYPE = 'NEV2' Nevalinna three-moment approximation
+ GQO_TYPE = 'NLGA' Nagy-Laszlo-Giber approximation
+ GQO_TYPE = 'RIA1' Richardson-Ashcroft G_s
+ GQO_TYPE = 'RIA2' Richardson-Ashcroft G_n
+ GQO_TYPE = 'RIA3' Richardson-Ashcroft G_a
+ GQO_TYPE = 'SHMU' Shah-Mukhopadhyay
+ GQO_TYPE = 'STGU' Sturm-Gusarov
+ GQO_TYPE = 'TOWO' Toigo-Woodruff
+ GQO_TYPE = 'UTI2' Utsumi-Ichimaru approximation
+ GQO_TYPE = 'VISC' viscosity approximation
+
+ * G0_TYPE : type of calculation of gamma_0
+ G0_TYPE = 'SQ' from the static structure factor S(q)
+ G0_TYPE = 'EC' from the correlation energy E_c
+
+ * GI_TYPE : type of calculation of gamma_inf
+ GI_TYPE = 'SQ' from the static strcuture factor S(q)
+ GI_TYPE = 'EC' from the correlation energy E_c
+
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * DAMPING : type of damping used
+ DAMPING = 'NONE' no damping
+ DAMPING = 'LFTM' lifetime
+ DAMPING = 'RELA' relaxation time
+ DAMPING = 'DECA' decay rate
+ DAMPING = 'DIFF' diffusion coefficient
+ DAMPING = 'VISC' viscosity
+
+ * LT_TYPE : approximation used for lifetime (3D)
+ LT_TYPE = 'EXTE' given externally (D_VALUE,POWER)
+ LT_TYPE = 'DAVI' Davies formula
+ LT_TYPE = 'GALI' Galitskii formula
+ LT_TYPE = 'GIQU' Giuliani-Quinn formula
+ LT_TYPE = 'GIVI' Giuliani-Vignale formula
+ LT_TYPE = 'INPE' Inogamov-Petrov formula
+ LT_TYPE = 'LUBR' Lugovskoy-Bray formula
+ LT_TYPE = 'NAEC' Nagy-Echenique formula
+ LT_TYPE = 'QIVI' Qian-Vignale formula
+ LT_TYPE = 'EXTE' given externally (D_VALUE,POWER)
+ LT_TYPE = 'QUFE' Quinn-Ferrell formula
+
+ * LT_TYPE : approximation used for lifetime (2D)
+ LT_TYPE = 'GIQ1' Giuliani-Quinn formula for e-h loss
+ LT_TYPE = 'GIQ2' Giuliani-Quinn formula for plasmon loss
+ LT_TYPE = 'GIVI' Giuliani-Vignale formula
+ LT_TYPE = 'HAWR' Hawrylak formula
+ LT_TYPE = 'MELA' Menashe-Laikhtman formula
+ LT_TYPE = 'QIVI' Qian-Vignale formula
+
+ * RT_TYPE : relaxation time
+ RT_TYPE = ' NO' --> no relaxation time
+ RT_TYPE = 'EX1' --> given externally (D_VALUE_1,POWER_1)
+ RT_TYPE = 'EX2' --> given externally (D_VALUE_1,POWER_1,D_VALUE_2,POWER_2)
+ RT_TYPE = 'E-E' --> electron-electron interaction
+ RT_TYPE = 'E-P' --> electron-phonon interaction
+ RT_TYPE = 'E-I' --> electron-phonon impurity
+ RT_TYPE = 'ALL' --> all three taken into account
+
+ ~
+
+ * DR_TYPE : decay rate in 3D
+ DR_TYPE = 'EXTE' given externally (D_VALUE,POWER)
+ DR_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation
+ DR_TYPE = 'VLAS' --> Vlasov approximation
+
+ * DC_TYPE : diffusion coefficient in 3D
+ DC_TYPE = 'EXTE' given externally (D_VALUE,POWER)
+ DC_TYPE = 'ASHO' --> Ashurst-Hoover
+
+ * VI_TYPE : viscosity in 3D
+ VI_TYPE = 'EXTE' given externally (D_VALUE,POWER)
+ VI_TYPE = 'AMPP' Angilella et al hard-sphere fluid --> T-dependent
+ VI_TYPE = 'DRBA' Daligault-Rasmussen-Baalrud (plasmas) --> T-dependent
+ VI_TYPE = 'KHRA' Khrapak for Yukawa fluid --> T-dependent
+ VI_TYPE = 'LHPO' Longuet-Higgins-Pope --> T-dependent
+ VI_TYPE = 'LLPA' Landau-Lifshitz-Pitaevskii--> T-dependent
+ VI_TYPE = 'SCHA' Schäfer --> T-dependent
+ VI_TYPE = 'SCHD' Schäfer (dynamic) --> T-dependent
+ VI_TYPE = 'SHTE' Shternin --> T-dependent
+ VI_TYPE = 'STEI' Steinberg low-temperature --> T-dependent
+
+ * VI_TYPE : viscosity in 2D
+ VI_TYPE = 'EXTE' given externally (D_VALUE,POWER)
+ VI_TYPE = 'SCHA' Schäfer --> T-dependent
+ graphene <-- VI_TYPE = 'KISC' Kiselev-Schmalian (dynamic) --> T-dependent
+ graphene <-- VI_TYPE = 'MSFA' Müller-Schmalian-Fritz --> T-dependent
+
+ ~
+
+ * EE_TYPE : e-e relaxation time in 3D
+ EE_TYPE = 'ALAR' --> Al'tshuler-Aronov (e-e + impurities)
+ EE_TYPE = 'ALA2' --> Al'tshuler-Aronov (e-e + impurities)
+ EE_TYPE = 'BACA' --> Barriga-Carrasco approximation (e-e)
+ EE_TYPE = 'FSTB' --> Fann et al approximation (e-e)
+ EE_TYPE = 'PIN1' --> Pines-Nozières 1st approx. (e-e)
+ EE_TYPE = 'PIN2' --> Pines-Nozières 2nd approx. (e-e)
+ EE_TYPE = 'QIV2' --> Qian-Vignale high-density limit(e-e)
+ EE_TYPE = 'QIVI' --> Qian-Vignale (e-e)
+ EE_TYPE = 'RASM' --> Rammer-Smith (e-e)
+ EE_TYPE = 'TAI0' --> Tanaka-Ichimaru approximation (e-e) --> q = 0
+ EE_TYPE = 'TAIQ' --> Tanaka-Ichimaru approximation (e-e) --> q-dependent
+ EE_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation (e-e)
+
+
+ * EE_TYPE : relaxation time in 2D
+ EE_TYPE = 'ALA2' --> Al'tshuler-Aronov (e-e + impurities)
+ EE_TYPE = 'FUAB' --> Fukuyama-Abrahams (disordered metals)
+ graphene <-- EE_TYPE = 'LUFO' --> Lucas-Fong (e-e)
+ EE_TYPE = 'QIVI' --> Qian-Vignale (e-e)
+ EE_TYPE = 'RASM' --> Rammer-Smith (e-e)
+ heterostructures <-- EE_TYPE = 'REWI' --> Reizer-Wilkins (e-e)
+ EI_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities)
+ EE_TYPE = 'ZHDA' --> Zhang-Das Sarma (e-e)
+
+ * EE_TYPE : relaxation time in 1D
+ EE_TYPE = 'ALA2' --> Al'tshuler-Aronov (e-e + impurities)
+ EE_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities)
+
+ * EP_TYPE : e-phonon relaxation time in 3D
+ EP_TYPE = 'STEL' --> Steinberg low-temperature
+ EP_TYPE = 'STEH' --> Steinberg High-temperature
+
+ * EI_TYPE : e-impurit relaxation time in 3D
+ EI_TYPE = 'HEAP' --> Hertel-Appel approximation
+
+ ~
+
+ * IP_TYPE : ion plasma relaxation time in 3D
+ IP_TYPE = 'SEMO' --> Selchow-Morawetz approximation
+ IP_TYPE = 'SPIT' --> Spitzer approximation
+
+ * PD_TYPE : method used to compute the plasmon damping (3D)
+ PD_TYPE = 'NONE' --> no plasmon damping
+ PD_TYPE = 'CALL' --> Callen approximation
+ PD_TYPE = 'DGKA' --> DuBois-Gilinsky-Kivelson approximation
+ PD_TYPE = 'FEWA' --> Fetter and Walecka approximation
+ PD_TYPE = 'JEWS' --> Jewsbury approximation
+ PD_TYPE = 'LITI' --> Giuliani-Quinn lifetime approximation
+ PD_TYPE = 'MOPE' --> Molinari-Peerani approximation
+ PD_TYPE = 'NPSA' --> Ninham-Powel-Swanson approximation
+ PD_TYPE = 'SGAA' --> Segui-Gervasoni-Arista approximation
+
+ * QD_TYPE : method used to compute q-dependent relaxation time
+ QD_TYPE = 'NONE' --> no q-dependence
+ QD_TYPE = 'GAUS' --> Gaussian
+ QD_TYPE = 'LORE' --> Lorentzian
+
+ * ZETA : Value of Tanaka-Ichimaru parameter
+
+ ~
+
+ * D_VALUE_1: Value of the 1st damping coefficient (between 0 and 999.999)
+
+ * POWER_1 : power of ten to multiply D_VALUE_1 by
+ POWER = ' KILO'
+ POWER = ' MEGA'
+ POWER = ' GIGA'
+ POWER = ' TERA'
+ POWER = ' PETA'
+ POWER = ' EXA'
+ POWER = 'ZETTA'
+ POWER = 'MILLI'
+ POWER = 'MICRO'
+ POWER = ' NANO'
+ POWER = ' PICO'
+ POWER = 'FEMTO'
+ POWER = ' ATTO'
+ POWER = 'ZEPTO'
+ POWER = 'YOCTO'
+
+ * EK : kinetic energy of electron considered (in eV)
+ with respect to vacuum level
+
+ ~
+
+ * D_VALUE_2: Value of the 2nd damping coefficient (between 0 and 999.999)
+
+ * POWER_2 : power of ten to multiply D_VALUE_2 by
+ POWER = ' KILO'
+ POWER = ' MEGA'
+ POWER = ' GIGA'
+ POWER = ' TERA'
+ POWER = ' PETA'
+ POWER = ' EXA'
+ POWER = 'ZETTA'
+ POWER = 'MILLI'
+ POWER = 'MICRO'
+ POWER = ' NANO'
+ POWER = ' PICO'
+ POWER = 'FEMTO'
+ POWER = ' ATTO'
+ POWER = 'ZEPTO'
+ POWER = 'YOCTO'
+
+ * PCT : weight of first memory function (relaxation time D_VALUE_1)
+ 0.00 <= PCT <= 1.00
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * INT_POT : type of interaction potential (3D)
+ INT_POT = 'COULO' Coulomb interaction
+ INT_POT= 'YUKAW' Yukawa interaction
+ INT_POT= 'SOFTS' soft sphere
+ INT_POT= 'LNJNS' Lennard-Jones
+ INT_POT= 'HCLNJ' hard-core Lennard-Jones
+ INT_POT= 'KIHAR' Kihara
+ INT_POT= 'MIE_P' Mie
+ INT_POT= 'VANDW' Van der Waals
+ INT_POT= 'MORSE' Morse
+ INT_POT= 'G_EXP' generalised exponential
+ INT_POT= 'EXP_6' exp-6
+ INT_POT= 'MBUCK' modified Buckingham
+ INT_POT= 'N_COU' neutralised Coulomb
+ INT_POT= 'H_COR' hard-core
+ INT_POT= 'P_SPH' penetrable sphere
+ INT_POT= 'ST-JO' Starkloff-Joannopoulos soft-core
+ INT_POT= 'LR_OS' long-range oscillatory
+ INT_POT= 'STOCK' Stockmayer
+ INT_POT= 'RPAPO' RPA interaction
+ INT_POT = 'OVER1' Overhauser interaction
+ INT_POT = 'OVER2' modified Overhauser interaction
+ INT_POT = 'DEUTS' Deutsch interaction
+ INT_POT = 'PHOLE' particle-hole interaction
+ INT_POT = 'KELBG' Kelbg interaction
+
+ * S : length scale parameter of the potential (in Angström)
+
+ * EPS : depth of the potential (in units of k_B, i.e. in Kelvin)
+
+ * DELTA : polarisation of the fluid (dimensionless)
+
+ ~
+
+ * RC : potential core radius (in Angström)
+ * ALF : potential stiffness
+ * M : \ exponents for Kihara
+ * N : / and Mie potentials
+
+ ~
+
+ * A1 : \
+ * A2 : \ parameters for
+ * A3 : / long-range oscillatory potentials
+ * A4 : /
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * EP_C : electron-phonon coupling
+ * DEBYE_T : material Debye temperature
+
+ ~
+
+ * NA : number of atoms per unit volume
+ * MA : mass of the atoms
+ * RA : radius of the atoms
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * NI : impurity concentration
+ * EI_C : strength of impurity scattering
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+
+ * CF_TYPE : type of classical fluid calculation --> 3D
+ CF_TYPE = 'SHS' smooth hard spheres
+ CF_TYPE = 'RH1' rough hard spheres (Pidduck)
+ CF_TYPE = 'RH2' rough hard spheres (Condiff-Lu-Dahler)
+ CF_TYPE = 'RH3' rough hard spheres (McCoy-Sandler-Dahler)
+ CF_TYPE = 'DCE' dilute Chapman-Enskog
+ CF_TYPE = 'HCE' heavy (i.e. dense) Chapman-Enskog
+ CF_TYPE = 'LJF' Lennard-Jones fluid
+
+ CF_TYPE = 'DHD' dense hard disks --> 2D
+
+ * PF_TYPE : type of packing fraction --> 2D
+ PF_TYPE = 'HDM' --> hard disk model
+
+ --> 3D
+ PF_TYPE = 'HSM' --> hard sphere model
+ PF_TYPE = 'RCP' --> random closed-packed
+ PF_TYPE = 'FCC' --> FCC closed-packed
+ PF_TYPE = 'FRE' --> freezing
+ PF_TYPE = 'MEL' --> melting
+
+ * SL_TYPE : type of scattering length calculation
+ SL_TYPE = 'HSP' --> hard sphere potential
+ SL_TYPE = 'ASW' --> attractive square well (without bound state)
+ SL_TYPE = 'RSW' --> repulsive square well
+ SL_TYPE = 'DSP' --> delta-shell potential
+ SL_TYPE = 'AYP' --> attractive Yukawa potential
+ SL_TYPE = 'CCO' --> Coulomb cut-off potential
+ SL_TYPE = 'HUL' --> Hulthén potential
+
+ *=======+=========+=========+=========+=========+===========================*
+ * STRUCTURE FACTOR : *
+ *=======+=========+=========+=========+=========+===========================*
+
+
+ * SSTDY : static vs dynamic local-field corrections
+ SSTDY = ' STATIC' --> SQ_TYPE
+ SSTDY = 'DYNAMIC' --> SQO_TYPE
+
+ * SQ_TYPE : structure factor approximation (3D) --> static
+ SQ_TYPE = 'DEH' Debye-Hückel approximation
+ SQ_TYPE = 'GEA' generalized approximation
+ SQ_TYPE = 'GOR' Gorobchenko approximation
+ SQ_TYPE = 'GR2' computed from g(r) (GR_TO_SQ.f90 code)
+ SQ_TYPE = 'GSB' Gori-Giorgi-Sacchetti-Bachelet approximation
+ SQ_TYPE = 'HFA' Hartree-Fock approximation (only exchange)
+ SQ_TYPE = 'HUB' Hubbard approximation
+ SQ_TYPE = 'ICH' Ichimaru approximation
+ SQ_TYPE = 'LEE' Lee ideal Fermi gas
+ SQ_TYPE = 'MSA' mean spherical approximation
+ SQ_TYPE = 'PKA' Pietiläinen-Kallio
+ SQ_TYPE = 'RPA' RPA approximation
+ SQ_TYPE = 'SHA' Shaw approximation
+ SQ_TYPE = 'SIN' Singh
+ SQ_TYPE = 'SPA' Singh-Pathak
+ SQ_TYPE = 'TWA' Toigo-Woodruff approximation
+!
+ * SQO_TYPE : structure factor approximation (3D) --> dynamic
+ SQO_TYPE = 'ABA' Arista-Brandt approximation
+ SQO_TYPE = 'EPS' computed from dielectric function
+ SQO_TYPE = 'HFA' Hartree-Fock approximation
+ SQO_TYPE = 'HYD' hydrodynamic approximation
+ SQO_TYPE = 'IGA' ideal gas approximation
+ SQO_TYPE = 'ITA' Ichimaru-Tanaka approximation
+ SQO_TYPE = 'MFA' Hansen-McDonald-Pollock approximation
+ SQO_TYPE = 'MFD' memory function model
+ SQO_TYPE = 'NIC' Nakano-Ichimaru approximation
+ SQO_TYPE = 'UTI' Utsumi-Ichimaru approximation (3D)
+ SQO_TYPE = 'VLA' linearized Vlasov approximation
+
+ *=======+=========+=========+=========+=========+===========================*
+ * PAIR CORRELATION FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * GR_TYPE : pair correlation function approximation g(r) (3D)
+ GR_TYPE = 'CDF' from chain diagram formula of PDF (long distance)
+ GR_TYPE = 'DHA' Debye-Hückel approximation
+ GR_TYPE = 'DWA' DeWitt approximation
+ GR_TYPE = 'FBA' Frieman-Book approximation
+ GR_TYPE = 'HFA' Hartree-Fock approximation (only exchange)
+ GR_TYPE = 'HUB' Hubbard approximation
+ GR_TYPE = 'LLA' Lee-Long approximation
+ GR_TYPE = 'ORB' Ortiz-Ballone approximation
+ GR_TYPE = 'PDF' from pair distribution function
+ GR_TYPE = 'SHA' Shaw approximation
+ GR_TYPE = 'SQ2' computed from S(q) (SQ_TO_GR.f90 code)
+ GR_TYPE = 'WIG' Wigner approximation
+
+ * GR0_MODE : g(0) (3D)
+ GR0_MODE = 'CAGO' --> Calmels-Gold
+ GR0_MODE = 'DPGT' --> Davoudi-Polini-Giuliani-Tosi
+ GR0_MODE = 'HASA' --> Holas-Aravind-Singwi (small r_s)
+ GR0_MODE = 'ICHI' --> Ichimaru
+ GR0_MODE = 'KIMB' --> Kimball
+ GR0_MODE = 'OVE1' --> Overhauser 1
+ GR0_MODE = 'OVE2' --> Overhauser 2
+ GR0_MODE = 'QIAN' --> Qian
+ * GR0_MODE : g(0) (2D)
+ GR0_MODE = 'CAGO' --> Calmels-Gold
+ GR0_MODE = 'HAFO' --> Hartree-Fock
+ GR0_MODE = 'MOMA' --> Moreno-Marinescu
+ GR0_MODE = 'NSOA' --> Nagano-Singwi-Ohnishi
+ GR0_MODE = 'QIAN' --> Qian
+
+ *=======+=========+=========+=========+=========+===========================*
+ * PAIR DISTRIBUTION FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * RH_TYPE : pair distribution function approximation (3D)
+ RH_TYPE = 'CDI' chain diagram improved
+ RH_TYPE = 'CEG' classical electron gas
+ RH_TYPE = 'DEB' Debye electron gas
+ RH_TYPE = 'FUA' correct to order 2 in epsilon
+ RH_TYPE = 'SDC' short-distance correlations
+ RH_TYPE = 'WDA' watermelon diagrams summed
+
+ *=======+=========+=========+=========+=========+===========================*
+ * SPECTRAL FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ SPF_TYPE = 'NAIC' Nakano-Ichimaru approximation
+
+ *=======+=========+=========+=========+=========+===========================*
+ * ENERGY CALCULATIONS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * EC_TYPE : type of correlation energy functional (3D)
+ EC_TYPE = 'GEBR_W' --> Gell-Mann and Brueckner
+ EC_TYPE = 'CAMA_W' --> Carr and Maradudin
+ EC_TYPE = 'EHTY_G' --> Endo-Horiuchi-Takada-Yasuhara
+ EC_TYPE = 'HELU_G' --> Hedin and Lundqvist
+ EC_TYPE = 'VBHE_G' --> von Barth and Hedin
+ EC_TYPE = 'PEZU_G' --> Perdew and Zunger
+ EC_TYPE = 'WIGN_G' --> Wigner
+ EC_TYPE = 'NOPI_G' --> Nozières and Pines
+ EC_TYPE = 'LIRO_G' --> Lindgren and Rosen
+ EC_TYPE = 'PEZU_G' --> Perdew and Zunger
+ EC_TYPE = 'REHI_G' --> Rebei and Hitchon
+ EC_TYPE = 'GGSB_G' --> Gori-Giorgi-Sacchetti-Bachelet
+ EC_TYPE = 'PRKO_G' --> Proynov and Kong
+ EC_TYPE = 'GGSB_G' --> Vosko, Wilk and Nusair
+ EC_TYPE = 'VWNU_G' --> Perdew and Wang
+ EC_TYPE = 'HUBB_G' --> Hubbard
+ EC_TYPE = 'CHAC_G' --> Chachiyo
+ EC_TYPE = 'ISKO_T' --> Isihara and Kojima
+ * EC_TYPE : type of correlation energy functional (2D)
+ EC_TYPE = 'TACE_G' --> Tanatar-Ceperley
+ EC_TYPE = 'CPPA_G' --> Seidl-Perdew_Levy
+ EC_TYPE = 'AMGB_G' --> Attaccalite-Moroni-Gori-Giorgi-Bachelet
+ EC_TYPE = 'SEID_G' --> Seidl
+ EC_TYPE = 'LOOS_W' --> Loos
+ EC_TYPE = 'WIGN_G' --> Wigner
+ EC_TYPE = 'ISTO_T' --> Isihara-Toyoda
+ * EC_TYPE : type of correlation energy functional (1D)
+ EC_TYPE = 'LOOS_W' --> Loos
+ EC_TYPE = 'WIGN_G' --> Wigner
+
+
+ * FXC_TYPE : type of XC free energy functional --> 3D
+ FXC_TYPE = 'NO' --> None
+ FXC_TYPE = 'EB' --> Ebeling et al
+ FXC_TYPE = 'IC' --> Ichimaru et al
+ FXC_TYPE = 'KS' --> Karasiev et al
+ FXC_TYPE = 'VS' --> Vashishta and Singwi
+ FXC_TYPE = 'PD' --> Perrot and Dharma-Wardana
+ FXC_TYPE = 'EK' --> Ebeling-Kraeft-Kremp-Röpke
+
+ * EXC_TYPE : type of exchange-correlation energy functional --> 3D
+ EXC_TYPE = 'NO' --> None
+ EXC_TYPE = 'GT' --> Goedeker-Tetter-Hutter
+ EXC_TYPE = 'ST' -->
+ EXC_TYPE = 'BD' --> Brown-DuBois-Holzmann-Ceperley
+
+ ~
+
+
+ *=======+=========+=========+=========+=========+===========================*
+ * SPIN POLARIZATION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * IMODE : choice of spin parameters
+ IMODE = 1 : no spin polarization
+ IMODE = 2 : fully spin-polarized
+
+ * XI : spin polarization : (n+ - n-) / n
+
+ *=======+=========+=========+=========+=========+===========================*
+ * THERMODYNAMIC PROPERTIES : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * TH_PROP : type of calculation --> thermodynamic properties
+ TH_PROP = 'CLAS' : classical approximation
+ TH_PROP = 'QUAN' : quantum approximation
+
+ * GP_TYPE : grand partition function type (3D)
+ GP_TYPE = 'IK0' Isihara-Kojima formulation
+ GP_TYPE = 'RH0' Rebei-Hitchon formulation
+ GP_TYPE = 'IKM' Isihara-Kojima with magnetic field
+
+ * GP_TYPE : grand partition function type (2D)
+ GP_TYPE = 'I20' Isihara-Kojima formulation
+ GP_TYPE = 'I2M' Isihara-Kojima with magnetic field
+
+ *=======+=========+=========+=========+=========+===========================*
+ * ELECTRON MEAN FREE PATH : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * EK_INI : starting kinetic energy of electron in eV
+ * EK_FIN : final kinetic energy of electron in eV
+
+ *=======+=========+=========+=========+=========+===========================*
+ * CALCULATION OF MOMENTS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * N : order of moment
+ * M_TYPE : way S(q,omega) is computed
+ M_TYPE = 'EPS' from epsilon(q,omega)
+ M_TYPE = 'SQO' from S(q,omega)
+
+ *=======+=========+=========+=========+=========+===========================*
+ * INCOMING ION BEAM : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * Z_BEAM : charge of ions in incoming beam
+ * EK_BEAM : kinetic energy of incoming beam ions (eV)
+
+ *=======+=========+=========+=========+=========+===========================*
+ * OUTPUT CALCULATIONS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * I_DF : switch for dielectric function printing
+ I_DF = 0 : dielectric function not printed
+ I_DF = 1 : dielectric function printed in file 'diel_func.dat'
+
+ * I_PZ : switch for polarization function printing
+ I_PZ = 0 : polarization function not printed
+ I_PZ = 1 : polarization function printed in file 'pola_func.dat'
+
+ * I_SU : switch for susceptibility function printing
+ I_SU = 0 : susceptibility function not printed
+ I_SU = 1 : susceptibility function printed in file 'susc_func.dat'
+
+ * I_CD : switch for electrical conductivity printing
+ I_CD = 0 : electrical conductivity not printed
+ I_CD = 1 : electrical conductivity printed in file 'cond_func.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_PD : switch for plasmon dispersion printing
+ I_PD = 0 : plasmon dispersion not calculated
+ I_PD = 1 : plasmon dispersion printed in file 'plas_disp.dat'
+
+ * I_EH : switch for electron-hole dispersion printing
+ I_EH = 0 : electron-hole dispersion not calculated
+ I_EH = 1 : electron-hole dispersion printed in file 'elec_hole.dat'
+
+ * I_E2 : switch for two-electron-hole dispersion printing
+ I_E2 = 0 : two-electron-hole dispersion not calculated
+ I_E2 = 1 : two-electron-hole dispersion printed in file 'elec_hol2.dat'
+
+ * I_CK : switch for k-space e-e interaction potential printing
+ I_CK = 0 : potential not calculated
+ I_CK = 1 : potential printed in file 'int_pot_k.dat'
+
+ * I_CR : switch for real-space e-e interaction potential printing
+ I_CR = 0 : potential not calculated
+ I_CR = 1 : potential printed in file 'int_pot_r.dat'
+
+ * I_PK : switch for plasmon kinetic energy printing
+ I_PK = 0 : plasmon kinetic energy not calculated
+ I_PK = 1 : plasmon kinetic energy printed in file 'plas_kine.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_LF : switch for local-field corrections G(q,omega) printing
+ I_LF = 0 : local-field corrections not calculated
+ I_LF = 1 : local-field corrections printed in file 'loca_fiel.dat'
+
+ * I_IQ : switch for G(q,inf) printing
+ I_IQ = 0 : G(q,inf) not calculated
+ I_IQ = 1 : G(q,inf) printed in file 'ginf_fiel.dat'
+
+ * I_SF : switch for structure factor S(q,omega) printing
+ I_SF = 0 : structure factor not calculated
+ I_SF = 1 : structure factor printed in file 'stru_fact.dat'
+
+ * I_PC : switch for pair correlation function g(r) printing
+ I_PC = 0 : pair correlation function not calculated
+ I_PC = 1 : pair correlation function printed in file 'pair_corr.dat'
+
+ ~
+
+ * I_P2 : switch for pair distribution rho2(r) printing
+ I_P2 = 0 : pair distribution function not calculated
+ I_P2 = 1 : pair distribution function printed in file 'pair_dist.dat'
+
+ * I_VX : switch for vertex function Gamma(q,omega) printing
+ I_VX = 0 : vertex function not calculated
+ I_VX = 1 : vertex function printed in file 'vertex_fu.dat'
+
+ * I_DC : switch for plasmon damping coefficient Im[eps]/q^2 printing
+ I_DC = 0 : plasmon damping not calculated
+ I_DC = 1 : plasmon damping printed in file 'plas_damp.dat'
+
+ * I_MD : switch for momentum distribution printing
+ I_MD = 0 : momentum distribution not calculated
+ I_MD = 1 : momentum distribution printed in file 'mome_dist.dat'
+
+ ~
+
+ * I_LD : switch for Landau parameters printing
+ I_LD = 0 : Landau parameters not calculated
+ I_LD = 1 : Landau parameters printed in file 'landau_pa.dat'
+
+ * I_DP : switch for damping printing
+ I_DP = 0 : damping not calculated
+ I_DP = 1 : damping printed in file 'damp_file.dat'
+
+ * I_LT : switch for plasmon lifetime printing
+ I_LT = 0 : plasmon lifetime not calculated
+ I_LT = 1 : plasmon lifetime printed in file 'life_time.dat'
+
+ * I_BR : switch for plasmon broadening printing
+ I_BR = 0 : plasmon broadening not calculated
+ I_BR = 1 : plasmon broadening printed in file 'broadenin.dat'
+
+ ~
+
+ * I_PE : switch for plasmon energy printing
+ I_PE = 0 : plasmon energy not calculated
+ I_PE = 1 : plasmon energy printed in file 'plas_ener.dat'
+
+ * I_QC : switch for plasmon q-bounds printing
+ I_QC = 0 : plasmon q-bounds not calculated
+ I_QC = 1 : plasmon q-bounds printed in file 'qc_bounds.dat'
+
+ * I_RL : switch for relaxation time printing
+ I_RL = 0 : relaxation time not calculated
+ I_RL = 1 : relaxation time printed in file 'rela_time.dat'
+
+ * I_KS : switch for screening wave vector printing
+ I_KS = 0 : screening wave vector not calculated
+ I_KS = 1 : screening wave vector printed in file 'screen_wv.dat'
+
+ ~
+
+ * I_OQ : switch for omega = q * v_F printing
+ I_DY = 0 : omega = q * v_F not calculated
+ I_DY = 1 : omega = q * v_F printed in file 'omega_qvf.dat'
+
+ * I_ME : switch for moments of epsilon(q,omega) printing
+ I_ME = 0 : moments of epsilon not calculated
+ I_ME = 1 : moments of epsilon printed in file 'moments_e.dat'
+
+ * I_MS : switch for moments of S(q,omega) printing
+ I_MS = 0 : moments of structure factor not calculated
+ I_MS = 1 : moments of structure factor printed in file 'moments_s.dat'
+
+ * I_ML : switch for moments of loss function printing
+ I_ML = 0 : moments of loss function not calculated
+ I_ML = 1 : moments of loss function printed in file 'moments_l.dat'
+
+ ~
+
+ * I_MC : switch for moments of conductivity printing
+ I_MC = 0 : moments of conductivity not calculated
+ I_MC = 1 : moments of conductivity printed in file 'moments_c.dat'
+
+ * I_DE : switch for derivative of Re[ dielectric function ] printing
+ I_DE = 0 : derivative not calculated
+ I_DE = 1 : derivative printed in file 'deri_epsi.dat'
+
+ * I_ZE : switch for Re[ dielectric function ] = 0 printing
+ I_ZE = 0 : function not calculated
+ I_ZE = 1 : function printed in file 'ree0_file.dat'
+
+ * I_SR : switch for sum rules for epsilon printing
+ I_SR = 0 : sum rules not calculated
+ I_SR = 1 : sum rules printed in file 'sum_rules.dat'
+
+ ~
+
+ * I_CW : switch for confinement wave function printing
+ I_CW = 0 : confinement wave function not calculated
+ I_CW = 1 : confinement wave function printed in file 'confin_wf.dat'
+
+ * I_CF : switch for confinement potential printing
+ I_CF = 0 : confinement potential not calculated
+ I_CF = 1 : confinement potential printed in file 'confin_pt.dat'
+
+ * I_EM : switch for effective mass printing
+ I_EM = 0 : effective mass not calculated
+ I_EM = 1 : effective mass printed in file 'effe_mass.dat'
+
+ * I_MF : switch for mean free path printing
+ I_MF = 0 : mean free path not calculated
+ I_MF = 1 : mean free path printed in file 'mean_path.dat'
+
+ ~
+
+ * I_SP : switch for spectral function printing
+ I_SP = 0 : spectral function not calculated
+ I_SP = 1 : spectral function printed in file 'spec_func.dat'
+
+ * I_SE : switch for self-energy printing
+ I_SE = 0 : self-energy not calculated
+ I_SE = 1 : self-energy printed in file 'self_ener.dat'
+
+ * I_SB : switch for subband energies printing
+ I_SB = 0 : subband energies not calculated
+ I_SB = 1 : subband energies printed in file 'subb_ener.dat'
+
+ * I_ES : switch for Eliashberg function printing
+ I_ES = 0 : Eliashberg function not calculated
+ I_ES = 1 : Eliashberg function printed in file 'elia_func.dat'
+
+ ~
+
+ * I_GR : switch for Grüneisen parameter printing
+ I_GR = 0 : Grüneisen parameter not calculated
+ I_GR = 1 : Grüneisen parameter printed in file 'grune_par.dat'
+
+ * I_FD : switch for Fermi-Dirac distribution printing
+ I_FD = 0 : Fermi-Dirac distribution not calculated
+ I_FD = 1 : Fermi-Dirac distribution printed in file 'fermi_dir.dat'
+
+ * I_BE : switch for Bose-Einstein distribution printing
+ I_BE = 0 : Bose-Einstein distribution not calculated
+ I_BE = 1 : Bose-Einstein distribution printed in file 'bose_eins.dat'
+
+ * I_MX : switch for Maxwell distribution printing
+ I_MX = 0 : Maxwell distribution not calculated
+ I_MX = 1 : Maxwell distribution printed in file 'maxwell_d.dat'
+
+ ~
+
+ * I_SC : switch for scale parameters printing
+ I_SC = 0 : scale parameters not calculated
+ I_SC = 1 : scale parameters printed in file 'scale_par.dat'
+
+ * I_DS : switch for density of states printing
+ I_DS = 0 : density of states not calculated
+ I_DS = 1 : density of states printed in file 'dens_stat.dat'
+
+ * I_NV : switch for Fourier domain Nevanlinaa/memory function printing
+ I_NV = 0 : Nevanlinaa function not calculated
+ I_NV = 1 : Nevanlinaa function printed in file 'neva_four.dat'
+
+ * I_MT : switch for time domain memory function printing
+ I_MT = 0 : memory function not calculated
+ I_MT = 1 : memory function printed in file 'memo_time.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_GP : switch for grand partition function printing
+ I_GP = 0 : grand partition function not calculated
+ I_GP = 1 : grand partition function printed in file 'gran_part.dat'
+
+ * I_PR : switch for electronic pressure printing
+ I_PR = 0 : electronic pressure not calculated
+ I_PR = 1 : electronic pressure printed in file 'epressure.dat'
+
+ * I_CO : switch for compressibility printing
+ I_CO = 0 : compressibility not calculated
+ I_CO = 1 : compressibility printed in file 'comp_file.dat'
+
+ * I_CP : switch for chemical potential printing
+ I_CP = 0 : chemical potential not calculated
+ I_CP = 1 : chemical potential printed in file 'chem_pote.dat'
+
+ ~
+
+ * I_BM : switch for bulk modulus printing
+ I_BM = 0 : bulk modulus not calculated
+ I_BM = 1 : bulk modulus printed in file 'bulk_modu.dat'
+
+ * I_SH : switch for shear modulus printing
+ I_SH = 0 : shear modulus not calculated
+ I_SH = 1 : shear modulus printed in file 'shear_mod.dat'
+
+ * I_S0 : switch for zero sound velocity printing
+ I_S0 = 0 : zero sound velocity not calculated
+ I_S0 = 1 : zero sound velocity printed in file 'zero_soun.dat'
+
+ * I_S1 : switch for first sound velocity printing
+ I_S1 = 0 : first sound velocity not calculated
+ I_S1 = 1 : first sound velocity printed in file 'firs_soun.dat'
+
+ ~
+
+ * I_DT : switch for Debye temperature printing
+ I_DT = 0 : Debye temperature not calculated
+ I_DT = 1 : Debye temperature printed in file 'Debye_tmp.dat'
+
+ * I_PS : switch for Pauli paramagnetic susceptibility printing
+ I_PS = 0 : Pauli paramagnetic susceptibility not calculated
+ I_PS = 1 : Pauli paramagnetic susceptibility printed in file 'para_susc.dat'
+
+ * I_IE : switch for internal energy printing
+ I_IE = 0 : internal energy not calculated
+ I_IE = 1 : internal energy printed in file 'inter_ene.dat'
+
+ * I_EI : switch for excess internal energy printing
+ I_EI = 0 : excess internal energy not calculated
+ I_EI = 1 : excess internal energy printed in file 'exces_ene.dat'
+
+ ~
+
+ * I_FH : switch for Helmholtz free energy printing
+ I_FH = 0 : Helmholtz free energy not calculated
+ I_FH = 1 : Helmholtz free energy printed in file 'helm_free.dat'
+
+ * I_EY : switch for entropy printing
+ I_EY = 0 : entropy not calculated
+ I_EY = 1 : entropy printed in file 'entropy_f.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_EF : switch for Fermi energy printing
+ I_EF = 0 : Fermi energy not calculated
+ I_EF = 1 : Fermi energy printed in file 'fermi_ene.dat'
+
+ * I_KF : switch for Fermi momentum printing
+ I_KF = 0 : Fermi momentum not calculated
+ I_KF = 1 : Fermi momentum printed in file 'fermi_vec.dat'
+
+ * I_VF : switch for Fermi velocity printing
+ I_VF = 0 : Fermi velocity not calculated
+ I_VF = 1 : Fermi velocity printed in file 'fermi_vel.dat'
+
+ * I_TE : switch for Fermi temperature printing
+ I_TE = 0 : Fermi temperature not calculated
+ I_TE = 1 : Fermi temperature printed in file 'fermi_tmp.dat'
+
+ ~
+
+ * I_DL : switch for density of states at Fermi level printing
+ I_DL = 0 : density of states at Fermi level not calculated
+ I_DL = 1 : density of states at Fermi level printed in file 'fermi_dos.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_TW : switch for thermal De Broglie wavelength printing
+ I_TW = 0 : thermal De Broglie wavelength not calculated
+ I_TW = 1 : thermal De Broglie wavelength printed in file 'thermal_w.dat'
+
+ * I_VT : switch for thermal velocity printing
+ I_VT = 0 : thermal velocity not calculated
+ I_VT = 1 : thermal velocity printed in file 'thermal_v.dat'
+
+ * I_TC : switch for thermal conductivity printing
+ I_TC = 0 : thermal conductivity not calculated
+ I_TC = 1 : thermal conductivity printed in file 'thermal_c.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_EG : switch for ground state energy printing
+ I_EG = 0 : ground state energy not calculated
+ I_EG = 1 : ground state energy printed in file 'ground_st.dat'
+
+ * I_EX : switch for exchange energy printing
+ I_EX = 0 : exchange energy not calculated
+ I_EX = 1 : exchange energy printed in file 'ex_energy.dat'
+
+ * I_XC : switch for exchange correlation energy printing
+ I_XC = 0 : exchange correlation energy not calculated
+ I_XC = 1 : exchange correlation energy printed in file 'xc_energy.dat'
+
+ * I_EC : switch for correlation energy printing
+ I_EC = 0 : correlation energy not calculated
+ I_EC = 1 : correlation energy printed in file 'corr_ener.dat'
+
+ ~
+
+ * I_HF : switch for Hartree-Fock energy printing
+ I_HF = 0 : Hartree-Fock energy not calculated
+ I_HF = 1 : Hartree-Fock energy printed in file 'hf_energy.dat'
+
+ * I_EK : switch for kinetic energy printing
+ I_EK = 0 : kinetic energy not calculated
+ I_EK = 1 : kinetic energy printed in file 'kine_ener.dat'
+
+ * I_EP : switch for potential energy printing
+ I_EP = 0 : potential energy not calculated
+ I_EP = 1 : potential energy printed in file 'pote_ener.dat
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_VI : switch for shear viscosity printing
+ I_VI = 0 : shear viscosity not calculated
+ I_VI = 1 : shear viscosity printed in file 'visc_coef.dat'
+
+ * I_DI : switch for diffusion coefficient printing
+ I_DI = 0 : diffusion coefficient not calculated
+ I_DI = 1 : diffusion coefficient printed in file 'diff_coef.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_FP : switch for fluctuation potential calculation
+ I_FP = 0 : fluctuation potential not calculated
+
+ I_FP = 1 : fluctuation potential printed in file 'fluct_pot.dat' (function of q) \ exact
+ I_FP = 2 : fluctuation potential printed in file 'fluct_pot.dat' (function of q and r) / dispersion
+
+ I_FP = 3 : fluctuation potential printed in file 'fluct_pot.dat' (function of q) \ PL_DISP
+ I_FP = 4 : fluctuation potential printed in file 'fluct_pot.dat' (function of q and r) / dispersion
+
+ * I_EL : switch for loss function calculation
+ I_EL = 0 : loss function not calculated
+ I_EL = 1 : loss function printed in file 'ener_loss.dat'
+
+ * I_PO : switch for stopping power calculation
+ I_PO = 0 : stopping power not calculated
+ I_PO = 1 : stopping power printed in file 'stop_powe.dat'
+
+ * I_RF : switch for refractive index calculation
+ I_RF = 0 : refractive index not calculated
+ I_RF = 1 : refractive index printed in file 'refrac_in.dat'
+
+ ~
+
+ * I_VC : switch for dynamic screened Coulomb potential V(q,omega) calculation
+ I_VC = 0 : dynamic screened Coulomb potential not calculated
+ I_VC = 1 : dynamic screened Coulomb potential printed in file 'dyna_coul.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_FN : switch for appending the calculation type string
+ to the output filename
+ I_FN = 0 : standard output filename
+ I_FN = 1 : parameter added to filename
+
+ * I_WR : switch for writing physical properties into the log file
+ I_WR = 0 : does not write
+ I_WR = 1 : writes
+ I_WR = 2 : writes only for first q-index
+
+ * I_TI : switch for writing integration tests into the log file
+ I_TI = -1 : writes all the tests
+ I_TI = 0 : does not write
+ I_TI = 1 : writes test for MODULE SPECIFIC_INT_1
+ I_TI = 2 : writes test for MODULE SPECIFIC_INT_2
+ I_TI = 3 : writes test for MODULE SPECIFIC_INT_3
+ I_TI = 4 : writes test for MODULE SPECIFIC_INT_4
+ I_TI = 5 : writes test for MODULE SPECIFIC_INT_5
+ I_TI = 6 : writes test for MODULE SPECIFIC_INT_6
+ I_TI = 7 : writes test for MODULE SPECIFIC_INT_7
+ I_TI = 8 : writes test for MODULE SPECIFIC_INT_8
+ I_TI = 9 : writes test for MODULE SPECIFIC_INT_9
+ I_TI = 10 : writes test for MODULE TEST_INT_HUBBARD
+
+
+
+ Description of the calculation parameters:
+
+ *=======+=========+=========+=========+=========+===========================*
+ * GENERAL PARAMETERS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * Q_MIN : minimum value of q (in units of k_F)
+ * Q_MAX : maximum value of q (in units of k_F)
+ * N_Q : number of q-points
+
+ * E_MIN : minimum value of energy (in units of E_F)
+ * E_MAX : maximum value of energy (in units of E_F)
+ * N_E : number of E-points
+
+ * R_MIN : minimum value of distance r (in units of 1/k_F)
+ * R_MAX : maximum value of distance r (in units of 1/k_F))
+ * N_R : number of r-points
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * RS : average distance between 2 electrons (in units of a0)
+ ~
+ * MSOM : m*/m (for semiconductors)
+ ~
+ * MAT_TYP : type of material
+ MAT_TYPE = 'SCHRO' standard solid
+ MAT_TYPE = 'DIRAC' massless Fermions
+ MAT_TYPE = 'WATER' liquid water
+ ~
+ * EPS_B : material's dielectric constant
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * T : temperature (in SI)
+ ~
+ * E : external electric field (in SI)
+ ~
+ * H : external magnetic field (in SI)
+ ~
+ * FLD : strength of the magnetic field
+ FLD = 'NO' no field
+ FLD = 'WF' weak field
+ FLD = 'IF' intermediate field
+ FLD = 'LF' large field
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * DIM : dimension of the system
+ DIM = '3D'
+ DIM = '2D'
+ DIM = '1D'
+ DIM = 'Q0' quasi-0D
+ DIM = 'Q1' quasi-1D
+ DIM = 'Q2' quasi-2D
+ DIM = 'BL' bilayer
+ DIM = 'ML' multilayer
+ DIM = 'ML' multilayer
+
+ ~
+
+ * R0 : wire radius
+ ~
+ * L : length of quantum well
+ ~
+ * OM0 : frequency of the confinement potential (SI)
+ ~
+ * CONFIN : type of confinement
+ CONFIN = 'NO-CONF' no confinement
+ CONFIN = 'DSEPLAY' layer within a stacking of layers
+ CONFIN = 'CC-1111' cylindrical within subband 1
+ CONFIN = 'CC-1122' cylindrical between subbands 1 and 2
+ CONFIN = 'CC-1221' cylindrical between subbands 1 and 2
+ CONFIN = 'CC-2222' cylindrical within subband 2
+ CONFIN = 'HC-1111' harmonic within subband 1
+ CONFIN = 'HC-1122' harmonic between subbands 1 and 2
+ CONFIN = 'HC-1221' harmonic between subbands 1 and 2
+ CONFIN = 'HC-2222' harmonic within subband 2
+ CONFIN = 'INVLAYE' inversion layer in semiconductor
+ CONFIN = 'IQWE_LB' square well with an infinite barrier
+ CONFIN = 'PC1_QWI' parabolic
+ CONFIN = 'PC2_QWI' parabolic
+ CONFIN = 'SOFTCOR' soft-core potential
+ CONFIN = 'SWC_QWI' square well with an infinite barrier
+
+ ~
+
+ * DL : interlayer distance
+ ~
+ * D1 : distance between the two layers in the unit cell
+ ~
+ * N_DEP : electron concentration in depletion layer (SI)
+ ~
+ * N_INV : electron concentration in inversion layer (SI)
+
+ ~
+
+ * H_TYPE : heterostructure type
+ H_TYPE = 'SSL1' semiconductor superlattice of type I
+ H_TYPE = 'SSL2' semiconductor superlattice of type II
+ H_TYPE = 'BILA' bilayer
+ H_TYPE = 'MLA1' multilayer with with one layer / unit cell
+ H_TYPE = 'MLA2' multilayer with with two layers / unit cell
+ ~
+ * EPS_1 : background/layer dielectric constant
+ ~
+ * EPS_2 : interlayer dielectric constant
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * UNIT : system unit
+ UNIT = 'SIU' international system
+ UNIT = 'CGS' CGS system
+ UNIT = 'ATU' atomic units
+
+ * UNIK : K unit
+ UNIK = 'SI' international system
+ UNIK = 'AU' atomic units
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * SC_TYPE : type of screeening
+ SC_TYPE = 'NO' no screening
+ SC_TYPE = 'DH' Debye-Hückel
+ SC_TYPE = 'KL' Kleinman
+ SC_TYPE = 'ST' Streitenberger
+ SC_TYPE = 'TF' Thomas-Fermi
+ SC_TYPE = 'UI' Utsumi-Ichimaru
+ SC_TYPE = 'YT' Yasuhara-Takada
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * PL_TYPE : type of plasma considered
+ PL_TYPE = 'OCP' --> one-component plasma (~ electron gas)
+ PL_TYPE = 'DCP' --> two-component plasma
+
+ * ZION : atomic number of (first) ion
+
+ * ZION2 : atomic number of second ion
+
+ *=======+=========+=========+=========+=========+===========================*
+ * DIELECTRIC FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+
+ * ESTDY : static vs dynamic dielectric function
+ STDY = ' STATIC'
+ STDY = 'DYNAMIC'
+
+ * EPS_T : type of dielcectric function
+ EPS_T = 'LONG' longitudinal --> D_FUNCL
+ EPS_T = 'TRAN' transverse --> D_FUNCT
+
+ * D_FUNC : model of dielectric function :
+
+ 1) Static:
+
+ ---> longitudinal:
+
+ D_FUNCL = 'LRPA' random phase approximation (3D,2D,1D)
+ D_FUNCL = 'THFE' Thomas-Fermi approximation (3D,2D,1D)
+
+ 2) Dynamic:
+
+ ---> transverse:
+
+ D_FUNCT = 'RPA1' random phase approximation (3D,2D)
+ D_FUNCT = 'RPA2' random phase approximation (3D)
+ D_FUNCT = 'LVLA' linearized Vlasov (3D)
+ D_FUNCT = 'MER1' Mermin (3D)
+ D_FUNCT = 'BLTZ' Boltzmann (3D)
+
+ ---> longitudinal:
+
+ D_FUNCL = 'ATAS' Atwal-Ashcroft <-- T-dependent
+ D_FUNCL = 'BLZ1' Boltzmann
+ D_FUNCL = 'BLZ2' damped Boltzmann
+ D_FUNCL = 'DACA' Arista-Brandt <-- T-dependent
+ D_FUNCL = 'HEAP' Hertel-Appel
+ D_FUNCL = 'HAFO' Hartree-Fock
+ D_FUNCL = 'HUCO' Hu-O'Connell <-- damping (3D,2D,Q1)
+ D_FUNCL = 'HYDR' hydrodynamic <-- damping
+ D_FUNCL = 'KLEI' Kleinman <-- T-dependent
+ D_FUNCL = 'KLKD' Klimontovich-Kraeft <-- T-dependent
+ D_FUNCL = 'KLKN' Klimontovich-Kraeft <-- T-dependent
+ D_FUNCL = 'LAND' Landau parameters-based
+ D_FUNCL = 'LVL1' linearized Vlasov (weak coupling) <-- T-dependent
+ D_FUNCL = 'LVL2' linearized Vlasov (strong coupling) <-- T-dependent
+ D_FUNCL = 'MER1' Mermin 1 <-- damping
+ D_FUNCL = 'MER2' Mermin 2 <-- T-dependent
+ D_FUNCL = 'MSAP' mean spherical approximation
+ D_FUNCL = 'NEVA' Nevanlinna <-- T-dependent
+ D_FUNCL = 'PLPO' plasmon pole
+ D_FUNCL = 'RDF1' Altshuler et al <-- damping
+ D_FUNCL = 'RDF2' Altshuler et al <-- damping
+ D_FUNCL = 'RPA1' RPA
+ D_FUNCL = 'RPA2' RPA <-- T-dependent
+ D_FUNCL = 'RPA3' random phase approximation <-- magnetic field (2D)
+ D_FUNCL = 'UTIC' Utsumi-Ichimaru <-- T-dependent
+ D_FUNCL = 'VLFP' Vlasov-Fokker-Planck <-- damping
+
+ * NEV_TYPE : type of Nevalinna function used (only for D_FUNCL = 'NEVA')
+ NEV_TYPE = 'NONE' --> no function
+ NEV_TYPE = 'STA1' --> static value h(q)
+ NEV_TYPE = 'STA2' --> static value h(q)
+ NEV_TYPE = 'CLCO' --> Classical Coulomb OCP
+ NEV_TYPE = 'AMTA' --> Adamjan-Meyer-Tkachenko
+ NEV_TYPE = 'PEEL' --> Perel'-Eliashberg function
+ NEV_TYPE = 'PE76' --> Perel'-Eliashberg by Arkhipov et al
+
+ ~
+
+ * I_T : way to incorporate temperature dependence
+ I_T = 0 --> no temperature (T = 0)
+ I_T = 1 --> analytical models used
+ I_T = 2 --> temperature convolution
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * PL_DISP : method used to compute the plasmon dispersion (3D real case)
+ PL_DISP = 'HYDRODY' hydrodynamic model
+ PL_DISP = 'RPA_MOD' RPA model
+ PL_DISP = 'TWA_MOD' Toigo-Woodruff model
+ PL_DISP = 'GOA_MOD' Gorobchenko model
+ PL_DISP = 'HUBBARD' Hubbard model
+ PL_DISP = 'ELASTIC' elastic model
+ PL_DISP = 'SGBBN_M' SGBBN model
+ PL_DISP = 'UTI_MOD' Utsumi-Ichimaru model
+ * PL_DISP : method used to compute the plasmon dispersion (2D real case)
+ PL_DISP = 'HYDRODY' hydrodynamic model
+ PL_DISP = 'RPA_MOD' RPA model
+ * PL_DISP : method used to compute the plasmon dispersion (1D real case)
+ PL_DISP = 'HYDRODY' hydrodynamic model
+ PL_DISP = 'RPA_MOD' RPA model
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * GSTDY : static vs dynamic local-field corrections
+ GSTDY = ' STATIC' --> GQ_TYPE
+ GSTDY = 'DYNAMIC' --> GQO_TYPE
+
+ * GQ_TYPE : local-field correction type (3D) static
+ GQ_TYPE = 'NONE' no local field correction
+ GQ_TYPE = 'ALDA' adiabatic local density
+ GQ_TYPE = 'ALFL' Alvarellos-Flores
+ GQ_TYPE = 'BEBR' Bedell-Brown
+ GQ_TYPE = 'CDOP' TDDFT Corradini et al correction
+ GQ_TYPE = 'GEV2' Geldart-Vosko 2
+ GQ_TYPE = 'GEVO' Geldart-Vosko correction
+ GQ_TYPE = 'GOCA' Gold-Calmels
+ temperature-dep. --> GQ_TYPE = 'HNCA' hypernetted chain
+ GQ_TYPE = 'HORA' Holas-Rahman
+ GQ_TYPE = 'HUBB' Hubbard correction (only exchange)
+ GQ_TYPE = 'ICUT' Ichimaru-Utsumi correction
+ GQ_TYPE = 'IKPA' Iwamoto-Krotscheck-Pines
+ GQ_TYPE = 'IWA1' Iwamoto G_{-1}
+ GQ_TYPE = 'IWA2' Iwamoto G_{3} approx.
+ temperature-dep. --> GQ_TYPE = 'IWA3' Iwamoto G_{-1}
+ GQ_TYPE = 'IWA4' Iwamoto G_{3} exact
+ GQ_TYPE = 'JGDG' Jung-Garcia-Gonzalez-Dobson-Godby
+ GQ_TYPE = 'KLLA' Kleinman-Langreth correction
+ GQ_TYPE = 'LDAC' LDA correction
+ GQ_TYPE = 'MCSC' Moroni-Ceperley-Senatore correction
+ GQ_TYPE = 'NAGY' Nagy correction
+ GQ_TYPE = 'PAVA' Pavas-Vashishta correction
+ GQ_TYPE = 'PGGA' Petersilka-Gossmann-Gross
+ GQ_TYPE = 'RICE' Rice correction
+ GQ_TYPE = 'SHAW' Shaw correction
+ GQ_TYPE = 'SLAT' Slater correction
+ GQ_TYPE = 'STLS' Singwi et al correction
+ temperature-dep. --> GQ_TYPE = 'TKAC' Tkachenko correction
+ GQ_TYPE = 'TRMA' Tripathy-Mandal
+ GQ_TYPE = 'VASI' Vashishta-Singwi correction
+ GQ_TYPE = 'UTI1' Utsumi-Ichimaru correction (only exchange)
+
+ * GQ_TYPE : local-field correction type (2D) static
+ GQ_TYPE = 'NONE' no local field correction
+ GQ_TYPE = 'BUTO' Bulutay-Tomak
+ GQ_TYPE = 'DPGT' Davoudi-Giuliani-Giuliani-Tosi
+ GQ_TYPE = 'GOCA' Gold-Calmels
+ GQ_TYPE = 'HUBB' Hubbard correction (only exchange)
+ GQ_TYPE = 'IWA1' Iwamoto G_{-1}
+ GQ_TYPE = 'IWA2' Iwamoto G_{3}
+ GQ_TYPE = 'SAIC' Sato-Ichimaru correction
+
+ * GQ_TYPE : local-field correction type (1D) static
+ GQ_TYPE = 'NONE' no local field correction
+ GQ_TYPE = 'GOCA' Gold-Calmels
+ GQ_TYPE = 'HUBB' Hubbard correction (only exchange)
+
+ * IQ_TYPE : type of approximation for I(q)
+ IQ_TYPE = 'GKM' Gorobchenko-Kohn-Maksimov
+ IQ_TYPE = 'HKA' Hong-Kim
+ IQ_TYPE = 'IKP' Iwamoto-Krotscheck-Pines parametrization
+ IQ_TYPE = 'KU1' Kugler 1
+ IQ_TYPE = 'KU2' Kugler 1
+
+ ~
+
+ * LANDAU : model chosen for the calculation of the Landau parameters (3D)
+ LANDAU = 'NONE' Landau's theory not used
+ LANDAU = 'CHEN' Chen's approach
+ LANDAU = 'RASC' Rayleigh-Schrödinger expansion
+ LANDAU = 'ANBR' Anderson-Brinkman model
+ LANDAU = 'GUTZ' Gutzwiller model
+ LANDAU = 'IWPI' Iwamoto-Pines model (hard-sphere)
+ LANDAU = 'GCYO' Giuliani-Vignale parametrization of
+ Yasuhara-Ousaka approach
+ LANDAU = 'SBOH' slave-boson one-band Hubbard model
+
+ * LANDAU : model chosen for the calculation of the Landau parameters (2D)
+ LANDAU = 'NONE' Landau's theory not used
+ LANDAU = 'ERZA' Engelbrecht-Randeria-Zhang approach
+ LANDAU = 'GVYO' Giuliani-Vignale parametrization of
+ Yasuhara-Ousaka approach
+ LANDAU = 'KCMP' Kwoon-Ceperley-Martin parametrization
+ * GQO_TYPE : local-field correction type (3D)
+ GQO_TYPE = 'NONE' no local field correction
+ GQO_TYPE = 'ALFL' Alvarellos-Flores correction
+ GQO_TYPE = 'BACA' Barriga-Carrasco correction
+ GQO_TYPE = 'BBSA' Bachlechner-Böhm-Schinner
+ GQO_TYPE = 'COPI' Constantin-Pitarke
+ GQO_TYPE = 'DABR' Dabrowski
+ GQO_TYPE = 'FWRA' Forstmann-Wierling-Röpke
+ GQO_TYPE = 'HOK1' Hong-Kim correction
+ GQO_TYPE = 'HOK2' Hong-Kim correction
+ GQO_TYPE = 'JEWS' Jewsbury approximation
+ GQO_TYPE = 'KUG1' Kugler q --> 0 approximation
+ GQO_TYPE = 'KUG2' Kugler approximation
+ GQO_TYPE = 'MDGA' Mithen-Daligault-Gregori
+ GQO_TYPE = 'NLGA' Nagy-Laszlo-Giber approximation
+ GQO_TYPE = 'RIA1' Richardson-Ashcroft G_s
+ GQO_TYPE = 'RIA2' Richardson-Ashcroft G_n
+ GQO_TYPE = 'RIA3' Richardson-Ashcroft G_a
+ GQO_TYPE = 'SHMU' Shah-Mukhopadhyay
+ GQO_TYPE = 'TOWO' Toigo-Woodruff
+ GQO_TYPE = 'UTI2' Utsumi-Ichimaru approximation
+ GQO_TYPE = 'VISC' viscosity approximation
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * DAMPING : type of damping used
+ DAMPING = 'NONE' no damping
+ DAMPING = 'LFTM' lifetime
+ DAMPING = 'RELA' relaxation time
+ DAMPING = 'DECA' decay rate
+ DAMPING = 'DIFF' diffusion coefficient
+ DAMPING = 'VISC' viscosity
+
+ * LT_TYPE : approximation used for lifetime (3D)
+ LT_TYPE = 'DAVI' Davies formula
+ LT_TYPE = 'GALI' Galitskii formula
+ LT_TYPE = 'GIQU' Giuliani-Quinn formula
+ LT_TYPE = 'GIVI' Giuliani-Vignale formula
+ LT_TYPE = 'INPE' Inogamov-Petrov formula
+ LT_TYPE = 'LUBR' Lugovskoy-Bray formula
+ LT_TYPE = 'NAEC' Nagy-Echenique formula
+ LT_TYPE = 'QIVI' Qian-Vignale formula
+ LT_TYPE = 'QUFE' Quinn-Ferrell formula
+
+ * LT_TYPE : approximation used for lifetime (2D)
+ LT_TYPE = 'GIQ1' Giuliani-Quinn formula for e-h loss
+ LT_TYPE = 'GIQ2' Giuliani-Quinn formula for plasmon loss
+ LT_TYPE = 'GIVI' Giuliani-Vignale formula
+ LT_TYPE = 'HAWR' Hawrylak formula
+ LT_TYPE = 'MELA' Menashe-Laikhtman formula
+ LT_TYPE = 'QIVI' Qian-Vignale formula
+
+ * RT_TYPE : relaxation time
+ RT_TYPE = ' NO' --> no relaxation time
+ RT_TYPE = 'E-E' --> electron-electron interaction
+ RT_TYPE = 'E-P' --> electron-phonon interaction
+ RT_TYPE = 'E-I' --> electron-phonon impurity
+ RT_TYPE = 'ALL' --> all three taken into account
+
+ ~
+
+ * DR_TYPE : decay rate in 3D
+ DR_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation
+ DR_TYPE = 'VLAS' --> Vlasov approximation
+
+ * DC_TYPE : diffusion coefficient in 3D
+ DC_TYPE = 'ASHO' --> Ashurst-Hoover
+
+ * VI_TYPE : viscosity in 3D
+ VI_TYPE = 'AMPP' Angilella et al hard-sphere fluid --> T-dependent
+ VI_TYPE = 'DRBA' Daligault-Rasmussen-Baalrud (plasmas) --> T-dependent
+ VI_TYPE = 'KHRA' Khrapak for Yukawa fluid --> T-dependent
+ VI_TYPE = 'LHPO' Longuet-Higgins-Pope --> T-dependent
+ VI_TYPE = 'SCHA' Schäfer --> T-dependent
+ VI_TYPE = 'SCHD' Schäfer (dynamic) --> T-dependent
+ VI_TYPE = 'SHTE' Shternin --> T-dependent
+ VI_TYPE = 'STEI' Steinberg low-temperature --> T-dependent
+
+ * VI_TYPE : viscosity in 2D
+ VI_TYPE = 'SCHA' Schäfer --> T-dependent
+ graphene <-- VI_TYPE = 'KISC' Kiselev-Schmalian (dynamic) --> T-dependent
+ graphene <-- VI_TYPE = 'MSFA' Müller-Schmalian-Fritz --> T-dependent
+
+ ~
+
+ * EE_TYPE : e-e relaxation time in 3D
+ RT_TYPE = 'ALAR' --> Al'tshuler-Aronov (e-e + impurities)
+ RT_TYPE = 'BACA' --> Barriga-Carrasco approximation (e-e)
+ RT_TYPE = 'FSTB' --> Fann et al approximation (e-e)
+ RT_TYPE = 'QIVI' --> Qian-Vignale (e-e)
+ RT_TYPE = 'RASM' --> Rammer-Smith (e-e)
+ RT_TYPE = 'UTIC' --> Utsumi-Ichimaru approximation (e-e)
+ RT_TYPE = 'TAIC' --> Tanaka-Ichimaru approximation (e-e)
+
+
+ * EE_TYPE : relaxation time in 2D
+ EE_TYPE = 'FUAB' --> Fukuyama-Abrahams (disordered metals)
+ graphene <-- EE_TYPE = 'LUFO' --> Lucas-Fong (e-e)
+ EE_TYPE = 'QIVI' --> Qian-Vignale (e-e)
+ EE_TYPE = 'RASM' --> Rammer-Smith (e-e)
+ heterostructures <-- EE_TYPE = 'REWI' --> Reizer-Wilkins (e-e)
+ EI_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities)
+ EE_TYPE = 'ZHDA' --> Zhang-Das Sarma (e-e)
+
+ * EE_TYPE : relaxation time in 1D
+ EI_TYPE = 'SHAS' --> Sharma-Ashraf (e-e + impurities)
+
+ * EP_TYPE : e-phonon relaxation time in 3D
+ EP_TYPE = 'STEL' --> Steinberg low-temperature
+ EP_TYPE = 'STEH' --> Steinberg High-temperature
+
+ * EI_TYPE : e-impurit relaxation time in 3D
+ EI_TYPE = 'HEAP' --> Hertel-Appel approximation
+
+ ~
+
+ * IP_TYPE : ion plasma relaxation time in 3D
+ IP_TYPE = 'SEMO' --> Selchow-Morawetz approximation
+ IP_TYPE = 'SPIT' --> Spitzer approximation
+
+ * PD_TYPE : method used to compute the plasmon damping (3D)
+ PD_TYPE = 'NONE' --> no plasmon damping
+ PD_TYPE = 'CALL' --> Callen approximation
+ PD_TYPE = 'DGKA' --> DuBois-Gilinsky-Kivelson approximation
+ PD_TYPE = 'FEWA' --> Fetter and Walecka approximation
+ PD_TYPE = 'JEWS' --> Jewsbury approximation
+ PD_TYPE = 'LITI' --> Giuliani-Quinn lifetime approximation
+ PD_TYPE = 'MOPE' --> Molinari-Peerani approximation
+ PD_TYPE = 'NPSA' --> Ninham-Powel-Swanson approximation
+ PD_TYPE = 'SGAA' --> Segui-Gervasoni-Arista approximation
+
+ ~
+
+ * QD_TYPE : method used to compute q-dependent relaxation time
+ QD_TYPE = 'NONE' --> no q-dependence
+ QD_TYPE = 'GAUS' --> Gaussian
+ QD_TYPE = 'LORE' --> Lorentzian
+
+ * ZETA : Value of Tanaka-Ichimaru parameter
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * INT_POT : type of interaction potential (3D)
+ INT_POT = 'COULO' Coulomb interaction
+ INT_POT= 'YUKAW' Yukawa interaction
+ INT_POT= 'RPAPO' RPA interaction
+ INT_POT = 'OVER1' Overhauser interaction
+ INT_POT = 'OVER2' modified Overhauser interaction
+ INT_POT = 'DEUTS' Deutsch interaction
+ INT_POT = 'PHOLE' particle-hole interaction
+ INT_POT = 'KELBG' Kelbg interaction
+
+ * S :
+
+ * EPS :
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * EK : electron kinetic energy (eV)
+ * EP_C : electron-phonon coupling
+ * DEBYE_T : material Debye temperature
+
+ ~
+
+ * NA : number of atoms per unit volume
+ * MA : mass of the atoms
+ * RA : radius of the atoms
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * NI : impurity concentration
+ * EI_C : strength of impurity scattering
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+
+ * CF_TYPE : type of classical fluid calculation --> 3D
+ CF_TYPE = 'SHS' smooth hard spheres
+ CF_TYPE = 'RH1' rough hard spheres (Pidduck)
+ CF_TYPE = 'RH2' rough hard spheres (Condiff-Lu-Dahler)
+ CF_TYPE = 'RH3' rough hard spheres (McCoy-Sandler-Dahler)
+ CF_TYPE = 'DCE' dilute Chapman-Enskog
+ CF_TYPE = 'HCE' heavy (i.e. dense) Chapman-Enskog
+ CF_TYPE = 'LJF' Lennard-Jones fluid
+
+ CF_TYPE = 'DHD' dense hard disks --> 2D
+
+ * PF_TYPE : type of packing fraction --> 2D
+ PF_TYPE = 'HDM' --> hard disk model
+
+ --> 3D
+ PF_TYPE = 'HSM' --> hard sphere model
+ PF_TYPE = 'RCP' --> random closed-packed
+ PF_TYPE = 'FCC' --> FCC closed-packed
+ PF_TYPE = 'FRE' --> freezing
+ PF_TYPE = 'MEL' --> melting
+
+ * SL_TYPE : type of scattering length calculation
+ SL_TYPE = 'HSP' --> hard sphere potential
+ SL_TYPE = 'ASW' --> attractive square well (without bound state)
+ SL_TYPE = 'RSW' --> repulsive square well
+ SL_TYPE = 'DSP' --> delta-shell potential
+ SL_TYPE = 'AYP' --> attractive Yukawa potential
+ SL_TYPE = 'CCO' --> Coulomb cut-off potential
+ SL_TYPE = 'HUL' --> Hulthén potential
+
+ *=======+=========+=========+=========+=========+===========================*
+ * STRUCTURE FACTOR : *
+ *=======+=========+=========+=========+=========+===========================*
+
+
+ * SSTDY : static vs dynamic local-field corrections
+ SSTDY = ' STATIC' --> SQ_TYPE
+ SSTDY = 'DYNAMIC' --> SQO_TYPE
+
+ * SQ_TYPE : structure factor approximation (3D) --> static
+ SQ_TYPE = 'DEH' Debye-Hückel approximation
+ SQ_TYPE = 'GEA' generalized approximation
+ SQ_TYPE = 'GOR' Gorobchenko approximation
+ SQ_TYPE = 'GR2' computed from g(r) (GR_TO_SQ.f code)
+ SQ_TYPE = 'GSB' Gori-Giorgi-Sacchetti-Bachelet approximation
+ SQ_TYPE = 'HFA' Hartree-Fock approximation (only exchange)
+ SQ_TYPE = 'HUB' Hubbard approximation
+ SQ_TYPE = 'ICH' Ichimaru approximation
+ SQ_TYPE = 'MSA' mean spherical approximation
+ SQ_TYPE = 'PKA' Pietiläinen-Kallio
+ SQ_TYPE = 'RPA' RPA approximation
+ SQ_TYPE = 'SHA' Shaw approximation
+ SQ_TYPE = 'SIN' Singh
+ SQ_TYPE = 'SPA' Singh-Pathak
+ SQ_TYPE = 'TWA' Toigo-Woodruff approximation
+!
+ * SQO_TYPE : structure factor approximation (3D) --> dynamic
+ SQO_TYPE = 'ABA' Arista-Brandt approximation
+ SQO_TYPE = 'HFA' Hartree-Fock approximation
+ SQO_TYPE = 'HYD' hyrodynamic approximation
+ SQO_TYPE = 'IGA' ideal gas approximation
+ SQO_TYPE = 'ITA' Ichimaru-Tanaka approximation
+ SQO_TYPE = 'MFA' Hansen-McDonald-Pollock approximation
+ SQO_TYPE = 'NIC' Nakano-Ichimaru approximation
+ SQO_TYPE = 'UTI' Utsumi-Ichimaru approximation (3D)
+ SQO_TYPE = 'VLA' linearized Vlasov approximation
+
+ *=======+=========+=========+=========+=========+===========================*
+ * PAIR CORRELATION FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * GR_TYPE : pair correlation function approximation g(r) (3D)
+ GR_TYPE = 'CDF' from chain diagram formula of PDF (long distance)
+ GR_TYPE = 'DHA' Debye-Hückel approximation
+ GR_TYPE = 'DWA' DeWitt approximation
+ GR_TYPE = 'FBA' Frieman-Book approximation
+ GR_TYPE = 'HFA' Hartree-Fock approximation (only exchange)
+ GR_TYPE = 'HUB' Hubbard approximation
+ GR_TYPE = 'LLA' Lee-Long approximation
+ GR_TYPE = 'ORB' Ortiz-Ballone approximation
+ GR_TYPE = 'PDF' from pair distribution function
+ GR_TYPE = 'SHA' Shaw approximation
+ GR_TYPE = 'SQ2' computed from S(q) (SQ_TO_GR.f code)
+ GR_TYPE = 'WIG' Wigner approximation
+
+ * GR0_MODE : g(0) (3D)
+ GR0_MODE = 'CAGO' --> Calmels-Gold
+ GR0_MODE = 'DPGT' --> Davoudi-Polini-Giuliani-Tosi
+ GR0_MODE = 'HASA' --> Holas-Aravind-Singwi (small r_s)
+ GR0_MODE = 'ICHI' --> Ichimaru
+ GR0_MODE = 'KIMB' --> Kimball
+ GR0_MODE = 'OVE1' --> Overhauser 1
+ GR0_MODE = 'OVE2' --> Overhauser 2
+ GR0_MODE = 'QIAN' --> Qian
+ * GR0_MODE : g(0) (2D)
+ GR0_MODE = 'CAGO' --> Calmels-Gold
+ GR0_MODE = 'HAFO' --> Hartree-Fock
+ GR0_MODE = 'MOMA' --> Moreno-Marinescu
+ GR0_MODE = 'NSOA' --> Nagano-Singwi-Ohnishi
+ GR0_MODE = 'QIAN' --> Qian
+
+ *=======+=========+=========+=========+=========+===========================*
+ * PAIR DISTRIBUTION FUNCTION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * RH_TYPE : pair distribution function approximation (3D)
+ RH_TYPE = 'CDI' chain diagram improved
+ RH_TYPE = 'CEG' classical electron gas
+ RH_TYPE = 'DEB' Debye electron gas
+ RH_TYPE = 'FUA' correct to order 2 in epsilon
+ RH_TYPE = 'SDC' short-distance correlations
+ RH_TYPE = 'WDA' watermelon diagrams summed
+
+ *=======+=========+=========+=========+=========+===========================*
+ * ENERGY CALCULATIONS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * EC_TYPE : type of correlation energy functional (3D)
+ EC_TYPE = 'GEBR_W' --> Gell-Mann and Brueckner
+ EC_TYPE = 'CAMA_W' --> Carr and Maradudin
+ EC_TYPE = 'EHTY_S' --> Endo-Horiuchi-Takada-Yasuhara
+ EC_TYPE = 'HELU_W' --> Hedin and Lundqvist
+ EC_TYPE = 'VBHE_W' --> von Barth and Hedin
+ EC_TYPE = 'PEZU_W' --> Perdew and Zunger
+ EC_TYPE = 'WIGN_S' --> Wigner
+ EC_TYPE = 'NOPI_S' --> Nozières and Pines
+ EC_TYPE = 'LIRO_S' --> Lindgren and Rosen
+ EC_TYPE = 'PEZU_S' --> Perdew and Zunger
+ EC_TYPE = 'REHI_S' --> Rebei and Hitchon
+ EC_TYPE = 'GGSB_G' --> Gori-Giorgi-Sacchetti-Bachelet
+ EC_TYPE = 'PRKO_G' --> Proynov and Kong
+ EC_TYPE = 'VWNU_G' --> Vosko, Wilk and Nusair
+ EC_TYPE = 'PEWA_G' --> Perdew and Wang
+ EC_TYPE = 'HUBB_G' --> Hubbard
+ EC_TYPE = 'CHAC_G' --> Chachiyo
+ EC_TYPE = 'ISKO_T' --> Isihara and Kojima
+ * EC_TYPE : type of correlation energy functional (2D)
+ EC_TYPE = 'TACE_G' --> Tanatar-Ceperley
+ EC_TYPE = 'CPPA_G' --> Seidl-Perdew_Levy
+ EC_TYPE = 'AMGB_G' --> Attaccalite-Moroni-Gori-Giorgi-Bachelet
+ EC_TYPE = 'SEID_G' --> Seidl
+ EC_TYPE = 'LOOS_W' --> Loos
+ EC_TYPE = 'WIGN_S' --> Wigner
+ EC_TYPE = 'ISTO_T' --> Isihara-Toyoda
+ * EC_TYPE : type of correlation energy functional (1D)
+ EC_TYPE = 'LOOS_W' --> Loos
+ EC_TYPE = 'WIGN_S' --> Wigner
+
+
+ * FXC_TYPE : type of XC free energy functional --> 3D
+ FXC_TYPE = 'NO' --> None
+ FXC_TYPE = 'EB' --> Ebeling et al
+ FXC_TYPE = 'IC' --> Ichimaru et al
+ FXC_TYPE = 'KS' --> Karasiev et al
+ FXC_TYPE = 'VS' --> Vashishta and Singwi
+ FXC_TYPE = 'PD' --> Perrot and Dharma-Wardana
+ FXC_TYPE = 'EK' --> Ebeling-Kraeft-Kremp-Röpke
+
+ * EXC_TYPE : type of exchange-correlation energy functional --> 3D
+ EXC_TYPE = 'NO' --> None
+ EXC_TYPE = 'GT' --> Goedeker-Tetter-Hutter
+ EXC_TYPE = 'ST' -->
+ EXC_TYPE = 'BD' --> Brown-DuBois-Holzmann-Ceperley
+
+ ~
+
+
+ *=======+=========+=========+=========+=========+===========================*
+ * SPIN POLARIZATION : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * IMODE : choice of spin parameters
+ IMODE = 1 : no spin polarization
+ IMODE = 2 : fully spin-polarized
+
+ * XI : spin polarization : (n+ - n-) / n
+
+ *=======+=========+=========+=========+=========+===========================*
+ * THERMODYNAMIC PROPERTIES : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * TH_PROP : type of calculation --> thermodynamic properties
+ TH_PROP = 'CLAS' : classical approximation
+ TH_PROP = 'QUAN' : quantum approximation
+
+ * GP_TYPE : grand partition function type (3D)
+ GP_TYPE = 'IK0' Isihara-Kojima formulation
+ GP_TYPE = 'RH0' Rebei-Hitchon formulation
+ GP_TYPE = 'IKM' Isihara-Kojima with magnetic field
+
+ * GP_TYPE : grand partition function type (2D)
+ GP_TYPE = 'I20' Isihara-Kojima formulation
+ GP_TYPE = 'I2M' Isihara-Kojima with magnetic field
+
+ *=======+=========+=========+=========+=========+===========================*
+ * INCOMING ION BEAM : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * Z_BEAM : charge of ions in incoming beam
+ * EK_BEAM : kinetic energy of incoming beam ions (eV)
+
+ *=======+=========+=========+=========+=========+===========================*
+ * OUTPUT CALCULATIONS : *
+ *=======+=========+=========+=========+=========+===========================*
+
+ * I_DF : switch for dielectric function printing
+ I_DF = 0 : dielectric function not printed
+ I_DF = 1 : dielectric function printed in file 'diel_func.dat'
+
+ * I_PZ : switch for polarization function printing
+ I_PZ = 0 : polarization function not printed
+ I_PZ = 1 : polarization function printed in file 'pola_func.dat'
+
+ * I_SU : switch for susceptibility function printing
+ I_SU = 0 : susceptibility function not printed
+ I_SU = 1 : susceptibility function printed in file 'susc_func.dat'
+
+ * I_CD : switch for electrical conductivity printing
+ I_CD = 0 : electrical conductivity not printed
+ I_CD = 1 : electrical conductivity printed in file 'cond_func.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_PD : switch for plasmon dispersion printing
+ I_PD = 0 : plasmon dispersion not calculated
+ I_PD = 1 : plasmon dispersion printed in file 'plas_disp.dat'
+
+ * I_EH : switch for electron-hole dispersion printing
+ I_EH = 0 : electron-hole dispersion not calculated
+ I_EH = 1 : electron-hole dispersion printed in file 'elec_hole.dat'
+
+ * I_E2 : switch for two-electron-hole dispersion printing
+ I_E2 = 0 : two-electron-hole dispersion not calculated
+ I_E2 = 1 : two-electron-hole dispersion printed in file 'elec_hol2.dat'
+
+ * I_CK : switch for k-space e-e interaction potential printing
+ I_CK = 0 : potential not calculated
+ I_CK = 1 : potential printed in file 'int_pot_k.dat'
+
+ * I_CR : switch for real-space e-e interaction potential printing
+ I_CR = 0 : potential not calculated
+ I_CR = 1 : potential printed in file 'int_pot_r.dat'
+
+ * I_SA : switch for scattering amplitude printing
+ I_SA = 0 : scattering amplitude not calculated
+ I_SA = 1 : scattering amplitude printed in file 'scat_ampl.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_LF : switch for local-field corrections G(q,omega) printing
+ I_LF = 0 : local-field corrections not calculated
+ I_LF = 1 : local-field corrections printed in file 'loca_fiel.dat'
+
+ * I_IQ : switch for G(q,inf) printing
+ I_IQ = 0 : G(q,inf) not calculated
+ I_IQ = 1 : G(q,inf) printed in file 'ginf_fiel.dat'
+
+ * I_SF : switch for structure factor S(q,omega) printing
+ I_SF = 0 : structure factor not calculated
+ I_SF = 1 : structure factor printed in file 'stru_fact.dat'
+
+ * I_PC : switch for pair correlation function g(r) printing
+ I_PC = 0 : pair correlation function not calculated
+ I_PC = 1 : pair correlation function printed in file 'pair_corr.dat'
+
+ ~
+
+ * I_P2 : switch for pair distribution rho2(r) printing
+ I_P2 = 0 : pair distribution function not calculated
+ I_P2 = 1 : pair distribution function printed in file 'pair_dist.dat'
+
+ * I_VX : switch for vertex function Gamma(q,omega) printing
+ I_VX = 0 : vertex function not calculated
+ I_VX = 1 : vertex function printed in file 'vertex_fu.dat'
+
+ * I_DC : switch for plasmon damping coefficient Im[eps]/q^2 printing
+ I_DC = 0 : plasmon damping not calculated
+ I_DC = 1 : plasmon damping printed in file 'plas_damp.dat'
+
+ * I_MD : switch for momentum distribution printing
+ I_MD = 0 : momentum distribution not calculated
+ I_MD = 1 : momentum distribution printed in file 'mome_dist.dat'
+
+ ~
+
+ * I_LD : switch for Landau parameters printing
+ I_LD = 0 : Landau parameters not calculated
+ I_LD = 1 : Landau parameters printed in file 'landau_pa.dat'
+
+ * I_DP : switch for damping printing
+ I_DP = 0 : damping not calculated
+ I_DP = 1 : damping printed in file 'damp_file.dat'
+
+ * I_LT : switch for plasmon lifetime printing
+ I_LT = 0 : plasmon lifetime not calculated
+ I_LT = 1 : plasmon lifetime printed in file 'life_time.dat'
+
+ * I_BR : switch for plasmon broadening printing
+ I_BR = 0 : plasmon broadening not calculated
+ I_BR = 1 : plasmon broadening printed in file 'broadenin.dat'
+
+ ~
+
+ * I_PE : switch for plasmon energy printing
+ I_PE = 0 : plasmon energy not calculated
+ I_PE = 1 : plasmon energy printed in file 'plas_ener.dat'
+
+ * I_QC : switch for plasmon q-bounds printing
+ I_QC = 0 : plasmon q-bounds not calculated
+ I_QC = 1 : plasmon q-bounds printed in file 'qc_bounds.dat'
+
+ * I_RL : switch for relaxation time printing
+ I_RL = 0 : relaxation time not calculated
+ I_RL = 1 : relaxation time printed in file 'rela_time.dat'
+
+ * I_TF : switch for Thomas-Fermi wave vector printing
+ I_TF = 0 : Thomas-Fermi wave vector not calculated
+ I_TF = 1 : Thomas-Fermi wave vector printed in file 'thomas-fe.dat'
+
+ ~
+
+ * I_DY : switch for Debye wave vector printing
+ I_DY = 0 : Debye wave vector not calculated
+ I_DY = 1 : Debye wave vector printed in file 'debye_wav.dat'
+
+ * I_ME : switch for moments of epsilon(q,omega) printing
+ I_ME = 0 : moments of epsilon not calculated
+ I_ME = 1 : moments of epsilon printed in file 'moments_e.dat'
+
+ * I_MS : switch for moments of S(q,omega) printing
+ I_MS = 0 : moments of structure factor not calculated
+ I_MS = 1 : moments of structure factor printed in file 'moments_s.dat'
+
+ * I_ML : switch for moments of loss function printing
+ I_ML = 0 : moments of loss function not calculated
+ I_ML = 1 : moments of loss function printed in file 'moments_l.dat'
+
+ ~
+
+ * I_MC : switch for moments of conductivity printing
+ I_MC = 0 : moments of conductivity not calculated
+ I_MC = 1 : moments of conductivity printed in file 'moments_c.dat'
+
+ * I_DE : switch for derivative of Re[ dielectric function ] printing
+ I_DE = 0 : derivative not calculated
+ I_DE = 1 : derivative printed in file 'deri_epsi.dat'
+
+ * I_ZE : switch for Re[ dielectric function ] = 0 printing
+ I_ZE = 0 : function not calculated
+ I_ZE = 1 : function printed in file 'ree0_file.dat'
+
+ * I_SR : switch for sum rules for epsilon printing
+ I_SR = 0 : sum rules not calculated
+ I_ST = 1 : sum rules printed in file 'sum_rules.dat'
+
+ ~
+
+ * I_CW : switch for confinement wave function printing
+ I_CW = 0 : confinement wave function not calculated
+ I_CW = 1 : confinement wave function printed in file 'confin_wf.dat'
+
+ * I_CF : switch for confinement potential printing
+ I_CF = 0 : confinement potential not calculated
+ I_CF = 1 : confinement potential printed in file 'confin_pt.dat'
+
+ * I_EM : switch for effective mass printing
+ I_EM = 0 : effective mass not calculated
+ I_EM = 1 : effective mass printed in file 'effe_mass.dat'
+
+ * I_MF : switch for mean free path printing
+ I_MF = 0 : mean free path not calculated
+ I_MF = 1 : mean free path printed in file 'mean_path.dat'
+
+ ~
+
+ * I_SP : switch for spectral function printing
+ I_SP = 0 : spectral function not calculated
+ I_SP = 1 : spectral function printed in file 'spec_func.dat'
+
+ * I_SE : switch for self-energy printing
+ I_SE = 0 : self-energy not calculated
+ I_SE = 1 : self-energy printed in file 'self_ener.dat'
+
+ * I_NV : switch for Nevanlinaa function printing
+ I_NV = 0 : Nevanlinaa function not calculated
+ I_NV = 1 : Nevanlinaa function printed in file 'nevanlina.dat'
+
+ * I_ES : switch for Eliashberg function printing
+ I_ES = 0 : Eliashberg function not calculated
+ I_ES = 1 : Eliashberg function printed in file 'elia_func.dat'
+
+ ~
+
+ * I_GR : switch for Grüneisen parameter printing
+ I_GR = 0 : Grüneisen parameter not calculated
+ I_GR = 1 : Grüneisen parameter printed in file 'grune_par.dat'
+
+ * I_FD : switch for Fermi-Dirac distribution printing
+ I_FD = 0 : Fermi-Dirac distribution not calculated
+ I_FD = 1 : Fermi-Dirac distribution printed in file 'fermi_dir.dat'
+
+ * I_BE : switch for Bose-Einstein distribution printing
+ I_BE = 0 : Bose-Einstein distribution not calculated
+ I_BE = 1 : Bose-Einstein distribution printed in file 'bose_eins.dat'
+
+ * I_MX : switch for Maxwell distribution printing
+ I_MX = 0 : Maxwell distribution not calculated
+ I_MX = 1 : Maxwell distribution printed in file 'maxwell_d.dat'
+
+ ~
+
+ * I_SC : switch for scale parameters printing
+ I_SC = 0 : scale parameters not calculated
+ I_SC = 1 : scale parameters printed in file 'scale_par.dat'
+
+ * I_DS : switch for density of states printing
+ I_DS = 0 : density of states not calculated
+ I_DS = 1 : density of states printed in file 'dens_stat.dat'
+
+ * I_SB : switch for subband energies printing
+ I_SB = 0 : subband energies not calculated
+ I_SB = 1 : subband energies printed in file 'subb_ener.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_GP : switch for grand partition function printing
+ I_GP = 0 : grand partition function not calculated
+ I_GP = 1 : grand partition function printed in file 'gran_part.dat'
+
+ * I_PR : switch for electronic pressure printing
+ I_PR = 0 : electronic pressure not calculated
+ I_PR = 1 : electronic pressure printed in file 'epressure.dat'
+
+ * I_CO : switch for compressibility printing
+ I_CO = 0 : compressibility not calculated
+ I_CO = 1 : compressibility printed in file 'comp_file.dat'
+
+ * I_CP : switch for chemical potential printing
+ I_CP = 0 : chemical potential not calculated
+ I_CP = 1 : chemical potential printed in file 'chem_pote.dat'
+
+ ~
+
+ * I_BM : switch for bulk modulus printing
+ I_BM = 0 : bulk modulus not calculated
+ I_BM = 1 : bulk modulus printed in file 'bulk_modu.dat'
+
+ * I_SH : switch for shear modulus printing
+ I_SH = 0 : shear modulus not calculated
+ I_SH = 1 : shear modulus printed in file 'shear_mod.dat'
+
+ * I_S0 : switch for zero sound velocity printing
+ I_S0 = 0 : zero sound velocity not calculated
+ I_S0 = 1 : zero sound velocity printed in file 'zero_soun.dat'
+
+ * I_S1 : switch for first sound velocity printing
+ I_S1 = 0 : first sound velocity not calculated
+ I_S1 = 1 : first sound velocity printed in file 'firs_soun.dat'
+
+ ~
+
+ * I_DT : switch for Debye temperature printing
+ I_DT = 0 : Debye temperature not calculated
+ I_DT = 1 : Debye temperature printed in file 'Debye_tmp.dat'
+
+ * I_PS : switch for Pauli paramagnetic susceptibility printing
+ I_PS = 0 : Pauli paramagnetic susceptibility not calculated
+ I_PS = 1 : Pauli paramagnetic susceptibility printed in file 'para_susc.dat'
+
+ * I_IE : switch for internal energy printing
+ I_IE = 0 : internal energy not calculated
+ I_IE = 1 : internal energy printed in file 'inter_ene.dat'
+
+ * I_EI : switch for excess internal energy printing
+ I_EI = 0 : excess internal energy not calculated
+ I_EI = 1 : excess internal energy printed in file 'exces_ene.dat'
+
+ ~
+
+ * I_FH : switch for Helmholtz free energy printing
+ I_FH = 0 : Helmholtz free energy not calculated
+ I_FH = 1 : Helmholtz free energy printed in file 'helm_free.dat'
+
+ * I_EY : switch for entropy printing
+ I_EY = 0 : entropy not calculated
+ I_EY = 1 : entropy printed in file 'entropy_f.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_EF : switch for Fermi energy printing
+ I_EF = 0 : Fermi energy not calculated
+ I_EF = 1 : Fermi energy printed in file 'fermi_ene.dat'
+
+ * I_KF : switch for Fermi momentum printing
+ I_KF = 0 : Fermi momentum not calculated
+ I_KF = 1 : Fermi momentum printed in file 'fermi_vec.dat'
+
+ * I_VF : switch for Fermi velocity printing
+ I_VF = 0 : Fermi velocity not calculated
+ I_VF = 1 : Fermi velocity printed in file 'fermi_vel.dat'
+
+ * I_TE : switch for Fermi temperature printing
+ I_TE = 0 : Fermi temperature not calculated
+ I_TE = 1 : Fermi temperature printed in file 'fermi_tmp.dat'
+
+ ~
+
+ * I_DL : switch for density of states at Fermi level printing
+ I_DL = 0 subband energies: density of states at Fermi level not calculated
+ I_DL = 1 : density of states at Fermi level printed in file 'fermi_dos.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_TW : switch for thermal De Broglie wavelength printing
+ I_TW = 0 : thermal De Broglie wavelength not calculated
+ I_TW = 1 : thermal De Broglie wavelength printed in file 'thermal_w.dat'
+
+ * I_VT : switch for thermal velocity printing
+ I_VT = 0 : thermal velocity not calculated
+ I_VT = 1 : thermal velocity printed in file 'thermal_v.dat'
+
+ * I_TC : switch for thermal conductivity printing
+ I_TC = 0 : thermal conductivity not calculated
+ I_TC = 1 : thermal conductivity printed in file 'thermal_c.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_EG : switch for ground state energy printing
+ I_EG = 0 : ground state energy not calculated
+ I_EG = 1 : ground state energy printed in file 'ground_st.dat'
+
+ * I_EX : switch for exchange energy printing
+ I_EX = 0 : exchange energy not calculated
+ I_EX = 1 : exchange energy printed in file 'ex_energy.dat'
+
+ * I_XC : switch for exchange correlation energy printing
+ I_XC = 0 : exchange correlation energy not calculated
+ I_XC = 1 : exchange correlation energy printed in file 'xc_energy.dat'
+
+ * I_EC : switch for correlation energy printing
+ I_EC = 0 : correlation energy not calculated
+ I_EC = 1 : correlation energy printed in file 'corr_ener.dat'
+
+ ~
+
+ * I_HF : switch for Hartree-Fock energy printing
+ I_HF = 0 : Hartree-Fock energy not calculated
+ I_HF = 1 : Hartree-Fock energy printed in file 'hf_energy.dat'
+
+ * I_EK : switch for kinetic energy printing
+ I_EK = 0 : kinetic energy not calculated
+ I_EK = 1 : kinetic energy printed in file 'kine_ener.dat'
+
+ * I_EP : switch for potential energy printing
+ I_EP = 0 : potential energy not calculated
+ I_EP = 1 : potential energy printed in file 'pote_ener.dat
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_VI : switch for shear viscosity printing
+ I_VI = 0 : shear viscosity not calculated
+ I_VI = 1 : shear viscosity printed in file 'visc_coef.dat'
+
+ * I_DI : switch for diffusion coefficient printing
+ I_DI = 0 : diffusion coefficient not calculated
+ I_DI = 1 : diffusion coefficient printed in file 'diff_coef.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_FP : switch for fluctuation potential calculation
+ I_FP = 0 : fluctuation potential not calculated
+ I_FP = 1 : fluctuation potential printed in file 'fluct_pot.dat'
+
+ * I_EL : switch for loss function calculation
+ I_EL = 0 : loss function not calculated
+ I_EL = 1 : loss function printed in file 'ener_loss.dat'
+
+ * I_PO : switch for stopping power calculation
+ I_PO = 0 : stopping power not calculated
+ I_PO = 1 : stopping power printed in file 'stop_powe.dat'
+
+ * I_RF : switch for refractive index calculation
+ I_RF = 0 : refractive index not calculated
+ I_RF = 1 : refractive index printed in file 'refrac_in.dat'
+
+ ~
+
+ * I_VC : switch for dynamic screened Coulomb potential V(q,omega) calculation
+ I_RF = 0 : dynamic screened Coulomb potential not calculated
+ I_RF = 1 : dynamic screened Coulomb potential printed in file 'dyna_coul.dat'
+
+ *-------+---------+---------+---------+---------+---------------------------*
+
+ * I_FN : switch for appending the calculation type string
+ to the output filename
+ I_FN = 0 : standard output filename
+ I_FN = 1 : parameter added to filename
+
+ * I_WR : switch for writing physical properties into the log file
+ I_WR = 0 : does not write
+ I_WR = 1 : writes
diff --git a/src/python/msspec_dfm/__init__.py b/src/python/msspec_dfm/__init__.py
new file mode 100644
index 0000000..a3a6446
--- /dev/null
+++ b/src/python/msspec_dfm/__init__.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/msspec_dfm/__init__.py
+# Last modified: Fri, 25 Feb 2022 17:27:31 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+from msspec_dfm.version import __version__
+try:
+ from msspec_dfm.compute import compute
+except ModuleNotFoundError as err:
+ pass
diff --git a/src/python/msspec_dfm/cli.py b/src/python/msspec_dfm/cli.py
new file mode 100644
index 0000000..f9d03f0
--- /dev/null
+++ b/src/python/msspec_dfm/cli.py
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/msspec_dfm/cli.py
+# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+import click
+import logging
+import os
+from msspec_dfm.input_file import InputFile
+from msspec_dfm.version import __version__
+from msspec_dfm.eps import epsilon
+from msspec_dfm import plotting
+
+@click.group(invoke_without_command=True, no_args_is_help=True)
+@click.option('--version', is_flag=True,
+ help='Print the program version and exit.')
+@click.option('-v', '--verbose', count=True,
+ help='Increase the verbosity output. Full verbosity for -vvv')
+def main(version, verbose):
+ # Adjust the verbosity level
+ verbosity_levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG]
+ logging.basicConfig(level=verbosity_levels[min(verbose, len(verbosity_levels)-1)])
+
+ # Print the version and exit
+ if version:
+ logging.debug('Getting the version number...')
+ print(__version__)
+ exit(0)
+
+
+@main.command()
+@click.option('--input-file', default='Data/epsilon.dat', show_default=True,
+ metavar='FILE_NAME',
+ help='The input filename.')
+def generate(input_file):
+ """Generate an input file.
+
+ An input file with default parameters will be written to INPUT_FILE.
+ """
+ logging.debug("Generating the input file \'{:s}\'...".format(input_file))
+ input_data = InputFile(input_file)
+ input_data.write()
+ logging.info("Input file with default values generated in: {}".format(input_file))
+
+
+@main.command()
+@click.argument('input-file')
+@click.option('--folder', default='./Results', show_default=True,
+ metavar='FOLDER_NAME',
+ help='The output folder.')
+def compute(input_file, folder):
+ """Compute the dielectric function.
+
+ All the calculation parameters are defined in INPUT_FILE.
+ See help of the 'generate' command for a full reference of the file
+ format and all the options.
+ """
+ logging.info("Computing...")
+ logging.debug(" Input file : \'{:s}\'".format(input_file))
+ logging.debug(" Output folder: \'{:s}\'".format(folder))
+ epsilon(input_file, folder)
+
+
+@main.command()
+@click.argument('plot-type', metavar='TYPE',
+ type=click.Choice(['diel_func', 'susc_func', 'cond_func',
+ 'loca_fiel', 'stru_fact', 'vertex_fu',
+ 'deri_epsi', 'self_ener', 'dyna_coul'],
+ case_sensitive=False))
+@click.option('--folder', default='./Results', show_default=True, metavar='FOLDER_NAME',
+ help='The folder containing the results.')
+@click.option('--img', is_flag=True,
+ help='Select imaginery part.')
+@click.option('--bounds', nargs=2, type=float, default=[-2, 2], show_default=True,
+ metavar='LOWER UPPER',
+ help='Limits for the colorbar scale.')
+@click.option('--plot3d', is_flag=True,
+ help='Plot in 3D.')
+@click.option('--contour', is_flag=True,
+ help='Add contours.')
+@click.option('--pdeh', is_flag=True,
+ help='Add the dispersion and electron-hole curves.')
+@click.option('--levels', type=int, default=8, show_default=True,
+ help='Number of levels for contour plots.')
+@click.option('--Ef', 'Ef', type=float, default=1, show_default=True,
+ help='Fermi energy if renormalization is needed.')
+@click.option('--strides', type=int, default=64, show_default=True,
+ help='Number of strides for 3D plot. The lower, the higher the resolution.')
+def plot(plot_type, folder, img, bounds, plot3d, contour, pdeh, levels, Ef, strides):
+ """Plotting the results.
+
+ \b
+ The plot TYPE value may be one of the following values:
+ * diel_func
+ * susc_func
+ * cond_func
+ * loca_fiel
+ * stru_fact
+ * vertex_fu
+ * deri_epsi
+ * self_ener
+ * dyna_coul
+ """
+ logging.debug("Plotting...")
+ for key, value in locals().items():
+ logging.debug(" {}: {}".format(key, value))
+
+ # data = plotting.Data(os.path.join(folder, plot_type + ".dat"))
+ # data.load(imag=img)
+
+ # pw = plotting.PlotWindow3d(data)
+ # pw.plot()
+ # pw.show()
+
+ # start by loading data
+ df_file = os.path.join(folder, 'diel_func.dat')
+ pd_file = os.path.join(folder, 'plas_disp.dat')
+ eh_file = os.path.join(folder, 'elec_hole.dat')
+ X, Y, ReZ, ImZ, pd, eh = plotting.load_data(df_file, pd_file, eh_file)
+
+ vmin, vmax = bounds
+ Z = ReZ
+ if img:
+ Z = ImZ
+
+ fig = ax = None
+
+ if not(plot3d):
+ fig, ax = plotting.plot_2d(X, Y, Z, cmap=plotting.cmap, vmin=vmin, vmax=vmax, fig=fig, ax=ax)
+ else:
+ fig, ax = plotting.plot_3d(X, Y, Z, cmap=plotting.cmap, vmin=vmin, vmax=vmax, fig=fig, ax=ax, strides=strides)
+
+ if contour:
+ fig, ax = plotting.plot_contour(X, Y, ReZ, levels=levels, vmin=vmin, vmax=vmax,
+ cmap=None, colors='black', fig=fig, ax=ax)
+
+ if pdeh:
+ fig, ax = plotting.plot_pdeh(pd, eh, Ef=Ef, fig=fig, ax=ax)
+
+ plotting.entitle(fig, ax, img=img)
+ plotting.plt.show()
+
+
+
+
+if __name__ == '__main__':
+ main()
diff --git a/src/python/msspec_dfm/compute.py b/src/python/msspec_dfm/compute.py
new file mode 100644
index 0000000..cb47bf6
--- /dev/null
+++ b/src/python/msspec_dfm/compute.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/msspec_dfm/version.py
+# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+import os
+import sys
+from tempfile import NamedTemporaryFile, TemporaryDirectory
+
+from matplotlib import pyplot as plt
+import numpy as np
+
+from msspec_dfm.input_file import InputFile
+from msspec_dfm.eps import epsilon
+
+from contextlib import redirect_stdout
+
+def compute(filename=None, folder=None, logfile='-', **parameters):
+ # If filename is None, a temporary name is provided
+ if filename is None:
+ filename = NamedTemporaryFile().name
+
+ # If folder is None, a temporary name is provided
+ if folder is None:
+ folder = TemporaryDirectory().name
+
+ if logfile != '-':
+ sys.stdout.flush()
+ old_fd = os.dup(1)
+ os.close(1)
+ os.open(logfile, os.O_WRONLY|os.O_CREAT)
+
+ data = {}
+ input_file = InputFile(filename, **parameters)
+ input_file.write()
+ epsilon(filename, folder)
+ for root, dirs, files in os.walk(folder):
+ for f in files:
+ data[os.path.splitext(f)[0]] = np.loadtxt(os.path.join(root, f))
+
+ if logfile != '-':
+ os.close(1)
+ os.dup(old_fd)
+ os.close(old_fd)
+
+ return data
diff --git a/src/python/msspec_dfm/input_file.py b/src/python/msspec_dfm/input_file.py
new file mode 100644
index 0000000..bd3d643
--- /dev/null
+++ b/src/python/msspec_dfm/input_file.py
@@ -0,0 +1,498 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/msspec_dfm/version.py
+# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+import os
+
+class InputFile:
+ defaults = {
+ # GENERAL PARAMETERS
+ # (q, omega, r)
+ 'Q_MIN' : (0.010, '13.3f'),
+ 'Q_MAX' : (4.000, '13.3f'),
+ 'N_Q' : (1000, '10d'),
+ 'E_MIN' : (0.010, '13.3f'),
+ 'E_MAX' : (4.000, '13.3f'),
+ 'N_E' : (2000, '10d'),
+ 'R_MIN' : (0.010, '13.3f'),
+ 'R_MAX' : (4.000, '13.3f'),
+ 'N_R' : (2000, '>10d'),
+ # Material's properties
+ 'RS' : (2.079, '13.3f'),
+ 'MSOM' : (1.000, '13.3f'),
+ 'MAT_TYP' : ('SCHRO', '>10s'),
+ 'EPS_B' : (1.000, '13.3f'),
+ # External fields
+ 'T' : (1.00, '12.2f'),
+ 'E' : (0.000, '13.3f'),
+ 'H' : (0.000, '13.3f'),
+ 'FLD' : ('NO', '>10s'),
+ # System's dimension
+ 'DIM' : ('3D', '>10s'),
+ # Confinement
+ 'R0' : (0.000, '13.3f'),
+ 'L' : (0.000, '13.3f'),
+ 'OM0' : (0.00, '12.2f'),
+ 'CONFIN' : ('NO-CONF', '>10s'),
+ # Multilayer structure
+ 'DL' : (0.000, '13.3f'),
+ 'D1' : (0.000, '13.3f'),
+ 'N_DEP' : (0.00, '12.2f'),
+ 'N_INV' : (0.00, '12.2f'),
+ 'H_TYPE' : ('NONE', '>10s'),
+ 'EPS_1' : (12.000, '13.3f'),
+ 'EPS_2' : (12.000, '13.3f'),
+ # Units
+ 'UNIT' : ('SIU', '>10s'),
+ 'UNIK' : ('SI', '>10s'),
+ # Screening
+ 'SC_TYPE' : ('NO', '>10s'),
+ # Plasma type
+ 'PL_TYPE' : ('OCP', '>10s'),
+ 'ZION' : (1.000, '13.3f'),
+ 'ZION2' : (0.000, '13.3f'),
+ # Calculation type
+ 'CAL_TYPE' : ('QUANTUM', '>10s'),
+ # DIELECTRIC FUNCTION
+ 'ESTDY' : ('DYNAMIC', '>10s'),
+ 'EPS_T' : ('LONG', '>10s'),
+ 'D_FUNC' : ('NEV3', '>10s'),
+ 'I_T' : (0, '>10d'),
+ 'NEV_TYPE' : ('STA2', '>10s'),
+ 'MEM_TYPE' : ('COCO', '>10s'),
+ 'ALPHA' : (0.500, '13.3f'),
+ 'BETA' : (0.600, '13.3f'),
+ # Analytical plasmon dispersion
+ 'PL_DISP' : ('RP2_MOD', '>10s'),
+ # Local-field corrections
+ 'GSTDY' : ('STATIC', '>10s'),
+ 'GQ_TYPE' : ('ICUT', '>10s'),
+ 'IQ_TYPE' : ('IKP', '>10s'),
+ 'LANDAU' : ('NONE', '>10s'),
+ 'GQO_TYPE' : ('NONE', '>10s'),
+ 'G0_TYPE' : ('EC', '>10s'),
+ 'GI_TYPE' : ('EC', '>10s'),
+ # Damping
+ 'DAMPING' : ('RELA', '>10s'),
+ 'LT_TYPE' : ('NONE', '>10s'),
+ 'RT_TYPE' : ('EX1', '>10s'),
+ 'DR_TYPE' : ('NONE', '>10s'),
+ 'DC_TYPE' : ('EXTE', '>10s'),
+ 'VI_TYPE' : ('NONE', '>10s'),
+ 'EE_TYPE' : ('NONE', '>10s'),
+ 'EP_TYPE' : ('NONE', '>10s'),
+ 'EI_TYPE' : ('NONE', '>10s'),
+ 'IP_TYPE' : ('NONE', '>10s'),
+ 'PD_TYPE' : ('NONE', '>10s'),
+ 'QD_TYPE' : ('LORE', '>10s'),
+ 'ZETA' : (1.250, '13.3f'),
+ 'D_VALUE_1': (0.500, '13.3f'),
+ 'POWER_1' : ('FEMTO', '>10s'),
+ 'EK' : (50.00, '12.2f'),
+ 'D_VALUE_2': (5.000, '13.3f'),
+ 'POWER_2' : ('FEMTO', '>10s'),
+ 'PCT' : (0.80, '12.2f'),
+ # Electron-electron interaction
+ 'INT_POT' : ('COULO', '>10s'),
+ 'S' : (2.590, '13.3f'),
+ 'EPS' : (470.000, '13.3f'),
+ 'DELTA' : (1.500, '13.3f'),
+ 'RC' : (1.500, '13.3f'),
+ 'ALF' : (5.000, '13.3f'),
+ 'M' : (7, '10d'),
+ 'N' : (28, '10d'),
+ 'A1' : (1.000, '13.3f'),
+ 'A2' : (1.000, '13.3f'),
+ 'A3' : (1.000, '13.3f'),
+ 'A4' : (1.000, '13.3f'),
+ # Electron-phonon interaction
+ 'EP_C' : (1500.000, '13.3f'),
+ 'DEBYE_T' : (1500.000, '13.3f'),
+ 'NA' : (12.000, '13.3f'),
+ 'MA' : (0.000, '13.3f'),
+ 'RA' : (0.000, '13.3f'),
+ # Electron-impurity interaction
+ 'NI' : (0.000, '13.3f'),
+ 'EI_C' : (0.000, '13.3f'),
+ # Classical fluid parameters
+ 'CF_TYPE' : ('SHS', '>10s'),
+ 'PF_TYPE' : ('HSM', '>10s'),
+ 'SL_TYPE' : ('HSP', '>10s'),
+ # STRUCTURE FACTOR
+ 'SSTDY' : ('DYNAMIC', '>10s'),
+ 'SQ_TYPE' : ('PKA', '>10s'),
+ 'SQO_TYPE' : ('EPS', '>10s'),
+ # PAIR CORRELATION FUNCTION
+ 'GR_TYPE' : ('SHA', '>10s'),
+ 'GR0_MODE' : ('KIMB', '>10s'),
+ # PAIR DISTRIBUTION FUNCTION
+ 'RH_TYPE' : ('CEG', '>10s'),
+ # SPECTRAL FUNCTION
+ 'SPF_TYPE' : ('NAIC', '>10s'),
+ # ENERGY CALCULATIONS
+ 'EC_TYPE' : ('GGSB_G', '>10s'),
+ 'FXC_TYPE' : ('NO', '>10s'),
+ 'EXC_TYPE' : ('NO', '>10s'),
+ 'EX_TYPE' : ('HEG', '>10s'),
+ 'EK_TYPE' : ('HEG', '>10s'),
+ # SPIN POLARIZATION
+ 'IMODE' : (1, '10d'),
+ 'XI' : (0.000, '13.3f'),
+ # THERMODYNAMIC PROPERTIES
+ 'TH_PROP' : ('QUAN', '>10s'),
+ 'GP_TYPE' : ('IK0', '>10s'),
+ # ELECTRON MEAN FREE PATH
+ 'EK_INI' : (150.00, '12.2f'),
+ 'EK_FIN' : (200.00, '12.2f'),
+ # CALCULATIONS OF MOMENTS
+ 'N_M' : (1, '10d'),
+ 'M_TYPE' : ('SQO', '>10s'),
+ # INCOMING ION BEAM
+ 'Z_BEAM' : (1.00, '12.2f'),
+ 'EK_BEAM' : (15000.00, '12.2f'),
+ # OUTPUT CALCULATIONS/PRINTING
+ 'I_DF' : (1, '10d'),
+ 'I_PZ' : (0, '10d'),
+ 'I_SU' : (0, '10d'),
+ 'I_CD' : (0, '10d'),
+ 'I_PD' : (1, '10d'),
+ 'I_EH' : (1, '10d'),
+ 'I_E2' : (0, '10d'),
+ 'I_CK' : (0, '10d'),
+ 'I_CR' : (0, '10d'),
+ 'I_PK' : (0, '10d'),
+ 'I_LF' : (0, '10d'),
+ 'I_IQ' : (0, '10d'),
+ 'I_SF' : (0, '10d'),
+ 'I_PC' : (0, '10d'),
+ 'I_P2' : (0, '10d'),
+ 'I_VX' : (0, '10d'),
+ 'I_DC' : (0, '10d'),
+ 'I_MD' : (0, '10d'),
+ 'I_LD' : (0, '10d'),
+ 'I_DP' : (0, '10d'),
+ 'I_LT' : (0, '10d'),
+ 'I_BR' : (0, '10d'),
+ 'I_PE' : (0, '10d'),
+ 'I_QC' : (0, '10d'),
+ 'I_RL' : (0, '10d'),
+ 'I_KS' : (0, '10d'),
+ 'I_OQ' : (0, '10d'),
+ 'I_ME' : (0, '10d'),
+ 'I_MS' : (0, '10d'),
+ 'I_ML' : (0, '10d'),
+ 'I_MC' : (0, '10d'),
+ 'I_DE' : (0, '10d'),
+ 'I_ZE' : (0, '10d'),
+ 'I_SR' : (0, '10d'),
+ 'I_CW' : (0, '10d'),
+ 'I_CF' : (0, '10d'),
+ 'I_EM' : (0, '10d'),
+ 'I_MF' : (0, '10d'),
+ 'I_SP' : (0, '10d'),
+ 'I_SE' : (0, '10d'),
+ 'I_SB' : (0, '10d'),
+ 'I_ES' : (0, '10d'),
+ 'I_GR' : (0, '10d'),
+ 'I_FD' : (0, '10d'),
+ 'I_BE' : (0, '10d'),
+ 'I_MX' : (0, '10d'),
+ 'I_SC' : (0, '10d'),
+ 'I_DS' : (0, '10d'),
+ 'I_NV' : (0, '10d'),
+ 'I_MT' : (0, '10d'),
+ 'I_GP' : (0, '10d'),
+ 'I_PR' : (0, '10d'),
+ 'I_CO' : (0, '10d'),
+ 'I_CP' : (0, '10d'),
+ 'I_BM' : (0, '10d'),
+ 'I_SH' : (0, '10d'),
+ 'I_S0' : (0, '10d'),
+ 'I_S1' : (0, '10d'),
+ 'I_DT' : (0, '10d'),
+ 'I_PS' : (0, '10d'),
+ 'I_IE' : (0, '10d'),
+ 'I_EI' : (0, '10d'),
+ 'I_FH' : (0, '10d'),
+ 'I_EY' : (0, '10d'),
+ 'I_EF' : (1, '10d'),
+ 'I_KF' : (1, '10d'),
+ 'I_VF' : (1, '10d'),
+ 'I_TE' : (1, '10d'),
+ 'I_DL' : (1, '10d'),
+ 'I_TW' : (0, '10d'),
+ 'I_VT' : (0, '10d'),
+ 'I_TC' : (0, '10d'),
+ 'I_EG' : (0, '10d'),
+ 'I_EX' : (0, '10d'),
+ 'I_XC' : (0, '10d'),
+ 'I_EC' : (0, '10d'),
+ 'I_HF' : (0, '10d'),
+ 'I_EK' : (0, '10d'),
+ 'I_EP' : (0, '10d'),
+ 'I_VI' : (0, '10d'),
+ 'I_DI' : (0, '10d'),
+ 'I_FP' : (0, '10d'),
+ 'I_EL' : (0, '10d'),
+ 'I_PO' : (0, '10d'),
+ 'I_RF' : (0, '10d'),
+ 'I_VC' : (0, '10d'),
+ 'I_FN' : (0, '10d'),
+ 'I_WR' : (2, '10d'),
+ 'I_TI' : (0, '10d'),
+ }
+
+ def __init__(self, filename, **parameters):
+ self.filename = filename
+ self.parameters = self.defaults
+ for key, value in parameters.items():
+ fmt = self.parameters[key][1]
+ self.parameters.update({key:(value, fmt)})
+
+
+ def _stack(self, *keys, comments=""):
+ params = []
+ for key in keys:
+ value, fmt = self.parameters[key]
+ params.append((key, value, fmt))
+ line = [' ',] * 49
+ labels = []
+ for i, (label, value, fmt) in enumerate(params):
+ labels.append(label)
+ fmts = ' ' * (10 * i) + '{{:{}}}'.format(fmt)
+ line_ = fmts.format(value)
+ for ichar, char in enumerate(line_):
+ if char != ' ':
+ line[ichar] = char
+
+ # add labels
+ labels = list(','.join(labels))
+ line += labels
+
+ # Pad with spaces if needed
+ line += ' ' * max(78 - len(line), 0)
+
+ # Add stars
+ line[1] = '*'
+ line += '*'
+
+ # Add comments
+ line += comments
+
+ # Add CR
+ line += '\n'
+
+ return ''.join(line)
+
+
+ def write(self):
+ content = ""
+ content += " ******************************************************************************\n"
+ content += " * MsSpec DIELECTRIC FUNCTION MODULE *\n"
+ content += " ******************************************************************************\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * GENERAL PARAMETERS : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * (q,omega,r) : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('Q_MIN', 'Q_MAX', 'N_Q', comments=" in units of k_F")
+ content += self._stack('E_MIN', 'E_MAX', 'N_E', comments=" in units of E_F")
+ content += self._stack('R_MIN', 'R_MAX', 'N_R', comments=" in units of 1/k_F")
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Material's properties : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('RS', 'MSOM', 'MAT_TYP', 'EPS_B')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * External fields : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('T', 'E', 'H', 'FLD')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * System's dimension : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('DIM')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Confinement : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('R0', 'L', 'OM0', 'CONFIN')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Multilayer structure : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('DL', 'D1', 'N_DEP', 'N_INV', comments=" --- EPS_1 ---")
+ content += self._stack('H_TYPE', 'EPS_1', 'EPS_2', comments=" EPS_2")
+ content += " *-------+---------+---------+---------+---------+----------------------------* --- EPS_1 ---\n"
+ content += " * Units : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('UNIT', 'UNIK')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Screening : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('SC_TYPE')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Plasma type : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('PL_TYPE', 'ZION', 'ZION2')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Calculation type : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('CAL_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * DIELECTRIC FUNCTION : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('ESTDY', 'EPS_T', 'D_FUNC', 'I_T')
+ content += self._stack('NEV_TYPE', 'MEM_TYPE', 'ALPHA', 'BETA')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Analytical plasmon dispersion : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('PL_DISP')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Local-field corrections *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('GSTDY', 'GQ_TYPE', 'IQ_TYPE')
+ content += self._stack('LANDAU', 'GQO_TYPE', 'G0_TYPE', 'GI_TYPE')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Damping : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('DAMPING', 'LT_TYPE', 'RT_TYPE')
+ content += self._stack('DR_TYPE', 'DC_TYPE', 'VI_TYPE')
+ content += self._stack('EE_TYPE', 'EP_TYPE', 'EI_TYPE')
+ content += self._stack('IP_TYPE', 'PD_TYPE', 'QD_TYPE', 'ZETA')
+ content += self._stack('D_VALUE_1', 'POWER_1', 'EK')
+ content += self._stack('D_VALUE_2', 'POWER_2', 'PCT')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Electron-electron interaction : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('INT_POT','S','EPS','DELTA')
+ content += self._stack('RC','ALF','M','N')
+ content += self._stack('A1','A2','A3','A4')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Electron-phonon interaction : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('EP_C','DEBYE_T')
+ content += self._stack('NA','MA','RA')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Electron-impurity interaction : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('NI','EI_C')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += " * Classical fluid parameters : *\n"
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('CF_TYPE','PF_TYPE','SL_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * STRUCTURE FACTOR : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('SSTDY','SQ_TYPE','SQO_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * PAIR CORRELATION FUNCTION : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('GR_TYPE','GR0_MODE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * PAIR DISTRIBUTION FUNCTION : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('RH_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * SPECTRAL FUNCTION : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('SPF_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * ENERGY CALCULATIONS : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('EC_TYPE','FXC_TYPE','EXC_TYPE')
+ content += self._stack('EX_TYPE','EK_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * SPIN POLARIZATION : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('IMODE','XI')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * THERMODYNAMIC PROPERTIES : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('TH_PROP','GP_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * ELECTRON MEAN FREE PATH : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('EK_INI','EK_FIN')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * CALCULATION OF MOMENTS : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('N_M','M_TYPE')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * INCOMING ION BEAM : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('Z_BEAM', 'EK_BEAM')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * OUTPUT CALCULATIONS/PRINTING : *\n"
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += self._stack('I_DF','I_PZ','I_SU','I_CD')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_PD','I_EH','I_E2','I_CK')
+ content += self._stack('I_CR','I_PK')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_LF','I_IQ','I_SF','I_PC')
+ content += self._stack('I_P2','I_VX','I_DC','I_MD')
+ content += self._stack('I_LD','I_DP','I_LT','I_BR')
+ content += self._stack('I_PE','I_QC','I_RL','I_KS')
+ content += self._stack('I_OQ','I_ME','I_MS','I_ML')
+ content += self._stack('I_MC','I_DE','I_ZE','I_SR')
+ content += self._stack('I_CW','I_CF','I_EM','I_MF')
+ content += self._stack('I_SP','I_SE','I_SB','I_ES')
+ content += self._stack('I_GR','I_FD','I_BE','I_MX')
+ content += self._stack('I_SC','I_DS','I_NV','I_MT')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_GP','I_PR','I_CO','I_CP')
+ content += self._stack('I_BM','I_SH','I_S0','I_S1')
+ content += self._stack('I_DT','I_PS','I_IE','I_EI')
+ content += self._stack('I_FH','I_EY')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_EF','I_KF','I_VF','I_TE')
+ content += self._stack('I_DL')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_TW','I_VT','I_TC')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_EG','I_EX','I_XC','I_EC')
+ content += self._stack('I_HF','I_EK','I_EP')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_VI','I_DI')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_FP','I_EL','I_PO','I_RF')
+ content += self._stack('I_VC')
+ content += " *-------+---------+---------+---------+---------+----------------------------*\n"
+ content += self._stack('I_FN','I_WR','I_TI')
+ content += " *=======+=========+=========+=========+=========+============================*\n"
+ content += " * INPUT FILES : *\n"
+ content += " *----------------------------------------------------------------------------*\n"
+ content += " * NAME UNIT TYPE *\n"
+ content += " *=======+======================+======+=========+============================*\n"
+ content += " * epsilon.dat 5 INPUT DATA FILE *\n"
+ content += " *=======+======================+======+=========+============================*\n"
+ content += " * OUTPUT FILES : *\n"
+ content += " *----------------------------------------------------------------------------*\n"
+ content += " * NAME UNIT TYPE *\n"
+ content += " *=======+======================+======+=========+============================*\n"
+ content += " * epsilon.lis 6 CHECK FILE *\n"
+ content += " *=======+======================+======+=========+============================*\n"
+ content += " * END OF THE DATA FILE *\n"
+ content += " *============================================================================*\n"
+ content += " ******************************************************************************\n"
+
+ abs_path = os.path.abspath(self.filename)
+ dir_path = os.path.dirname(abs_path)
+ os.makedirs(dir_path, exist_ok=True)
+ with open(self.filename, 'w') as fd:
+ fd.write(content)
diff --git a/src/python/msspec_dfm/plotting.py b/src/python/msspec_dfm/plotting.py
new file mode 100644
index 0000000..e7972bb
--- /dev/null
+++ b/src/python/msspec_dfm/plotting.py
@@ -0,0 +1,172 @@
+#!/usr/bin/env python
+#
+# Copyright © 2020-2020 - Rennes Institute of Physics.
+#
+# This file is part of plotdf.
+#
+# plotdf is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# plotdf is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with plotdf. If not, see .
+#
+# Source file : src/old_plotdf.py
+# Last modified: Tue, 27 Apr 2021 11:00:13 +0200
+# Committed by : Sylvain Tricot
+
+import sys
+
+try:
+ from matplotlib import pyplot as plt
+ from mpl_toolkits.mplot3d import Axes3D
+ from matplotlib import cm
+ from matplotlib.colorbar import Colorbar
+except ImportError:
+ print('You need matplotlib to run this script!')
+ exit(-1)
+
+try:
+ import numpy as np
+except ImportError:
+ print('You need NumPy to run this script!')
+ exit(-1)
+
+try:
+ import argparse
+except ImportError as err:
+ print('Please, install the package \"{}\" to run that script.'.format(err.name))
+ exit(-1)
+
+try:
+ import logging
+except ImportError as err:
+ print('Please, install the package \"{}\" to run that script.'.format(err.name))
+ exit(-1)
+
+
+
+
+
+# Choose diverging colormap
+# (PiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismic)
+
+# custom cmap
+cmap = cm.bwr.from_list("custom_cmap", [
+ (0.00, (.6, 0.8, 1.0)),
+ (0.48, (0.2, 0.2, .8)),
+ (0.50, (1, 1, 1)),
+ (0.52, (1., 0., 0.)),
+ (1.00, (1.0, 0.8, 0)),
+ ])
+
+#cmap = cm.bwr
+
+def load_data(df='diel_func.dat', pd='plas_disp.dat', eh='elec_hole.dat'):
+ logging.info('loading data, please wait...')
+ # load data
+ logging.debug('loading {:s} file'.format(df))
+ data = np.loadtxt(df)
+ logging.debug('loading {:s} file'.format(pd))
+ pd = np.loadtxt(pd)
+ logging.debug('loading {:s} file'.format(eh))
+ eh = np.loadtxt(eh)
+
+ # convert to grid
+ logging.debug('Creating the grid')
+ x = np.unique(data[:,0])
+ y = np.unique(data[:,1])
+
+ X, Y = np.meshgrid(x, y)
+ size = (len(x), len(y))
+ ReZ = data[:,2].reshape(size).T
+ ImZ = data[:,3].reshape(size).T
+
+ logging.debug('loading data done.')
+
+ return X, Y, ReZ, ImZ, pd, eh
+
+def plot_2d(X, Y, Z, cmap, fig=None, ax=None, vmin=None, vmax=None):
+ # plotting
+ if fig is None:
+ fig = plt.figure()
+ if ax is None:
+ ax = fig.add_subplot(111)
+
+ xmin, xmax, ymin, ymax = [np.min(X), np.max(X), np.min(Y), np.max(Y)]
+ extent = [xmin, xmax, ymin, ymax]
+ im = ax.imshow(Z, cmap=cmap, aspect='auto', origin='lower', vmin=vmin, vmax=vmax, extent=extent,
+ interpolation='bilinear')
+ ax.set_xlim(None, xmax)
+ ax.set_ylim(None, ymax)
+
+ # colorbar
+ cb_val = np.linspace(vmin, vmax, 9, endpoint=True)
+ #cb_lbl = [f"{_:.1f}" for _ in cb_val]
+ cb_lbl = ["{:.1f}".format(_) for _ in cb_val]
+ cb_lbl[0] = "$\leq$ {:.1f}".format(cb_val[0])
+ cb_lbl[-1] = "$\geq$ {:.1f}".format(cb_val[-1])
+ cb = fig.colorbar(im, ax=ax, ticks=cb_val)
+ cb.ax.set_yticklabels(cb_lbl)
+
+ return fig, ax
+
+
+def plot_contour(X, Y, Z, colors='black', cmap=None, fig=None, ax=None, levels=8,
+ vmin=None, vmax=None):
+ # plotting
+ if fig is None:
+ fig = plt.figure()
+ if ax is None:
+ ax = fig.add_subplot(111)
+
+ xmin, xmax, ymin, ymax = [np.min(X), np.max(X), np.min(Y), np.max(Y)]
+ extent = [xmin, xmax, ymin, ymax]
+ cset = ax.contour(X, Y, Z, zdir='z', levels=np.linspace(vmin,vmax,levels), offset=np.min(Z),
+ colors=colors, cmap=cmap)
+ ax.clabel(cset, cset.levels, inline=True, fontsize=10)
+
+ ax.set_xlim(None, xmax)
+ ax.set_ylim(None, ymax)
+
+ return fig, ax
+
+
+# Plot the 3D surface
+def plot_3d(X, Y, Z, cmap=None, fig=None, ax=None, vmin=None, vmax=None, strides=64):
+ # plotting
+ if fig is None:
+ fig = plt.figure()
+ if ax is None:
+ ax = fig.add_subplot(111, projection='3d')
+ ax.plot_surface(X, Y, Z, vmin=vmin, vmax=vmax, rstride=strides, cstride=strides, alpha=1., cmap=cmap)
+
+ return fig, ax
+
+
+def plot_pdeh(pd, eh, Ef=1, color='black', fig=None, ax=None):
+ # plotting
+ if fig is None:
+ fig = plt.figure()
+ if ax is None:
+ ax = fig.add_subplot(111)
+
+ ax.plot(pd[:,0], pd[:,1], color=color, linestyle="--", label="Plasmon energy")
+ ax.plot(eh[:,0], eh[:,1]/Ef, color=color, linestyle=":", label=r"e-h pair continuum $\omega_+$")
+ ax.plot(eh[:,0], np.abs(eh[:,2]/Ef), color=color, linestyle="-.", label=r"e-h pair continuum $\omega_-$")
+ ax.legend()
+
+ return fig, ax
+
+
+def entitle(fig, ax, img=False):
+ title = r"$\Im(\epsilon)$" if img else r"$\Re(\epsilon)$"
+ ax.set_title(title)
+ ax.set_xlabel(r"$q/k_F$")
+ ax.set_ylabel(r"$E/E_F$")
diff --git a/src/python/msspec_dfm/version.py b/src/python/msspec_dfm/version.py
new file mode 100644
index 0000000..b6899cf
--- /dev/null
+++ b/src/python/msspec_dfm/version.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+# coding: utf-8
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/msspec_dfm/version.py
+# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+import os
+
+from pkg_resources import DistributionNotFound
+from pkg_resources import get_distribution
+from pkg_resources import parse_version
+
+# find the version number
+# 1- Try to read it from the git info
+# 2- If it fails, try to read it from the distribution file
+# 3- If it fails, try to read it from the VERSION file
+
+try:
+ from setuptools_scm import get_version
+ v = get_version(root='../../', relative_to=__file__, version_scheme="post-release")
+ v = parse_version(v)
+ if v._version.post[-1] == 0:
+ __version__ = v.base_version
+ else:
+ __version__ = v.public
+except Exception as err:
+ try:
+ __version__ = get_distribution(__name__.strip('.version')).version
+ except Exception as err:
+ try:
+ thisfile_path = os.path.abspath(__file__)
+ thisfile_dir = os.path.dirname(thisfile_path)
+ versionfile = os.path.join(thisfile_dir, "../VERSION")
+ with open(versionfile, "r") as fd:
+ __version__ = fd.readline()
+ except Exception as err:
+ #print("Unable to get the version number!")
+ __version__ = "0.0.0"
diff --git a/src/python/pip.freeze b/src/python/pip.freeze
new file mode 100644
index 0000000..e7e4b4a
--- /dev/null
+++ b/src/python/pip.freeze
@@ -0,0 +1,3 @@
+matplotlib
+click
+click-man
diff --git a/src/python/setup.py b/src/python/setup.py
new file mode 100644
index 0000000..58d9582
--- /dev/null
+++ b/src/python/setup.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+#
+# Copyright © 2022 - Rennes Physics Institute
+#
+# This file is part of MsSpec-DFM.
+#
+# MsSpec-DFM is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# MsSpec-DFM is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with MsSpec-DFM. If not, see .
+#
+# Source file : src/python/setup.py
+# Last modified: Fri, 25 Feb 2022 17:27:32 +0100
+# Committed by : Sylvain Tricot 1645806435 +0100
+
+import glob
+import sys
+from setuptools import setup, find_packages
+from msspec_dfm.version import __version__
+
+with open('pip.freeze', 'r') as fd:
+ REQUIREMENTS = fd.read().strip().split('\n')
+
+if __name__ == "__main__":
+ setup(name='msspec_dfm',
+ version=__version__,
+ include_package_data=True,
+ packages=find_packages(include='msspec_dfm.*'),
+ install_requires=REQUIREMENTS,
+ data_files = [('share/man/man1', glob.glob('man/pages/*.gz'))],
+
+ author='Didier Sébilleau, Aditi Mandhal, Sylvain Tricot',
+ author_email='sylvain.tricot@univ-rennes1.fr',
+ maintainer='Sylvain Tricot',
+ maintainer_email='sylvain.tricot@univ-rennes1.fr',
+ url='https://git.ipr.univ-rennes1.fr/epsi/MsSpec-DFM',
+ description='',
+ long_description="",
+ #download_url='',
+ # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
+ classifiers=[
+ 'Development Status :: 3 - Alpha',
+ 'Environment :: Console',
+ 'Intended Audience :: Science/Research',
+ 'License :: OSI Approved :: GNU General Public License (GPL)',
+ 'Natural Language :: English',
+ 'Operating System :: Microsoft :: Windows :: Windows 10',
+ 'Operating System :: POSIX :: Linux',
+ 'Operating System :: MacOS :: MacOS X',
+ 'Programming Language :: Fortran',
+ 'Programming Language :: Python :: 3 :: Only',
+ 'Topic :: Scientific/Engineering :: Physics',
+ ],
+ keywords='',
+ license='GPL',
+ entry_points={'console_scripts': [
+ 'eps=msspec_dfm.cli:main',],
+ },
+ )