An open API service indexing awesome lists of open source software.

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

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.