chfl_property
type¶
- type chfl_property¶
A
chfl_property
holds data used in properties inchfl_frame
,chfl_atom
andchfl_residue
.A property is associated with a name and can contain data of various types: logical, real, string or 3 dimensional array (
vector3d
). The property kind is used to know which kind of data is stored in the property.- Type fields:
% init [subroutine] ::
chfl_property%init()
% kind [function] ::
chfl_property%kind()
% bool [function] ::
chfl_property%bool()
% double [function] ::
chfl_property%double()
% string [function] ::
chfl_property%string()
% vector3d [function] ::
chfl_property%vector3d()
% free [subroutine] ::
chfl_property%free()
- subroutine chfl_property%init(value[, status])¶
This is a generic subroutine for initialization of a property. It allocate memory which must be released with
chfl_property%free()
.value
can be a real number, a logical value, a string (string
) or an 3-dimensional array of real numbers.- Options:
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS
, usechfl_last_error()
to learn more about the error.
- function chfl_property%kind([status])¶
Get the property kind, a number indicating which type of value this property holds. The possible kinds are represented by integer of the
chfl_property_kind
kind.- chfl_property_kind [integer]¶
Kind parameter for the integer values describing
chfl_property
kinds.
- CHFL_PROPERTY_BOOL [integer(chfl_property_kind)]¶
Kind used for
logical
(bool
in C++) values.
- CHFL_PROPERTY_DOUBLE [integer(chfl_property_kind)]¶
Kind used for
real(real64)
(double
in C++) values.
- CHFL_PROPERTY_STRING [integer(chfl_property_kind)]¶
Kind used for
string
(std::string
in C++) values.
- CHFL_PROPERTY_VECTOR3D [integer(chfl_property_kind)]¶
Kind used for
real(real64), dimension(3)
(vector3d
in C++) values.
- Return:
integer (chfl_property_kind)
- Options:
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS
, usechfl_last_error()
to learn more about the error.
- function chfl_property%bool([status])¶
Get the logical value stored in this property. If the property do not store a logical value,
status
will beCHFL_PROPERTY_ERROR
.- Return:
logical
- Options:
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS
, usechfl_last_error()
to learn more about the error.
- function chfl_property%double([status])¶
Get the real value stored in this property. If the property do not store a real value,
status
will beCHFL_PROPERTY_ERROR
.- Return:
real [real64]
- Options:
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS
, usechfl_last_error()
to learn more about the error.
- function chfl_property%string([status])¶
Get the string stored in this property. If the property do not store a string,
status
will beCHFL_PROPERTY_ERROR
. If the string is longer thanCHFL_STRING_LENGTH
, it will be truncated.- Return:
character (len=CHFL_STRING_LENGTH)
- Options:
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS
, usechfl_last_error()
to learn more about the error.
- function chfl_property%vector3d([status])¶
Get the 3 dimensional array value stored in this property. If the property do not store an array,
status
will beCHFL_PROPERTY_ERROR
.- Return:
real [dimension(3), kind(real64)]
- Options:
status [integer(chfl_status)] :: status code of the operation. If it is not
CHFL_SUCCESS
, usechfl_last_error()
to learn more about the error.
- subroutine chfl_property%free()¶
Destroy a property, and free the associated memory