The root of PDI configuration is a dictionary that contains the following keys:
key | value |
---|---|
"data" (optional) | a data_list |
"metadata" (optional) | a data_list |
"plugins" (optional) | a plugin_list |
".*" (optional) | anything |
data
and metadata
sections specify the type of the data in buffers exposed by the application; for metadata
, PDI keeps a copy while it only keeps references for data
,plugin
section specifies the list of plugins to load and their configuration,A array is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "array" |
"size" | a integer_or_list_node |
"subtype" (optional) | a datatype |
"subsize" (optional) | a integer_or_list_node |
"start" (optional) | a integer_or_list_node |
A array represents a potentially multi-dimensional array where:
size
key represents the size of the array in each dimension (C order),subtype
key represents the type of the elements in the array,A char
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "char" |
A char
represents the C char
datatype; it accepts no parameter.
A character
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "character" |
"kind" (optional) | an Integer expression |
A character
represents the Fortran character
datatype. The value associated to the kind
key corresponds to the Fortran kind parameter (character(kind=...)
).
A datatype
can be any of:
All these are dictionaries (except for simple_datatype
) with a type
key whose value disambiguate between them, other keys act as parameters to the type. Plugins can add new datatypes that follow the same pattern.
A data_list
is a dictionary that contains the following keys:
key | value |
---|---|
".*" (optional) | a datatype |
A double
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "double" |
A double
is a datatype that represents the C double
type. It accepts no parameter.
A float
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "float" |
A float
is a datatype that represents the C float
type. It accepts no parameter.
A int
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "int" |
A int
is a datatype that represents the C int
type. It accepts no parameter.
A int8
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "int8" |
A int8
is a datatype that represents the C int8_t
type from the <stdtypes.h>
header. It accepts no parameter.
A int
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "int16" |
A int16
is a datatype that represents the C int16_t
type from the <stdtypes.h>
header. It accepts no parameter.
A int32
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "int32" |
A int32
is a datatype that represents the C int32_t
type from the <stdtypes.h>
header. It accepts no parameter.
A int64
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "int64" |
A int64
is a datatype that represents the C int64_t
type from the <stdtypes.h>
header. It accepts no parameter.
A integer
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "integer" |
"kind" (optional) | an Integer expression |
A integer
represents the Fortran integer
datatype. The value associated to the kind
key corresponds to the Fortran kind parameter (integer(kind=...)
).
A logical
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "logical" |
"kind" (optional) | an Integer expression |
A logical
represents the Fortran logical
datatype. The value associated to the kind
key corresponds to the Fortran kind parameter (logical(kind=...)
).
A plugin_list
is a dictionary that contains the following keys:
key | value |
---|---|
".*" (optional) | anything |
A real
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "real" |
"kind" (optional) | an Integer expression |
A real
represents the Fortran real
datatype. The value associated to the kind
key corresponds to the Fortran kind parameter (real(kind=...)
).
A record
is a dictionary that contains the following keys:
key | value |
---|---|
"type" | "record" |
"buffersize" | a integer_or_list_node |
"members" (optional) | a member_list_node |
A record
represents a potentially multi-dimensional array where:
A simple_datatype
is a scalar
.
The simple_datatype
is interpreted as a shortcut for a dictionary with a single key type
whose value is the provided scalar and therefore another datatype.
For example, the following value:
is interpreted as if it was: