1
1
program test_simps
2
2
use stdlib_experimental_kinds, only: sp, dp, qp
3
- use stdlib_experimental_error, only: assert
3
+ use stdlib_experimental_error, only: check
4
4
use stdlib_experimental_quadrature, only: simps, simps_weights
5
5
6
6
implicit none
@@ -50,18 +50,18 @@ subroutine test_simps_sp
50
50
val = simps(y, 1.0_sp )
51
51
ans = 576.0_sp
52
52
print * , " dx=1" , val, ans
53
- call assert (abs (val - ans) < tol_sp)
53
+ call check (abs (val - ans) < tol_sp)
54
54
55
55
val = simps(y, 0.5_sp )
56
56
ans = 288.0_sp
57
57
print * , " dx=0.5" , val, ans
58
- call assert (abs (val - ans) < tol_sp)
58
+ call check (abs (val - ans) < tol_sp)
59
59
60
60
x = [(0.25_sp * (i-1 ), i = 1 , n)]
61
61
val = simps(y, x)
62
62
ans = 144.0_sp
63
63
print * , " x=0,0.25,0.5,..." , val, ans
64
- call assert (abs (val - ans) < tol_sp)
64
+ call check (abs (val - ans) < tol_sp)
65
65
end subroutine test_simps_sp
66
66
67
67
@@ -80,18 +80,18 @@ subroutine test_simps_dp
80
80
val = simps(y, 1.0_dp )
81
81
ans = 576.0_dp
82
82
print * , " dx=1" , val, ans
83
- call assert (abs (val - ans) < tol_dp)
83
+ call check (abs (val - ans) < tol_dp)
84
84
85
85
val = simps(y, 0.5_dp )
86
86
ans = 288.0_dp
87
87
print * , " dx=0.5" , val, ans
88
- call assert (abs (val - ans) < tol_dp)
88
+ call check (abs (val - ans) < tol_dp)
89
89
90
90
x = [(0.25_dp * (i-1 ), i = 1 , n)]
91
91
val = simps(y, x)
92
92
ans = 144.0_dp
93
93
print * , " x=0,0.25,0.5,..." , val, ans
94
- call assert (abs (val - ans) < tol_dp)
94
+ call check (abs (val - ans) < tol_dp)
95
95
end subroutine test_simps_dp
96
96
97
97
@@ -110,18 +110,18 @@ subroutine test_simps_qp
110
110
val = simps(y, 1.0_qp )
111
111
ans = 576.0_qp
112
112
print * , " dx=1" , val, ans
113
- call assert (abs (val - ans) < tol_qp)
113
+ call check (abs (val - ans) < tol_qp)
114
114
115
115
val = simps(y, 0.5_qp )
116
116
ans = 288.0_qp
117
117
print * , " dx=0.5" , val, ans
118
- call assert (abs (val - ans) < tol_qp)
118
+ call check (abs (val - ans) < tol_qp)
119
119
120
120
x = [(0.25_qp * (i-1 ), i = 1 , n)]
121
121
val = simps(y, x)
122
122
ans = 144.0_qp
123
123
print * , " x=0,0.25,0.5,..." , val, ans
124
- call assert (abs (val - ans) < tol_qp)
124
+ call check (abs (val - ans) < tol_qp)
125
125
end subroutine test_simps_qp
126
126
127
127
@@ -143,7 +143,7 @@ subroutine test_simps_weights_sp
143
143
val = sum (w* y)
144
144
ans = simps(y, x)
145
145
print * , " " , val, ans
146
- call assert (abs (val - ans) < tol_sp)
146
+ call check (abs (val - ans) < tol_sp)
147
147
end subroutine test_simps_weights_sp
148
148
149
149
@@ -165,7 +165,7 @@ subroutine test_simps_weights_dp
165
165
val = sum (w* y)
166
166
ans = simps(y, x)
167
167
print * , " " , val, ans
168
- call assert (abs (val - ans) < tol_dp)
168
+ call check (abs (val - ans) < tol_dp)
169
169
end subroutine test_simps_weights_dp
170
170
171
171
@@ -187,7 +187,7 @@ subroutine test_simps_weights_qp
187
187
val = sum (w* y)
188
188
ans = simps(y, x)
189
189
print * , " " , val, ans
190
- call assert (abs (val - ans) < tol_qp)
190
+ call check (abs (val - ans) < tol_qp)
191
191
end subroutine test_simps_weights_qp
192
192
193
193
@@ -196,10 +196,10 @@ subroutine test_simps_zero_sp
196
196
197
197
print * , " test_simps_zero_sp"
198
198
199
- call assert (abs (simps(a, 1.0_sp )) < epsilon (0.0_sp ))
200
- call assert (abs (simps([1.0_sp ], 1.0_sp )) < epsilon (0.0_sp ))
201
- call assert (abs (simps(a, a)) < epsilon (0.0_sp ))
202
- call assert (abs (simps([1.0_sp ], [1.0_sp ])) < epsilon (0.0_sp ))
199
+ call check (abs (simps(a, 1.0_sp )) < epsilon (0.0_sp ))
200
+ call check (abs (simps([1.0_sp ], 1.0_sp )) < epsilon (0.0_sp ))
201
+ call check (abs (simps(a, a)) < epsilon (0.0_sp ))
202
+ call check (abs (simps([1.0_sp ], [1.0_sp ])) < epsilon (0.0_sp ))
203
203
end subroutine test_simps_zero_sp
204
204
205
205
@@ -208,10 +208,10 @@ subroutine test_simps_zero_dp
208
208
209
209
print * , " test_simps_zero_dp"
210
210
211
- call assert (abs (simps(a, 1.0_dp )) < epsilon (0.0_dp ))
212
- call assert (abs (simps([1.0_dp ], 1.0_dp )) < epsilon (0.0_dp ))
213
- call assert (abs (simps(a, a)) < epsilon (0.0_dp ))
214
- call assert (abs (simps([1.0_dp ], [1.0_dp ])) < epsilon (0.0_dp ))
211
+ call check (abs (simps(a, 1.0_dp )) < epsilon (0.0_dp ))
212
+ call check (abs (simps([1.0_dp ], 1.0_dp )) < epsilon (0.0_dp ))
213
+ call check (abs (simps(a, a)) < epsilon (0.0_dp ))
214
+ call check (abs (simps([1.0_dp ], [1.0_dp ])) < epsilon (0.0_dp ))
215
215
end subroutine test_simps_zero_dp
216
216
217
217
@@ -220,10 +220,10 @@ subroutine test_simps_zero_qp
220
220
221
221
print * , " test_simps_zero_qp"
222
222
223
- call assert (abs (simps(a, 1.0_qp )) < epsilon (0.0_qp ))
224
- call assert (abs (simps([1.0_qp ], 1.0_qp )) < epsilon (0.0_qp ))
225
- call assert (abs (simps(a, a)) < epsilon (0.0_qp ))
226
- call assert (abs (simps([1.0_qp ], [1.0_qp ])) < epsilon (0.0_qp ))
223
+ call check (abs (simps(a, 1.0_qp )) < epsilon (0.0_qp ))
224
+ call check (abs (simps([1.0_qp ], 1.0_qp )) < epsilon (0.0_qp ))
225
+ call check (abs (simps(a, a)) < epsilon (0.0_qp ))
226
+ call check (abs (simps([1.0_qp ], [1.0_qp ])) < epsilon (0.0_qp ))
227
227
end subroutine test_simps_zero_qp
228
228
229
229
@@ -246,18 +246,18 @@ subroutine test_simps_even_sp
246
246
val = simps(y, 1.0_sp )
247
247
ans = 1000.0_sp
248
248
print * , " dx=1" , val, ans
249
- call assert (abs (val - ans) < tol_sp)
249
+ call check (abs (val - ans) < tol_sp)
250
250
251
251
val = simps(y, 0.5_sp )
252
252
ans = 500.0_sp
253
253
print * , " dx=0.5" , val, ans
254
- call assert (abs (val - ans) < tol_sp)
254
+ call check (abs (val - ans) < tol_sp)
255
255
256
256
x = [(0.25_sp * (i-1 ), i = 1 , n)]
257
257
val = simps(y, x)
258
258
ans = 250.0_sp
259
259
print * , " x=0,0.25,0.5,..." , val, ans
260
- call assert (abs (val - ans) < tol_sp)
260
+ call check (abs (val - ans) < tol_sp)
261
261
end do
262
262
end subroutine test_simps_even_sp
263
263
@@ -277,18 +277,18 @@ subroutine test_simps_even_dp
277
277
val = simps(y, 1.0_dp )
278
278
ans = 1000.0_dp
279
279
print * , " dx=1" , val, ans
280
- call assert (abs (val - ans) < tol_dp)
280
+ call check (abs (val - ans) < tol_dp)
281
281
282
282
val = simps(y, 0.5_dp )
283
283
ans = 500.0_dp
284
284
print * , " dx=0.5" , val, ans
285
- call assert (abs (val - ans) < tol_dp)
285
+ call check (abs (val - ans) < tol_dp)
286
286
287
287
x = [(0.25_dp * (i-1 ), i = 1 , n)]
288
288
val = simps(y, x)
289
289
ans = 250.0_dp
290
290
print * , " x=0,0.25,0.5,..." , val, ans
291
- call assert (abs (val - ans) < tol_dp)
291
+ call check (abs (val - ans) < tol_dp)
292
292
end subroutine test_simps_even_dp
293
293
294
294
@@ -311,18 +311,18 @@ subroutine test_simps_even_qp
311
311
val = simps(y, 1.0_qp )
312
312
ans = 1000.0_qp
313
313
print * , " dx=1" , val, ans
314
- call assert (abs (val - ans) < tol_qp)
314
+ call check (abs (val - ans) < tol_qp)
315
315
316
316
val = simps(y, 0.5_qp )
317
317
ans = 500.0_qp
318
318
print * , " dx=0.5" , val, ans
319
- call assert (abs (val - ans) < tol_qp)
319
+ call check (abs (val - ans) < tol_qp)
320
320
321
321
x = [(0.25_qp * (i-1 ), i = 1 , n)]
322
322
val = simps(y, x)
323
323
ans = 250.0_qp
324
324
print * , " x=0,0.25,0.5,..." , val, ans
325
- call assert (abs (val - ans) < tol_qp)
325
+ call check (abs (val - ans) < tol_qp)
326
326
end do
327
327
end subroutine test_simps_even_qp
328
328
@@ -347,7 +347,7 @@ subroutine test_simps_weights_even_sp
347
347
val = sum (w* y)
348
348
ans = simps(y, x)
349
349
print * , " even=" , even, val, ans
350
- call assert (abs (val - ans) < tol_sp)
350
+ call check (abs (val - ans) < tol_sp)
351
351
end do
352
352
end subroutine test_simps_weights_even_sp
353
353
@@ -372,7 +372,7 @@ subroutine test_simps_weights_even_dp
372
372
val = sum (w* y)
373
373
ans = simps(y, x)
374
374
print * , " even=" , even, val, ans
375
- call assert (abs (val - ans) < tol_dp)
375
+ call check (abs (val - ans) < tol_dp)
376
376
end do
377
377
end subroutine test_simps_weights_even_dp
378
378
@@ -398,7 +398,7 @@ subroutine test_simps_weights_even_qp
398
398
val = sum (w* y)
399
399
ans = simps(y, x)
400
400
print * , " even=" , even, val, ans
401
- call assert (abs (val - ans) < tol_qp)
401
+ call check (abs (val - ans) < tol_qp)
402
402
end do
403
403
end subroutine test_simps_weights_even_qp
404
404
@@ -422,18 +422,18 @@ subroutine test_simps_six_sp
422
422
val = simps(y, 1.0_sp )
423
423
ans = 125.0_sp
424
424
print * , " dx=1" , val, ans
425
- call assert (abs (val - ans) < tol_sp)
425
+ call check (abs (val - ans) < tol_sp)
426
426
427
427
val = simps(y, 0.5_sp )
428
428
ans = 62.5_sp
429
429
print * , " dx=0.5" , val, ans
430
- call assert (abs (val - ans) < tol_sp)
430
+ call check (abs (val - ans) < tol_sp)
431
431
432
432
x = [(0.25_sp * (i-1 ), i = 1 , n)]
433
433
val = simps(y, x)
434
434
ans = 31.25_sp
435
435
print * , " x=0,0.25,0.5,..." , val, ans
436
- call assert (abs (val - ans) < tol_sp)
436
+ call check (abs (val - ans) < tol_sp)
437
437
end do
438
438
end subroutine test_simps_six_sp
439
439
@@ -453,18 +453,18 @@ subroutine test_simps_six_dp
453
453
val = simps(y, 1.0_dp )
454
454
ans = 125.0_dp
455
455
print * , " dx=1" , val, ans
456
- call assert (abs (val - ans) < tol_dp)
456
+ call check (abs (val - ans) < tol_dp)
457
457
458
458
val = simps(y, 0.5_dp )
459
459
ans = 62.5_dp
460
460
print * , " dx=0.5" , val, ans
461
- call assert (abs (val - ans) < tol_dp)
461
+ call check (abs (val - ans) < tol_dp)
462
462
463
463
x = [(0.25_dp * (i-1 ), i = 1 , n)]
464
464
val = simps(y, x)
465
465
ans = 31.25_dp
466
466
print * , " x=0,0.25,0.5,..." , val, ans
467
- call assert (abs (val - ans) < tol_dp)
467
+ call check (abs (val - ans) < tol_dp)
468
468
end subroutine test_simps_six_dp
469
469
470
470
@@ -487,18 +487,18 @@ subroutine test_simps_six_qp
487
487
val = simps(y, 1.0_qp )
488
488
ans = 125.0_qp
489
489
print * , " dx=1" , val, ans
490
- call assert (abs (val - ans) < tol_qp)
490
+ call check (abs (val - ans) < tol_qp)
491
491
492
492
val = simps(y, 0.5_qp )
493
493
ans = 62.5_qp
494
494
print * , " dx=0.5" , val, ans
495
- call assert (abs (val - ans) < tol_qp)
495
+ call check (abs (val - ans) < tol_qp)
496
496
497
497
x = [(0.25_qp * (i-1 ), i = 1 , n)]
498
498
val = simps(y, x)
499
499
ans = 31.25_qp
500
500
print * , " x=0,0.25,0.5,..." , val, ans
501
- call assert (abs (val - ans) < tol_qp)
501
+ call check (abs (val - ans) < tol_qp)
502
502
end do
503
503
end subroutine test_simps_six_qp
504
504
0 commit comments