Skip to content

Commit edbbff4

Browse files
author
Damian Rouson
committed
Print all errors in all_comp_get_convert_nums.f90
The previous version of this test error-terminated upon the first of 57 checks. The revised version prints all error messages before error-terminating if any were printed.
1 parent 7edfd74 commit edbbff4

File tree

1 file changed

+99
-61
lines changed

1 file changed

+99
-61
lines changed

src/tests/unit/send-get/alloc_comp_get_convert_nums.f90

Lines changed: 99 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
!!
55
!! FOO = BAR [N]
66
!!
7-
!! where
7+
!! where
88
!!
99
!! FOO BAR images
1010
!! scalar scalar N == me
@@ -80,6 +80,8 @@ program get_convert_nums
8080

8181
type(t), save, codimension[*] :: obj
8282

83+
logical :: error_printed=.false.
84+
8385
associate(me => this_image(), np => num_images())
8486
if (np < 2) error stop 'Can not run with less than 2 images.'
8587

@@ -97,202 +99,223 @@ program get_convert_nums
9799
if (me == 1) then
98100
int_scal_k1 = obj[1]%int_scal_k1
99101
print *, int_scal_k1
100-
if (obj%int_scal_k1 /= int_scal_k1) error stop 'get scalar int kind=1 from kind=1 self failed.'
102+
if (obj%int_scal_k1 /= int_scal_k1) call print_and_register('get scalar int kind=1 from kind=1 self failed.')
101103

102104
int_scal_k4 = obj[1]%int_scal_k4
103105
print *, int_scal_k4
104-
if (obj%int_scal_k4 /= int_scal_k4) error stop 'get scalar int kind=4 to kind=4 self failed.'
106+
if (obj%int_scal_k4 /= int_scal_k4) call print_and_register( 'get scalar int kind=4 to kind=4 self failed.')
105107

106108
int_scal_k4 = obj[1]%int_scal_k1
107109
print *, int_scal_k4
108-
if (obj%int_scal_k4 /= int_scal_k4) error stop 'get scalar int kind=1 to kind=4 self failed.'
110+
if (obj%int_scal_k4 /= int_scal_k4) call print_and_register( 'get scalar int kind=1 to kind=4 self failed.')
109111

110112
int_scal_k1 = obj[1]%int_scal_k4
111113
print *, int_scal_k1
112-
if (obj%int_scal_k1 /= int_scal_k1) error stop 'get scalar int kind=4 to kind=1 self failed.'
114+
if (obj%int_scal_k1 /= int_scal_k1) call print_and_register( 'get scalar int kind=4 to kind=1 self failed.')
113115

114116
int_k1(:) = obj[1]%int_k1(:)
115117
print *, int_k1
116-
if (any(obj%int_k1 /= int_k1)) error stop 'get int kind=1 to kind=1 self failed.'
118+
if (any(obj%int_k1 /= int_k1)) call print_and_register( 'get int kind=1 to kind=1 self failed.')
117119

118120
int_k4(:) = obj[1]%int_k4(:)
119121
print *, int_k4
120-
if (any(obj%int_k4 /= int_k4)) error stop 'get int kind=4 to kind=4 self failed.'
122+
if (any(obj%int_k4 /= int_k4)) call print_and_register( 'get int kind=4 to kind=4 self failed.')
121123

122124
int_k4(:) = obj[1]%int_k1(:)
123125
print *, int_k4
124-
if (any(obj%int_k4 /= int_k4)) error stop 'get int kind=1 to kind=4 self failed.'
126+
if (any(obj%int_k4 /= int_k4)) call print_and_register( 'get int kind=1 to kind=4 self failed.')
125127

126128
int_k1(:) = obj[1]%int_k4(:)
127129
print *, int_k1
128-
if (any(obj%int_k1 /= int_k1)) error stop 'get int kind=4 to kind=1 self failed.'
130+
if (any(obj%int_k1 /= int_k1)) call print_and_register( 'get int kind=4 to kind=1 self failed.')
129131
else if (me == 2) then ! Do the real copy to self checks on image 2
130132
real_scal_k4 = obj[2]%real_scal_k4
131133
print *, real_scal_k4
132-
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) error stop 'get scalar real kind=4 to kind=4 self failed.'
134+
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) &
135+
call print_and_register( 'get scalar real kind=4 to kind=4 self failed.')
136+
133137

