The Fortran UIO package is a collection of Fortran90 modules and programs described in Table 7.
The file uio_base_module.f90
contains the basic set of modules
(see Table 8).
|
The files uio_mac*_module.[fF]90
(Tab. 7)
contain machine-dependent
routines collected in the module uio_mac_module
(see Tab. 9).
It comes in various flavors.
In the current version of CO5BOLD, there is only one file uio_mac_module.F90
-
with a capital F90
- that can be changed during the compilation
by preprocessor switches, see 3.6.
In older version there was a list of files appropriate for different (groups of) machines:
The machine-independent version is
uio_mac_module.f90
which can be used for first tests but does not provide all possible features.
Therefore, it should be discarded afterwards and replaced by a version more
suitable for the platform in use.
The file
uio_mac_ieee_module.f90
is appropriate for all machines with IEEE big_endian
binary format.
Additionally there exist files containing calls of machine library routines
uio_mac_crayts_module.f90
,
uio_mac_crayxmp_module.f90
,
uio_mac_sun_module.f90
.
These make it possible to write information about the platform in use into the
file header. The CRAY versions allow unformatted I/O in the CRAY specific
format and additionally (via the FFIO ASSIGN logic) in IEEE format.
The file
uio_mac_intel_module.f90
is appropriate for all machines with IEEE little_endian
binary format (and no mechanism for automatic conversion).
In additions, there is
an uio_mac_aix_module.f90
,
an uio_mac_decalpha_module.f90
,
and an uio_mac_nec_module.f90
.
The main set of routines is contained in uio_bulk_module.f90
in the
module uio_bulk_module.
The three files uio_base_module.f90
, uio_mac_module.F90
, and
uio_bulk_module.f90
comprise the standard set of UIO routines.
Additionally there exists a file uio_table_module.f90
with the single
module uio_table_module
which permits the I/O and manipulation of a certain table format (see the
example in section 4.2).
The latest extension comes within the modules
uio_var_module.f90
and uio_varfile_module.f90
.
The module uio_var_module.f90
contains a type definition for a variable
(``uio flexible variable'')
of general type (i.e. it may be a scalar integer value or a 1D character
array or a 3D real array...) together with some routines for the
basic handling of the variables
(I/O in UIO format, construction and modification of variables...).
The module uio_varfile_module.f90
contains a type definition for
a file built of UIO flexible variables together with routines for the handling
of these files.