The json_file is the main public class that is
used to open a file and get data from it.
A json_file contains only two items: an instance of a json_core,
which is used for all data manipulation, and a json_value pointer,
which is used to construct the linked-list data structure.
Note that most methods in the json_file class are simply wrappers
to the lower-level routines in the json_value_module.
program test
use json_module
implicit none
type(json_file) :: json
integer :: ival
real(real64) :: rval
character(len=:),allocatable :: cval
logical :: found
call json%initialize(compact_reals=.true.)
call json%load(filename='myfile.json')
call json%print() !print to the console
call json%get('var.i',ival,found)
call json%get('var.r(3)',rval,found)
call json%get('var.c',cval,found)
call json%destroy()
end program test
Note
The destroy() method may be called to free the memory if necessary.
json_file includes a finalizer that also calls
destroy() when the variable goes out of scope.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(json_core), | private | :: | core |
The instance of the json_core factory used for this file. |
|||
| type(json_hash_table), | private | :: | hash |
the hash table for this file (if enabled) |
|||
| logical, | private | :: | hash_enabled | = | .false. |
whether to use a hash table for this file |
|
| type(json_value), | private, | pointer | :: | p | => | null() |
the JSON structure read from the file |
Structure constructor to initialize a json_file object with an existing json_value object or a JSON string, and either the json_core settings or a json_core instance.
...
type(json_file) :: my_file
type(json_value),pointer :: json_object
type(json_core) :: json_core_object
...
! Construct a json_object:
!could do this:
my_file = json_file(json_object)
!or:
my_file = json_file(json_object,verbose=.true.)
!or:
my_file = json_file('{"x": [1]}',verbose=.true.)
!or:
my_file = json_file(json_object,json_core_object)
!or:
my_file = json_file('{"x": [1]}',json_core_object)
Cast a json_value object as a json_file object.
It also calls the initialize() method.
Note
initialize_json_core, json_initialize, initialize_json_core_in_file, initialize_json_file, initialize_json_file_v2, initialize_json_file_from_string, and initialize_json_file_from_string_v2 all have a similar interface.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(json_value), | optional, | pointer | :: | p |
|
|
| logical(kind=LK), | intent(in), | optional | :: | verbose |
mainly useful for debugging (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | compact_reals |
to compact the real number strings for output (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | print_signs |
always print numeric sign (default is false) |
|
| character(kind=CDK, len=*), | intent(in), | optional | :: | real_format |
Real number format: ‘E’ [default], ‘*’, ‘G’, ‘EN’, or ‘ES’ |
|
| integer(kind=IK), | intent(in), | optional | :: | spaces_per_tab |
number of spaces per tab for indenting (default is 2) |
|
| logical(kind=LK), | intent(in), | optional | :: | strict_type_checking |
if true, no integer, double, or logical type
conversions are done for the |
|
| logical(kind=LK), | intent(in), | optional | :: | trailing_spaces_significant |
for name and path comparisons, is trailing space to be considered significant. (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | case_sensitive_keys |
for name and path comparisons, are they case sensitive. (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | no_whitespace |
if true, printing the JSON structure is done without adding any non-significant spaces or linebreaks (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | unescape_strings |
If false, then the raw escaped string is returned from json_get_string and similar routines. If true [default], then the string is returned unescaped. |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | comment_char |
If present, these characters are used
to denote comments in the JSON file,
which will be ignored if present.
Example: |
|
| integer(kind=IK), | intent(in), | optional | :: | path_mode |
How the path strings are interpreted in the
|
|
| character(kind=CK, len=1), | intent(in), | optional | :: | path_separator |
The |
|
| logical(kind=LK), | intent(in), | optional | :: | compress_vectors |
If true, then arrays of integers,
nulls, doubles, and logicals are
printed all on one line.
[Note: |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_duplicate_keys |
|
|
| logical(kind=LK), | intent(in), | optional | :: | escape_solidus |
Note that this option does not affect parsing (both escaped and unescaped are still valid in all cases). |
|
| logical(kind=LK), | intent(in), | optional | :: | stop_on_error |
If an exception is raised, then immediately quit. (Default is False). |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_real_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | non_normal_mode |
How to serialize NaN, Infinity, and -Infinity real values: |
|
| logical(kind=LK), | intent(in), | optional | :: | use_quiet_nan |
|
|
| logical(kind=LK), | intent(in), | optional | :: | strict_integer_type_checking |
(default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_trailing_comma |
Allow a single trailing comma in arrays and objects. (default is true) |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_mode |
Which version of the JSON parser to use: |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_initial_stack_size |
The initial stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_max_stack_size |
The maximum stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | string_to_real_mode |
Which implementation to use for converting strings to real values: |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_value |
The integer value to return when retrieving
a |
|
| logical(kind=LK), | intent(in), | optional | :: | nullify_pointer |
if True, then |
Cast a json_value pointer and a json_core object as a json_file object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(json_value), | intent(in), | pointer | :: | json_value_object | ||
| type(json_core), | intent(in) | :: | json_core_object |
Cast a JSON string as a json_file object.
It also calls the initialize() method.
type(json_file) :: f
f = json_file('{"key ": 1}', trailing_spaces_significant=.true.)
Note
initialize_json_core, json_initialize, initialize_json_core_in_file, initialize_json_file, initialize_json_file_v2, initialize_json_file_from_string, and initialize_json_file_from_string_v2 all have a similar interface.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| logical(kind=LK), | intent(in), | optional | :: | verbose |
mainly useful for debugging (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | compact_reals |
to compact the real number strings for output (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | print_signs |
always print numeric sign (default is false) |
|
| character(kind=CDK, len=*), | intent(in), | optional | :: | real_format |
Real number format: ‘E’ [default], ‘*’, ‘G’, ‘EN’, or ‘ES’ |
|
| integer(kind=IK), | intent(in), | optional | :: | spaces_per_tab |
number of spaces per tab for indenting (default is 2) |
|
| logical(kind=LK), | intent(in), | optional | :: | strict_type_checking |
if true, no integer, double, or logical type
conversions are done for the |
|
| logical(kind=LK), | intent(in), | optional | :: | trailing_spaces_significant |
for name and path comparisons, is trailing space to be considered significant. (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | case_sensitive_keys |
for name and path comparisons, are they case sensitive. (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | no_whitespace |
if true, printing the JSON structure is done without adding any non-significant spaces or linebreaks (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | unescape_strings |
If false, then the raw escaped string is returned from json_get_string and similar routines. If true [default], then the string is returned unescaped. |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | comment_char |
If present, these characters are used
to denote comments in the JSON file,
which will be ignored if present.
Example: |
|
| integer(kind=IK), | intent(in), | optional | :: | path_mode |
How the path strings are interpreted in the
|
|
| character(kind=CK, len=1), | intent(in), | optional | :: | path_separator |
The |
|
| logical(kind=LK), | intent(in), | optional | :: | compress_vectors |
If true, then arrays of integers,
nulls, doubles, and logicals are
printed all on one line.
[Note: |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_duplicate_keys |
|
|
| logical(kind=LK), | intent(in), | optional | :: | escape_solidus |
Note that this option does not affect parsing (both escaped and unescaped are still valid in all cases). |
|
| logical(kind=LK), | intent(in), | optional | :: | stop_on_error |
If an exception is raised, then immediately quit. (Default is False). |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_real_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | non_normal_mode |
How to serialize NaN, Infinity, and -Infinity real values: |
|
| logical(kind=LK), | intent(in), | optional | :: | use_quiet_nan |
|
|
| logical(kind=LK), | intent(in), | optional | :: | strict_integer_type_checking |
(default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_trailing_comma |
Allow a single trailing comma in arrays and objects. (default is true) |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_mode |
Which version of the JSON parser to use: |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_initial_stack_size |
The initial stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_max_stack_size |
The maximum stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | string_to_real_mode |
Which implementation to use for converting strings to real values: |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_value |
The integer value to return when retrieving
a |
Alternate version of initialize_json_file_from_string, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CDK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| logical(kind=LK), | intent(in), | optional | :: | verbose |
mainly useful for debugging (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | compact_reals |
to compact the real number strings for output (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | print_signs |
always print numeric sign (default is false) |
|
| character(kind=CDK, len=*), | intent(in), | optional | :: | real_format |
Real number format: ‘E’ [default], ‘*’, ‘G’, ‘EN’, or ‘ES’ |
|
| integer(kind=IK), | intent(in), | optional | :: | spaces_per_tab |
number of spaces per tab for indenting (default is 2) |
|
| logical(kind=LK), | intent(in), | optional | :: | strict_type_checking |
if true, no integer, double, or logical type
conversions are done for the |
|
| logical(kind=LK), | intent(in), | optional | :: | trailing_spaces_significant |
for name and path comparisons, is trailing space to be considered significant. (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | case_sensitive_keys |
for name and path comparisons, are they case sensitive. (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | no_whitespace |
if true, printing the JSON structure is done without adding any non-significant spaces or linebreaks (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | unescape_strings |
If false, then the raw escaped string is returned from json_get_string and similar routines. If true [default], then the string is returned unescaped. |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | comment_char |
If present, these characters are used
to denote comments in the JSON file,
which will be ignored if present.
Example: |
|
| integer(kind=IK), | intent(in), | optional | :: | path_mode |
How the path strings are interpreted in the
|
|
| character(kind=CK, len=1), | intent(in), | optional | :: | path_separator |
The |
|
| logical(kind=LK), | intent(in), | optional | :: | compress_vectors |
If true, then arrays of integers,
nulls, doubles, and logicals are
printed all on one line.
[Note: |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_duplicate_keys |
|
|
| logical(kind=LK), | intent(in), | optional | :: | escape_solidus |
Note that this option does not affect parsing (both escaped and unescaped are still valid in all cases). |
|
| logical(kind=LK), | intent(in), | optional | :: | stop_on_error |
If an exception is raised, then immediately quit. (Default is False). |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_real_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | non_normal_mode |
How to serialize NaN, Infinity, and -Infinity real values: |
|
| logical(kind=LK), | intent(in), | optional | :: | use_quiet_nan |
|
|
| logical(kind=LK), | intent(in), | optional | :: | strict_integer_type_checking |
(default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_trailing_comma |
Allow a single trailing comma in arrays and objects. (default is true) |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_mode |
Which version of the JSON parser to use: |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_initial_stack_size |
The initial stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_max_stack_size |
The maximum stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | string_to_real_mode |
Which implementation to use for converting strings to real values: |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_value |
The integer value to return when retrieving
a |
Cast a JSON string and a json_core object as a json_file object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| type(json_core), | intent(in) | :: | json_core_object |
Alternate version of initialize_json_file_from_string_v2, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CDK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| type(json_core), | intent(in) | :: | json_core_object |
Finalizer for json_file class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(json_file), | intent(inout) | :: | me |
Add a variable to a json_file, by specifying the path.
program test
use json_module, rk=>json_rk, ik=>json_ik
implicit none
type(json_file) :: f
call f%initialize() ! specify whatever init options you want.
call f%add('inputs.t', 0.0_rk)
call f%add('inputs.x', [1.0_rk,2.0_rk,3.0_rk])
call f%add('inputs.flag', .true.)
call f%print() ! print to the console
end program test
Add a json_value pointer as the root object to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| type(json_value), | intent(in), | pointer | :: | p |
pointer to the variable to add |
|
| logical(kind=LK), | intent(in), | optional | :: | destroy_original |
if the file currently contains an associated pointer, it is destroyed. [Default is True] |
Add a json_value pointer to an object to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(in), | pointer | :: | p |
pointer to the variable to add |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_object, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(in), | pointer | :: | p |
pointer to the variable to add |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add an integer value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_integer, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real where val is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real32, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a real(RK) variable value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a logical(LK) value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_logical, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a character string to a json file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_add_string, where “path” and “val” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Add an integer vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_integer_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real_vec where vec is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real32_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a real(RK) vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a logical(LK) vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_logical_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a string vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Alternate version of json_file_add_string_vec, where “path” and “vec” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Wrapper for json_file_add_string where “path” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Wrapper for json_file_add_string where “val” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_add_string_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Alternate version of json_file_add_string_vec, where “vec” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Add a null variable to a json_file, by specifying the path.
Add a null value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_null, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a null vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | n_values |
number of nulls to add |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_null_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | n_values |
number of nulls to add |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Assignment operator for json_core = json_core. This will duplicate the json_core and also perform a deep copy of the json_value data structure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(out) | :: | me | |||
| type(json_file), | intent(in) | :: | f |
Assignment operator for character = json_core. This is just a wrapper for the json_value_to_string routine.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CK, len=:), | intent(out), | allocatable | :: | str | ||
| class(json_file), | intent(in) | :: | me |
Assignment operator for json_core = character. This is just a wrapper for the json_file_load_from_string routine.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | str |
Assignment operator for json_core = json_core. This will duplicate the json_core and also perform a deep copy of the json_value data structure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(out) | :: | me | |||
| type(json_file), | intent(in) | :: | f |
Assignment operator for character = json_core. This is just a wrapper for the json_value_to_string routine.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CK, len=:), | intent(out), | allocatable | :: | str | ||
| class(json_file), | intent(in) | :: | me |
Assignment operator for json_core = character. This is just a wrapper for the json_file_load_from_string routine.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | str |
Alternate version of assign_string_to_json_file, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | str |
Retrieve error status and message from the class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| logical(kind=LK), | intent(out), | optional | :: | status_ok |
true if there were no errors |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | error_msg |
the error message (if there were errors) |
Clear exceptions in the class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me |
Load JSON from a string.
Load the JSON data from a string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| logical(kind=LK), | intent(in), | optional | :: | destroy_pointer |
destroy the pointer before loading (default is True) |
Alternate version of json_file_load_from_string, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | str |
Destroy the json_value data in a json_file. This may be done when the variable is no longer needed, or will be reused to open a different file. Otherwise a memory leak will occur.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| logical, | intent(in), | optional | :: | destroy_core |
to also destroy the json_core. default is to leave it as is. |
Destroy the hash table if it exists.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me |
Check error status in the file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(in) | :: | me |
will be true if there has been an error.
Get a variable from a json_file, by specifying the path.
Get a json_value pointer to an object from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(out), | pointer | :: | p |
pointer to the variable |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
Alternate version of json_file_get_object, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(out), | pointer | :: | p |
pointer to the variable |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
Get an integer value from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_integer, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real where val is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real32, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional | :: | default |
Get a real(RK) variable value from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional | :: | default |
Get a logical(LK) value from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_logical, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional | :: | default |
Get a character string from a json file. The output val is an allocatable character string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | allocatable | :: | val |
value |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | default |
Alternate version of json_file_get_string, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | allocatable | :: | val |
value |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | default |
Get an integer vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_integer_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_real_vec where vec is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_real32_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional, | dimension(:) | :: | default |
Get a real(RK) vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_real_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional, | dimension(:) | :: | default |
Get a logical(LK) vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_logical_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional, | dimension(:) | :: | default |
Get a string vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_string_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default |
Get an (allocatable length) string vector from a JSON file. This is just a wrapper for json_get_alloc_string_vec_by_path.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | ilen |
the actual length of each character string in the array |
|
| logical(kind=LK), | intent(out), | optional | :: | found | ||
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default | |
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default_ilen |
the actual
length of |
Alternate version of json_file_get_alloc_string_vec, where “path” is kind=CDK. This is just a wrapper for wrap_json_get_alloc_string_vec_by_path.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | ilen |
the actual length of each character string in the array |
|
| logical(kind=LK), | intent(out), | optional | :: | found | ||
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default | |
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default_ilen |
the actual
length of |
Get a json_value pointer to the JSON file root.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| type(json_value), | intent(out), | pointer | :: | p |
pointer to the variable |
Get a copy of the json_core in this json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(in) | :: | me | |||
| type(json_core), | intent(out) | :: | core |
Returns information about a variable in a json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
path to the variable |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
the variable exists in the structure |
|
| integer(kind=IK), | intent(out), | optional | :: | var_type |
variable type |
|
| integer(kind=IK), | intent(out), | optional | :: | n_children |
number of children |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Alternate version of json_file_variable_info, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| logical(kind=LK), | intent(out), | optional | :: | found | ||
| integer(kind=IK), | intent(out), | optional | :: | var_type | ||
| integer(kind=IK), | intent(out), | optional | :: | n_children | ||
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Initialize the json_core for this json_file. This is just a wrapper for json_initialize.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| logical(kind=LK), | intent(in), | optional | :: | verbose |
mainly useful for debugging (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | compact_reals |
to compact the real number strings for output (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | print_signs |
always print numeric sign (default is false) |
|
| character(kind=CDK, len=*), | intent(in), | optional | :: | real_format |
Real number format: ‘E’ [default], ‘*’, ‘G’, ‘EN’, or ‘ES’ |
|
| integer(kind=IK), | intent(in), | optional | :: | spaces_per_tab |
number of spaces per tab for indenting (default is 2) |
|
| logical(kind=LK), | intent(in), | optional | :: | strict_type_checking |
if true, no integer, double, or logical type
conversions are done for the |
|
| logical(kind=LK), | intent(in), | optional | :: | trailing_spaces_significant |
for name and path comparisons, is trailing space to be considered significant. (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | case_sensitive_keys |
for name and path comparisons, are they case sensitive. (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | no_whitespace |
if true, printing the JSON structure is done without adding any non-significant spaces or linebreaks (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | unescape_strings |
If false, then the raw escaped string is returned from json_get_string and similar routines. If true [default], then the string is returned unescaped. |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | comment_char |
If present, these characters are used
to denote comments in the JSON file,
which will be ignored if present.
Example: |
|
| integer(kind=IK), | intent(in), | optional | :: | path_mode |
How the path strings are interpreted in the
|
|
| character(kind=CK, len=1), | intent(in), | optional | :: | path_separator |
The |
|
| logical(kind=LK), | intent(in), | optional | :: | compress_vectors |
If true, then arrays of integers,
nulls, doubles, and logicals are
printed all on one line.
[Note: |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_duplicate_keys |
|
|
| logical(kind=LK), | intent(in), | optional | :: | escape_solidus |
Note that this option does not affect parsing (both escaped and unescaped are still valid in all cases). |
|
| logical(kind=LK), | intent(in), | optional | :: | stop_on_error |
If an exception is raised, then immediately quit. (Default is False). |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_real_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | non_normal_mode |
How to serialize NaN, Infinity, and -Infinity real values: |
|
| logical(kind=LK), | intent(in), | optional | :: | use_quiet_nan |
|
|
| logical(kind=LK), | intent(in), | optional | :: | strict_integer_type_checking |
(default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_trailing_comma |
Allow a single trailing comma in arrays and objects. (default is true) |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_mode |
Which version of the JSON parser to use: |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_initial_stack_size |
The initial stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_max_stack_size |
The maximum stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | string_to_real_mode |
Which implementation to use for converting strings to real values: |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_value |
The integer value to return when retrieving
a |
Set the json_core for this json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| type(json_core), | intent(in) | :: | core |
Create a hash table from the contents of the JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| logical(kind=LK), | intent(out) | :: | status_ok |
true if no problems. |
||
| integer(kind=IK), | intent(in), | optional | :: | initial_capacity |
initial capacity of the hash table (number of buckets). If not provided, it will be set based on the number of members divided by the load factor to minimize the number of resizes needed as members are inserted |
Initialize the json_core for this json_file. This is just a wrapper for json_initialize.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| logical(kind=LK), | intent(in), | optional | :: | verbose |
mainly useful for debugging (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | compact_reals |
to compact the real number strings for output (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | print_signs |
always print numeric sign (default is false) |
|
| character(kind=CDK, len=*), | intent(in), | optional | :: | real_format |
Real number format: ‘E’ [default], ‘*’, ‘G’, ‘EN’, or ‘ES’ |
|
| integer(kind=IK), | intent(in), | optional | :: | spaces_per_tab |
number of spaces per tab for indenting (default is 2) |
|
| logical(kind=LK), | intent(in), | optional | :: | strict_type_checking |
if true, no integer, double, or logical type
conversions are done for the |
|
| logical(kind=LK), | intent(in), | optional | :: | trailing_spaces_significant |
for name and path comparisons, is trailing space to be considered significant. (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | case_sensitive_keys |
for name and path comparisons, are they case sensitive. (default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | no_whitespace |
if true, printing the JSON structure is done without adding any non-significant spaces or linebreaks (default is false) |
|
| logical(kind=LK), | intent(in), | optional | :: | unescape_strings |
If false, then the raw escaped string is returned from json_get_string and similar routines. If true [default], then the string is returned unescaped. |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | comment_char |
If present, these characters are used
to denote comments in the JSON file,
which will be ignored if present.
Example: |
|
| integer(kind=IK), | intent(in), | optional | :: | path_mode |
How the path strings are interpreted in the
|
|
| character(kind=CK, len=1), | intent(in), | optional | :: | path_separator |
The |
|
| logical(kind=LK), | intent(in), | optional | :: | compress_vectors |
If true, then arrays of integers,
nulls, doubles, and logicals are
printed all on one line.
[Note: |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_duplicate_keys |
|
|
| logical(kind=LK), | intent(in), | optional | :: | escape_solidus |
Note that this option does not affect parsing (both escaped and unescaped are still valid in all cases). |
|
| logical(kind=LK), | intent(in), | optional | :: | stop_on_error |
If an exception is raised, then immediately quit. (Default is False). |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_real_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | non_normal_mode |
How to serialize NaN, Infinity, and -Infinity real values: |
|
| logical(kind=LK), | intent(in), | optional | :: | use_quiet_nan |
|
|
| logical(kind=LK), | intent(in), | optional | :: | strict_integer_type_checking |
(default is true) |
|
| logical(kind=LK), | intent(in), | optional | :: | allow_trailing_comma |
Allow a single trailing comma in arrays and objects. (default is true) |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_mode |
Which version of the JSON parser to use: |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_initial_stack_size |
The initial stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | parser_max_stack_size |
The maximum stack size (in number of elements)
to use when |
|
| integer(kind=IK), | intent(in), | optional | :: | string_to_real_mode |
Which implementation to use for converting strings to real values: |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_mode |
if |
|
| integer(kind=IK), | intent(in), | optional | :: | null_to_integer_value |
The integer value to return when retrieving
a |
Check if the hash table is enabled.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(in) | :: | me |
Add a json_value pointer as the root object to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| type(json_value), | intent(in), | pointer | :: | p |
pointer to the variable to add |
|
| logical(kind=LK), | intent(in), | optional | :: | destroy_original |
if the file currently contains an associated pointer, it is destroyed. [Default is True] |
Add an integer value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add an integer vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a logical(LK) value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a logical(LK) vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a null value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a null vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | n_values |
number of nulls to add |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a json_value pointer to an object to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(in), | pointer | :: | p |
pointer to the variable to add |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a real(RK) variable value to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real where val is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real_vec where vec is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a real(RK) vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Add a character string to a json file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Wrapper for json_file_add_string where “path” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Wrapper for json_file_add_string where “val” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Add a string vector to a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Alternate version of json_file_add_string_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Alternate version of json_file_add_string_vec, where “vec” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Get an (allocatable length) string vector from a JSON file. This is just a wrapper for json_get_alloc_string_vec_by_path.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | ilen |
the actual length of each character string in the array |
|
| logical(kind=LK), | intent(out), | optional | :: | found | ||
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default | |
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default_ilen |
the actual
length of |
Get an integer value from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional | :: | default |
Get an integer vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default |
Get a logical(LK) value from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional | :: | default |
Get a logical(LK) vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional, | dimension(:) | :: | default |
Get a json_value pointer to an object from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(out), | pointer | :: | p |
pointer to the variable |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
Get a real(RK) variable value from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real where val is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real_vec where vec is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional, | dimension(:) | :: | default |
Get a real(RK) vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional, | dimension(:) | :: | default |
Get a json_value pointer to the JSON file root.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| type(json_value), | intent(out), | pointer | :: | p |
pointer to the variable |
Get a character string from a json file. The output val is an allocatable character string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | allocatable | :: | val |
value |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | default |
Get a string vector from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default |
Load the JSON data from a string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| logical(kind=LK), | intent(in), | optional | :: | destroy_pointer |
destroy the pointer before loading (default is True) |
Print the JSON file to the console.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me |
Print the JSON structure to the specified filename. The file is opened, printed, and then closed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | filename |
filename to print to |
Prints the JSON file to the specified file unit number.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| integer(kind=IK), | intent(in) | :: | iunit |
file unit number (must not be -1) |
Remove a variable from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
Rename a variable in a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Wrapper for json_file_rename where “name” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Wrapper for json_file_rename where “path” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| integer(kind=IK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| logical(kind=LK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| real(kind=RK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_real where val is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| real(kind=real32), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| character(kind=CK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_update_string, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| character(kind=CK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_update_string, where “val” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| character(kind=CDK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Returns true if the path is present in the JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
if the variable was found
A wrapper for json_file_valid_path for the .in. operator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| class(json_file), | intent(in) | :: | me |
the JSON file |
if the variable was found
Returns information about a variable in a json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
path to the variable |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
the variable exists in the structure |
|
| integer(kind=IK), | intent(out), | optional | :: | var_type |
variable type |
|
| integer(kind=IK), | intent(out), | optional | :: | n_children |
number of children |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Returns matrix information about a variable in a json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
path to the variable |
||
| logical(kind=LK), | intent(out) | :: | is_matrix |
true if it is a valid matrix |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
true if it was found |
|
| integer(kind=IK), | intent(out), | optional | :: | var_type |
variable type of data in the matrix (if all elements have the same type) |
|
| integer(kind=IK), | intent(out), | optional | :: | n_sets |
number of data sets (i.e., matrix rows if using row-major order) |
|
| integer(kind=IK), | intent(out), | optional | :: | set_size |
size of each data set (i.e., matrix cols if using row-major order) |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Load JSON from a file.
Load the JSON data from a file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | filename |
the filename to open |
||
| integer(kind=IK), | intent(in), | optional | :: | unit |
the unit number to use (if not present, a newunit is used) |
|
| logical(kind=LK), | intent(in), | optional | :: | destroy_pointer |
destroy the pointer before loading (default is True) |
The same as load, but only here for backward compatibility
Load the JSON data from a file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | filename |
the filename to open |
||
| integer(kind=IK), | intent(in), | optional | :: | unit |
the unit number to use (if not present, a newunit is used) |
|
| logical(kind=LK), | intent(in), | optional | :: | destroy_pointer |
destroy the pointer before loading (default is True) |
The same as deserialize, but only here for backward compatibility
Load the JSON data from a string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | str |
string to load JSON data from |
||
| logical(kind=LK), | intent(in), | optional | :: | destroy_pointer |
destroy the pointer before loading (default is True) |
Alternate version of json_file_load_from_string, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | str |
Returns matrix information about a variable in a json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
path to the variable |
||
| logical(kind=LK), | intent(out) | :: | is_matrix |
true if it is a valid matrix |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
true if it was found |
|
| integer(kind=IK), | intent(out), | optional | :: | var_type |
variable type of data in the matrix (if all elements have the same type) |
|
| integer(kind=IK), | intent(out), | optional | :: | n_sets |
number of data sets (i.e., matrix rows if using row-major order) |
|
| integer(kind=IK), | intent(out), | optional | :: | set_size |
size of each data set (i.e., matrix cols if using row-major order) |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Alternate version of json_file_variable_matrix_info, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
path to the variable |
||
| logical(kind=LK), | intent(out) | :: | is_matrix |
true if it is a valid matrix |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
true if it was found |
|
| integer(kind=IK), | intent(out), | optional | :: | var_type |
variable type of data in the matrix (if all elements have the same type) |
|
| integer(kind=IK), | intent(out), | optional | :: | n_sets |
number of data sets (i.e., matrix rows if using row-major order) |
|
| integer(kind=IK), | intent(out), | optional | :: | set_size |
size of each data set (i.e., matrix cols if using row-major order) |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Move the json_value pointer from one json_file to another. The “from” pointer is then nullified, but not destroyed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | to | |||
| class(json_file), | intent(inout) | :: | from |
Nullify the json_value pointer in a json_file, but do not destroy it.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me |
A wrapper for json_file_valid_path for the .in. operator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| class(json_file), | intent(in) | :: | me |
the JSON file |
if the variable was found
Alternate version of json_file_valid_path_op, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| class(json_file), | intent(in) | :: | me |
the JSON file |
if the variable was found
Print the JSON file to the console.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me |
Prints the JSON file to the specified file unit number.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| integer(kind=IK), | intent(in) | :: | iunit |
file unit number (must not be -1) |
Print the JSON structure to the specified filename. The file is opened, printed, and then closed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | filename |
filename to print to |
This is a wrapper for json_print_error_message.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| integer, | intent(in), | optional | :: | io_unit |
The same as print, but only here for backward compatibility
Print the JSON file to the console.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me |
Prints the JSON file to the specified file unit number.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| integer(kind=IK), | intent(in) | :: | iunit |
file unit number (must not be -1) |
Print the JSON structure to the specified filename. The file is opened, printed, and then closed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | filename |
filename to print to |
The same as serialize, but only here for backward compatibility
Print the JSON file to a string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=:), | intent(out), | allocatable | :: | str |
string to print JSON data to |
Remove a variable from a json_file by specifying the path.
Remove a variable from a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
Alternate version of json_file_remove, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
Rename a variable, specifying it by path
Rename a variable in a JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Alternate version of json_file_rename, where “path” and “name” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Wrapper for json_file_rename where “path” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Wrapper for json_file_rename where “name” is kind=CDK).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Print the json_value structure to an allocatable string
Print the JSON file to a string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=:), | intent(out), | allocatable | :: | str |
string to print JSON data to |
Set the json_core for this json_file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| type(json_core), | intent(in) | :: | core |
Throw an exception.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | msg |
the error message |
||
| logical(kind=LK), | intent(inout), | optional | :: | found |
if the caller is handling the
exception with an optimal return
argument. If so, |
Traverse the JSON structure in the file. This routine calls the user-specified json_traverse_callback_func for each element of the structure.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| procedure(json_traverse_callback_func) | :: | traverse_callback |
Update a scalar variable in a json_file, by specifying the path.
Note
These have been mostly supplanted by the add
methods, which do a similar thing (and can be used for
scalars and vectors, etc.)
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| integer(kind=IK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_integer, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| integer(kind=IK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| logical(kind=LK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_logical, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| logical(kind=LK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_real where val is real32.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| real(kind=real32), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_real32, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| real(kind=real32), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| real(kind=RK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_real, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| real(kind=RK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Given the path string, if the variable is present in the file, and is a scalar, then update its value. If it is not present, then create it and set its value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| character(kind=CK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_update_string, where “path” and “val” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| character(kind=CDK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_update_string, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| character(kind=CK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_update_string, where “val” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path | |||
| character(kind=CDK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Verify that a path is valid (i.e., a variable with this path exists in the file).
Returns true if the path is present in the JSON file.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CK, len=*), | intent(in) | :: | path |
the path to the variable |
if the variable was found
Alternate version of json_file_valid_path, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
if the variable was found
Alternate version of assign_string_to_json_file, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | str |
Alternate version of json_file_add_integer, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_integer_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_logical, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_logical_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_null, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_null_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(in) | :: | n_values |
number of nulls to add |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_object, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(in), | pointer | :: | p |
pointer to the variable to add |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real32, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real32_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_real_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
Alternate version of json_file_add_string, where “path” and “val” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_add_string_vec, where “path” and “vec” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in), | dimension(:) | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
|
| logical(kind=LK), | intent(out), | optional | :: | was_created |
if the variable had to be created |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | ilen |
the string lengths of each
element in |
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for each element |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for each element (note that ADJUSTL is done before TRIM) |
Alternate version of json_file_get_alloc_string_vec, where “path” is kind=CDK. This is just a wrapper for wrap_json_get_alloc_string_vec_by_path.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | ilen |
the actual length of each character string in the array |
|
| logical(kind=LK), | intent(out), | optional | :: | found | ||
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default | |
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default_ilen |
the actual
length of |
Alternate version of json_file_get_integer, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_integer_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| integer(kind=IK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| integer(kind=IK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_logical, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_logical_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| logical(kind=LK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| logical(kind=LK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_object, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| type(json_value), | intent(out), | pointer | :: | p |
pointer to the variable |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
Alternate version of json_file_get_real, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real32, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out) | :: | val |
value |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional | :: | default |
Alternate version of json_file_get_real32_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=real32), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=real32), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_real_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| real(kind=RK), | intent(out), | dimension(:), allocatable | :: | vec |
the value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| real(kind=RK), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_get_string, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=:), | intent(out), | allocatable | :: | val |
value |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional | :: | default |
Alternate version of json_file_get_string_vec, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CK, len=*), | intent(out), | dimension(:), allocatable | :: | vec |
value vector |
|
| logical(kind=LK), | intent(out), | optional | :: | found |
if it was really found |
|
| character(kind=CK, len=*), | intent(in), | optional, | dimension(:) | :: | default |
Alternate version of json_file_load_from_string, where “str” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | str |
Alternate version of json_file_remove, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
Alternate version of json_file_rename, where “path” and “name” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| character(kind=CDK, len=*), | intent(in) | :: | name |
the new name |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
if the variable was found |
Alternate version of json_file_update_integer, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| integer(kind=IK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_logical, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| logical(kind=LK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_real, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| real(kind=RK), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_real32, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| real(kind=real32), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found |
Alternate version of json_file_update_string, where “path” and “val” are kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| character(kind=CDK, len=*), | intent(in) | :: | val | |||
| logical(kind=LK), | intent(out) | :: | found | |||
| logical(kind=LK), | intent(in), | optional | :: | trim_str |
if TRIM() should be called for the |
|
| logical(kind=LK), | intent(in), | optional | :: | adjustl_str |
if ADJUSTL() should be called for the |
Alternate version of json_file_valid_path, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
if the variable was found
Alternate version of json_file_valid_path_op, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(kind=CDK, len=*), | intent(in) | :: | path |
the path to the variable |
||
| class(json_file), | intent(in) | :: | me |
the JSON file |
if the variable was found
Alternate version of json_file_variable_info, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path | |||
| logical(kind=LK), | intent(out), | optional | :: | found | ||
| integer(kind=IK), | intent(out), | optional | :: | var_type | ||
| integer(kind=IK), | intent(out), | optional | :: | n_children | ||
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
Alternate version of json_file_variable_matrix_info, where “path” is kind=CDK.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(json_file), | intent(inout) | :: | me | |||
| character(kind=CDK, len=*), | intent(in) | :: | path |
path to the variable |
||
| logical(kind=LK), | intent(out) | :: | is_matrix |
true if it is a valid matrix |
||
| logical(kind=LK), | intent(out), | optional | :: | found |
true if it was found |
|
| integer(kind=IK), | intent(out), | optional | :: | var_type |
variable type of data in the matrix (if all elements have the same type) |
|
| integer(kind=IK), | intent(out), | optional | :: | n_sets |
number of data sets (i.e., matrix rows if using row-major order) |
|
| integer(kind=IK), | intent(out), | optional | :: | set_size |
size of each data set (i.e., matrix cols if using row-major order) |
|
| character(kind=CK, len=:), | intent(out), | optional, | allocatable | :: | name |
variable name |
type,public :: json_file private type(json_core) :: core !! The instance of the [[json_core(type)]] !! factory used for this file. type(json_value),pointer :: p => null() !! the JSON structure read from the file ! this class also has the option to use a hash table logical :: hash_enabled = .false. !! whether to use a hash table for this file type(json_hash_table) :: hash !! the hash table for this file (if enabled) contains generic,public :: initialize => initialize_json_core_in_file,& set_json_core_in_file procedure,public :: get_core => get_json_core_in_file !> ! Load JSON from a file. procedure,public :: load => json_file_load !> ! The same as `load`, but only here for backward compatibility procedure,public :: load_file => json_file_load !> ! Load JSON from a string. generic,public :: deserialize => MAYBEWRAP(json_file_load_from_string) !> ! The same as `deserialize`, but only here for backward compatibility generic,public :: load_from_string => MAYBEWRAP(json_file_load_from_string) !> ! Print the [[json_value]] structure to an allocatable string procedure,public :: serialize => json_file_print_to_string !> ! The same as `serialize`, but only here for backward compatibility procedure,public :: print_to_string => json_file_print_to_string procedure,public :: destroy => json_file_destroy procedure,public :: nullify => json_file_nullify procedure,public :: move => json_file_move_pointer generic,public :: info => MAYBEWRAP(json_file_variable_info) generic,public :: matrix_info => MAYBEWRAP(json_file_variable_matrix_info) !error checking: procedure,public :: failed => json_file_failed procedure,public :: print_error_message => json_file_print_error_message procedure,public :: check_for_errors => json_file_check_for_errors procedure,public :: clear_exceptions => json_file_clear_exceptions procedure :: throw_exception generic,public :: print => json_file_print_to_console, & json_file_print_to_unit, & json_file_print_to_filename !> ! The same as `print`, but only here for backward compatibility generic,public :: print_file => json_file_print_to_console, & json_file_print_to_unit, & json_file_print_to_filename !> ! Rename a variable, specifying it by path generic,public :: rename => MAYBEWRAP(json_file_rename) #ifdef USE_UCS4 generic,public :: rename => json_file_rename_path_ascii, & json_file_rename_name_ascii #endif !> ! Verify that a path is valid ! (i.e., a variable with this path exists in the file). generic,public :: valid_path => MAYBEWRAP(json_file_valid_path) !> ! Get a variable from a [[json_file(type)]], by specifying the path. generic,public :: get => MAYBEWRAP(json_file_get_object), & MAYBEWRAP(json_file_get_integer), & #ifndef REAL32 MAYBEWRAP(json_file_get_real32), & #endif MAYBEWRAP(json_file_get_real), & #ifdef REAL128 MAYBEWRAP(json_file_get_real64), & #endif MAYBEWRAP(json_file_get_logical), & MAYBEWRAP(json_file_get_string), & MAYBEWRAP(json_file_get_integer_vec), & #ifndef REAL32 MAYBEWRAP(json_file_get_real32_vec), & #endif MAYBEWRAP(json_file_get_real_vec), & #ifdef REAL128 MAYBEWRAP(json_file_get_real64_vec), & #endif MAYBEWRAP(json_file_get_logical_vec), & MAYBEWRAP(json_file_get_string_vec), & MAYBEWRAP(json_file_get_alloc_string_vec), & json_file_get_root !> ! Add a variable to a [[json_file(type)]], by specifying the path. ! !### Example ! !```fortran ! program test ! use json_module, rk=>json_rk, ik=>json_ik ! implicit none ! type(json_file) :: f ! call f%initialize() ! specify whatever init options you want. ! call f%add('inputs.t', 0.0_rk) ! call f%add('inputs.x', [1.0_rk,2.0_rk,3.0_rk]) ! call f%add('inputs.flag', .true.) ! call f%print() ! print to the console ! end program test !``` generic,public :: add => json_file_add, & MAYBEWRAP(json_file_add_object), & MAYBEWRAP(json_file_add_integer), & #ifndef REAL32 MAYBEWRAP(json_file_add_real32), & #endif MAYBEWRAP(json_file_add_real), & #ifdef REAL128 MAYBEWRAP(json_file_add_real64), & #endif MAYBEWRAP(json_file_add_logical), & MAYBEWRAP(json_file_add_string), & MAYBEWRAP(json_file_add_integer_vec), & #ifndef REAL32 MAYBEWRAP(json_file_add_real32_vec), & #endif MAYBEWRAP(json_file_add_real_vec), & #ifdef REAL128 MAYBEWRAP(json_file_add_real64_vec), & #endif MAYBEWRAP(json_file_add_logical_vec), & MAYBEWRAP(json_file_add_string_vec) #ifdef USE_UCS4 generic,public :: add => json_file_add_string_path_ascii, & json_file_add_string_value_ascii,& json_file_add_string_vec_path_ascii,& json_file_add_string_vec_vec_ascii #endif !> ! Add a null variable to a [[json_file(type)]], by specifying the path. ! generic,public :: add_null => MAYBEWRAP(json_file_add_null), & MAYBEWRAP(json_file_add_null_vec) procedure :: MAYBEWRAP(json_file_add_null) procedure :: MAYBEWRAP(json_file_add_null_vec) !> ! Update a scalar variable in a [[json_file(type)]], ! by specifying the path. ! !@note These have been mostly supplanted by the `add` ! methods, which do a similar thing (and can be used for ! scalars and vectors, etc.) generic,public :: update => MAYBEWRAP(json_file_update_integer), & MAYBEWRAP(json_file_update_logical), & #ifndef REAL32 MAYBEWRAP(json_file_update_real32), & #endif MAYBEWRAP(json_file_update_real), & #ifdef REAL128 MAYBEWRAP(json_file_update_real64), & #endif MAYBEWRAP(json_file_update_string) #ifdef USE_UCS4 generic,public :: update => json_file_update_string_name_ascii, & json_file_update_string_val_ascii #endif !> ! Remove a variable from a [[json_file(type)]] ! by specifying the path. generic,public :: remove => MAYBEWRAP(json_file_remove) !traverse procedure,public :: traverse => json_file_traverse ! hash table functions: procedure,public :: initialize_hash procedure,public :: destroy_hash procedure,public :: is_hash_enabled ! *************************************************** ! operators ! *************************************************** generic,public :: operator(.in.) => MAYBEWRAP(json_file_valid_path_op) procedure,pass(me) :: MAYBEWRAP(json_file_valid_path_op) generic,public :: assignment(=) => assign_json_file,& assign_json_file_to_string,& MAYBEWRAP(assign_string_to_json_file) procedure :: assign_json_file procedure,pass(me) :: assign_json_file_to_string procedure :: MAYBEWRAP(assign_string_to_json_file) ! *************************************************** ! private routines ! *************************************************** !load from string: procedure :: MAYBEWRAP(json_file_load_from_string) !initialize procedure :: initialize_json_core_in_file procedure :: set_json_core_in_file !get info: procedure :: MAYBEWRAP(json_file_variable_info) procedure :: MAYBEWRAP(json_file_variable_matrix_info) !rename: procedure :: MAYBEWRAP(json_file_rename) #ifdef USE_UCS4 procedure :: json_file_rename_path_ascii procedure :: json_file_rename_name_ascii #endif !validate path: procedure :: MAYBEWRAP(json_file_valid_path) !get: procedure :: MAYBEWRAP(json_file_get_object) procedure :: MAYBEWRAP(json_file_get_integer) #ifndef REAL32 procedure :: MAYBEWRAP(json_file_get_real32) #endif procedure :: MAYBEWRAP(json_file_get_real) #ifdef REAL128 procedure :: MAYBEWRAP(json_file_get_real64) #endif procedure :: MAYBEWRAP(json_file_get_logical) procedure :: MAYBEWRAP(json_file_get_string) procedure :: MAYBEWRAP(json_file_get_integer_vec) #ifndef REAL32 procedure :: MAYBEWRAP(json_file_get_real32_vec) #endif procedure :: MAYBEWRAP(json_file_get_real_vec) #ifdef REAL128 procedure :: MAYBEWRAP(json_file_get_real64_vec) #endif procedure :: MAYBEWRAP(json_file_get_logical_vec) procedure :: MAYBEWRAP(json_file_get_string_vec) procedure :: MAYBEWRAP(json_file_get_alloc_string_vec) procedure :: json_file_get_root !add: procedure :: json_file_add procedure :: MAYBEWRAP(json_file_add_object) procedure :: MAYBEWRAP(json_file_add_integer) #ifndef REAL32 procedure :: MAYBEWRAP(json_file_add_real32) #endif procedure :: MAYBEWRAP(json_file_add_real) #ifdef REAL128 procedure :: MAYBEWRAP(json_file_add_real64) #endif procedure :: MAYBEWRAP(json_file_add_logical) procedure :: MAYBEWRAP(json_file_add_string) procedure :: MAYBEWRAP(json_file_add_integer_vec) #ifndef REAL32 procedure :: MAYBEWRAP(json_file_add_real32_vec) #endif procedure :: MAYBEWRAP(json_file_add_real_vec) #ifdef REAL128 procedure :: MAYBEWRAP(json_file_add_real64_vec) #endif procedure :: MAYBEWRAP(json_file_add_logical_vec) procedure :: MAYBEWRAP(json_file_add_string_vec) #ifdef USE_UCS4 procedure :: json_file_add_string_path_ascii procedure :: json_file_add_string_value_ascii procedure :: json_file_add_string_vec_path_ascii procedure :: json_file_add_string_vec_vec_ascii #endif !update: procedure :: MAYBEWRAP(json_file_update_integer) procedure :: MAYBEWRAP(json_file_update_logical) #ifndef REAL32 procedure :: MAYBEWRAP(json_file_update_real32) #endif procedure :: MAYBEWRAP(json_file_update_real) #ifdef REAL128 procedure :: MAYBEWRAP(json_file_update_real64) #endif procedure :: MAYBEWRAP(json_file_update_string) #ifdef USE_UCS4 procedure :: json_file_update_string_name_ascii procedure :: json_file_update_string_val_ascii #endif !remove: procedure :: MAYBEWRAP(json_file_remove) !print: procedure :: json_file_print_to_console procedure :: json_file_print_to_unit procedure :: json_file_print_to_filename final :: finalize_json_file end type json_file