The kind of data stored is described by the parameter form in the leading information of the header (see section 3.1.1). In most of the radioastronomy applications, single precision floats are sufficient: the code fmt_r4 is used by default, but double precision floats (fmt_r8), standard (fmt_i4) and long integers (fmt_i8), and single precision complex (fmt_c4) are also supported.
As for the header parameters, the values are stored in the native system of the machine (little endian or big endian) at the file creation time. The codes detailed in table 1 ensure that the values can be re-read and updated later on any system.
The data is stored in the file in column-major order (Fortran-like). Its dimensions are described by the Dimensions section. While using standard (32 bits machines) or long (64 bits) integers when in memory, they are always stored in the file as long integers: the limit is then elements per dimension. The total number of elements in the data uses the same limit. Note that cubes larger than 2 GB (512 mega-elements of single precision floats) reach the RAM limit of 32 bits machines. This means that the whole data block cannot fit in memory. Such big data files ( GB) are not supported on 32 bit machines, as these machines are now obsolescent.
The parameter nhb indicates the number of header blocks, and ndb that of data blocks. Parameter ntb has been provisioned to handle trailing blocks after the data. All blocks are 512 Bytes long in the current version. The total number of blocks nhb+ndb+ntb is rounded (upwards) to a multiple of 16, so that reading can proceed with physical blocks of 8192 Bytes for better efficiency. A particular effort has also been made here to ensure that there is no Integer(4) limit on the number of Fortran records (blocks) in the file: all record computations and numbers use Integer(8) values.