https://github.com/cmbant/forutils
Fortran 2008 utility functions and reusable classes
https://github.com/cmbant/forutils
fortran-library utility-classes
Last synced: 3 months ago
JSON representation
Fortran 2008 utility functions and reusable classes
- Host: GitHub
- URL: https://github.com/cmbant/forutils
- Owner: cmbant
- License: mit
- Created: 2015-06-17T16:07:30.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T16:44:41.000Z (9 months ago)
- Last Synced: 2024-12-27T06:40:46.929Z (5 months ago)
- Topics: fortran-library, utility-classes
- Language: Fortran
- Size: 115 KB
- Stars: 17
- Watchers: 6
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.rst
- License: LICENSE
Awesome Lists containing this project
README
===================
ForUtils
===================
:ForUtils: Various fortran 2003/2008 utility classes.
:Version: 1.0
:Author: Antony Lewis
:Homepage: https://github.com/cmbant/forutils
:Code documentation: https://cosmologist.info/forutils/Description
============ForUtils is a package of Fortran classes and convenience functions for
Fortran 2003/2008 programs. The utilities comprise these areas:* ArrayUtils - Find (minimal/maximal) index of an element in an array.
* FileUtils - Classes for handling file access, python-like loadtxt/savetxt functions
* IniObjects - Read/Write name=value configuration files with inheritance, array and default value support.
* MatrixUtils - Read/Write matrices and interface to some BLAS/LAPACK routines.
* MiscUtils - Utility functions for optional arguments.
* MpiUtils - Wrappers for MPI-routines to compile with(out) MPI library.
* ObjectLists - Lists of arbitrary objects including specializations for vectors.
* RandUtils - Some functions to generate random numbers.
* RangeUtils - Maintain sets of equally spaced intervals, e.g. for integration ranges.
* StringUtils - Utilities for strings, like concat of distinct types a.s.o.For a class summary see the `class trees `_.
Getting Started
================Clone this git repository::
$ git clone https://github.com/cmbant/forutils
Compile::
$ make all
This generates the subdirectories Debug and Release and when an MPI library is
available also DebugMPI and ReleaseMPI. Each directory contains a libforutils.a
archive, which can be used directly for static linking on the compiler command
line by giving the absolute filename::forutils//libforutils.a
or by specifying it as a library::
-Lforutils/ -lforutils
Specify one of Debug, DebugMPI, Release, or ReleaseMPI for . The Debug
release types contain debug symbols and use no optimization, while the Release
types use a reasonable level of optimization.Dependencies
=============
* Fortran 2008 compatible compiler - E.g., ifort 14+, gfortran 6 or higher.
* MPI library - Only when you want the MpiUtils fully functional. Without an MPI library MpiUtils compile, but the functions are merely no-ops and the makefile target DebugMPI and ReleaseMPI can not be built.