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_module json_module module~json_module->module~json_parameters module~json_value_module json_value_module module~json_module->module~json_value_module module~json_file_module json_file_module module~json_module->module~json_file_module module~json_value_module->module~json_parameters module~json_string_utilities json_string_utilities module~json_value_module->module~json_string_utilities module~json_string_utilities->module~json_parameters module~json_file_module->module~json_parameters module~json_file_module->module~json_value_module module~json_file_module->module~json_string_utilities

Contents


Variables

TypeVisibility AttributesNameInitial
character(kind=CK,len=*), public, parameter:: backslash =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 =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