134138
real_scal_k8 = obj[2]%real_scal_k8
135139
print *, real_scal_k8
136-
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance8) error stop 'get scalar real kind=8 to kind=8 self failed.'
140+
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance8) &
141+
call print_and_register( 'get scalar real kind=8 to kind=8 self failed.')
142+
137143

138144
real_scal_k8 = obj[2]%real_scal_k4
139145
print *, real_scal_k8
140-
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance4to8) error stop 'get scalar real kind=4 to kind=8 self failed.'
146+
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance4to8) &
147+
call print_and_register( 'get scalar real kind=4 to kind=8 self failed.')
148+
141149

142150
real_scal_k4 = obj[2]%real_scal_k8
143151
print *, real_scal_k4
144-
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) error stop 'get scalar real kind=8 to kind=4 self failed.'
152+
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) &
153+
call print_and_register( 'get scalar real kind=8 to kind=4 self failed.')
145154

146155
real_k4(:) = obj[2]%real_k4(:)
147156
print *, real_k4
148-
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) error stop 'get real kind=4 to kind=4 self failed.'
157+
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) call print_and_register( 'get real kind=4 to kind=4 self failed.')
149158

150159
real_k8(:) = obj[2]%real_k8(:)
151160
print *, real_k8
152-
if (any(abs(obj%real_k8 - real_k8) > tolerance8)) error stop 'get real kind=8 to kind=8 self failed.'
161+
if (any(abs(obj%real_k8 - real_k8) > tolerance8)) call print_and_register( 'get real kind=8 to kind=8 self failed.')
153162

154163
real_k8(:) = obj[2]%real_k4(:)
155164
print *, real_k8
156-
if (any(abs(obj%real_k8 - real_k8) > tolerance4to8)) error stop 'get real kind=4 to kind=8 self failed.'
165+
if (any(abs(obj%real_k8 - real_k8) > tolerance4to8)) call print_and_register( 'get real kind=4 to kind=8 self failed.')
157166

158167
real_k4(:) = obj[2]%real_k8(:)
159168
print *, real_k4
160-
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) error stop 'get real kind=8 to kind=4 self failed.'
169+
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) call print_and_register( 'get real kind=8 to kind=4 self failed.')
161170
end if
162171

163172
sync all
164173
if (me == 1) then
165174
int_scal_k1 = obj[2]%int_scal_k1
166175
print *, int_scal_k1
167-
if (obj%int_scal_k1 /= int_scal_k1) error stop 'get scalar int kind=1 to kind=1 to image 2 failed.'
176+
if (obj%int_scal_k1 /= int_scal_k1) call print_and_register( 'get scalar int kind=1 to kind=1 to image 2 failed.')
168177

169178
int_scal_k4 = obj[2]%int_scal_k4
170179
print *, int_scal_k4
171-
if (obj%int_scal_k4 /= int_scal_k4) error stop 'get scalar int kind=4 to kind=4 to image 2 failed.'
180+
if (obj%int_scal_k4 /= int_scal_k4) call print_and_register( 'get scalar int kind=4 to kind=4 to image 2 failed.')
172181

173182
int_k1(:) = obj[2]%int_k1(:)
174183
print *, int_k1
175-
if (any(obj%int_k1 /= int_k1)) error stop 'get int kind=1 to kind=1 to image 2 failed.'
184+
if (any(obj%int_k1 /= int_k1)) call print_and_register( 'get int kind=1 to kind=1 to image 2 failed.')
176185

177186
int_k4(:) = obj[2]%int_k4(:)
178187
print *, int_k4
179-
if (any(obj%int_k4 /= int_k4)) error stop 'get int kind=4 to kind=4 to image 2 failed.'
188+
if (any(obj%int_k4 /= int_k4)) call print_and_register( 'get int kind=4 to kind=4 to image 2 failed.')
180189

