JSON-Fortran kind definitions.
-DUSE_UCS4
is an optional preprocessor flag.
When present, Unicode support is enabled. Note that this
is currently only supported with the gfortran compiler.
Example: gfortran -DUSE_UCS4 ...
The documentation given here assumes USE_UCS4
is not defined.
CK
and CDK
are the JSON-Fortran character kind and JSON-Fortran default
character kind respectively. Client code MUST ensure characters of kind=CK
are used for all character variables and strings passed to the JSON-Fortran
library EXCEPT for file names which must be of 'DEFAULT'
character kind,
provided here as CDK
. In particular, any variable that is a: json path, string
value or object name passed to the JSON-Fortran library MUST be of type CK
.
Most string literal constants of default kind are fine to pass as arguments to
JSON-Fortran procedures since they have been overloaded to accept intent(in)
character arguments of the default (CDK
) kind. If you find a procedure which does
not accept an intent(in)
literal string argument of default kind, please
file an issue on GitHub.
The default real kind (RK
) and the default integer kind (IK
) can be
changed using optional preprocessor flags. This library was built with kinds:
real(kind=real64) [8 bytes]
and
integer(kind=int32) [4 bytes]
.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | CDK | = | selected_char_kind('DEFAULT') | Processor dependendant 'DEFAULT' character kind. This is 1 byte for the Intel and Gfortran compilers. |
integer, | public, | parameter | :: | CK | = | selected_char_kind(json_fortran_string_kind) | Default character kind used by JSON-Fortran. If ISO 10646 (UCS4) support is available, use that, otherwise, gracefully fall back on 'DEFAULT' characters. Currently only gfortran >= 4.9.2 will correctly support UCS4 which is stored in 4 bytes. (and perhaps others). |
integer, | public, | parameter | :: | IK | = | int32 | Default integer kind if not specified [4 bytes] |
integer, | public, | parameter | :: | LK | = | logical_kinds(min(3, size(logical_kinds))) | Default logical kind. This is 4 bytes for the Intel and Gfortran compilers (and perhaps others). The declaration ensures a valid kind if the compiler doesn't have a logical_kinds(3). |
integer, | public, | parameter | :: | RK | = | real64 | Default real kind if not specified [8 bytes] |
character(kind=CDK,len=*), | private, | parameter | :: | json_fortran_string_kind | = | 'DEFAULT' | String kind preprocessor macro. this is the string kind to use unless compiling with GFortran AND UCS4/ISO 10646 support is requested |