|
HDF5 documents and links Introduction to HDF5 HDF5 User Guide |
And in this document, the
HDF5 Reference Manual
H5DS H5IM H5LT H5PT H5TB H5 H5A H5D H5E H5F H5G H5I H5L H5O H5P H5R H5S H5T H5Z Tools Datatypes Fortran Compatibility Macros (Printable PDF of this Reference Manual) |
The C Interfaces:
Alphabetical Listing
H5Pall_filters_avail(hid_t dcpl_id)
H5Pall_filters_avail verifies that all of the filters
set in the dataset creation property list dcpl_id are
currently available.
hid_t dcpl_id |
IN: Dataset creation property list identifier. |
TRUE if all filters are available
and FALSE if one or more is not currently available.FAIL, a negative value, on error.
| Release | C |
| 1.6.0 | Function introduced in this release. |
H5Pclose(hid_t plist
)
H5Pclose terminates access to a property list.
All property lists should be closed when the application is
finished accessing them.
This frees resources used by the property list.
hid_t plist |
IN: Identifier of the property list to terminate access to. |
SUBROUTINE h5pclose_f(prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pclose_f
H5Pclose_class(
hid_t class
)
Existing property lists of this class will continue to exist, but new ones are not able to be created.
hid_t class |
IN: Property list class to close |
SUBROUTINE h5pclose_class_f(class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
! to close
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pclose_class_f
H5Pcopy(hid_t plist
)
H5Pcopy copies an existing property list to create
a new property list.
The new property list has the same properties and values
as the original property list.
hid_t plist |
IN: Identifier of property list to duplicate. |
SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(OUT) :: new_prp_id ! Identifier of property list
! copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pcopy_f
H5Pcopy_prop(
hid_t dst_id,
hid_t src_id,
const char *name
)
H5Pcopy_prop copies a property from one property
list or class to another.
If a property is copied from one class to another, all the property information will be first deleted from the destination class and then the property information will be copied from the source class into the destination class.
If a property is copied from one list to another, the property
will be first deleted from the destination list (generating a call
to the close callback for the property, if one exists)
and then the property is copied from the source list to the
destination list (generating a call to the copy
callback for the property, if one exists).
If the property does not exist in the class or list, this call is
equivalent to calling H5Pregister or H5Pinsert
(for a class or list, as appropriate) and the create
callback will be called in the case of the property being
copied into a list (if such a callback exists for the property).
hid_t dst_id |
IN: Identifier of the destination property list or class |
hid_t src_id |
IN: Identifier of the source property list or class |
const char *name |
IN: Name of the property to copy |
SUBROUTINE h5pcopy_prop_f(dst_id, src_id, name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dst_id ! Destination property list
! identifier
INTEGER(HID_T), INTENT(IN) :: src_id ! Source property list identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Property name
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pcopy_prop_f
H5Pcreate(hid_t cls_id
)
H5Pcreate creates a new property as an instance of some
property list class. The new property list is initialized
with default values for the specified class. The classes are:
H5P_OBJECT_CREATE
H5P_FILE_CREATE
H5P_FILE_ACCESS
H5P_DATASET_CREATE
H5P_DATASET_ACCESS
H5P_DATASET_XFER
H5P_MOUNT
H5Pcreate
creates and returns a new mount property list
initialized with default values.
H5P_GROUP_CREATE
H5P_GROUP_ACCESS
H5P_DATATYPE_CREATE
H5P_DATATYPE_ACCESS
H5P_ATTRIBUTE_CREATE
H5P_OBJECT_COPY
This property list must eventually be closed with
H5Pclose;
otherwise, errors are likely to occur.
hid_t cls_id |
IN: The class of the property list to create. |
plist) if successful;
otherwise Fail (-1).
SUBROUTINE h5pcreate_f(classtype, prp_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the property list
! to be created
! Possible values are:
! H5P_FILE_CREATE_F
! H5P_FILE_ACCESS_F
! H5P_DATASET_CREATE_F
! H5P_DATASET_XFER_F
! H5P_MOUNT_F
INTEGER(HID_T), INTENT(OUT) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pcreate_f
H5Pcreate_class(
hid_t class,
const char *name,
H5P_cls_create_func_t create,
H5P_cls_copy_func_t copy,
H5P_cls_close_func_t close
)
H5Pcreate_class registers a new property list class
with the library.
The new property list class can inherit from an existing property
list class or may be derived from the default "empty" class.
New classes with inherited properties from existing classes
may not remove those existing properties, only add or remove
their own class properties.
The create routine is called when a new property list
of this class is being created.
The H5P_cls_create_func_t callback function is defined
as follows:
H5P_cls_create_func_t)(
hid_t prop_id,
void * create_data
);
hid_t prop_id |
IN: The identifier of the property list being created |
void * create_data |
IN/OUT: User pointer to any class creation information needed |
create routine is called after any registered
create function is called for each property value.
If the create routine returns a negative value,
the new list is not returned to the user and the
property list creation routine returns an error value.
The copy routine is called when an existing property list
of this class is copied.
The H5P_cls_copy_func_t callback function
is defined as follows:
H5P_cls_copy_func_t)(
hid_t prop_id,
void * copy_data
);
hid_t prop_id |
IN: The identifier of the property list created by copying |
void * copy_data |
IN/OUT: User pointer to any class copy information needed |
copy routine is called after any registered
copy function is called for each property value.
If the copy routine returns a negative value, the new list
is not returned to the user and the property list copy routine returns
an error value.
The close routine is called when a property list of this
class
is being closed.
The H5P_cls_close_func_t callback function is defined
as follows:
H5P_cls_close_func_t)(
hid_t prop_id,
void * close_data
);
hid_t prop_id |
IN: The identifier of the property list being closed |
void * close_data |
IN/OUT: User pointer to any class close information needed |
close routine is called before any registered
close function is called for each property value.
If the close routine returns a negative value,
the property list close routine returns an error value
but the property list is still closed.
hid_t class |
IN: Property list class to inherit from. |
const char *name |
IN: Name of property list class to register |
H5P_cls_create_func_t create |
IN: Callback routine called when a property list is created |
H5P_cls_copy_func_t copy |
IN: Callback routine called when a property list is copied |
H5P_cls_close_func_t close |
IN: Callback routine called when a property list is being closed |
SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: parent ! Parent property list class
! identifier
! Possible values include:
! H5P_NO_CLASS_F
! H5P_FILE_CREATE_F
! H5P_FILE_ACCESS_F
! H5P_DATASET_CREATE_F
! H5P_DATASET_XFER_F
! H5P_MOUNT_F
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to create
INTEGER(HID_T), INTENT(OUT) :: class ! Property list class identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pcreate_class_f
H5Pcreate_list(
hid_t class)
H5Pcreate_list creates a new property list of a
given class. If a create callback exists for the
property list class, it is called before the property list
is passed back to the user.
If create callbacks exist for any individual properties
in the property list, they are called before the class
create callback.
hid_t class; |
IN: Class of property list to create. |
H5Premove_filter(hid_t plist,
H5Z_filter_t filter
)
H5Premove_filter removes the specified
filter from the filter pipeline in the
dataset creation property list plist.
The filter parameter specifies the filter to be removed.
Valid values for use in filter are as follows:
H5Z_FILTER_ALL
| Removes all filters from the permanent filter pipeline. |
H5Z_FILTER_DEFLATE
| Data compression filter, employing the gzip algorithm |
H5Z_FILTER_SHUFFLE
| Data shuffling filter |
H5Z_FILTER_FLETCHER32
| Error detection filter, employing the Fletcher32 checksum algorithm |
H5Z_FILTER_SZIP
| Data compression filter, employing the SZIP algorithm |
Additionally, user-defined filters can be removed with this routine by passing the filter identifier with which they were registered with the HDF5 Library.
Attempting to remove a filter that is not in the permanent filter pipeline is an error.
plist must be a dataset creation
property list.
plist_id
filter
SUBROUTINE h5premove_filter_f(prp_id, filter, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
! list identifier
INTEGER, INTENT(IN) :: filter ! Filter to be removed
! Valid values are:
! H5Z_FILTER_ALL_F
! H5Z_FILTER_DEFLATE_F
! H5Z_FILTER_SHUFFLE_F
! H5Z_FILTER_FLETCHER32_F
! H5Z_FILTER_SZIP_F
!
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success, -1 on failure
END SUBROUTINE h5premove_filter_f
| Release | C |
| 1.6.3 |
Function introduced in this release. Fortran subroutine introduced in this release. |
H5Pequal(
hid_t id1,
hid_t id2
)
H5Pequal compares two property lists or classes
to determine whether they are equal to one another.
Either both id1 and id2 must be
property lists or both must be classes; comparing a list to a
class is an error.
hid_t id1 |
IN: First property object to be compared |
hid_t id2 |
IN: Second property object to be compared |
SUBROUTINE h5pequal_f(plist1_id, plist2_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist1_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: plist2_id ! Property list identifier
LOGICAL, INTENET(OUT) :: flag ! Flag
! .TRUE. if lists are equal
! .FALSE. otherwise
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pequal_f
H5Pexist(
hid_t id,
const char *name
)
H5Pexist determines whether a property exists
within a property list or class.
hid_t id |
IN: Identifier for the property to query |
const char *name |
IN: Name of property to check for |
SUBROUTINE h5pexist_f(prp_id, name, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
LOGICAL, INTENT(OUT) :: flag ! Logical flag
! .TRUE. if exists
! .FALSE. otherwise
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pexist_f
H5Pfill_value_defined(hid_t plist_id,
H5D_fill_value_t *status
)
H5Pfill_value_defined determines whether a fill value
is defined in the dataset creation property list plist_id.
Valid values returned in status are as follows:
H5D_FILL_VALUE_UNDEFINED
| Fill value is undefined. | |
H5D_FILL_VALUE_DEFAULT
| Fill value is the library default. | |
H5D_FILL_VALUE_USER_DEFINED
| Fill value is defined by the application. |
H5Pfill_value_defined is designed for use in
concert with the dataset fill value properties functions
H5Pget_fill_value and H5Pget_fill_time.
See H5Dcreate for further cross-references.
hid_t plist_id |
IN: Dataset creation property list identifier. |
H5D_fill_value_t *status |
OUT: Status of fill value in property list. |
| Release | C |
| 1.6.0 | Function introduced in this release. |
H5Pget(
hid_t plid,
const char *name,
void *value
)
H5Pget retrieves a copy of the value for a property
in a property list. If there is a get callback routine
registered for this property, the copy of the value of the property
will first be passed to that routine and any changes to the copy of
the value will be used when returning the property value from this
routine.
This routine may be called for zero-sized properties with the
value set to NULL. The get routine
will be called with a NULL value if the callback exists.
The property name must exist or this routine will fail.
If the get callback routine returns an error,
value will not be modified.
hid_t plid |
IN: Identifier of the property list to query |
const char *name |
IN: Name of property to query |
void *value |
OUT: Pointer to a location to which to copy the value of of the property |
SUBROUTINE h5pget_f(plid, name, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plid ! Property list identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to get
TYPE, INTENT(OUT) :: value ! Property value
! Supported types are:
! INTEGER
! REAL
! DOUBLE PRECISION
! CHARACTER(LEN=*)
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pget_f
H5Pget_alignment(hid_t plist,
hsize_t *threshold,
hsize_t *alignment
)
H5Pget_alignment retrieves the current settings for
alignment properties from a file access property list.
The threshold and/or alignment pointers
may be null pointers (NULL).
hid_t plist |
IN: Identifier of a file access property list. |
hsize_t *threshold |
OUT: Pointer to location of return threshold value. |
hsize_t *alignment |
OUT: Pointer to location of return alignment value. |
SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: threshold ! Threshold value
INTEGER(HSIZE_T), INTENT(OUT) :: alignment ! Alignment value
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pget_alignment_f
H5Pget_alloc_time(hid_t plist_id,
H5D_alloc_time_t *alloc_time
)
H5Pget_alloc_time retrieves the timing for allocating
storage space for a dataset's raw data.
This property is set in the dataset creation property list
plist_id.
The timing setting is returned in alloc_time as one of the
following values:
H5D_ALLOC_TIME_DEFAULT
|
Uses the default allocation time, based on the dataset storage method. See the alloc_time description in
H5Pset_alloc_time for
default allocation times for various storage methods.
| |
H5D_ALLOC_TIME_EARLY
| All space is allocated when the dataset is created. | |
H5D_ALLOC_TIME_INCR
| Space is allocated incrementally as data is written to the dataset. | |
H5D_ALLOC_TIME_LATE
| All space is allocated when data is first written to the dataset. |
H5Pget_alloc_time is designed to work in concert
with the dataset fill value and fill value write time properties,
set with the functions
H5Pget_fill_value and H5Pget_fill_time.
hid_t plist_id |
IN: Dataset creation property list identifier. |
H5D_alloc_time_t *alloc_time |
IN: When to allocate dataset storage space. |
SUBROUTINE h5pget_alloc_time_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation
! property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: flag ! Allocation time flag
! Possible values are:
! H5D_ALLOC_TIME_ERROR_F
! H5D_ALLOC_TIME_DEFAULT_F
! H5D_ALLOC_TIME_EARLY_F
! H5D_ALLOC_TIME_LATE_F
! H5D_ALLOC_TIME_INCR_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pget_alloc_time_f
| Release | C |
| 1.6.0 | Function introduced in this release. |
H5Pget_attr_creation_order(
hid_t ocpl_id,
unsigned *crt_order_flags
)
H5Pget_attr_creation_order retrieves the settings for
tracking and indexing attribute creation order on an object.
ocpl_id is a dataset or group creation property list
identifier. The term ocpl, for object creation property
list, is used when different types of objects may be involved.
crt_order_flags returns flags with the
following meanings:
|
H5P_CRT_ORDER_TRACKED
| Attribute creation order is tracked but not necessarily indexed. |
|
H5P_CRT_ORDER_INDEXED
|
Attribute creation order is indexed
(requires H5P_CRT_ORDER_TRACKED).
|
crt_order_flags is returned with a value of
0 (zero), attribute creation order is neither tracked
nor indexed.
hid_t ocpl_id
|
IN: Object (group or dataset) creation property list identifier |
unsigned *crt_order_flags
|
OUT: Flags specifying whether to track and index attribute creation order |
SUBROUTINE h5pget_attr_creation_order_f(ocpl_id, crt_order_flags, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (group or dataset) creation
! property list identifier
INTEGER, INTENT(OUT) :: crt_order_flags ! Flags specifying whether to track
! and index attribute creation order
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pget_attr_creation_order_f
| Release | C |
| 1.8.0 | Function introduced in this release. |
H5Pget_attr_phase_change(
hid_t ocpl_id,
unsigned *max_compact,
unsigned *min_dense
)
H5Pget_attr_phase_change retrieves threshold values
for attribute storage on an object.
These thresholds determine the point at which attribute storage
changes from compact storage (i.e., storage in the object header)
to dense storage (i.e., storage in a heap and indexed with a B-tree).
In the general case, attributes are initially kept in compact storage.
When the number of attributes exceeds max_compact,
attribute storage switches to dense storage.
If the number of attributes subsequently falls below
min_dense, the attributes are returned to compact storage.
If max_compact is set to 0 (zero),
dense storage always used.
ocpl_id is a dataset or group creation property list
identifier. The term ocpl, for object creation property
list, is used when different types of objects may be involved.
hid_t ocpl_id
|
IN: Object (dataset or group) creation property list identifier |
unsigned *max_compact
|
OUT: Maximum number of attributes to be stored
in compact storage
(Default: 8) |
unsigned *min_dense
|
OUT: Minimum number of attributes to be stored
in dense storage
(Default: 6) |
SUBROUTINE h5pget_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: ocpl_id
! Object (dataset or group) creation property list identifier
INTEGER, INTENT(OUT) :: max_compact
! Maximum number of attributes to be stored in compact storage
! (Default: 8)
INTEGER, INTENT(OUT) :: min_dense
! Minimum number of attributes to be stored in dense storage
! (Default: 6)
INTEGER, INTENT(OUT) :: hdferr
! Error code:
! 0 on success and -1 on failure
END SUBROUTINE h5pget_attr_phase_change_f
| Release | C |
| 1.8.0 | Function introduced in this release. |
H5Pget_btree_ratios(hid_t plist,
double *left,
double *middle,
double *right
)
H5Pget_btree_ratios returns the B-tree split ratios
for a dataset transfer property list.
The B-tree split ratios are returned through the non-NULL
arguments left, middle, and right,
as set by the H5Pset_btree_ratios function.
hid_t plist |
IN: The dataset transfer property list identifier. |
double left |
OUT: The B-tree split ratio for left-most nodes. |
double right |
OUT: The B-tree split ratio for right-most nodes and lone nodes. |
double middle |
OUT: The B-tree split ratio for all other nodes. |
SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id
! Property list identifier
REAL, INTENT(OUT) :: left ! B-tree split ratio for left-most nodes
REAL, INTENT(OUT) :: middle ! B-tree split ratio for all other nodes
REAL, INTENT(OUT) :: right ! The B-tree split ratio for right-most
! nodes and lone nodes.
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! 0 on success and -1 on failure
END SUBROUTINE h5pget_btree_ratios_f
H5Pget_buffer(hid_t plist,
void **tconv,
void **bkg
)
H5Pget_buffer reads values previously set
with H5Pset_buffer.
hid_t plist |
IN: Identifier for the dataset transfer property list. |
void **tconv |
OUT: Address of the pointer to application-allocated type conversion buffer. |
void **bkg |
OUT: Address of the pointer to application-allocated background buffer. |
SUBROUTINE h5pget_buffer_f(plist_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer
! property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: size ! Conversion buffer size
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pget_buffer_f
| Release | C |
| 1.6.0 | The return type changed from hsize_t to size_t. |
| 1.4.0 | The return type changed to hsize_t. |
H5Pget_cache(hid_t plist_id,
int *mdc_nelmts,
int *rdcc_nelmts,
size_t *rdcc_nbytes,
double *rdcc_w0
)
H5Pget_cache retrieves the maximum possible
number of elements in the meta
data cache and raw data chunk cache, the maximum possible number of
bytes in the raw data chunk cache, and the preemption policy value.
Any (or all) arguments may be null pointers, in which case the corresponding datum is not returned.
hid_t plist_id |
IN: Identifier of the file access property list. |
int *mdc_nelmts |
IN/OUT: Number of elements (objects) in the meta data cache. |
int *rdcc_nelmts |
IN/OUT: Number of elements (objects) in the raw data chunk cache. |
size_t *rdcc_nbytes |
IN/OUT: Total size of the raw data chunk cache, in bytes. |
double *rdcc_w0 |
IN/OUT: Preemption policy. |
SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes,
rdcc_w0, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: mdc_nelmts ! Number of elements (objects)
! in the meta data cache
INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts ! Number of elements (objects)
! in the meta data cache
INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes ! Total size of the raw data
! chunk cache, in bytes
REAL, INTENT(OUT) :: rdcc_w0 ! Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
! 0 on success and -1 on failure
END SUBROUTINE h5pget_cache_f
| Release | C |
| 1.6.0 |
The rdcc_nbytes parameter changed from
type int to size_t. |
H5Pget_char_encoding(
hid_t plist_id,
H5T_cset_t encoding
)
H5Pget_char_encoding retrieves the character encoding
used to encode strings or object names that are created with the
property list plist_id.
Valid values for encoding are defined in
H5Tpublic.h and include the following:
H5T_CSET_ASCII
| US ASCII | |
H5T_CSET_UTF8
| UTF-8 Unicode encoding |
hid_t plist_id |
IN: Property list identifier |
H5T_cset_t encoding |
OUT: String encoding character set |
SUBROUTINE h5pget_char_encoding_f(plist_id, encoding, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id
! Property list identifier
INTEGER, INTENT(OUT) :: encoding ! Valid values for encoding are:
! H5T_CSET_ASCII_F -> US ASCII