AuxMod¶
Purpose of Module¶
Module AuxMod contains a set of subroutines which can be used for an easier construction of any program input file reader, and a library of common MPI commands adapted for easier implementation when programming a Fortran MPI parallel code. The module consists of an input parser designed to read any formatted file with the possibility to find a specific set of user pre-defined keywords and examine whether the read in variable types are consistent with the code requirements. The library of parallel subroutines contains a number of MPI commands for communicating information between all or a pair of processor cores, and are adapted for easier user implementation into his/her own code. The provided subroutines/libraries can also be considered as a Fortran template which the user can adapt or update depending on his/her specific requirements.
Applications of the Module¶
The AuxMod module was used to construct the input parser for the PaPIM code, while its modified MPI commands enable to parallelize the PaPIM code and the ClassMC module. Based on these example, the AuxMod provides a pre-constructed input reader and adapted MPI library for any future Fortran code development.
Compiling¶
The code should be compiled in the ./source sub-directory using a Fortran compiler with a MPI wrapper.
A Makefile is present for an automatic compilation.
Execute command make
in the ./source
sub-directory to generate the AuxModRun.exe
executable:
cd source
make
Testing¶
For AuxMod test purposes the numdiff
package is used for automatic comparison purposes and should be made
available before running the tests, otherwise the diff
command will be used automatically instead but the user
is warned that the test might fail due to numerical differences.
The user is advised to download and install numdiff
from here.
The module is accompanied with an example input file TESTINPUT
located in the tests
sub-directory
together with the reference output in sub-directory REFERENCE_OUTPUT
:
cd tests
../source/AuxModRun.exe < TESTINPUT
The user is also advised to test the code manually by changing the values in the TESTINPUT
input file.
Source Code¶
The source code is given at https://gitlab.e-cam2020.eu/Quantum-Dynamics/PIM/tree/AuxMod.
The file parser.F90
contains all the subroutines for the within-one-line data type recognition,
while the auxmod.F90
contains the direct subroutines for input file reading,
and can be considered as a template for further modification.
The prl.F90
contains the adapted MPI commands.
Source Code Documentation¶
The source code documentation is given at https://gitlab.e-cam2020.eu:10443/Quantum-Dynamics/PIM/tree/AuxMod/doc.
The documentation files (html and latex format) are obtained by executing the make
command in the ./doc
sub-directory:
cd doc
make