Skip to main content

Fortran 90 namelist parser

Project description

A Python module for parsing Fortran namelist files

https://travis-ci.org/marshallward/f90nml.svg?branch=master https://coveralls.io/repos/marshallward/f90nml/badge.png?branch=master

Documentation: http://f90nml.readthedocs.org/en/latest/

About f90nml

f90nml is a Python module that provides a simple interface for the reading, writing, and the general manipulation of Fortran namelist files.

A namelist file is parsed and converted into an Namelist object, which behaves like a standard Python dict. Values are converted from Fortran data types to equivalent primitive Python types.

Quick usage guide

To read a namelist file sample.nml which contains the following namelists:

&config_nml
   input = 'wind.nc'
   steps = 864
   layout = 8, 16
   visc = 1e-4
   use_biharmonic = .false.
/

we would use the following script:

import f90nml
nml = f90nml.read('sample.nml')

which would would point nml to the following dict:

nml = {'config_nml':
         {'input': 'wind.nc',
          'steps': 864,
          'layout': [8, 16],
          'visc': 0.0001
          'use_biharmonic': False
         }
      }

To modify one of the values, say steps, and save the output, just manipulate the nml contents and write to disk using the write function:

nml['config_nml']['steps'] = 432
nml.write('new_sample.nml')

To modify a namelist but preserve its comments and formatting, create a namelist patch and apply it to a target file using the patch function:

patch_nml = {'config_nml': {'visc': 1e-6}}
nml.patch('sample.nml', 'new_sample.nml', patch_nml)

Installation

f90nml is available on PyPI and can be installed via pip:

$ pip install f90nml

It is also available on Arch Linux via the AUR:

$ git clone https://aur.archlinux.org/python-f90nml.git
$ cd python-f90nml
$ makepkg -sri

f90nml is not yet available on other Linux distributions.

The latest version of f90nml can be installed from source:

$ git clone https://github.com/marshallward/f90nml.git
$ cd f90nml
$ python setup.py install

Users without install privileges can append the --user flag to setup.py:

$ python setup.py --user install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

f90nml-0.17.tar.gz (27.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page