A portable, standard I/O library for Modern Fortran

Find us on…

GitHub

IO-Fortran-Library

API Documentation

This API documentation was generated by FORD (the Fortran documentation generator).

Purpose

The purpose of this project is to provide a portable, standard I/O library for Modern Fortran programs supporting the Fortran 2018 standard, with the goal of enabling essential I/O functionality for Fortran programmers on any system and with any modern compiler.

Scope

The IO Fortran Library is a Fortran module io_fortran_lib which provides high level routines for doing internal and external I/O. In particular, the module provides a handful of generic interfaces and a simple derived type for doing string-based and array-based I/O that are useful for recording program data, reading data into programs, writing formatted logs and output, and for doing advanced string manipulations. For instance, one may read and write data from/to .csv and .dat files, represent numbers as strings inside of a string expression, efficiently write text to a .log file, and dynamically manipulate strings with a String type (including casting between numeric and string data).

Note

The module is fully self-contained, with no external dependencies, and is written to be portable and compliant to the Fortran 2018 standard such that no special extensions or compiler options should be required. The public interfaces accept all intrinsic numeric types (integer, real, and complex) and all standard kinds provided by the intrinsic iso_fortran_env module (int8, int16, int32, int64, real32, real64, and real128). All array-based routines additionally support up to rank 15.

How to Use

To use io_fortran_lib with your fpm project, add the following lines to your fpm.toml file and use the module in your program units to access the routines:

[dependencies]
IO-Fortran-Library = { git="https://github.com/acbbullock/IO-Fortran-Library", branch="main" }

See the important user information and reference guide for information about calling the routines, and further see the tutorials for complete example programs.

License

All source code referenced is distributed under the MIT license and available at Github.

Contact

For bug fixes or feature requests, feel free to open an issue at the project repository or contact acb.bullock@gmail.com.

Developer Info

Austin C Bullock