42 #include "../base/base_uses.f90"
48 REAL(KIND=
dp),
DIMENSION(:, :),
ALLOCATABLE,
SAVE :: c0
49 INTEGER,
PARAMETER :: degree = 15
50 REAL(KIND=
dp),
PARAMETER :: target_error = 0.100000e-08
51 INTEGER,
PARAMETER :: nderiv_max = 21
52 INTEGER,
SAVE :: nderiv_init = -1
53 INTEGER,
SAVE :: patches = -1
65 REAL(kind=
dp),
INTENT(OUT) :: res(*)
66 REAL(kind=
dp),
INTENT(IN) :: r, t
67 INTEGER,
INTENT(IN) :: nderiv
69 REAL(kind=
dp),
PARAMETER :: eps = 34.53877639491068526026987182_dp, n = 2.0_dp
72 REAL(kind=
dp) :: lower, tg1, tg2, x1, x2
74 IF (t <= 81.0_dp)
THEN
77 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
78 IF (x2 <= 0.250000000000000000e+00_dp)
THEN
79 IF (x1 <= 0.550000000000000044e+00_dp)
THEN
80 IF (x1 <= 0.325000000000000011e+00_dp)
THEN
81 IF (x1 <= 0.212500000000000022e+00_dp)
THEN
82 IF (x2 <= 0.125000000000000000e+00_dp)
THEN
83 IF (x2 <= 0.625000000000000000e-01_dp)
THEN
84 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.888888888888888751e+01_dp
85 tg2 = (2*x2 - 0.625000000000000000e-01_dp)*0.160000000000000000e+02_dp
86 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 1))
88 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
89 IF (x2 <= 0.937500000000000000e-01_dp)
THEN
90 IF (x1 <= 0.128124999999999989e+00_dp)
THEN
91 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
92 tg2 = (2*x2 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
93 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 2))
95 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
96 tg2 = (2*x2 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
97 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 3))
100 IF (x1 <= 0.128124999999999989e+00_dp)
THEN
101 IF (x2 <= 0.109375000000000000e+00_dp)
THEN
102 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
103 tg2 = (2*x2 - 0.203125000000000000e+00_dp)*0.640000000000000000e+02_dp
104 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 4))
106 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
107 tg2 = (2*x2 - 0.234375000000000000e+00_dp)*0.640000000000000000e+02_dp
108 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 5))
111 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
112 tg2 = (2*x2 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
113 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 6))
117 tg1 = (2*x1 - 0.368750000000000022e+00_dp)*0.177777777777777715e+02_dp
118 tg2 = (2*x2 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
119 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 7))
123 IF (x2 <= 0.187500000000000000e+00_dp)
THEN
124 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
125 IF (x2 <= 0.156250000000000000e+00_dp)
THEN
126 IF (x1 <= 0.128124999999999989e+00_dp)
THEN
127 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
128 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
129 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 8))
131 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
132 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
133 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 9))
136 IF (x1 <= 0.128124999999999989e+00_dp)
THEN
137 IF (x1 <= 0.114062499999999997e+00_dp)
THEN
138 tg1 = (2*x1 - 0.214062499999999989e+00_dp)*0.711111111111111569e+02_dp
139 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
140 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 10))
142 tg1 = (2*x1 - 0.242187500000000000e+00_dp)*0.711111111111111569e+02_dp
143 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
144 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 11))
147 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
148 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
149 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 12))
153 IF (x2 <= 0.156250000000000000e+00_dp)
THEN
154 tg1 = (2*x1 - 0.368750000000000022e+00_dp)*0.177777777777777715e+02_dp
155 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
156 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 13))
158 tg1 = (2*x1 - 0.368750000000000022e+00_dp)*0.177777777777777715e+02_dp
159 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
160 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 14))
164 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
165 IF (x1 <= 0.128124999999999989e+00_dp)
THEN
166 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
167 IF (x1 <= 0.114062499999999997e+00_dp)
THEN
168 tg1 = (2*x1 - 0.214062499999999989e+00_dp)*0.711111111111111569e+02_dp
169 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
170 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 15))
172 tg1 = (2*x1 - 0.242187500000000000e+00_dp)*0.711111111111111569e+02_dp
173 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
174 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 16))
177 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
178 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
179 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 17))
182 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
183 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
184 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
185 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 18))
187 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
188 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
189 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 19))
193 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
194 tg1 = (2*x1 - 0.368750000000000022e+00_dp)*0.177777777777777715e+02_dp
195 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
196 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 20))
198 tg1 = (2*x1 - 0.368750000000000022e+00_dp)*0.177777777777777715e+02_dp
199 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
200 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 21))
206 IF (x2 <= 0.125000000000000000e+00_dp)
THEN
207 tg1 = (2*x1 - 0.537500000000000089e+00_dp)*0.888888888888888928e+01_dp
208 tg2 = (2*x2 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
209 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 22))
211 IF (x2 <= 0.187500000000000000e+00_dp)
THEN
212 IF (x1 <= 0.268750000000000044e+00_dp)
THEN
213 tg1 = (2*x1 - 0.481250000000000067e+00_dp)*0.177777777777777715e+02_dp
214 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
215 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 23))
217 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.177777777777777892e+02_dp
218 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
219 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 24))
222 IF (x1 <= 0.268750000000000044e+00_dp)
THEN
223 tg1 = (2*x1 - 0.481250000000000067e+00_dp)*0.177777777777777715e+02_dp
224 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
225 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 25))
227 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.177777777777777892e+02_dp
228 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
229 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 26))
235 IF (x2 <= 0.125000000000000000e+00_dp)
THEN
236 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.444444444444444375e+01_dp
237 tg2 = (2*x2 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
238 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 27))
240 IF (x2 <= 0.187500000000000000e+00_dp)
THEN
241 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.444444444444444375e+01_dp
242 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
243 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 28))
245 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.444444444444444375e+01_dp
246 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
247 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 29))
252 IF (x2 <= 0.125000000000000000e+00_dp)
THEN
253 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
254 tg2 = (2*x2 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
255 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 30))
257 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
258 tg2 = (2*x2 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
259 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 31))
263 IF (x1 <= 0.550000000000000044e+00_dp)
THEN
264 IF (x1 <= 0.325000000000000011e+00_dp)
THEN
265 IF (x1 <= 0.212500000000000022e+00_dp)
THEN
266 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
267 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
268 IF (x1 <= 0.128124999999999989e+00_dp)
THEN
269 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
270 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
271 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
272 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 32))
274 tg1 = (2*x1 - 0.228124999999999994e+00_dp)*0.355555555555555785e+02_dp
275 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
276 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 33))
279 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
280 IF (x2 <= 0.281250000000000000e+00_dp)
THEN
281 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
282 tg2 = (2*x2 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
283 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 34))
285 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
286 tg2 = (2*x2 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
287 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 35))
290 tg1 = (2*x1 - 0.284374999999999989e+00_dp)*0.355555555555555429e+02_dp
291 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
292 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 36))
296 tg1 = (2*x1 - 0.256249999999999978e+00_dp)*0.177777777777777786e+02_dp
297 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
298 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 37))
301 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
302 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
303 IF (x1 <= 0.184375000000000011e+00_dp)
THEN
304 tg1 = (2*x1 - 0.340625000000000011e+00_dp)*0.355555555555555429e+02_dp
305 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
306 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 38))
308 tg1 = (2*x1 - 0.396875000000000033e+00_dp)*0.355555555555555429e+02_dp
309 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
310 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 39))
313 IF (x1 <= 0.184375000000000011e+00_dp)
THEN
314 tg1 = (2*x1 - 0.340625000000000011e+00_dp)*0.355555555555555429e+02_dp
315 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
316 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 40))
318 tg1 = (2*x1 - 0.396875000000000033e+00_dp)*0.355555555555555429e+02_dp
319 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
320 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 41))
324 IF (x1 <= 0.184375000000000011e+00_dp)
THEN
325 tg1 = (2*x1 - 0.340625000000000011e+00_dp)*0.355555555555555429e+02_dp
326 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
327 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 42))
329 tg1 = (2*x1 - 0.396875000000000033e+00_dp)*0.355555555555555429e+02_dp
330 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
331 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 43))
336 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
337 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
338 IF (x1 <= 0.268750000000000044e+00_dp)
THEN
339 tg1 = (2*x1 - 0.481250000000000067e+00_dp)*0.177777777777777715e+02_dp
340 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
341 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 44))
343 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.177777777777777892e+02_dp
344 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
345 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 45))
348 IF (x1 <= 0.268750000000000044e+00_dp)
THEN
349 tg1 = (2*x1 - 0.481250000000000067e+00_dp)*0.177777777777777715e+02_dp
350 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
351 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 46))
353 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.177777777777777892e+02_dp
354 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
355 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 47))
359 IF (x1 <= 0.268750000000000044e+00_dp)
THEN
360 tg1 = (2*x1 - 0.481250000000000067e+00_dp)*0.177777777777777715e+02_dp
361 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
362 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 48))
364 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.177777777777777892e+02_dp
365 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
366 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 49))
371 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
372 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
373 tg1 = (2*x1 - 0.762499999999999956e+00_dp)*0.888888888888888928e+01_dp
374 tg2 = (2*x2 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
375 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 50))
377 tg1 = (2*x1 - 0.987500000000000044e+00_dp)*0.888888888888888573e+01_dp
378 tg2 = (2*x2 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
379 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 51))
382 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
383 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
384 tg1 = (2*x1 - 0.762499999999999956e+00_dp)*0.888888888888888928e+01_dp
385 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
386 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 52))
388 tg1 = (2*x1 - 0.987500000000000044e+00_dp)*0.888888888888888573e+01_dp
389 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
390 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 53))
393 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
394 tg1 = (2*x1 - 0.762499999999999956e+00_dp)*0.888888888888888928e+01_dp
395 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
396 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 54))
398 tg1 = (2*x1 - 0.987500000000000044e+00_dp)*0.888888888888888573e+01_dp
399 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
400 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 55))
406 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
407 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
408 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
409 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
410 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 56))
412 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
413 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
414 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 57))
417 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
418 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
419 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
420 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 58))
422 IF (x1 <= 0.775000000000000022e+00_dp)
THEN
423 tg1 = (2*x1 - 0.132500000000000018e+01_dp)*0.444444444444444464e+01_dp
424 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
425 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 59))
427 tg1 = (2*x1 - 0.177499999999999991e+01_dp)*0.444444444444444464e+01_dp
428 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
429 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 60))
436 IF (x1 <= 0.550000000000000044e+00_dp)
THEN
437 IF (x1 <= 0.325000000000000011e+00_dp)
THEN
438 IF (x1 <= 0.212500000000000022e+00_dp)
THEN
439 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
440 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
441 tg1 = (2*x1 - 0.256249999999999978e+00_dp)*0.177777777777777786e+02_dp
442 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
443 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 61))
445 tg1 = (2*x1 - 0.368750000000000022e+00_dp)*0.177777777777777715e+02_dp
446 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
447 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 62))
450 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.888888888888888751e+01_dp
451 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
452 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 63))
455 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
456 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
457 IF (x1 <= 0.268750000000000044e+00_dp)
THEN
458 tg1 = (2*x1 - 0.481250000000000067e+00_dp)*0.177777777777777715e+02_dp
459 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
460 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 64))
462 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.177777777777777892e+02_dp
463 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
464 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 65))
467 tg1 = (2*x1 - 0.537500000000000089e+00_dp)*0.888888888888888928e+01_dp
468 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
469 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 66))
472 tg1 = (2*x1 - 0.537500000000000089e+00_dp)*0.888888888888888928e+01_dp
473 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
474 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 67))
478 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
479 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
480 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
481 tg1 = (2*x1 - 0.762499999999999956e+00_dp)*0.888888888888888928e+01_dp
482 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
483 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 68))
485 tg1 = (2*x1 - 0.987500000000000044e+00_dp)*0.888888888888888573e+01_dp
486 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
487 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 69))
490 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
491 tg1 = (2*x1 - 0.762499999999999956e+00_dp)*0.888888888888888928e+01_dp
492 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
493 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 70))
495 tg1 = (2*x1 - 0.987500000000000044e+00_dp)*0.888888888888888573e+01_dp
496 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
497 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 71))
501 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
502 tg1 = (2*x1 - 0.762499999999999956e+00_dp)*0.888888888888888928e+01_dp
503 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
504 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 72))
506 tg1 = (2*x1 - 0.987500000000000044e+00_dp)*0.888888888888888573e+01_dp
507 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
508 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 73))
513 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
514 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
515 IF (x1 <= 0.775000000000000022e+00_dp)
THEN
516 tg1 = (2*x1 - 0.132500000000000018e+01_dp)*0.444444444444444464e+01_dp
517 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
518 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 74))
520 tg1 = (2*x1 - 0.177499999999999991e+01_dp)*0.444444444444444464e+01_dp
521 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
522 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 75))
525 IF (x1 <= 0.775000000000000022e+00_dp)
THEN
526 tg1 = (2*x1 - 0.132500000000000018e+01_dp)*0.444444444444444464e+01_dp
527 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
528 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 76))
530 tg1 = (2*x1 - 0.177499999999999991e+01_dp)*0.444444444444444464e+01_dp
531 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
532 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 77))
536 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
537 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
538 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
539 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 78))
541 tg1 = (2*x1 - 0.155000000000000004e+01_dp)*0.222222222222222232e+01_dp
542 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
543 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 79))
550 lower = (sqrt(t) - sqrt(eps))/n
553 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
554 IF (x1 <= 0.500000000000000000e+00_dp)
THEN
555 IF (x2 <= 0.250000000000000000e+00_dp)
THEN
556 tg1 = (2*x1 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
557 tg2 = (2*x2 - 0.250000000000000000e+00_dp)*0.400000000000000000e+01_dp
558 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 80))
560 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
561 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
562 tg1 = (2*x1 - 0.250000000000000000e+00_dp)*0.400000000000000000e+01_dp
563 tg2 = (2*x2 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
564 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 81))
566 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
567 tg1 = (2*x1 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
568 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
569 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 82))
571 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
572 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
573 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
574 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 83))
576 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
577 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
578 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 84))
583 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
584 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
585 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
586 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
587 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
588 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 85))
590 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
591 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
592 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 86))
595 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
596 IF (x2 <= 0.468750000000000000e+00_dp)
THEN
597 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
598 tg2 = (2*x2 - 0.906250000000000000e+00_dp)*0.320000000000000000e+02_dp
599 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 87))
601 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
602 tg2 = (2*x2 - 0.968750000000000000e+00_dp)*0.320000000000000000e+02_dp
603 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 88))
606 IF (x2 <= 0.468750000000000000e+00_dp)
THEN
607 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
608 tg2 = (2*x2 - 0.906250000000000000e+00_dp)*0.320000000000000000e+02_dp
609 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 89))
611 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
612 tg2 = (2*x2 - 0.968750000000000000e+00_dp)*0.320000000000000000e+02_dp
613 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 90))
618 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
619 IF (x2 <= 0.406250000000000000e+00_dp)
THEN
620 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
621 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
622 tg2 = (2*x2 - 0.781250000000000000e+00_dp)*0.320000000000000000e+02_dp
623 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 91))
625 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
626 tg2 = (2*x2 - 0.781250000000000000e+00_dp)*0.320000000000000000e+02_dp
627 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 92))
630 tg1 = (2*x1 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
631 tg2 = (2*x2 - 0.843750000000000000e+00_dp)*0.320000000000000000e+02_dp
632 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 93))
635 tg1 = (2*x1 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
636 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
637 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 94))
643 IF (x2 <= 0.250000000000000000e+00_dp)
THEN
644 IF (x2 <= 0.125000000000000000e+00_dp)
THEN
645 tg1 = (2*x1 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
646 tg2 = (2*x2 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
647 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 95))
649 IF (x2 <= 0.187500000000000000e+00_dp)
THEN
650 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
651 tg1 = (2*x1 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
652 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
653 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 96))
655 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
656 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
657 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
658 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 97))
660 IF (x2 <= 0.156250000000000000e+00_dp)
THEN
661 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
662 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
663 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 98))
665 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
666 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
667 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 99))
672 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
673 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
674 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
675 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
676 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 100))
678 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
679 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
680 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 101))
683 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
684 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
685 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
686 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
687 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 102))
689 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
690 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
691 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 103))
694 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
695 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
696 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
697 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 104))
699 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
700 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
701 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 105))
708 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
709 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
710 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
711 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
712 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
713 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
714 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 106))
716 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
717 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
718 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 107))
721 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
722 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
723 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
724 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 108))
726 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
727 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
728 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 109))
732 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
733 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
734 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
735 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
736 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 110))
738 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
739 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
740 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 111))
743 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
744 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
745 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
746 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 112))
748 IF (x1 <= 0.937500000000000000e+00_dp)
THEN
749 tg1 = (2*x1 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
750 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
751 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 113))
753 tg1 = (2*x1 - 0.193750000000000000e+01_dp)*0.160000000000000000e+02_dp
754 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
755 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 114))
761 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
762 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
763 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
764 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
765 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 115))
767 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
768 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
769 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
770 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 116))
772 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
773 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
774 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 117))
778 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
779 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
780 IF (x1 <= 0.812500000000000000e+00_dp)
THEN
781 tg1 = (2*x1 - 0.156250000000000000e+01_dp)*0.160000000000000000e+02_dp
782 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
783 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 118))
785 tg1 = (2*x1 - 0.168750000000000000e+01_dp)*0.160000000000000000e+02_dp
786 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
787 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 119))
790 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
791 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
792 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 120))
795 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
796 IF (x1 <= 0.937500000000000000e+00_dp)
THEN
797 tg1 = (2*x1 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
798 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
799 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 121))
801 tg1 = (2*x1 - 0.193750000000000000e+01_dp)*0.160000000000000000e+02_dp
802 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
803 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 122))
806 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
807 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
808 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 123))
816 IF (x1 <= 0.500000000000000000e+00_dp)
THEN
817 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
818 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
819 tg1 = (2*x1 - 0.250000000000000000e+00_dp)*0.400000000000000000e+01_dp
820 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
821 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 124))
823 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
824 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
825 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
826 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
827 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 125))
829 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
830 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
831 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 126))
834 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
835 IF (x2 <= 0.687500000000000000e+00_dp)
THEN
836 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
837 tg2 = (2*x2 - 0.131250000000000000e+01_dp)*0.160000000000000000e+02_dp
838 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 127))
840 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
841 tg2 = (2*x2 - 0.143750000000000000e+01_dp)*0.160000000000000000e+02_dp
842 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 128))
845 IF (x2 <= 0.687500000000000000e+00_dp)
THEN
846 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
847 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
848 tg2 = (2*x2 - 0.131250000000000000e+01_dp)*0.160000000000000000e+02_dp
849 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 129))
851 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
852 tg2 = (2*x2 - 0.131250000000000000e+01_dp)*0.160000000000000000e+02_dp
853 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 130))
856 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
857 tg2 = (2*x2 - 0.143750000000000000e+01_dp)*0.160000000000000000e+02_dp
858 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 131))
864 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
865 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
866 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
867 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
868 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
869 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 132))
871 IF (x2 <= 0.812500000000000000e+00_dp)
THEN
872 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
873 tg2 = (2*x2 - 0.156250000000000000e+01_dp)*0.160000000000000000e+02_dp
874 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 133))
876 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
877 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
878 tg2 = (2*x2 - 0.168750000000000000e+01_dp)*0.160000000000000000e+02_dp
879 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 134))
881 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
882 tg2 = (2*x2 - 0.168750000000000000e+01_dp)*0.160000000000000000e+02_dp
883 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 135))
888 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
889 IF (x2 <= 0.937500000000000000e+00_dp)
THEN
890 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
891 tg1 = (2*x1 - 0.625000000000000000e-01_dp)*0.160000000000000000e+02_dp
892 tg2 = (2*x2 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
893 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 136))
895 IF (x2 <= 0.906250000000000000e+00_dp)
THEN
896 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
897 tg2 = (2*x2 - 0.178125000000000000e+01_dp)*0.320000000000000000e+02_dp
898 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 137))
900 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
901 tg2 = (2*x2 - 0.184375000000000000e+01_dp)*0.320000000000000000e+02_dp
902 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 138))
906 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
907 IF (x2 <= 0.968750000000000000e+00_dp)
THEN
908 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
909 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
910 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
911 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 139))
913 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
914 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
915 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 140))
918 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
919 IF (x2 <= 0.984375000000000000e+00_dp)
THEN
920 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
921 tg2 = (2*x2 - 0.195312500000000000e+01_dp)*0.640000000000000000e+02_dp
922 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 141))
924 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
925 tg2 = (2*x2 - 0.198437500000000000e+01_dp)*0.640000000000000000e+02_dp
926 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 142))
929 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
930 tg2 = (2*x2 - 0.196875000000000000e+01_dp)*0.320000000000000000e+02_dp
931 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 143))
935 IF (x2 <= 0.968750000000000000e+00_dp)
THEN
936 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
937 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
938 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
939 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 144))
941 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
942 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
943 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 145))
946 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
947 tg2 = (2*x2 - 0.196875000000000000e+01_dp)*0.320000000000000000e+02_dp
948 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 146))
953 IF (x2 <= 0.937500000000000000e+00_dp)
THEN
954 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
955 IF (x2 <= 0.906250000000000000e+00_dp)
THEN
956 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
957 tg2 = (2*x2 - 0.178125000000000000e+01_dp)*0.320000000000000000e+02_dp
958 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 147))
960 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
961 tg2 = (2*x2 - 0.184375000000000000e+01_dp)*0.320000000000000000e+02_dp
962 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 148))
965 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
966 tg2 = (2*x2 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
967 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 149))
970 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
971 tg2 = (2*x2 - 0.193750000000000000e+01_dp)*0.160000000000000000e+02_dp
972 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 150))
977 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
978 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
979 IF (x2 <= 0.812500000000000000e+00_dp)
THEN
980 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
981 tg1 = (2*x1 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
982 tg2 = (2*x2 - 0.156250000000000000e+01_dp)*0.160000000000000000e+02_dp
983 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 151))
985 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
986 tg2 = (2*x2 - 0.156250000000000000e+01_dp)*0.160000000000000000e+02_dp
987 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 152))
990 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
991 tg2 = (2*x2 - 0.168750000000000000e+01_dp)*0.160000000000000000e+02_dp
992 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 153))
995 IF (x2 <= 0.812500000000000000e+00_dp)
THEN
996 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
997 tg2 = (2*x2 - 0.156250000000000000e+01_dp)*0.160000000000000000e+02_dp
998 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 154))
1000 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
1001 tg2 = (2*x2 - 0.168750000000000000e+01_dp)*0.160000000000000000e+02_dp
1002 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 155))
1006 tg1 = (2*x1 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
1007 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
1008 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 156))
1013 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
1014 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
1015 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
1016 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
1017 IF (x2 <= 0.562500000000000000e+00_dp)
THEN
1018 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
1019 tg2 = (2*x2 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1020 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 157))
1022 IF (x1 <= 0.562500000000000000e+00_dp)
THEN
1023 tg1 = (2*x1 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1024 tg2 = (2*x2 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1025 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 158))
1027 tg1 = (2*x1 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1028 tg2 = (2*x2 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1029 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 159))
1033 IF (x2 <= 0.562500000000000000e+00_dp)
THEN
1034 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1035 tg2 = (2*x2 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1036 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 160))
1038 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1039 tg2 = (2*x2 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1040 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 161))
1044 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
1045 IF (x2 <= 0.687500000000000000e+00_dp)
THEN
1046 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
1047 tg2 = (2*x2 - 0.131250000000000000e+01_dp)*0.160000000000000000e+02_dp
1048 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 162))
1050 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
1051 tg2 = (2*x2 - 0.143750000000000000e+01_dp)*0.160000000000000000e+02_dp
1052 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 163))
1055 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1056 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1057 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 164))
1061 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
1062 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
1063 IF (x2 <= 0.562500000000000000e+00_dp)
THEN
1064 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
1065 tg2 = (2*x2 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1066 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 165))
1068 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
1069 tg2 = (2*x2 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1070 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 166))
1073 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
1074 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
1075 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 167))
1078 tg1 = (2*x1 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1079 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1080 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 168))
1084 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
1085 tg1 = (2*x1 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
1086 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1087 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 169))
1089 tg1 = (2*x1 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1090 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1091 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 170))
1097 DO i = 1, nderiv + 1
1111 SUBROUTINE init(Nder, iunit, mepos, group)
1112 INTEGER,
INTENT(IN) :: nder, iunit, mepos
1114 CLASS(mp_comm_type),
INTENT(IN) :: group
1117 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: chunk
1120 IF (nder > nderiv_max) cpabort(
"Reading data for initialization of C0 failed")
1122 IF (
ALLOCATED(c0))
DEALLOCATE (c0)
1124 ALLOCATE (c0(32*((31 + (nder + 1)*(degree + 1)*(degree + 2)/2)/32), patches))
1127 IF (mepos == 0)
THEN
1128 ALLOCATE (chunk((nderiv_max + 1)*(degree + 1)*(degree + 2)/2))
1130 READ (iunit, *) chunk
1131 c0(1:(nder + 1)*(degree + 1)*(degree + 2)/2, i) = chunk(1:(nder + 1)*(degree + 1)*(degree + 2)/2)
1135 CALL group%bcast(c0, 0)
1142 IF (
ALLOCATED(c0))
DEALLOCATE (c0)
1154 SUBROUTINE pd2val(RES, NDERIV, TG1, TG2, C0)
1155 REAL(kind=
dp),
INTENT(OUT) :: res(*)
1156 INTEGER,
INTENT(IN) :: nderiv
1157 REAL(kind=
dp),
INTENT(IN) :: tg1, tg2, c0(136, *)
1159 REAL(kind=
dp),
PARAMETER :: sqrt2 = 1.4142135623730950488016887242096980785696718753_dp
1162 REAL(kind=
dp) :: t1(0:15), t2(0:15)
1168 t1(2) = 2*tg1*t1(1) - sqrt2
1169 t2(2) = 2*tg2*t2(1) - sqrt2
1170 t1(3) = 2*tg1*t1(2) - t1(1)
1171 t2(3) = 2*tg2*t2(2) - t2(1)
1172 t1(4) = 2*tg1*t1(3) - t1(2)
1173 t2(4) = 2*tg2*t2(3) - t2(2)
1174 t1(5) = 2*tg1*t1(4) - t1(3)
1175 t2(5) = 2*tg2*t2(4) - t2(3)
1176 t1(6) = 2*tg1*t1(5) - t1(4)
1177 t2(6) = 2*tg2*t2(5) - t2(4)
1178 t1(7) = 2*tg1*t1(6) - t1(5)
1179 t2(7) = 2*tg2*t2(6) - t2(5)
1180 t1(8) = 2*tg1*t1(7) - t1(6)
1181 t2(8) = 2*tg2*t2(7) - t2(6)
1182 t1(9) = 2*tg1*t1(8) - t1(7)
1183 t2(9) = 2*tg2*t2(8) - t2(7)
1184 t1(10) = 2*tg1*t1(9) - t1(8)
1185 t2(10) = 2*tg2*t2(9) - t2(8)
1186 t1(11) = 2*tg1*t1(10) - t1(9)
1187 t2(11) = 2*tg2*t2(10) - t2(9)
1188 t1(12) = 2*tg1*t1(11) - t1(10)
1189 t2(12) = 2*tg2*t2(11) - t2(10)
1190 t1(13) = 2*tg1*t1(12) - t1(11)
1191 t2(13) = 2*tg2*t2(12) - t2(11)
1192 t1(14) = 2*tg1*t1(13) - t1(12)
1193 t2(14) = 2*tg2*t2(13) - t2(12)
1194 t1(15) = 2*tg1*t1(14) - t1(13)
1195 t2(15) = 2*tg2*t2(14) - t2(13)
1196 DO k = 1, nderiv + 1
1198 res(k) = res(k) + dot_product(t1(0:15), c0(1:16, k))*t2(0)
1199 res(k) = res(k) + dot_product(t1(0:14), c0(17:31, k))*t2(1)
1200 res(k) = res(k) + dot_product(t1(0:13), c0(32:45, k))*t2(2)
1201 res(k) = res(k) + dot_product(t1(0:12), c0(46:58, k))*t2(3)
1202 res(k) = res(k) + dot_product(t1(0:11), c0(59:70, k))*t2(4)
1203 res(k) = res(k) + dot_product(t1(0:10), c0(71:81, k))*t2(5)
1204 res(k) = res(k) + dot_product(t1(0:9), c0(82:91, k))*t2(6)
1205 res(k) = res(k) + dot_product(t1(0:8), c0(92:100, k))*t2(7)
1206 res(k) = res(k) + dot_product(t1(0:7), c0(101:108, k))*t2(8)
1207 res(k) = res(k) + dot_product(t1(0:6), c0(109:115, k))*t2(9)
1208 res(k) = res(k) + dot_product(t1(0:5), c0(116:121, k))*t2(10)
1209 res(k) = res(k) + dot_product(t1(0:4), c0(122:126, k))*t2(11)
1210 res(k) = res(k) + dot_product(t1(0:3), c0(127:130, k))*t2(12)
1211 res(k) = res(k) + dot_product(t1(0:2), c0(131:133, k))*t2(13)
1212 res(k) = res(k) + dot_product(t1(0:1), c0(134:135, k))*t2(14)
1213 res(k) = res(k) + dot_product(t1(0:0), c0(136:136, k))*t2(15)
1215 END SUBROUTINE pd2val
Defines the basic variable types.
integer, parameter, public dp
Interface to the message passing library MPI.
subroutine, public trunc_cs_poly_n20(RES, R, T, NDERIV)
...
subroutine, public free_c0()
...
subroutine, public init(Nder, iunit, mepos, group)
...