Fortran 90 namelist parser
A Fortran 90 namelist parser
The f90nml module takes a Fortran 90 namelist file and parses it into a Python dict of namelist groups, each containing a dict of its variables. Fortran data types are converted to equivalent Python types.
To read a Fortran namelist file as a dict, use the read() method:
nml_dict = f90nml.read(nml_filename)
To output a Python dict as a Fortran namelist file, use the write() method:
This method will abort if the output file already exists.
The read method produces an NmlDict, which behaves as a dict with case-insensitive keys, due to the case insensitivity of Fortran. This implementation is currently not a true case-insensitive dict, and is only intended to accomodate individual references and assignments.
The following namelist features are currently not supported:
- Implicit vector assignment (v(i:j) = c)
- Multidimensional vector assignment (v(:,:) = 1, 2, 3, 4)
- Repeated indexing (v = r*c, r*)
- Upcast vector elements if components differ (x(i) = 1, x(j) = 2.0)
- Escape on repeated quotes ('This doesn''t parse correctly')
- Type character resolver (x%y = c)
- stdin/stdout support (?, ?=)
Marshall Ward <email@example.com>