181190
else if (me == 2) then
182191
real_scal_k4 = obj[1]%real_scal_k4
183192
print *, real_scal_k4
184-
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) error stop 'get scalar real kind=4 to kind=4 to image 2 failed.'
193+
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) &
194+
call print_and_register( 'get scalar real kind=4 to kind=4 to image 2 failed.')
185195

186196
real_scal_k8 = obj[1]%real_scal_k8
187197
print *, real_scal_k8
188-
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance8) error stop 'get scalar real kind=8 to kind=8 to image 2 failed.'
198+
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance8) &
199+
call print_and_register( 'get scalar real kind=8 to kind=8 to image 2 failed.')
189200

190201
real_k4(:) = obj[1]%real_k4(:)
191202
print *, real_k4
192-
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) error stop 'get real kind=4 to kind=4 to image 2 failed.'
203+
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) call print_and_register( 'get real kind=4 to kind=4 to image 2 failed.')
193204

194205
real_k8(:) = obj[1]%real_k8(:)
195206
print *, real_k8
196-
if (any(abs(obj%real_k8 - real_k8) > tolerance8)) error stop 'get real kind=8 to kind=8 to image 2 failed.'
207+
if (any(abs(obj%real_k8 - real_k8) > tolerance8)) call print_and_register( 'get real kind=8 to kind=8 to image 2 failed.')
197208
end if
198209

199210
sync all
200211
if (me == 1) then
201212
int_scal_k4 = obj[2]%int_scal_k1
202213
print *, int_scal_k4
203-
if (obj%int_scal_k4 /= int_scal_k4) error stop 'get scalar int kind=1 to kind=4 to image 2 failed.'
214+
if (obj%int_scal_k4 /= int_scal_k4) call print_and_register( 'get scalar int kind=1 to kind=4 to image 2 failed.')
204215

205216
int_scal_k1 = obj[2]%int_scal_k4
206217
print *, int_scal_k1
207-
if (obj%int_scal_k1 /= int_scal_k1) error stop 'get scalar int kind=4 to kind=1 to image 2 failed.'
218+
if (obj%int_scal_k1 /= int_scal_k1) call print_and_register( 'get scalar int kind=4 to kind=1 to image 2 failed.')
208219

209220
int_k4(:) = obj[2]%int_k1(:)
210221
print *, int_k4
211-
if (any(obj%int_k4 /= int_k4)) error stop 'get int kind=1 to kind=4 to image 2 failed.'
222+
if (any(obj%int_k4 /= int_k4)) call print_and_register( 'get int kind=1 to kind=4 to image 2 failed.')
212223

213224
int_k1(:) = obj[2]%int_k4(:)
214225
print *, int_k1
215-
if (any(obj%int_k1 /= int_k1)) error stop 'get int kind=4 to kind=1 to image 2 failed.'
226+
if (any(obj%int_k1 /= int_k1)) call print_and_register( 'get int kind=4 to kind=1 to image 2 failed.')
216227

217228
elseif (me == 2) then
218229
real_scal_k8 = obj[1]%real_scal_k4
219230
print *, real_scal_k8
220-
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance4to8) error stop 'get scalar real kind=4 to kind=8 to image 2 failed.'
231+
if (abs(obj%real_scal_k8 - real_scal_k8) > tolerance4to8) &
232+
call print_and_register( 'get scalar real kind=4 to kind=8 to image 2 failed.')
221233

222234
real_scal_k4 = obj[1]%real_scal_k8
223235
print *, real_scal_k4
224-
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) error stop 'get scalar real kind=8 to kind=4 to image 2 failed.'
236+
if (abs(obj%real_scal_k4 - real_scal_k4) > tolerance4) &
237+
call print_and_register( 'get scalar real kind=8 to kind=4 to image 2 failed.')
225238

226239
real_k8(:) = obj[1]%real_k4(:)
227240
print *, real_k8
228-
if (any(abs(obj%real_k8 - real_k8) > tolerance4to8)) error stop 'get real kind=4 to kind=8 to image 2 failed.'
241+
if (any(abs(obj%real_k8 - real_k8) > tolerance4to8)) &
242+
call print_and_register( 'get real kind=4 to kind=8 to image 2 failed.')
229243

