@@ -24,21 +24,29 @@ module iso_fortran_env
24
24
compiler_version = > __builtin_compiler_version
25
25
26
26
implicit none
27
- private count
27
+
28
+ ! Set PRIVATE by default to explicitly only export what is meant
29
+ ! to be exported by this MODULE.
30
+ private
31
+
32
+ public :: event_type, notify_type, lock_type, team_type, &
33
+ atomic_int_kind, atomic_logical_kind, compiler_options, &
34
+ compiler_version
35
+
28
36
29
37
! TODO: Use PACK([x],test) in place of the array constructor idiom
30
38
! [(x, integer::j=1,COUNT([test]))] below once PACK() can be folded.
31
39
32
- integer , parameter , private :: &
40
+ integer , parameter :: &
33
41
selectedASCII = selected_char_kind(' ASCII' ), &
34
42
selectedUCS_2 = selected_char_kind(' UCS-2' ), &
35
43
selectedUnicode = selected_char_kind(' ISO_10646' )
36
- integer , parameter :: character_kinds(* ) = [ &
44
+ integer , parameter , public :: character_kinds(* ) = [ &
37
45
[(selectedASCII, integer :: j= 1 , count ([selectedASCII >= 0 ]))], &
38
46
[(selectedUCS_2, integer :: j= 1 , count ([selectedUCS_2 >= 0 ]))], &
39
47
[(selectedUnicode, integer :: j= 1 , count ([selectedUnicode >= 0 ]))]]
40
48
41
- integer , parameter , private :: &
49
+ integer , parameter :: &
42
50
selectedInt8 = selected_int_kind (2 ), &
43
51
selectedInt16 = selected_int_kind (4 ), &
44
52
selectedInt32 = selected_int_kind (9 ), &
@@ -54,7 +62,7 @@ module iso_fortran_env
54
62
selectedInt64 >= 0 ), &
55
63
safeInt128 = merge (selectedInt128, selected_int_kind (0 ), &
56
64
selectedInt128 >= 0 )
57
- integer , parameter :: &
65
+ integer , parameter , public :: &
58
66
int8 = merge (selectedInt8, merge (- 2 , - 1 , selectedInt8 >= 0 ), &
59
67
digits (int (0 ,kind= safeInt8)) == 7 ), &
60
68
int16 = merge (selectedInt16, merge (- 2 , - 1 , selectedInt16 >= 0 ), &
@@ -66,23 +74,23 @@ module iso_fortran_env
66
74
int128 = merge (selectedInt128, merge (- 2 , - 1 , selectedInt128 >= 0 ), &
67
75
digits (int (0 ,kind= safeInt128)) == 127 )
68
76
69
- integer , parameter :: integer_kinds(* ) = [ &
77
+ integer , parameter , public :: integer_kinds(* ) = [ &
70
78
selected_int_kind (0 ), &
71
79
((selected_int_kind (k), &
72
80
integer :: j= 1 , count ([selected_int_kind (k) >= 0 .and. &
73
81
selected_int_kind (k) /= &
74
82
selected_int_kind (k-1 )])), &
75
83
integer :: k= 1 , 39 )]
76
84
77
- integer , parameter :: &
85
+ integer , parameter , public :: &
78
86
logical8 = int8, logical16 = int16, logical32 = int32, logical64 = int64
79
- integer , parameter :: logical_kinds(* ) = [ &
87
+ integer , parameter , public :: logical_kinds(* ) = [ &
80
88
[(logical8, integer :: j= 1 , count ([logical8 >= 0 ]))], &
81
89
[(logical16, integer :: j= 1 , count ([logical16 >= 0 ]))], &
82
90
[(logical32, integer :: j= 1 , count ([logical32 >= 0 ]))], &
83
91
[(logical64, integer :: j= 1 , count ([logical64 >= 0 ]))]]
84
92
85
- integer , parameter , private :: &
93
+ integer , parameter :: &
86
94
selectedReal16 = selected_real_kind (3 , 4 ), & ! IEEE half
87
95
selectedBfloat16 = selected_real_kind (2 , 37 ), & ! truncated IEEE single
88
96
selectedReal32 = selected_real_kind (6 , 37 ), & ! IEEE single
@@ -104,7 +112,7 @@ module iso_fortran_env
104
112
selectedReal64x2 >= 0 ), &
105
113
safeReal128 = merge (selectedReal128, selected_real_kind (0 ,0 ), &
106
114
selectedReal128 >= 0 )
107
- integer , parameter :: &
115
+ integer , parameter , public :: &
108
116
real16 = merge (selectedReal16, merge (- 2 , - 1 , selectedReal16 >= 0 ), &
109
117
digits (real (0 ,kind= safeReal16)) == 11 ), &
110
118
bfloat16 = merge (selectedBfloat16, merge (- 2 , - 1 , selectedBfloat16 >= 0 ), &
@@ -120,7 +128,7 @@ module iso_fortran_env
120
128
real128 = merge (selectedReal128, merge (- 2 , - 1 , selectedReal128 >= 0 ), &
121
129
digits (real (0 ,kind= safeReal128)) == 113 )
122
130
123
- integer , parameter :: real_kinds(* ) = [ &
131
+ integer , parameter , public :: real_kinds(* ) = [ &
124
132
[(real16, integer :: j= 1 , count ([real16 >= 0 ]))], &
125
133
[(bfloat16, integer :: j= 1 , count ([bfloat16 >= 0 ]))], &
126
134
[(real32, integer :: j= 1 , count ([real32 >= 0 ]))], &
@@ -129,27 +137,27 @@ module iso_fortran_env
129
137
[(real64x2, integer :: j= 1 , count ([real64x2 >= 0 ]))], &
130
138
[(real128, integer :: j= 1 , count ([real128 >= 0 ]))]]
131
139
132
- integer , parameter :: current_team = - 1 , initial_team = - 2 , parent_team = - 3
140
+ integer , parameter , public :: current_team = - 1 , initial_team = - 2 , parent_team = - 3
133
141
134
- integer , parameter :: output_unit = FORTRAN_DEFAULT_OUTPUT_UNIT
135
- integer , parameter :: input_unit = FORTRAN_DEFAULT_INPUT_UNIT
136
- integer , parameter :: error_unit = FORTRAN_ERROR_UNIT
137
- integer , parameter :: iostat_end = FORTRAN_RUNTIME_IOSTAT_END
138
- integer , parameter :: iostat_eor = FORTRAN_RUNTIME_IOSTAT_EOR
139
- integer , parameter :: iostat_inquire_internal_unit = &
142
+ integer , parameter , public :: output_unit = FORTRAN_DEFAULT_OUTPUT_UNIT
143
+ integer , parameter , public :: input_unit = FORTRAN_DEFAULT_INPUT_UNIT
144
+ integer , parameter , public :: error_unit = FORTRAN_ERROR_UNIT
145
+ integer , parameter , public :: iostat_end = FORTRAN_RUNTIME_IOSTAT_END
146
+ integer , parameter , public :: iostat_eor = FORTRAN_RUNTIME_IOSTAT_EOR
147
+ integer , parameter , public :: iostat_inquire_internal_unit = &
140
148
FORTRAN_RUNTIME_IOSTAT_INQUIRE_INTERNAL_UNIT
141
149
142
- integer , parameter :: character_storage_size = 8
143
- integer , parameter :: file_storage_size = 8
144
- integer , parameter :: numeric_storage_size = 32
150
+ integer , parameter , public :: character_storage_size = 8
151
+ integer , parameter , public :: file_storage_size = 8
152
+ integer , parameter , public :: numeric_storage_size = 32
145
153
146
- integer , parameter :: stat_failed_image = FORTRAN_RUNTIME_STAT_FAILED_IMAGE
147
- integer , parameter :: stat_locked = FORTRAN_RUNTIME_STAT_LOCKED
148
- integer , parameter :: &
154
+ integer , parameter , public :: stat_failed_image = FORTRAN_RUNTIME_STAT_FAILED_IMAGE
155
+ integer , parameter , public :: stat_locked = FORTRAN_RUNTIME_STAT_LOCKED
156
+ integer , parameter , public :: &
149
157
stat_locked_other_image = FORTRAN_RUNTIME_STAT_LOCKED_OTHER_IMAGE
150
- integer , parameter :: stat_stopped_image = FORTRAN_RUNTIME_STAT_STOPPED_IMAGE
151
- integer , parameter :: stat_unlocked = FORTRAN_RUNTIME_STAT_UNLOCKED
152
- integer , parameter :: &
158
+ integer , parameter , public :: stat_stopped_image = FORTRAN_RUNTIME_STAT_STOPPED_IMAGE
159
+ integer , parameter , public :: stat_unlocked = FORTRAN_RUNTIME_STAT_UNLOCKED
160
+ integer , parameter , public :: &
153
161
stat_unlocked_failed_image = FORTRAN_RUNTIME_STAT_UNLOCKED_FAILED_IMAGE
154
162
155
163
end module iso_fortran_env
0 commit comments