Common service module library
In order to facilitate the development of scientific software, we gather some numerical algorithms, datatypes, and constants, and implement them as common Fortran modules. They are widely used in the iQIST software package and the other private projects. The collection of these modules is the so-called common service module library, abbreviated CSML in this manual.
The source codes of the CSML are stored in the iqist/src/base directory. You can compile them via the following commands:
$ cd iqist/build
$ make base
or
$ cd iqist/src/base
$ make
The CSML contains many files (modules). Next we will introduce them one by one, so that the developers can be familiar with their functionality and limitations. Except where stated explicitly, these modules could be used individually.
This is not a API reference documentation. You should read the source codes by yourself to obtain detailed information.
m_constants.f90
module constants
Some selected physical and numerical constants are provided in this modules, such as $\pi$ and $1i$.
m_leja.f90
module leja
In this module, the Newton-Leja polynomial interpolation algorithm is implemented, which is used to evaluate
\[|\psi_f\rangle = e^{-H\tau} | \psi_i \rangle.\]
Now this module is only useful for the CAMELLIA component.
m_linkedlist.f90
module linkedlist
As is well known, the linked list is a very useful datatype. In this module, a generic linked list is implemented. In the iQIST software package, this module is used to implement a parser for the configuration files.
m_mpi.f90
module mmpi
In this module, some important MPI calls are decorated to simpler forms.
m_parser.f90
module parser
m_skynet.f90
module skynet
m_sparse.f90
module sparse
m_spring.f90
module spring
m_stack.f90
module stack