The subroutine MAPL_CFIOWriteState
serializes an ESMF state into a Bundle and writes it to a file.
Only the MAPL_CFIO
object is a required argument as pointers to
the actual data to be written is recorded in it during creation.
CLOCK, BUNDLE can be used to override the choice made at creation, but this is of dubious value, particularly for BUNDLE since it must be excatly conformant with the creation BUNDLE. NBITS if the number of bits of the mantissa to retain. This is used to write files with degraded precision, which can then be compressed with standard utilities. The default is no degradation of precision.
A note about compression. NetCDF-4, HDF-4 and HDF-5 all
support transparent internal GZIP compression of the data being
written. However, very little is gained by compressing float
point fields from earth system models. Compression yields can
be greatly increased by setting to zero bits in the mantissa of float
numbers. On average 50%
compression can be achieved, while
preserving a meaningful accuracy in the fields. Unlike
classical CF compression by means of scale_factor and
add_offset attributes, internal GZIP compression
requires no special handling by the users of the data. In fact,
they do not even need to know that the data is compressed! At this
point, MAPL_CFIO
does not activate this GZIP compression
feature in the files being written, but the resulting precision
degredaded files can be compressed offline with the HDF-4
hrepack utility.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_CFIO), | intent(inout) | :: | MCFIO | |||
type(ESMF_Clock), | intent(inout) | :: | CLOCK | |||
type(ESMF_State), | intent(inout) | :: | STATE | |||
logical, | intent(in), | optional | :: | VERBOSE | ||
integer, | intent(in), | optional | :: | NBITS | ||
integer, | intent(out), | optional | :: | RC |
The subroutine MAPL_CFIOWriteBundle
writes an ESMF Bundle to a File. Only the MAPL_CFIO
object is
a required argument as pointers to the actual data to be
written is recorded in it during creation.
CLOCK, BUNDLE can be used to override the choice made at creation, but this is of dubious value, particularly for BUNDLE since it must be excatly conformant with the creation BUNDLE. NBITS if the number of bits of the mantissa to retain. This is used to write files with degraded precision, which can then be compressed with standard utilities. The default is no degradation of precision.
A note about compression. NetCDF-4, HDF-4 and HDF-5 all
support transparent internal GZIP compression of the data being
written. However, very little is gained by compressing float
point fields from earth system models. Compression yields can
be greatly increased by setting to zero bits in the mantissa of float
numbers. On average 50\% compression can be achieved, while
preserving a meaningful accuracy in the fields. Unlike
classical CF compression by means of scale_factor and
add_offset attributes, internal GZIP compression
requires no special handling by the users of the data. In fact,
they do not even need to know that the data is compressed! At this
point, MAPL_CFIO
does not activate this GZIP compression
feature in the files being written, but the resulting precision
degredaded files can be compressed offline with the HDF-4
hrepack* utility.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(MAPL_CFIO), | intent(inout) | :: | MCFIO | |||
type(ESMF_Clock), | intent(inout), | optional | :: | CLOCK | ||
type(ESMF_FIELDBUNDLE), | intent(inout), | optional | :: | BUNDLE | ||
logical, | intent(in), | optional | :: | VERBOSE | ||
integer, | intent(in), | optional | :: | NBITS | ||
logical, | intent(in), | optional | :: | created | ||
integer, | intent(out), | optional | :: | RC |