230244
real_k4(:) = obj[1]%real_k8(:)
231245
print *, real_k4
232-
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) error stop 'get real kind=8 to kind=4 to image 2 failed.'
246+
if (any(abs(obj%real_k4 - real_k4) > tolerance4)) call print_and_register( 'get real kind=8 to kind=4 to image 2 failed.')
233247
end if
234248

235249
! Scalar to array replication
236250
sync all
237251
if (me == 1) then
238252
int_k4(:) = obj[2]%int_scal_k4
239253
print *, int_k4
240-
if (any(obj%int_scal_k4 /= int_k4)) error stop 'get int scal kind=4 to array kind=4 to image 2 failed.'
254+
if (any(obj%int_scal_k4 /= int_k4)) call print_and_register( 'get int scal kind=4 to array kind=4 to image 2 failed.')
241255

242256
int_k1(:) = obj[2]%int_scal_k1
243257
print *, int_k1
244-
if (any(obj%int_scal_k1 /= int_k1)) error stop 'get int scal kind=1 to array kind=1 to image 2 failed.'
258+
if (any(obj%int_scal_k1 /= int_k1)) call print_and_register( 'get int scal kind=1 to array kind=1 to image 2 failed.')
245259

246260
else if (me == 2) then
247261
real_k8(:) = obj[1]%real_scal_k8
248262
print *, real_k8
249-
if (any(abs(obj%real_scal_k8 - real_k8) > tolerance8)) error stop 'get real kind=8 to array kind=8 to image 2 failed.'
263+
if (any(abs(obj%real_scal_k8 - real_k8) > tolerance8)) &
264+
call print_and_register( 'get real kind=8 to array kind=8 to image 2 failed.')
250265

251266
real_k4(:) = obj[1]%real_scal_k4
252267
print *, real_k4
253-
if (any(abs(obj%real_scal_k4 - real_k4) > tolerance4)) error stop 'get real kind=4 to array kind=4 to image 2 failed.'
268+
if (any(abs(obj%real_scal_k4 - real_k4) > tolerance4)) &
269+
call print_and_register( 'get real kind=4 to array kind=4 to image 2 failed.')
254270
end if
255271

256272
! and with kind conversion
257273
sync all
258274
if (me == 1) then
259275
int_k4(:) = obj[2]%int_scal_k1
260276
print *, int_k4
261-
if (any(obj%int_scal_k4 /= int_k4)) error stop 'get int scal kind=1 to array kind=4 to image 2 failed.'
277+
if (any(obj%int_scal_k4 /= int_k4)) call print_and_register( 'get int scal kind=1 to array kind=4 to image 2 failed.')
262278

263279
int_k1(:) = obj[2]%int_scal_k4
264280
print *, int_k1
265-
if (any(obj%int_scal_k1 /= int_k1)) error stop 'get int scal kind=4 to array kind=1 to image 2 failed.'
281+
if (any(obj%int_scal_k1 /= int_k1)) call print_and_register( 'get int scal kind=4 to array kind=1 to image 2 failed.')
266282

267283
else if (me == 2) then
268284
real_k8(:) = obj[1]%real_scal_k4
269285
print *, real_k8
270-
if (any(abs(obj%real_scal_k8 - real_k8) > tolerance8)) error stop 'get real kind=4 to array kind=8 to image 2 failed.'
286+
if (any(abs(obj%real_scal_k8 - real_k8) > tolerance8)) &
287+
call print_and_register( 'get real kind=4 to array kind=8 to image 2 failed.')
271288

272289
real_k4(:) = obj[1]%real_scal_k8
273290
print *, real_k4
274-
if (any(abs(obj%real_scal_k4 - real_k4) > tolerance4)) error stop 'get real kind=8 to array kind=4 to image 2 failed.'
291+
if (any(abs(obj%real_scal_k4 - real_k4) > tolerance4)) &
292+
call print_and_register( 'get real kind=8 to array kind=4 to image 2 failed.')
275293
end if
276294

