@@ -12,7 +12,7 @@ program test_trapz
1212 call test_trapz_weights_sp
1313 call test_trapz_weights_dp
1414 call test_trapz_weights_qp
15-
15+
1616 call test_trapz_zero_sp
1717 call test_trapz_zero_dp
1818 call test_trapz_zero_qp
@@ -28,26 +28,26 @@ subroutine test_trapz_sp
2828 integer :: i
2929
3030 print * , " test_trapz_sp"
31-
31+
3232 y = [(real (i-1 , sp), i = 1 , n)]
3333
3434 val = trapz(y, 1.0_sp )
3535 ans = 128.0_sp
36- call assert(val == ans)
36+ call assert(abs ( val - ans) < epsilon (ans) )
3737
3838 val = trapz(y, 0.5_sp )
3939 ans = 64.0_sp
40- call assert(val == ans)
40+ call assert(abs ( val - ans) < epsilon (ans) )
4141
4242 x = [((i-1 )* 4.0_sp / real (n-1 , sp), i = 1 , n)]
4343 val = trapz(y, x)
4444 ans = 32.0_sp
45- call assert(val == ans)
45+ call assert(abs ( val - ans) < epsilon (ans) )
4646
4747 x = y** 2
4848 val = trapz(y, x)
4949 ans = 2728.0_sp
50- call assert(val == ans)
50+ call assert(abs ( val - ans) < epsilon (ans) )
5151 end subroutine test_trapz_sp
5252
5353 subroutine test_trapz_dp
@@ -59,26 +59,26 @@ subroutine test_trapz_dp
5959 integer :: i
6060
6161 print * , " test_trapz_dp"
62-
62+
6363 y = [(real (i-1 , dp), i = 1 , n)]
6464
6565 val = trapz(y, 1.0_dp )
6666 ans = 128.0_dp
67- call assert(val == ans)
67+ call assert(abs ( val - ans) < epsilon (ans) )
6868
6969 val = trapz(y, 0.5_dp )
7070 ans = 64.0_dp
71- call assert(val == ans)
71+ call assert(abs ( val - ans) < epsilon (ans) )
7272
7373 x = [((i-1 )* 4.0_dp / real (n-1 , dp), i = 1 , n)]
7474 val = trapz(y, x)
7575 ans = 32.0_dp
76- call assert(val == ans)
76+ call assert(abs ( val - ans) < epsilon (ans) )
7777
7878 x = y** 2
7979 val = trapz(y, x)
8080 ans = 2728.0_sp
81- call assert(val == ans)
81+ call assert(abs ( val - ans) < epsilon (ans) )
8282 end subroutine test_trapz_dp
8383
8484
@@ -91,26 +91,26 @@ subroutine test_trapz_qp
9191 integer :: i
9292
9393 print * , " test_trapz_qp"
94-
94+
9595 y = [(real (i-1 , qp), i = 1 , n)]
9696
9797 val = trapz(y, 1.0_qp )
9898 ans = 128.0_qp
99- call assert(val == ans)
99+ call assert(abs ( val - ans) < epsilon (ans) )
100100
101101 val = trapz(y, 0.5_qp )
102102 ans = 64.0_qp
103- call assert(val == ans)
103+ call assert(abs ( val - ans) < epsilon (ans) )
104104
105105 x = [((i-1 )* 4.0_qp / real (n-1 , qp), i = 1 , n)]
106106 val = trapz(y, x)
107107 ans = 32.0_qp
108- call assert(val == ans)
108+ call assert(abs ( val - ans) < epsilon (ans) )
109109
110110 x = y** 2
111111 val = trapz(y, x)
112112 ans = 2728.0_qp
113- call assert(val == ans)
113+ call assert(abs ( val - ans) < epsilon (ans) )
114114 end subroutine test_trapz_qp
115115
116116
@@ -124,20 +124,20 @@ subroutine test_trapz_weights_sp
124124 real (sp) :: ans
125125
126126 print * , " test_trapz_weights_sp"
127-
127+
128128 y = [(real (i-1 , sp), i = 1 , n)]
129129
130130 x = y
131131 w = trapz_weights(x)
132132 val = dot_product (w, y)
133133 ans = trapz(y, x)
134- call assert(val == ans)
134+ call assert(abs ( val - ans) < epsilon (ans) )
135135
136136 x = y** 2
137137 w = trapz_weights(x)
138138 val = dot_product (w, y)
139139 ans = trapz(y, x)
140- call assert(val == ans)
140+ call assert(abs ( val - ans) < epsilon (ans) )
141141
142142 end subroutine test_trapz_weights_sp
143143
@@ -152,24 +152,24 @@ subroutine test_trapz_weights_dp
152152 real (dp) :: ans
153153
154154 print * , " test_trapz_weights_dp"
155-
155+
156156 y = [(real (i-1 , dp), i = 1 , n)]
157157
158158 x = y
159159 w = trapz_weights(x)
160160 val = dot_product (w, y)
161161 ans = trapz(y, x)
162- call assert(val == ans)
162+ call assert(abs ( val - ans) < epsilon (ans) )
163163
164164 x = y** 2
165165 w = trapz_weights(x)
166166 val = dot_product (w, y)
167167 ans = trapz(y, x)
168- call assert(val == ans)
168+ call assert(abs ( val - ans) < epsilon (ans) )
169169
170170 end subroutine test_trapz_weights_dp
171171
172-
172+
173173 subroutine test_trapz_weights_qp
174174 integer , parameter :: n = 17
175175 real (qp), dimension (n) :: y
@@ -180,20 +180,20 @@ subroutine test_trapz_weights_qp
180180 real (qp) :: ans
181181
182182 print * , " test_trapz_weights_qp"
183-
183+
184184 y = [(real (i-1 , qp), i = 1 , n)]
185185
186186 x = y
187187 w = trapz_weights(x)
188188 val = dot_product (w, y)
189189 ans = trapz(y, x)
190- call assert(val == ans)
190+ call assert(abs ( val - ans) < epsilon (ans) )
191191
192192 x = y** 2
193193 w = trapz_weights(x)
194194 val = dot_product (w, y)
195195 ans = trapz(y, x)
196- call assert(val == ans)
196+ call assert(abs ( val - ans) < epsilon (ans) )
197197
198198 end subroutine test_trapz_weights_qp
199199
@@ -202,35 +202,35 @@ subroutine test_trapz_zero_sp
202202 real (sp), dimension (0 ) :: a
203203
204204 print * , " test_trapz_zero_sp"
205-
206- call assert(trapz(a, 1.0_sp ) == 0.0_sp )
207- call assert(trapz([1.0_sp ], 1.0_sp ) == 0.0_sp )
208- call assert(trapz(a, a) == 0.0_sp )
209- call assert(trapz([1.0_sp ], [1.0_sp ]) == 0.0_sp )
205+
206+ call assert(abs ( trapz(a, 1.0_sp )) < epsilon ( 0.0_sp ) )
207+ call assert(abs ( trapz([1.0_sp ], 1.0_sp )) < epsilon ( 0.0_sp ) )
208+ call assert(abs ( trapz(a, a)) < epsilon ( 0.0_sp ) )
209+ call assert(abs ( trapz([1.0_sp ], [1.0_sp ])) < epsilon ( 0.0_sp ) )
210210 end subroutine test_trapz_zero_sp
211211
212212
213213 subroutine test_trapz_zero_dp
214214 real (dp), dimension (0 ) :: a
215215
216216 print * , " test_trapz_zero_dp"
217-
218- call assert(trapz(a, 1.0_dp ) == 0.0_dp )
219- call assert(trapz([1.0_dp ], 1.0_dp ) == 0.0_dp )
220- call assert(trapz(a, a) == 0.0_dp )
221- call assert(trapz([1.0_dp ], [1.0_dp ]) == 0.0_dp )
217+
218+ call assert(trapz(a, 1.0_dp )) < epsilon ( 0.0_dp ) )
219+ call assert(abs ( trapz([1.0_dp ], 1.0_dp )) < epsilon ( 0.0_dp ) )
220+ call assert(abs ( trapz(a, a)) < epsilon ( 0.0_dp ) )
221+ call assert(abs ( trapz([1.0_dp ], [1.0_dp ])) < epsilon ( 0.0_dp ) )
222222 end subroutine test_trapz_zero_dp
223223
224224
225225 subroutine test_trapz_zero_qp
226226 real (qp), dimension (0 ) :: a
227227
228228 print * , " test_trapz_zero_qp"
229-
230- call assert(trapz(a, 1.0_qp ) == 0.0_qp )
231- call assert(trapz([1.0_qp ], 1.0_qp ) == 0.0_qp )
232- call assert(trapz(a, a) == 0.0_qp )
233- call assert(trapz([1.0_qp ], [1.0_qp ]) == 0.0_qp )
229+
230+ call assert(trapz(a, 1.0_qp ) < epsilon ( 0.0_qp ) )
231+ call assert(trapz([1.0_qp ], 1.0_qp ) < epsilon ( 0.0_qp ) )
232+ call assert(trapz(a, a) < epsilon ( 0.0_qp ) )
233+ call assert(trapz([1.0_qp ], [1.0_qp ]) < epsilon ( 0.0_qp ) )
234234 end subroutine test_trapz_zero_qp
235-
235+
236236end program test_trapz
0 commit comments