@@ -20,16 +20,25 @@ program test_optval
20
20
21
21
call test_optval_character
22
22
23
+
24
+ call test_optval_sp_arr
25
+ call test_optval_dp_arr
26
+ call test_optval_qp_arr
27
+
28
+ call test_optval_int8_arr
29
+ call test_optval_int16_arr
30
+ call test_optval_int32_arr
31
+ call test_optval_int64_arr
32
+
23
33
contains
24
34
25
-
26
35
subroutine test_optval_sp
27
36
print * , " test_optval_sp"
28
37
call assert(foo_sp(1.0_sp ) == 1.0_sp )
29
38
call assert(foo_sp() == 2.0_sp )
30
39
end subroutine test_optval_sp
31
40
32
-
41
+
33
42
function foo_sp (x ) result(z)
34
43
real (sp), intent (in ), optional :: x
35
44
real (sp) :: z
@@ -43,7 +52,7 @@ subroutine test_optval_dp
43
52
call assert(foo_dp() == 2.0_dp )
44
53
end subroutine test_optval_dp
45
54
46
-
55
+
47
56
function foo_dp (x ) result(z)
48
57
real (dp), intent (in ), optional :: x
49
58
real (dp) :: z
@@ -57,95 +66,207 @@ subroutine test_optval_qp
57
66
call assert(foo_qp() == 2.0_qp )
58
67
end subroutine test_optval_qp
59
68
60
-
69
+
61
70
function foo_qp (x ) result(z)
62
71
real (qp), intent (in ), optional :: x
63
72
real (qp) :: z
64
73
z = optval(x, 2.0_qp )
65
74
end function foo_qp
66
-
67
-
75
+
76
+
68
77
subroutine test_optval_int8
69
78
print * , " test_optval_int8"
70
79
call assert(foo_int8(1_int8 ) == 1_int8 )
71
80
call assert(foo_int8() == 2_int8 )
72
81
end subroutine test_optval_int8
73
82
74
-
83
+
75
84
function foo_int8 (x ) result(z)
76
85
integer (int8), intent (in ), optional :: x
77
86
integer (int8) :: z
78
87
z = optval(x, 2_int8 )
79
88
end function foo_int8
80
-
89
+
81
90
82
91
subroutine test_optval_int16
83
92
print * , " test_optval_int16"
84
93
call assert(foo_int16(1_int16 ) == 1_int16 )
85
94
call assert(foo_int16() == 2_int16 )
86
95
end subroutine test_optval_int16
87
96
88
-
97
+
89
98
function foo_int16 (x ) result(z)
90
99
integer (int16), intent (in ), optional :: x
91
100
integer (int16) :: z
92
101
z = optval(x, 2_int16 )
93
102
end function foo_int16
94
103
95
-
104
+
96
105
subroutine test_optval_int32
97
106
print * , " test_optval_int32"
98
107
call assert(foo_int32(1_int32 ) == 1_int32 )
99
108
call assert(foo_int32() == 2_int32 )
100
109
end subroutine test_optval_int32
101
110
102
-
111
+
103
112
function foo_int32 (x ) result(z)
104
113
integer (int32), intent (in ), optional :: x
105
114
integer (int32) :: z
106
115
z = optval(x, 2_int32 )
107
116
end function foo_int32
108
117
109
-
118
+
110
119
subroutine test_optval_int64
111
120
print * , " test_optval_int64"
112
121
call assert(foo_int64(1_int64 ) == 1_int64 )
113
122
call assert(foo_int64() == 2_int64 )
114
123
end subroutine test_optval_int64
115
124
116
-
125
+
117
126
function foo_int64 (x ) result(z)
118
127
integer (int64), intent (in ), optional :: x
119
128
integer (int64) :: z
120
129
z = optval(x, 2_int64 )
121
130
end function foo_int64
122
-
131
+
123
132
124
133
subroutine test_optval_logical
125
134
print * , " test_optval_logical"
126
135
call assert(foo_logical(.true. ))
127
136
call assert(.not. foo_logical())
128
137
end subroutine test_optval_logical
129
138
130
-
139
+
131
140
function foo_logical (x ) result(z)
132
141
logical , intent (in ), optional :: x
133
142
logical :: z
134
143
z = optval(x, .false. )
135
144
end function foo_logical
136
-
145
+
137
146
138
147
subroutine test_optval_character
139
148
print * , " test_optval_character"
140
149
call assert(foo_character(" x" ) == " x" )
141
150
call assert(foo_character() == " y" )
142
151
end subroutine test_optval_character
143
152
144
-
153
+
145
154
function foo_character (x ) result(z)
146
155
character (len=* ), intent (in ), optional :: x
147
156
character (len= :), allocatable :: z
148
157
z = optval(x, " y" )
149
158
end function foo_character
150
-
159
+
160
+
161
+ subroutine test_optval_sp_arr
162
+ print * , " test_optval_sp_arr"
163
+ call assert(all (foo_sp_arr([1.0_sp , - 1.0_sp ]) == [1.0_sp , - 1.0_sp ]))
164
+ call assert(all (foo_sp_arr() == [2.0_sp , - 2.0_sp ]))
165
+ end subroutine test_optval_sp_arr
166
+
167
+
168
+ function foo_sp_arr (x ) result(z)
169
+ real (sp), dimension (2 ), intent (in ), optional :: x
170
+ real (sp), dimension (2 ) :: z
171
+ z = optval(x, [2.0_sp , - 2.0_sp ])
172
+ end function foo_sp_arr
173
+
174
+
175
+ subroutine test_optval_dp_arr
176
+ print * , " test_optval_dp_arr"
177
+ call assert(all (foo_dp_arr([1.0_dp , - 1.0_dp ]) == [1.0_dp , - 1.0_dp ]))
178
+ call assert(all (foo_dp_arr() == [2.0_dp , - 2.0_dp ]))
179
+ end subroutine test_optval_dp_arr
180
+
181
+
182
+ function foo_dp_arr (x ) result(z)
183
+ real (dp), dimension (2 ), intent (in ), optional :: x
184
+ real (dp), dimension (2 ) :: z
185
+ z = optval(x, [2.0_dp , - 2.0_dp ])
186
+ end function foo_dp_arr
187
+
188
+
189
+ subroutine test_optval_qp_arr
190
+ print * , " test_optval_qp_arr"
191
+ call assert(all (foo_qp_arr([1.0_qp , - 1.0_qp ]) == [1.0_qp , - 1.0_qp ]))
192
+ call assert(all (foo_qp_arr() == [2.0_qp , - 2.0_qp ]))
193
+ end subroutine test_optval_qp_arr
194
+
195
+
196
+ function foo_qp_arr (x ) result(z)
197
+ real (qp), dimension (2 ), intent (in ), optional :: x
198
+ real (qp), dimension (2 ) :: z
199
+ z = optval(x, [2.0_qp , - 2.0_qp ])
200
+ end function foo_qp_arr
201
+
202
+
203
+ subroutine test_optval_int8_arr
204
+ print * , " test_optval_int8_arr"
205
+ call assert(all (foo_int8_arr([1_int8 , - 1_int8 ]) == [1_int8 , - 1_int8 ]))
206
+ call assert(all (foo_int8_arr() == [2_int8 , - 2_int8 ]))
207
+ end subroutine test_optval_int8_arr
208
+
209
+
210
+ function foo_int8_arr (x ) result(z)
211
+ integer (int8), dimension (2 ), intent (in ), optional :: x
212
+ integer (int8), dimension (2 ) :: z
213
+ z = optval(x, [2_int8 , - 2_int8 ])
214
+ end function foo_int8_arr
215
+
216
+
217
+ subroutine test_optval_int16_arr
218
+ print * , " test_optval_int16_arr"
219
+ call assert(all (foo_int16_arr([1_int16 , - 1_int16 ]) == [1_int16 , - 1_int16 ]))
220
+ call assert(all (foo_int16_arr() == [2_int16 , - 2_int16 ]))
221
+ end subroutine test_optval_int16_arr
222
+
223
+
224
+ function foo_int16_arr (x ) result(z)
225
+ integer (int16), dimension (2 ), intent (in ), optional :: x
226
+ integer (int16), dimension (2 ) :: z
227
+ z = optval(x, [2_int16 , - 2_int16 ])
228
+ end function foo_int16_arr
229
+
230
+
231
+ subroutine test_optval_int32_arr
232
+ print * , " test_optval_int32_arr"
233
+ call assert(all (foo_int32_arr([1_int32 , - 1_int32 ]) == [1_int32 , - 1_int32 ]))
234
+ call assert(all (foo_int32_arr() == [2_int32 , - 2_int32 ]))
235
+ end subroutine test_optval_int32_arr
236
+
237
+
238
+ function foo_int32_arr (x ) result(z)
239
+ integer (int32), dimension (2 ), intent (in ), optional :: x
240
+ integer (int32), dimension (2 ) :: z
241
+ z = optval(x, [2_int32 , - 2_int32 ])
242
+ end function foo_int32_arr
243
+
244
+
245
+ subroutine test_optval_int64_arr
246
+ print * , " test_optval_int64_arr"
247
+ call assert(all (foo_int64_arr([1_int64 , - 1_int64 ]) == [1_int64 , - 1_int64 ]))
248
+ call assert(all (foo_int64_arr() == [2_int64 , - 2_int64 ]))
249
+ end subroutine test_optval_int64_arr
250
+
251
+
252
+ function foo_int64_arr (x ) result(z)
253
+ integer (int64), dimension (2 ), intent (in ), optional :: x
254
+ integer (int64), dimension (2 ) :: z
255
+ z = optval(x, [2_int64 , - 2_int64 ])
256
+ end function foo_int64_arr
257
+
258
+
259
+ subroutine test_optval_logical_arr
260
+ print * , " test_optval_logical_arr"
261
+ call assert(all (foo_logical_arr()))
262
+ call assert(all (.not. foo_logical_arr()))
263
+ end subroutine test_optval_logical_arr
264
+
265
+
266
+ function foo_logical_arr (x ) result(z)
267
+ logical , dimension (2 ), intent (in ), optional :: x
268
+ logical , dimension (2 ) :: z
269
+ z = optval(x, [.false. , .false. ])
270
+ end function foo_logical_arr
271
+
151
272
end program test_optval
0 commit comments