Skip to content

Commit 0570381

Browse files
Merge pull request #219 from jacobwilliams/params
Moved some parameters into the json_parameters module
2 parents cddb8c9 + f701f89 commit 0570381

File tree

3 files changed

+34
-30
lines changed

3 files changed

+34
-30
lines changed

src/json_module.F90

+8
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,14 @@ module json_module
5959
operator(//),&
6060
operator(/=)
6161
#endif
62+
use json_parameters, only: json_unknown,&
63+
json_null, &
64+
json_object, &
65+
json_array, &
66+
json_logical,&
67+
json_integer,&
68+
json_double, &
69+
json_string
6270
use json_value_module
6371
use json_file_module
6472

src/json_parameters.F90

+26-9
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,23 @@ module json_parameters
2020

2121
character(kind=CDK,len=*),parameter :: json_ext = '.json' !! JSON file extension
2222

23+
! The types of JSON data.
24+
integer(IK),parameter :: json_unknown = 0 !! Unknown JSON data type
25+
!! (see [[json_file_variable_info]] and [[json_info]])
26+
integer(IK),parameter :: json_null = 1 !! Null JSON data type
27+
!! (see [[json_file_variable_info]] and [[json_info]])
28+
integer(IK),parameter :: json_object = 2 !! Object JSON data type
29+
!! (see [[json_file_variable_info]] and [[json_info]])
30+
integer(IK),parameter :: json_array = 3 !! Array JSON data type
31+
!! (see [[json_file_variable_info]] and [[json_info]])
32+
integer(IK),parameter :: json_logical = 4 !! Logical JSON data type
33+
!! (see [[json_file_variable_info]] and [[json_info]])
34+
integer(IK),parameter :: json_integer = 5 !! Integer JSON data type
35+
!! (see [[json_file_variable_info]] and [[json_info]])
36+
integer(IK),parameter :: json_double = 6 !! Double JSON data type
37+
!! (see [[json_file_variable_info]] and [[json_info]])
38+
integer(IK),parameter :: json_string = 7 !! String JSON data type
39+
2340
!special JSON characters
2441
character(kind=CK,len=*),parameter :: space = ' '
2542
character(kind=CK,len=*),parameter :: start_object = '{'
@@ -42,20 +59,20 @@ module json_parameters
4259
character(kind=CK,len=*),parameter :: slash = achar(47)
4360
character(kind=CK,len=*),parameter :: backslash = achar(92)
4461

45-
character(kind=CDK,len=*),parameter,public :: default_real_fmt = '(ss,E26.16E4)'
62+
character(kind=CDK,len=*),parameter :: default_real_fmt = '(ss,E26.16E4)'
4663
!! default real number format statement (for writing real values to strings and files).
4764
!! Note that this can be overridden by calling [[json_initialize]].
4865

49-
character(kind=CK,len=*),parameter,public :: star = '*' !! for invalid numbers and
66+
character(kind=CK,len=*),parameter :: star = '*' !! for invalid numbers and
5067
!! list-directed real output
5168

5269
#if defined __GFORTRAN__
5370
!not parameters due to gfortran bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65141)
5471
character(kind=CK,len=26),protected :: upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' !! uppercase characters
5572
character(kind=CK,len=26),protected :: lower = 'abcdefghijklmnopqrstuvwxyz' !! lowercase characters
5673
#else
57-
character(kind=CK,len=*),parameter,public :: upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' !! uppercase characters
58-
character(kind=CK,len=*),parameter,public :: lower = 'abcdefghijklmnopqrstuvwxyz' !! lowercase characters
74+
character(kind=CK,len=*),parameter :: upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' !! uppercase characters
75+
character(kind=CK,len=*),parameter :: lower = 'abcdefghijklmnopqrstuvwxyz' !! lowercase characters
5976
#endif
6077

6178
#if defined __GFORTRAN__
@@ -64,9 +81,9 @@ module json_parameters
6481
character(kind=CK,len=4),protected :: true_str = 'true' !! JSON logical True string
6582
character(kind=CK,len=5),protected :: false_str = 'false' !! JSON logical False string
6683
#else
67-
character(kind=CK,len=*),parameter,public :: null_str = 'null' !! JSON Null variable string
68-
character(kind=CK,len=*),parameter,public :: true_str = 'true' !! JSON logical True string
69-
character(kind=CK,len=*),parameter,public :: false_str = 'false' !! JSON logical False string
84+
character(kind=CK,len=*),parameter :: null_str = 'null' !! JSON Null variable string
85+
character(kind=CK,len=*),parameter :: true_str = 'true' !! JSON logical True string
86+
character(kind=CK,len=*),parameter :: false_str = 'false' !! JSON logical False string
7087
#endif
7188

7289
integer, private :: i_ !! just a counter for `control_chars` array
@@ -96,9 +113,9 @@ module json_parameters
96113
!! output to strings rather than files.
97114
!! See 9.5.6.12 in the F2003/08 standard
98115

99-
integer(IK),parameter,public :: seq_chunk_size = 256_IK !! chunk size for reading sequential files
116+
integer(IK),parameter :: seq_chunk_size = 256_IK !! chunk size for reading sequential files
100117

101-
integer(IK),parameter,public :: pushed_char_size = 10_IK !! magic number
118+
integer(IK),parameter :: pushed_char_size = 10_IK !! magic number
102119

103120
end module json_parameters
104121
!*****************************************************************************************

src/json_value_module.F90

-21
Original file line numberDiff line numberDiff line change
@@ -67,27 +67,6 @@ module json_value_module
6767
#endif
6868
!*********************************************************
6969

70-
!*********************************************************
71-
!
72-
! The types of JSON data.
73-
!
74-
integer(IK),parameter,public :: json_unknown = 0 !! Unknown JSON data type
75-
!! (see [[json_file_variable_info]] and [[json_info]])
76-
integer(IK),parameter,public :: json_null = 1 !! Null JSON data type
77-
!! (see [[json_file_variable_info]] and [[json_info]])
78-
integer(IK),parameter,public :: json_object = 2 !! Object JSON data type
79-
!! (see [[json_file_variable_info]] and [[json_info]])
80-
integer(IK),parameter,public :: json_array = 3 !! Array JSON data type
81-
!! (see [[json_file_variable_info]] and [[json_info]])
82-
integer(IK),parameter,public :: json_logical = 4 !! Logical JSON data type
83-
!! (see [[json_file_variable_info]] and [[json_info]])
84-
integer(IK),parameter,public :: json_integer = 5 !! Integer JSON data type
85-
!! (see [[json_file_variable_info]] and [[json_info]])
86-
integer(IK),parameter,public :: json_double = 6 !! Double JSON data type
87-
!! (see [[json_file_variable_info]] and [[json_info]])
88-
integer(IK),parameter,public :: json_string = 7 !! String JSON data type
89-
!*********************************************************
90-
9170
!*********************************************************
9271
!>
9372
! Type used to construct the linked-list JSON structure.

0 commit comments

Comments
 (0)