Skip to content

cmbant/forutils

Repository files navigation

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/<RTYPE>/libforutils.a

or by specifying it as a library:

-Lforutils/<RTYPE> -lforutils

Specify one of Debug, DebugMPI, Release, or ReleaseMPI for <RTYPE>. 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.

About

Fortran 2008 utility functions and reusable classes

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages