json_parameters Module

Other parameters used by JSON-Fortran. This is a low-level module not meant to be used by a JSON-Fortran user.

License

  • JSON-Fortran is released under a BSD-style license. See the LICENSE file for details.

Uses

  • module~~json_parameters~~UsesGraph module~json_parameters json_parameters module~json_kinds json_kinds module~json_parameters->module~json_kinds iso_fortran_env iso_fortran_env module~json_kinds->iso_fortran_env

Used by

  • module~~json_parameters~~UsedByGraph module~json_parameters json_parameters module~json_file_module json_file_module module~json_file_module->module~json_parameters module~json_string_utilities json_string_utilities module~json_file_module->module~json_string_utilities module~json_value_module json_value_module module~json_file_module->module~json_value_module module~json_module json_module module~json_module->module~json_parameters module~json_module->module~json_file_module module~json_module->module~json_value_module module~json_string_utilities->module~json_parameters module~json_value_module->module~json_parameters module~json_value_module->module~json_string_utilities

Variables

Type Visibility Attributes Name Initial
character(kind=CK, len=*), public, parameter :: backslash = achar(92, kind=CK)

JSON special character

character(kind=CK, len=*), public, parameter :: blank_chunk = repeat(space, chunk_size)

a blank string

character(kind=CK, len=*), public, parameter :: bspace = achar(8, kind=CK)

JSON special character

character(kind=CK, len=*), public, parameter :: carriage_return = achar(13, kind=CK)

JSON special character

integer(kind=IK), public, parameter :: chunk_size = 256_IK

for allocatable strings: allocate chunks of this size

character(kind=CK, len=*), public, parameter :: colon_char = CK_':'

colon character for JSON

character(kind=CK, len=*), public, parameter, dimension(32) :: control_chars = [(achar(i_, kind=CK), i_=1, 31), achar(127, kind=CK)]

Control characters, possibly in unicode

character(kind=CDK, len=*), public, parameter :: default_real_fmt = '(ss,E27.17E4)'

default real number format statement (for writing real values to strings and files). Note that this can be overridden by calling json_initialize.

character(kind=CK, len=*), public, parameter :: delimiter = CK_','

delimiter for JSON

character(kind=CK, len=*), public, parameter :: dot = CK_'.'

path separator for json_get_by_path_default

character(kind=CK, len=*), public, parameter :: end_array = CK_']'

end of a JSON array

character(kind=CK, len=*), public, parameter :: end_array_alt = CK_')'

alternate end of JSON array for json_get_by_path_default

character(kind=CK, len=*), public, parameter :: end_object = CK_'}'

end of a JSON object

character(kind=CK, len=5), protected :: false_str = CK_'false'

JSON logical False string

character(kind=CK, len=*), public, parameter :: formfeed = achar(12, kind=CK)

JSON special character

character(kind=CK, len=*), public, parameter :: horizontal_tab = achar(9, kind=CK)

JSON special character

integer, private :: i_

just a counter for control_chars array

character(kind=CDK, len=*), public, parameter :: int_fmt = '(ss,I0)'

minimum width format for integers

integer(kind=IK), public, parameter :: json_array = 3

Array JSON data type (see json_file_variable_info and json_info)

integer(kind=IK), public, parameter :: json_double = json_real

Equivalent to json_real for backward compatibility.

character(kind=CDK, len=*), public, parameter :: json_ext = '.json'

JSON file extension

integer(kind=IK), public, parameter :: json_integer = 5

Integer JSON data type (integer(IK)) (see json_file_variable_info and json_info).

integer(kind=IK), public, parameter :: json_logical = 4

Logical JSON data type (logical(LK)) (see json_file_variable_info and json_info)

integer(kind=IK), public, parameter :: json_null = 1

Null JSON data type (see json_file_variable_info and json_info)

integer(kind=IK), public, parameter :: json_object = 2

Object JSON data type (see json_file_variable_info and json_info)

integer(kind=IK), public, parameter :: json_real = 6

Real number JSON data type (real(RK)) (see json_file_variable_info and json_info)

integer(kind=IK), public, parameter :: json_string = 7

String JSON data type (character(kind=CK)) (see json_file_variable_info and json_info)

integer(kind=IK), public, parameter :: json_unknown = 0

Unknown JSON data type (see json_file_variable_info and json_info)

character(kind=CK, len=26), protected :: lower = CK_'abcdefghijklmnopqrstuvwxyz'

lowercase characters

integer(kind=IK), public, parameter :: max_integer_str_len = 256_IK

maximum string length of an integer. This is totally arbitrary (any way to get the compiler to tell us this?)

integer(kind=IK), public, parameter :: max_numeric_str_len = real_precision+real_exponent_digits+6_IK

6 = sign + leading 0 + decimal + ‘E’ + exponent sign + 1 extra

integer(kind=IK), public, parameter :: maxexp = maxexponent(1.0_RK)
integer(kind=IK), public, parameter :: minexp = minexponent(1.0_RK)
character(kind=CK, len=*), public, parameter :: newline = achar(10, kind=CK)

JSON special character

character(kind=CK, len=4), protected :: null_str = CK_'null'

JSON Null variable string

integer(kind=IK), public, parameter :: print_str_chunk_size = 1000_IK

chunk size for writing JSON to a string

integer(kind=IK), public, parameter :: pushed_char_size = 10_IK

size for pushed_char array in json_core

character(kind=CK, len=*), public, parameter :: quotation_mark = CK_'"'

JSON special character

integer(kind=IK), public, parameter :: real_exponent_digits = floor(1_IK+log10(real(max(maxexp, abs(maxexp)), kind=RK)))
integer(kind=IK), public, parameter :: real_precision = rp_safety_factor*precision(1.0_RK)+rp_addl_safety
character(kind=CK, len=*), public, parameter :: root = achar(36, kind=CK)

($) root for json_get_by_path_default

integer(kind=IK), public, parameter :: rp_addl_safety = 2_IK
integer(kind=IK), public, parameter :: rp_safety_factor = 1_IK
integer(kind=IK), public, parameter :: seq_chunk_size = 256_IK

chunk size for reading sequential files

character(kind=CK, len=*), public, parameter :: single_quote = CK_"'"

for JSONPath bracket-notation

character(kind=CK, len=*), public, parameter :: slash = achar(47, kind=CK)

JSON special character

character(kind=CK, len=*), public, parameter :: space = CK_' '

space character

character(kind=CK, len=*), public, parameter :: star = CK_'*'

for invalid numbers and list-directed real output

character(kind=CK, len=*), public, parameter :: start_array = CK_'['

start of a JSON array

character(kind=CK, len=*), public, parameter :: start_array_alt = CK_'('

alternate start of JSON array for json_get_by_path_default

character(kind=CK, len=*), public, parameter :: start_object = CK_'{'

start of a JSON object

integer(kind=IK), public, parameter :: stream_chunk_size = 256_IK

chunk size for reading stream files

character(kind=CK, len=*), public, parameter :: this = CK_'@'

‘this’ for json_get_by_path_default

character(kind=CK, len=*), public, parameter :: tilde = CK_'~'

RFC 6901 escape character

character(kind=CK, len=4), protected :: true_str = CK_'true'

JSON logical True string

integer(kind=IK), public, parameter :: unit2str = -1_IK

unit number to cause stuff to be output to strings rather than files. See 9.5.6.12 in the F2003/08 standard

character(kind=CK, len=26), protected :: upper = CK_'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

uppercase characters