277295
! and with type conversion
278296
sync all
279297
if (me == 1) then
280298
int_k4(:) = obj[2]%real_scal_k4
281299
print *, int_k4
282-
if (any(int_k4 /= INT(obj%real_scal_k4, 4))) error stop 'get real scal kind=4 to int array kind=4 to image 2 failed.'
300+
if (any(int_k4 /= INT(obj%real_scal_k4, 4))) &
301+
call print_and_register( 'get real scal kind=4 to int array kind=4 to image 2 failed.')
283302

284303
int_k1(:) = obj[2]%real_scal_k4
285304
print *, int_k1
286-
if (any(int_k1 /= INT(obj%real_scal_k4, 1))) error stop 'get real scal kind=1 to int array kind=1 to image 2 failed.'
305+
if (any(int_k1 /= INT(obj%real_scal_k4, 1))) &
306+
call print_and_register( 'get real scal kind=1 to int array kind=1 to image 2 failed.')
287307

288308
else if (me == 2) then
289309
real_k8(:) = obj[1]%int_scal_k4
290310
print *, real_k8
291-
if (any(abs(real_k8 - obj%int_scal_k4) > tolerance4to8)) error stop 'get int kind=4 to real array kind=8 to image 2 failed.'
311+
if (any(abs(real_k8 - obj%int_scal_k4) > tolerance4to8)) &
312+
call print_and_register( 'get int kind=4 to real array kind=8 to image 2 failed.')
313+
292314

293315
real_k4(:) = obj[1]%int_scal_k4
294316
print *, real_k4
295-
if (any(abs(real_k4 - obj%int_scal_k4) > tolerance4)) error stop 'get int kind=4 to real array kind=4 to image 2 failed.'
317+
if (any(abs(real_k4 - obj%int_scal_k4) > tolerance4)) &
318+
call print_and_register( 'get int kind=4 to real array kind=4 to image 2 failed.')
296319
end if
297320

298321
sync all
@@ -311,24 +334,24 @@ program get_convert_nums
311334
int_k4(1:3) = obj[2]%int_k4(::2)
312335
print *, int_k4
313336
if (any(int_k4 /= [obj%int_k4(1), obj%int_k4(3), obj%int_k4(5), -1, -1])) &
314-
& error stop 'strided get int kind=4 to kind=4 to image 2 failed.'
337+
& call print_and_register( 'strided get int kind=4 to kind=4 to image 2 failed.')
315338

316339
int_k1(3:5) = obj[2]%int_k1(::2)
317340
print *, int_k1
318341
if (any(int_k1 /= [INT(-1, 1), INT(-1, 1), obj%int_k1(1), obj%int_k1(3), obj%int_k1(5)])) &
319-
& error stop 'strided get int kind=1 to kind=1 to image 2 failed.'
342+
& call print_and_register( 'strided get int kind=1 to kind=1 to image 2 failed.')
320343

321344
real_k8(1:3) = obj[2]%real_k8(::2)
322345
print *, real_k8
323346
if (any(abs(real_k8 - [obj%real_k8(1), obj%real_k8(3), obj%real_k8(5), REAL(-1.0, 8), REAL(-1.0, 8)]) > tolerance8)) &
324-
& error stop 'strided get real kind=8 to kind=8 to image 2 failed.'
347+
& call print_and_register( 'strided get real kind=8 to kind=8 to image 2 failed.')
325348

326349
real_k4(3:5) = obj[2]%real_k4(::2)
327350
print *, real_k4
328351
if (any(abs(real_k4 - [-1.0, -1.0, obj%real_k4(1), obj%real_k4(3), obj%real_k4(5)]) > tolerance4)) &
329-
& error stop 'strided get real kind=4 to kind=4 to image 2 failed.'
352+
& call print_and_register( 'strided get real kind=4 to kind=4 to image 2 failed.')
330353
end if
331-
354+
332355
! now with strides and kind conversion
333356
sync all
334357
int_k4 = -1
@@ -343,48 +366,63 @@ program get_convert_nums
343366
if (me == 1) then
344367
int_k4(1:3) = obj[2]%int_k1(::2)
345368
print *, int_k4
346-
if (any(int_k4 /= [15, 13, 11, -1, -1])) error stop 'strided get int kind=1 to kind=4 to image 2 failed.'
369+
if (any(int_k4 /= [15, 13, 11, -1, -1])) call print_and_register( 'strided get int kind=1 to kind=4 to image 2 failed.')
347370

