News regarding the FLIBS project
- Module for handling command-line arguments in a very similar way as the C function "getopt".
The technique used is the same as for the keyvars module.
- Module for substituting values into a string based on simple format codes. This helps in combination
with the translation module to customize the messages from a program.
- Module for retrieving variables from an INI-file like file via a single subroutine call. Using pointers
it can retrieve any number of variables in one go. Via the descriptive strings you pass for each variable
it can write an annotated sample input file.
- A module (translation) and an auxiliary program that can be used to build a small "database" of strings in several
human languages. The strings are retrieved via a keyword and the language. Useful for localising an application.
For the moment a very simple module, but the intention is to use the technique of the "keyvars" module to enable
substitutions in arbitrary places.
Set of programs to check if the compiler supports features like BLOCK, ASSOCIATE, Bessel functions and so on.
- New module: mod_regex (and a lower-level one, fcre) provided by Paul Fossati) that
provides a convenient interface to the PCRE library for "Perl-compatible regular expressions."
While this is at the moment still in need of some revision, it is useable.
- Added several files that were missing from the examples in my book to the website.
Thanks to Daniel Gloger for reporting them.
- Added a module for reading Windows BMP files, provided by Denis Yavna.
Note that not all types of BMP files are supported, though.
- Improvements because of compiler messages (reported by Karin Nystrom) and
several corrections to the pointsets module (including an extended test program for this
- Added a module for reading dBase III files (reading only). There are a number of
- No support for memo fields. dBase files containing memo fields may not be recognised at all.
- No support for dBase IV files.
- Status of records is not recognised or reported.
- Added a module to manipulate ("filter") multiline text variables. This is meant to make
it easier to edit the contents of files for instance. Just a start.
- Added two routines for unconstrained and constrained minimisation, developed by Mike Powell.
(Wrapped in separate modules to make the interface slightly easier and more robust)
- Added a module for reading a password (inspired by a thread on comp.lang.fortran)
- Added a module for traversing grid points in N dimensions. Two classes are
provided: traverse a rectangular block from the beginning to the end or step
through such a block in a so-called quasi-random way. This allows the computation
of a multidimensional integral using less data points than would be required for
a Monte Carlo approach (see the test program for an example).
- Added a module for enumerating grid points in one, two or three dimensions.
The idea arose while dabbling with Diophantine equations. The enumeration technique
visits the points closest to the origin first, so that small values of the coordinates
can examined first and then you move on to larger ones. This is guaranteed in all
- Corrected a problem in the singleline_text module with empty strings.
Improvement and bugfix:
- The ODBC (fodbc) module now accepts an arbitrary list of columns
Note that this must be ported to the SQLite (fsqlite) and MySQL (myfortran)
modules too. (Another issue that has arisen: handling SQL null values)
- The dictionary module contained a bug that could result in an array bound
violation. This has been fixed by replacing the mod() function by the modulo()
The instructions and the example for the use of fast-CGI have been turned into
a new module. Together with several concise examples.
Added a module for logging to multiple files (provided by Karin Nystrom).
Added a module for random permutation (derived from a posting on comp.lang.fortran by Bart Vanderwoestyne).
Not actually a new module yet, but instructions on the use of Fast-CGI in combination with the Nginx webserver
(contributed by Ricolindo Carino).
I have introduced this page to provide an overview of what is happening in this
Changes to existing modules:
The new modules use the object-oriented features of Fortran 2003. The modules define simple classes,
no inheritance for instance.
read_characters is a module to read a text file character by character. It is the start of
a new set of modules, inspired by the book "Fortran Tools" by Jones and Crabtree.
tokenlists is a module that allows easier handling of a tokenized string and builds on
the older tokenize module.
The libdate module now contains a routine scan_date to scan a string for
The odbc module now supports binary large objects (BLOB). There are a few caveats though,
as not all ODBC drivers and underlying database systems can actually handle BLOBs.
Introduced the Fortran 2008 feature NEWUNIT=, as per a patch by Karin Nystrom. This has the advantage of
not interfering with other LU-numbers in the calling program.