Commit 298f5512 authored by Marco Govoni's avatar Marco Govoni

Merge branch 'doc_improvement' into 'develop'

Doc improvement

See merge request west-devel/West!40
parents 0d29121a 484d7c03
Change Log
==========
v5.0.0 (2021/05/XX)
v4.3.0 (2021/05/25)
-------------------
- New variables
- Restart info was written out in every Davidson iteration. Now this can be changed by setting the `n_steps_write_restart` keyword. Default is `1`, i.e., same behavior as before.
- Bug fixes
- Update the initialization for Forpy, such that in case of a module import error, the code has a better chance to print a clear error message.
- Fix an undefined variable in `Tools/set_npwq.f90`. Add `IMPLICIT NONE to all program units to let the compiler catch such errors in the future.
- Avoid overflow in `Wstat/wstat_memory_report.f90` in large-scale runs.
- Fix non-standard Fortran codes that do not work with NVIDIA/PGI Fortran compiler.
- Fix file mode for source files in Westpp. All files were executable before.
- Work around an input parsing issue encountered with pgfortran and nvfortran.
- CI
- Use updated Docker images
- Check numerical results and fail the CI if results don't match. (see check.py). DFT checks error in total energy, WSTAT checks maximum error in PDEP eigenvalues, WFREQ checks maximum error in QP energies
- Add tests of images and OpenMP threads to nightly test
- Documentation
- Fix doc build with sphinx 3.5.0+. (see also https://github.com/sphinx-doc/sphinx/issues/8885)
- Update build instructions for ALCF/Theta, NERSC/Cori, UChicago/RCC/Midway3, macOS
- Updated documentation
- Introduced new data layout. Parallelization over bands allows to distribute data in a more flexible way in `wstat`. This feature also helps reduce memory per image. Band parallelization is enabled by specifying -nb xxx from the command line.
- Introduced checkpointing in `wstat`. With the new keyword `n_steps_write_restart` one can control how often the code produces restarts (default value is `1`).
- Improved I/O in `wfreq`. The number of I/O operations is reduced in `solve_wfreq`, and in the gamma case of `solve_gfreq`.
- Updated library dependency to Json-Fortran 8.2.1, resolving compilation issues with PGI 19.10.
- Updated the initialization of Forpy, such that in case of a module import error, the code has a better chance to print a clear error message.
- Updated build. Now the code builds with the NVIDIA/PGI Fortran compiler.
- Bug fix. Fixed an undefined variable in `Tools/set_npwq.f90`. Added `IMPLICIT NONE to all program units to let the compiler catch such errors in the future.
- Bug fix. Avoid overflow in `Wstat/wstat_memory_report.f90` in large-scale runs.
- Bug fix. Reset permissions to all source files in Westpp. All files appeared to be executable before.
- Bug fix. Reset `make.depend` files, added support to `make -j`.
- Updated CI/CD. Use updated Docker images.
- Updated CI/CD. Check numerical results and fail the CI if results don't match (see `check.py`). DFT checks error in total energy, WSTAT checks maximum error in PDEP eigenvalues, WFREQ checks maximum error in QP energies.
- Updated CI/CD. Added tests of images and OpenMP threads to nightly tests.
- Updated documentation. Fixed doc build with sphinx 3.5.0+.
- Updated documentation. Update build instructions for ALCF/Theta, NERSC/Cori, UChicago/RCC/Midway3, macOS.
- Updated documentation. Added more tutorials.
- Updated documentation. Updated manual.
v4.2.1 (2020/10/19)
-------------------
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017. Govoni
! Copyright (C) 2015-2021. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
......@@ -15,10 +15,11 @@ Project Leads
Developers
----------
- Sijia Dong (Argonne National Laboratory)
- Marco Govoni (Argonne National Laboratory and University of Chicago)
- He Ma (University of Chicago)
- Yu Jin (University of Chicago)
- Nan Sheng (University of Chicago)
- Han Yang (University of Chicago)
- Wenzhe Yu (Argonne National Laboratory)
Contributors
------------
......@@ -35,7 +36,10 @@ Former Developers
-----------------
- Nicholas Brawand (2016-2018)
- Sijia Dong (2019-2020)
- Matteo Gerosa (2017-2018)
- Lan Huang (2019-2020)
- He Ma (2017-2020)
- Ryan McAvoy (2017-2018)
- Ngoc Linh Nguyen (2017-2018)
- Peter Scherpelz (2016-2018)
......
......@@ -60,7 +60,7 @@ master_doc = 'index'
# General information about the project.
project = data["name"]
copyright = u'2020, Marco Govoni'
copyright = u'2021, Marco Govoni'
author = u'Marco Govoni'
# The version info for the project you're documenting, acts as replacement for
......@@ -311,6 +311,5 @@ texinfo_documents = [
#texinfo_no_detailmenu = False
intersphinx_mapping = {
'python': ('https://docs.python.org/3.6', None),
'pymongo': ('https://api.mongodb.com/python/current/', None)
'python': ('https://docs.python.org/3.6', None)
}
......@@ -4,7 +4,9 @@
Installation
============
In order to install WEST you need to download the `QuantumEspresso 6.1 <https://gitlab.com/QEF/q-e/-/archive/qe-6.1.0/q-e-qe-6.1.0.tar>`_.
In order to install WEST you need to download the `QuantumEspresso 6.1.0 <https://gitlab.com/QEF/q-e/-/archive/qe-6.1.0/q-e-qe-6.1.0.tar>`_.
To compute absorption spectra (BSE), you also need to download and install `Qbox <http://qboxcode.org>`_.
`QuantumEspresso <http://www.quantum-espresso.org/>`_ (QE) is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale, based on density-functional theory (DFT), plane waves (PW), and pseudopotentials (PP).
Configure QuantumEspresso by running the ``configure`` script that comes with the QE distribution. WEST requires `MPI <https://en.wikipedia.org/?title=Message_Passing_Interface>`_ support (`ScaLAPACK <http://www.netlib.org/scalapack/>`_ and `OpenMP <http://openmp.org/>`_ support is also recommended, but optional). If all the environment variables (compilers, libraries etc.) have been set according to the QE configure guide, this would simply be:
......
......@@ -59,7 +59,7 @@ The following is an example executable script `run_west.sh` to run the `wstat.x`
#SBATCH --partition=<partition_name>
#SBATCH --account=<account_name>
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=32
#SBATCH --ntasks-per-node=48
#SBATCH --cpus-per-task=1
module load intel/19.1.1
......@@ -67,11 +67,11 @@ The following is an example executable script `run_west.sh` to run the `wstat.x`
module load mkl/2020.up1
module load python/anaconda-2020.11
export I_MPI_PMI_LIBRARY=/software/slurm-current-$DISTARCH/lib/libpmi.so
export LD_LIBRARY_PATH=/software/python-anaconda-2020.11-el8-x86_64/lib:$LD_LIBRARY_PATH
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
NTASKS=$(($SLURM_NTASKS_PER_NODE * $SLURM_JOB_NUM_NODES))
export OMP_NUM_THREADS=1
mpirun -np $NTASKS ./wstat.x -i wstat.in > wstat.out
srun -n 96 -N 2 ./wstat.x -i wstat.in > wstat.out
Job submission is done with the following:
......
......@@ -531,7 +531,7 @@ wfreq_control
* - **Default**
- 204
* - **Description**
- Number of frequecies used to plot the spectral function (runlevel "P"), sampling the interval [-ecut_spectralf[0],ecut_spectralf[1]].
- Number of frequecies used to plot the spectral function (runlevel "P"), sampling the interval [ecut_spectralf[0],ecut_spectralf[1]].
|
......
......@@ -5,11 +5,13 @@ Overview
**WEST** (Without Empty STates) is a massively parallel software for large scale electronic structure calculations within many-body perturbation theory.
Features:
Features:
- GW (full-frequency)
- BSE *under development*
- electron-phonon *under development*
- GW self-energy (full-frequency)
- Absorption spectra (BSE) in *beta-release*
- Electron-phonon *under development*
- Quantum embedding (QDET) *under development*
- GPU-porting *under development*
.. seealso::
**WESTpy** is a Python package, designed to assist users of the WEST code in pre- and post-process massively parallel calculations. Click `here <http://www.west-code.org/doc/westpy/latest/>`_ to know more.
......@@ -11,3 +11,4 @@ Contents:
:maxdepth: 1
tutorials/west_100.ipynb
tutorials/west_200.ipynb
This diff is collapsed.
This diff is collapsed.
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `LICENSE'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
......@@ -14,6 +14,7 @@ clean:
- rm -rf build
- rm -rf dist
- rm files.txt
- rm -rf __pycache__
title :
@echo " "
......
#!/usr/bin/python3
#
# Copyright (C) 2015-2019 M. Govoni
# Copyright (C) 2015-2021 M. Govoni
# This file is distributed under the terms of the
# GNU General Public License. See the file `License'
# in the root directory of the present distribution,
......
#!/usr/bin/python3
#
# Copyright (C) 2015-2019 M. Govoni
# Copyright (C) 2015-2021 M. Govoni
# This file is distributed under the terms of the
# GNU General Public License. See the file `License'
# in the root directory of the present distribution,
......
#!/usr/bin/python3
#
# Copyright (C) 2015-2019 M. Govoni
# Copyright (C) 2015-2021 M. Govoni
# This file is distributed under the terms of the
# GNU General Public License. See the file `License'
# in the root directory of the present distribution,
......
#!/usr/bin/python3
#
# Copyright (C) 2015-2019 M. Govoni
# Copyright (C) 2015-2021 M. Govoni
# This file is distributed under the terms of the
# GNU General Public License. See the file `License'
# in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `LICENSE'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `LICENSE'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `LICENSE'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file License
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2019 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
{
"name" : "WEST",
"version" : "pre-5.0.0",
"version" : "4.3.0",
"url" : "http://west-code.org",
"license" : "GPLv3"
}
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
......
!
! Copyright (C) 2015-2017 M. Govoni
! Copyright (C) 2015-2021 M. Govoni