348-
int_k1(1:3) = obj[2]%int_k4(::2)
371+
int_k1(1:3) = obj[2]%int_k4(::2)
349372
print *, int_k1
350373
if (any(int_k1 /= INT([105, 103, 101, -1, -1], 1))) &
351-
& error stop 'strided get int kind=4 to kind=1 to image 2 failed.'
374+
& call print_and_register( 'strided get int kind=4 to kind=1 to image 2 failed.')
352375

353376
real_k8(1:3) = obj[2]%real_k4(::2)
354377
print *, real_k8
355378
if (any(abs(real_k8 - [-5.1, -3.3, -1.5, -1.0, -1.0]) > tolerance8)) &
356-
& error stop 'strided get real kind=4 to kind=8 to image 2 failed.'
379+
& call print_and_register( 'strided get real kind=4 to kind=8 to image 2 failed.')
357380

358381
real_k4(1:3) = obj[2]%real_k8(::2)
359382
print *, real_k4
360383
if (any(abs(real_k4 - REAL([5.1, 3.3, 1.5, -1.0, -1.0], 4)) > tolerance4)) &
361-
& error stop 'strided get real kind=8 to kind=4 to image 2 failed.'
384+
& call print_and_register( 'strided get real kind=8 to kind=4 to image 2 failed.')
362385

363386
else if (me == 2) then
364387
! now with strides and type conversion
365388
int_k4(1:3) = obj[1]%real_k8(::2)
366389
print *, int_k4
367-
if (any(int_k4 /= [5, 3, 1, -1, -1])) error stop 'strided get real kind=4 to int kind=4 to image 2 failed.'
390+
if (any(int_k4 /= [5, 3, 1, -1, -1])) call print_and_register( 'strided get real kind=4 to int kind=4 to image 2 failed.')
368391

369392
int_k1(1:3) = obj[1]%real_k4(::2)
370393
print *, int_k1
371394
if (any(int_k1 /= INT([-5, -3, -1, -1, -1], 1))) &
372-
& error stop 'strided get real kind=4 to int kind=1 to image 2 failed.'
395+
& call print_and_register( 'strided get real kind=4 to int kind=1 to image 2 failed.')
373396

374397
real_k8(1:3) = obj[1]%int_k4(::2)
375398
print *, real_k8
376399
if (any(abs(real_k8 - [105.0, 103.0, 101.0, -1.0, -1.0]) > tolerance8)) &
377-
& error stop 'strided get int kind=4 to real kind=8 to image 2 failed.'
400+
& call print_and_register( 'strided get int kind=4 to real kind=8 to image 2 failed.')
378401

379402
real_k4(1:3) = obj[1]%int_k1(::2)
380403
print *, real_k4
381404
if (any(abs(real_k4 - [15.0, 13.0, 11.0, -1.0, -1.0]) > tolerance4)) &
382-
& error stop 'strided get int kind=1 to real kind=4 to image 2 failed.'
405+
& call print_and_register( 'strided get int kind=1 to real kind=4 to image 2 failed.')
383406
end if
384407

385-
sync all
386-
if (me == 1) print *, "Test passed."
408+
if (error_printed) error stop
409+
if (me==2) sync images(1)
410+
if (me==1) then
411+
sync images(2)
412+
print *, "Test passed."
413+
end if
387414
end associate
415+
416+
417+
contains
418+
419+
subroutine print_and_register(error_message)
420+
use iso_fortran_env, only : error_unit
421+
character(len=*), intent(in) :: error_message
422+
write(error_unit,*) error_message
423+
error_printed=.true.
424+
end subroutine
425+
388426
end program get_convert_nums
389427

390428
! vim:ts=2:sts=2:sw=2:

0 commit comments

Comments
 (0)