This library consists of a set of wrappers to the CMTZ library giving the same API as the original mtzlib.f For details of the API, see the original documentation. This document covers some peculiarities of the C implementation.
Batch headers are held as a linked list in the MTZ data structure. Upon reading an MTZ file, a list is created holding the all the batch headers from the input file (mtz->n_orig_bat holds the number read in). LRBATS will return a list of batch numbers. LRBAT can be used to read the batch headers one at a time.
LWBAT can be used to write new or updated batch headers. Updated batch headers are in fact added as new batch headers at the end of the list of input batch headers. This mimics the use of RBATW/CBATW in the Fortran routines. There are problems with this approach, and this may be re-implemented.