60 #include "../base/base_uses.f90"
66 REAL(KIND=
dp),
DIMENSION(:, :),
ALLOCATABLE,
SAVE :: c0
67 INTEGER,
PARAMETER :: degree = 13
68 REAL(KIND=
dp),
PARAMETER :: target_error = 0.100000e-08
69 INTEGER,
PARAMETER :: nderiv_max = 21
70 INTEGER,
SAVE :: nderiv_init = -1
71 INTEGER,
SAVE :: patches = -1
83 SUBROUTINE t_c_g0_n(RES, use_gamma, R, T, NDERIV)
84 REAL(kind=
dp),
INTENT(OUT) :: res(*)
85 LOGICAL,
INTENT(OUT) :: use_gamma
86 REAL(kind=
dp),
INTENT(IN) :: r, t
87 INTEGER,
INTENT(IN) :: nderiv
89 REAL(kind=
dp) :: lower, tg1, tg2, upper, x1, x2
92 upper = r**2 + 11.0_dp*r + 50.0_dp
93 lower = r**2 - 11.0_dp*r + 0.0_dp
95 res(1:nderiv + 1) = 0.0_dp
98 IF (r <= 11.0_dp)
THEN
100 upper = r**2 + 11.0_dp*r + 50.0_dp
102 x1 = (t - lower)/(upper - lower)
103 IF (x1 <= 0.500000000000000000e+00_dp)
THEN
104 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
105 IF (x2 <= 0.250000000000000000e+00_dp)
THEN
106 IF (x2 <= 0.125000000000000000e+00_dp)
THEN
107 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
108 IF (x2 <= 0.625000000000000000e-01_dp)
THEN
109 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
110 IF (x2 <= 0.312500000000000000e-01_dp)
THEN
111 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
112 IF (x2 <= 0.156250000000000000e-01_dp)
THEN
113 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
114 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
115 tg2 = (2*x2 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
116 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 1))
118 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
119 tg2 = (2*x2 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
120 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 2))
123 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
124 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
125 tg2 = (2*x2 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
126 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 3))
128 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
129 tg2 = (2*x2 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
130 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 4))
134 IF (x2 <= 0.156250000000000000e-01_dp)
THEN
135 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
136 tg2 = (2*x2 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
137 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 5))
139 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
140 tg2 = (2*x2 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
141 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 6))
145 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
146 IF (x2 <= 0.468750000000000000e-01_dp)
THEN
147 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
148 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
149 tg2 = (2*x2 - 0.781250000000000000e-01_dp)*0.640000000000000000e+02_dp
150 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 7))
152 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
153 tg2 = (2*x2 - 0.781250000000000000e-01_dp)*0.640000000000000000e+02_dp
154 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 8))
157 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
158 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
159 tg2 = (2*x2 - 0.109375000000000000e+00_dp)*0.640000000000000000e+02_dp
160 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 9))
162 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
163 tg2 = (2*x2 - 0.109375000000000000e+00_dp)*0.640000000000000000e+02_dp
164 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 10))
168 IF (x2 <= 0.468750000000000000e-01_dp)
THEN
169 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
170 tg2 = (2*x2 - 0.781250000000000000e-01_dp)*0.640000000000000000e+02_dp
171 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 11))
173 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
174 tg2 = (2*x2 - 0.109375000000000000e+00_dp)*0.640000000000000000e+02_dp
175 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 12))
180 IF (x2 <= 0.312500000000000000e-01_dp)
THEN
181 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
182 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
183 tg2 = (2*x2 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
184 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 13))
186 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
187 tg2 = (2*x2 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
188 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 14))
191 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
192 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
193 tg2 = (2*x2 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
194 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 15))
196 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
197 tg2 = (2*x2 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
198 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 16))
203 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
204 IF (x2 <= 0.937500000000000000e-01_dp)
THEN
205 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
206 IF (x2 <= 0.781250000000000000e-01_dp)
THEN
207 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
208 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
209 tg2 = (2*x2 - 0.140625000000000000e+00_dp)*0.640000000000000000e+02_dp
210 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 17))
212 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
213 tg2 = (2*x2 - 0.140625000000000000e+00_dp)*0.640000000000000000e+02_dp
214 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 18))
217 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
218 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
219 tg2 = (2*x2 - 0.171875000000000000e+00_dp)*0.640000000000000000e+02_dp
220 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 19))
222 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
223 tg2 = (2*x2 - 0.171875000000000000e+00_dp)*0.640000000000000000e+02_dp
224 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 20))
228 IF (x2 <= 0.781250000000000000e-01_dp)
THEN
229 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
230 tg2 = (2*x2 - 0.140625000000000000e+00_dp)*0.640000000000000000e+02_dp
231 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 21))
233 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
234 tg2 = (2*x2 - 0.171875000000000000e+00_dp)*0.640000000000000000e+02_dp
235 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 22))
239 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
240 IF (x2 <= 0.109375000000000000e+00_dp)
THEN
241 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
242 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
243 tg2 = (2*x2 - 0.203125000000000000e+00_dp)*0.640000000000000000e+02_dp
244 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 23))
246 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
247 tg2 = (2*x2 - 0.203125000000000000e+00_dp)*0.640000000000000000e+02_dp
248 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 24))
251 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
252 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
253 tg2 = (2*x2 - 0.234375000000000000e+00_dp)*0.640000000000000000e+02_dp
254 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 25))
256 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
257 tg2 = (2*x2 - 0.234375000000000000e+00_dp)*0.640000000000000000e+02_dp
258 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 26))
262 IF (x2 <= 0.109375000000000000e+00_dp)
THEN
263 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
264 tg2 = (2*x2 - 0.203125000000000000e+00_dp)*0.640000000000000000e+02_dp
265 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 27))
267 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
268 tg2 = (2*x2 - 0.234375000000000000e+00_dp)*0.640000000000000000e+02_dp
269 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 28))
274 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
275 IF (x2 <= 0.937500000000000000e-01_dp)
THEN
276 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
277 tg2 = (2*x2 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
278 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 29))
280 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
281 tg2 = (2*x2 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
282 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 30))
285 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
286 tg2 = (2*x2 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
287 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 31))
292 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
293 tg1 = (2*x1 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
294 tg2 = (2*x2 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
295 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 32))
297 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
298 tg2 = (2*x2 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
299 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 33))
303 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
304 IF (x2 <= 0.187500000000000000e+00_dp)
THEN
305 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
306 IF (x2 <= 0.156250000000000000e+00_dp)
THEN
307 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
308 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
309 IF (x2 <= 0.140625000000000000e+00_dp)
THEN
310 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
311 tg2 = (2*x2 - 0.265625000000000000e+00_dp)*0.640000000000000000e+02_dp
312 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 34))
314 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
315 tg2 = (2*x2 - 0.296875000000000000e+00_dp)*0.640000000000000000e+02_dp
316 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 35))
319 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
320 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
321 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 36))
324 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
325 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
326 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
327 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 37))
329 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
330 tg2 = (2*x2 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
331 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 38))
335 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
336 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
337 IF (x2 <= 0.171875000000000000e+00_dp)
THEN
338 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
339 tg2 = (2*x2 - 0.328125000000000000e+00_dp)*0.640000000000000000e+02_dp
340 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 39))
342 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
343 tg2 = (2*x2 - 0.359375000000000000e+00_dp)*0.640000000000000000e+02_dp
344 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 40))
347 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
348 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
349 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 41))
352 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
353 tg2 = (2*x2 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
354 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 42))
358 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
359 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
360 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
361 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 43))
363 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
364 tg2 = (2*x2 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
365 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 44))
369 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
370 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
371 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
372 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
373 IF (x2 <= 0.203125000000000000e+00_dp)
THEN
374 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
375 tg2 = (2*x2 - 0.390625000000000000e+00_dp)*0.640000000000000000e+02_dp
376 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 45))
378 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
379 tg2 = (2*x2 - 0.421875000000000000e+00_dp)*0.640000000000000000e+02_dp
380 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 46))
383 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
384 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
385 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 47))
388 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
389 IF (x2 <= 0.234375000000000000e+00_dp)
THEN
390 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
391 tg2 = (2*x2 - 0.453125000000000000e+00_dp)*0.640000000000000000e+02_dp
392 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 48))
394 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
395 tg2 = (2*x2 - 0.484375000000000000e+00_dp)*0.640000000000000000e+02_dp
396 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 49))
399 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
400 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
401 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 50))
405 IF (x2 <= 0.218750000000000000e+00_dp)
THEN
406 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
407 tg2 = (2*x2 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
408 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 51))
410 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
411 tg2 = (2*x2 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
412 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 52))
416 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
417 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
418 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
419 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 53))
421 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
422 tg2 = (2*x2 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
423 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 54))
428 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
429 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
430 tg1 = (2*x1 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
431 tg2 = (2*x2 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
432 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 55))
434 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
435 tg2 = (2*x2 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
436 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 56))
439 tg1 = (2*x1 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
440 tg2 = (2*x2 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
441 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 57))
446 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
447 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
448 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
449 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
450 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
451 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
452 IF (x2 <= 0.281250000000000000e+00_dp)
THEN
453 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
454 tg2 = (2*x2 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
455 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 58))
457 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
458 tg2 = (2*x2 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
459 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 59))
462 IF (x2 <= 0.281250000000000000e+00_dp)
THEN
463 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
464 tg2 = (2*x2 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
465 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 60))
467 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
468 tg2 = (2*x2 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
469 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 61))
473 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
474 IF (x2 <= 0.343750000000000000e+00_dp)
THEN
475 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
476 tg2 = (2*x2 - 0.656250000000000000e+00_dp)*0.320000000000000000e+02_dp
477 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 62))
479 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
480 tg2 = (2*x2 - 0.718750000000000000e+00_dp)*0.320000000000000000e+02_dp
481 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 63))
484 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
485 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
486 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 64))
490 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
491 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
492 IF (x1 <= 0.156250000000000000e-01_dp)
THEN
493 tg1 = (2*x1 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
494 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
495 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 65))
497 tg1 = (2*x1 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
498 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
499 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 66))
502 IF (x1 <= 0.156250000000000000e-01_dp)
THEN
503 tg1 = (2*x1 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
504 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
505 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 67))
507 tg1 = (2*x1 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
508 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
509 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 68))
513 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
514 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
515 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
516 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 69))
518 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
519 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
520 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 70))
525 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
526 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
527 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
528 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
529 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
530 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 71))
532 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
533 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
534 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 72))
537 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
538 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
539 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
540 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 73))
542 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
543 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
544 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 74))
548 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
549 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
550 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
551 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
552 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 75))
554 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
555 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
556 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 76))
559 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
560 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
561 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
562 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 77))
564 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
565 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
566 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 78))
572 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
573 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
574 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
575 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
576 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
577 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 79))
579 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
580 tg1 = (2*x1 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
581 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
582 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 80))
584 tg1 = (2*x1 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
585 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
586 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 81))
590 IF (x2 <= 0.312500000000000000e+00_dp)
THEN
591 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
592 tg2 = (2*x2 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
593 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 82))
595 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
596 tg2 = (2*x2 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
597 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 83))
601 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
602 IF (x2 <= 0.437500000000000000e+00_dp)
THEN
603 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
604 tg2 = (2*x2 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
605 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 84))
607 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
608 tg1 = (2*x1 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
609 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
610 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 85))
612 tg1 = (2*x1 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
613 tg2 = (2*x2 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
614 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 86))
618 IF (x1 <= 0.218750000000000000e+00_dp)
THEN
619 tg1 = (2*x1 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
620 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
621 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 87))
623 tg1 = (2*x1 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
624 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
625 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 88))
631 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
632 IF (x2 <= 0.375000000000000000e+00_dp)
THEN
633 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
634 tg1 = (2*x1 - 0.562500000000000000e+00_dp)*0.160000000000000000e+02_dp
635 tg2 = (2*x2 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
636 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 89))
638 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
639 tg2 = (2*x2 - 0.625000000000000000e+00_dp)*0.800000000000000000e+01_dp
640 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 90))
643 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
644 IF (x1 <= 0.281250000000000000e+00_dp)
THEN
645 tg1 = (2*x1 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
646 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
647 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 91))
649 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
650 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
651 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 92))
654 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
655 tg2 = (2*x2 - 0.875000000000000000e+00_dp)*0.800000000000000000e+01_dp
656 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 93))
660 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
661 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
662 tg2 = (2*x2 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
663 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 94))
665 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
666 tg2 = (2*x2 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
667 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 95))
673 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
674 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
675 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
676 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
677 IF (x1 <= 0.156250000000000000e-01_dp)
THEN
678 IF (x1 <= 0.781250000000000000e-02_dp)
THEN
679 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
680 tg1 = (2*x1 - 0.781250000000000000e-02_dp)*0.128000000000000000e+03_dp
681 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
682 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 96))
684 tg1 = (2*x1 - 0.781250000000000000e-02_dp)*0.128000000000000000e+03_dp
685 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
686 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 97))
689 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
690 tg1 = (2*x1 - 0.234375000000000000e-01_dp)*0.128000000000000000e+03_dp
691 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
692 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 98))
694 tg1 = (2*x1 - 0.234375000000000000e-01_dp)*0.128000000000000000e+03_dp
695 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
696 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 99))
700 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
701 tg1 = (2*x1 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
702 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
703 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 100))
705 tg1 = (2*x1 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
706 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
707 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 101))
711 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
712 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
713 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
714 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
715 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 102))
717 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
718 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
719 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 103))
722 IF (x1 <= 0.468750000000000000e-01_dp)
THEN
723 tg1 = (2*x1 - 0.781250000000000000e-01_dp)*0.640000000000000000e+02_dp
724 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
725 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 104))
727 tg1 = (2*x1 - 0.109375000000000000e+00_dp)*0.640000000000000000e+02_dp
728 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
729 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 105))
734 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
735 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
736 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
737 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
738 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
739 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 106))
741 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
742 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
743 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 107))
746 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
747 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
748 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
749 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 108))
751 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
752 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
753 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 109))
757 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
758 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
759 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
760 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 110))
762 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
763 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
764 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 111))
769 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
770 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
771 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
772 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
773 tg1 = (2*x1 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
774 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
775 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 112))
777 tg1 = (2*x1 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
778 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
779 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 113))
782 IF (x1 <= 0.218750000000000000e+00_dp)
THEN
783 tg1 = (2*x1 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
784 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
785 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 114))
787 tg1 = (2*x1 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
788 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
789 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 115))
793 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
794 IF (x1 <= 0.156250000000000000e+00_dp)
THEN
795 tg1 = (2*x1 - 0.281250000000000000e+00_dp)*0.320000000000000000e+02_dp
796 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
797 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 116))
799 tg1 = (2*x1 - 0.343750000000000000e+00_dp)*0.320000000000000000e+02_dp
800 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
801 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 117))
804 IF (x1 <= 0.218750000000000000e+00_dp)
THEN
805 tg1 = (2*x1 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
806 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
807 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 118))
809 tg1 = (2*x1 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
810 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
811 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 119))
816 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
817 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
818 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
819 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
820 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 120))
822 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
823 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
824 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 121))
827 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
828 IF (x1 <= 0.218750000000000000e+00_dp)
THEN
829 tg1 = (2*x1 - 0.406250000000000000e+00_dp)*0.320000000000000000e+02_dp
830 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
831 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 122))
833 tg1 = (2*x1 - 0.468750000000000000e+00_dp)*0.320000000000000000e+02_dp
834 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
835 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 123))
838 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
839 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
840 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 124))
846 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
847 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
848 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
849 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
850 IF (x1 <= 0.281250000000000000e+00_dp)
THEN
851 tg1 = (2*x1 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
852 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
853 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 125))
855 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
856 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
857 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 126))
860 IF (x1 <= 0.281250000000000000e+00_dp)
THEN
861 tg1 = (2*x1 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
862 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
863 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 127))
865 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
866 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
867 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 128))
871 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
872 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
873 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
874 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 129))
876 IF (x1 <= 0.343750000000000000e+00_dp)
THEN
877 tg1 = (2*x1 - 0.656250000000000000e+00_dp)*0.320000000000000000e+02_dp
878 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
879 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 130))
881 tg1 = (2*x1 - 0.718750000000000000e+00_dp)*0.320000000000000000e+02_dp
882 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
883 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 131))
888 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
889 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
890 IF (x1 <= 0.281250000000000000e+00_dp)
THEN
891 tg1 = (2*x1 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
892 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
893 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 132))
895 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
896 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
897 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 133))
900 IF (x1 <= 0.281250000000000000e+00_dp)
THEN
901 tg1 = (2*x1 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
902 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
903 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 134))
905 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
906 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
907 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 135))
911 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
912 IF (x1 <= 0.343750000000000000e+00_dp)
THEN
913 tg1 = (2*x1 - 0.656250000000000000e+00_dp)*0.320000000000000000e+02_dp
914 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
915 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 136))
917 tg1 = (2*x1 - 0.718750000000000000e+00_dp)*0.320000000000000000e+02_dp
918 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
919 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 137))
922 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
923 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
924 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 138))
929 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
930 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
931 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
932 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
933 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
934 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 139))
936 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
937 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
938 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 140))
941 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
942 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
943 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 141))
946 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
947 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
948 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
949 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
950 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 142))
952 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
953 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
954 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 143))
957 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
958 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
959 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
960 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 144))
962 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
963 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
964 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 145))
972 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
973 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
974 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
975 IF (x2 <= 0.250000000000000000e+00_dp)
THEN
976 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
977 tg2 = (2*x2 - 0.250000000000000000e+00_dp)*0.400000000000000000e+01_dp
978 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 146))
980 tg1 = (2*x1 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
981 tg2 = (2*x2 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
982 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 147))
985 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
986 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
987 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 148))
990 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
991 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
992 IF (x1 <= 0.562500000000000000e+00_dp)
THEN
993 tg1 = (2*x1 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
994 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
995 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 149))
997 tg1 = (2*x1 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
998 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
999 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 150))
1002 IF (x1 <= 0.562500000000000000e+00_dp)
THEN
1003 tg1 = (2*x1 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1004 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1005 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 151))
1007 tg1 = (2*x1 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1008 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1009 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 152))
1013 IF (x1 <= 0.687500000000000000e+00_dp)
THEN
1014 tg1 = (2*x1 - 0.131250000000000000e+01_dp)*0.160000000000000000e+02_dp
1015 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1016 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 153))
1018 tg1 = (2*x1 - 0.143750000000000000e+01_dp)*0.160000000000000000e+02_dp
1019 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1020 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 154))
1025 tg1 = (2*x1 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1026 tg2 = (2*x2 - 0.100000000000000000e+01_dp)*0.100000000000000000e+01_dp
1027 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 155))
1036 x1 = (t - lower)/(upper - lower)
1037 IF (x1 <= 0.500000000000000000e+00_dp)
THEN
1038 IF (x1 <= 0.250000000000000000e+00_dp)
THEN
1039 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
1040 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
1041 IF (x2 <= 0.250000000000000000e+00_dp)
THEN
1042 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
1043 tg2 = (2*x2 - 0.250000000000000000e+00_dp)*0.400000000000000000e+01_dp
1044 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 156))
1046 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
1047 tg2 = (2*x2 - 0.750000000000000000e+00_dp)*0.400000000000000000e+01_dp
1048 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 157))
1051 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
1052 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1053 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 158))
1056 IF (x1 <= 0.125000000000000000e+00_dp)
THEN
1057 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
1058 IF (x2 <= 0.625000000000000000e+00_dp)
THEN
1059 tg1 = (2*x1 - 0.125000000000000000e+00_dp)*0.800000000000000000e+01_dp
1060 tg2 = (2*x2 - 0.112500000000000000e+01_dp)*0.800000000000000000e+01_dp
1061 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 159))
1063 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
1064 tg1 = (2*x1 - 0.625000000000000000e-01_dp)*0.160000000000000000e+02_dp
1065 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1066 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 160))
1068 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
1069 tg2 = (2*x2 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1070 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 161))
1074 IF (x1 <= 0.625000000000000000e-01_dp)
THEN
1075 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
1076 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
1077 IF (x2 <= 0.812500000000000000e+00_dp)
THEN
1078 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
1079 tg2 = (2*x2 - 0.156250000000000000e+01_dp)*0.160000000000000000e+02_dp
1080 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 162))
1082 tg1 = (2*x1 - 0.312500000000000000e-01_dp)*0.320000000000000000e+02_dp
1083 tg2 = (2*x2 - 0.168750000000000000e+01_dp)*0.160000000000000000e+02_dp
1084 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 163))
1087 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
1088 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
1089 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 164))
1092 IF (x1 <= 0.312500000000000000e-01_dp)
THEN
1093 IF (x2 <= 0.937500000000000000e+00_dp)
THEN
1094 IF (x1 <= 0.156250000000000000e-01_dp)
THEN
1095 IF (x2 <= 0.906250000000000000e+00_dp)
THEN
1096 tg1 = (2*x1 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
1097 tg2 = (2*x2 - 0.178125000000000000e+01_dp)*0.320000000000000000e+02_dp
1098 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 165))
1100 tg1 = (2*x1 - 0.156250000000000000e-01_dp)*0.640000000000000000e+02_dp
1101 tg2 = (2*x2 - 0.184375000000000000e+01_dp)*0.320000000000000000e+02_dp
1102 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 166))
1105 tg1 = (2*x1 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
1106 tg2 = (2*x2 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
1107 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 167))
1110 IF (x1 <= 0.156250000000000000e-01_dp)
THEN
1111 IF (x2 <= 0.968750000000000000e+00_dp)
THEN
1112 IF (x1 <= 0.781250000000000000e-02_dp)
THEN
1113 IF (x2 <= 0.953125000000000000e+00_dp)
THEN
1114 tg1 = (2*x1 - 0.781250000000000000e-02_dp)*0.128000000000000000e+03_dp
1115 tg2 = (2*x2 - 0.189062500000000000e+01_dp)*0.640000000000000000e+02_dp
1116 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 168))
1118 tg1 = (2*x1 - 0.781250000000000000e-02_dp)*0.128000000000000000e+03_dp
1119 tg2 = (2*x2 - 0.192187500000000000e+01_dp)*0.640000000000000000e+02_dp
1120 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 169))
1123 tg1 = (2*x1 - 0.234375000000000000e-01_dp)*0.128000000000000000e+03_dp
1124 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
1125 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 170))
1128 IF (x1 <= 0.781250000000000000e-02_dp)
THEN
1129 IF (x2 <= 0.984375000000000000e+00_dp)
THEN
1130 tg1 = (2*x1 - 0.781250000000000000e-02_dp)*0.128000000000000000e+03_dp
1131 tg2 = (2*x2 - 0.195312500000000000e+01_dp)*0.640000000000000000e+02_dp
1132 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 171))
1134 tg1 = (2*x1 - 0.781250000000000000e-02_dp)*0.128000000000000000e+03_dp
1135 tg2 = (2*x2 - 0.198437500000000000e+01_dp)*0.640000000000000000e+02_dp
1136 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 172))
1139 IF (x2 <= 0.984375000000000000e+00_dp)
THEN
1140 tg1 = (2*x1 - 0.234375000000000000e-01_dp)*0.128000000000000000e+03_dp
1141 tg2 = (2*x2 - 0.195312500000000000e+01_dp)*0.640000000000000000e+02_dp
1142 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 173))
1144 tg1 = (2*x1 - 0.234375000000000000e-01_dp)*0.128000000000000000e+03_dp
1145 tg2 = (2*x2 - 0.198437500000000000e+01_dp)*0.640000000000000000e+02_dp
1146 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 174))
1151 IF (x2 <= 0.968750000000000000e+00_dp)
THEN
1152 tg1 = (2*x1 - 0.468750000000000000e-01_dp)*0.640000000000000000e+02_dp
1153 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
1154 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 175))
1156 IF (x1 <= 0.234375000000000000e-01_dp)
THEN
1157 tg1 = (2*x1 - 0.390625000000000000e-01_dp)*0.128000000000000000e+03_dp
1158 tg2 = (2*x2 - 0.196875000000000000e+01_dp)*0.320000000000000000e+02_dp
1159 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 176))
1161 tg1 = (2*x1 - 0.546875000000000000e-01_dp)*0.128000000000000000e+03_dp
1162 tg2 = (2*x2 - 0.196875000000000000e+01_dp)*0.320000000000000000e+02_dp
1163 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 177))
1169 IF (x2 <= 0.937500000000000000e+00_dp)
THEN
1170 tg1 = (2*x1 - 0.937500000000000000e-01_dp)*0.320000000000000000e+02_dp
1171 tg2 = (2*x2 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
1172 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 178))
1174 IF (x1 <= 0.468750000000000000e-01_dp)
THEN
1175 IF (x2 <= 0.968750000000000000e+00_dp)
THEN
1176 tg1 = (2*x1 - 0.781250000000000000e-01_dp)*0.640000000000000000e+02_dp
1177 tg2 = (2*x2 - 0.190625000000000000e+01_dp)*0.320000000000000000e+02_dp
1178 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 179))
1180 tg1 = (2*x1 - 0.781250000000000000e-01_dp)*0.640000000000000000e+02_dp
1181 tg2 = (2*x2 - 0.196875000000000000e+01_dp)*0.320000000000000000e+02_dp
1182 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 180))
1185 tg1 = (2*x1 - 0.109375000000000000e+00_dp)*0.640000000000000000e+02_dp
1186 tg2 = (2*x2 - 0.193750000000000000e+01_dp)*0.160000000000000000e+02_dp
1187 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 181))
1193 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
1194 tg1 = (2*x1 - 0.187500000000000000e+00_dp)*0.160000000000000000e+02_dp
1195 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
1196 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 182))
1198 IF (x1 <= 0.937500000000000000e-01_dp)
THEN
1199 IF (x2 <= 0.937500000000000000e+00_dp)
THEN
1200 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
1201 tg2 = (2*x2 - 0.181250000000000000e+01_dp)*0.160000000000000000e+02_dp
1202 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 183))
1204 tg1 = (2*x1 - 0.156250000000000000e+00_dp)*0.320000000000000000e+02_dp
1205 tg2 = (2*x2 - 0.193750000000000000e+01_dp)*0.160000000000000000e+02_dp
1206 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 184))
1209 tg1 = (2*x1 - 0.218750000000000000e+00_dp)*0.320000000000000000e+02_dp
1210 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
1211 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 185))
1217 IF (x2 <= 0.750000000000000000e+00_dp)
THEN
1218 tg1 = (2*x1 - 0.375000000000000000e+00_dp)*0.800000000000000000e+01_dp
1219 tg2 = (2*x2 - 0.125000000000000000e+01_dp)*0.400000000000000000e+01_dp
1220 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 186))
1222 IF (x1 <= 0.187500000000000000e+00_dp)
THEN
1223 IF (x2 <= 0.875000000000000000e+00_dp)
THEN
1224 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
1225 tg2 = (2*x2 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
1226 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 187))
1228 tg1 = (2*x1 - 0.312500000000000000e+00_dp)*0.160000000000000000e+02_dp
1229 tg2 = (2*x2 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
1230 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 188))
1233 tg1 = (2*x1 - 0.437500000000000000e+00_dp)*0.160000000000000000e+02_dp
1234 tg2 = (2*x2 - 0.175000000000000000e+01_dp)*0.400000000000000000e+01_dp
1235 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 189))
1241 IF (x1 <= 0.375000000000000000e+00_dp)
THEN
1242 IF (x1 <= 0.312500000000000000e+00_dp)
THEN
1243 IF (x1 <= 0.281250000000000000e+00_dp)
THEN
1244 tg1 = (2*x1 - 0.531250000000000000e+00_dp)*0.320000000000000000e+02_dp
1245 tg2 = (2*x2 - 0.100000000000000000e+01_dp)*0.100000000000000000e+01_dp
1246 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 190))
1248 tg1 = (2*x1 - 0.593750000000000000e+00_dp)*0.320000000000000000e+02_dp
1249 tg2 = (2*x2 - 0.100000000000000000e+01_dp)*0.100000000000000000e+01_dp
1250 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 191))
1253 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
1254 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
1255 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1256 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 192))
1258 tg1 = (2*x1 - 0.687500000000000000e+00_dp)*0.160000000000000000e+02_dp
1259 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1260 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 193))
1264 IF (x1 <= 0.437500000000000000e+00_dp)
THEN
1265 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
1266 tg1 = (2*x1 - 0.812500000000000000e+00_dp)*0.160000000000000000e+02_dp
1267 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1268 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 194))
1270 IF (x1 <= 0.406250000000000000e+00_dp)
THEN
1271 tg1 = (2*x1 - 0.781250000000000000e+00_dp)*0.320000000000000000e+02_dp
1272 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1273 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 195))
1275 tg1 = (2*x1 - 0.843750000000000000e+00_dp)*0.320000000000000000e+02_dp
1276 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1277 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 196))
1281 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
1282 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
1283 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1284 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 197))
1286 tg1 = (2*x1 - 0.937500000000000000e+00_dp)*0.160000000000000000e+02_dp
1287 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1288 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 198))
1294 IF (x1 <= 0.750000000000000000e+00_dp)
THEN
1295 IF (x1 <= 0.625000000000000000e+00_dp)
THEN
1296 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
1297 IF (x1 <= 0.562500000000000000e+00_dp)
THEN
1298 tg1 = (2*x1 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1299 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1300 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 199))
1302 tg1 = (2*x1 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1303 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1304 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 200))
1307 IF (x1 <= 0.562500000000000000e+00_dp)
THEN
1308 tg1 = (2*x1 - 0.106250000000000000e+01_dp)*0.160000000000000000e+02_dp
1309 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1310 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 201))
1312 tg1 = (2*x1 - 0.118750000000000000e+01_dp)*0.160000000000000000e+02_dp
1313 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1314 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 202))
1318 IF (x2 <= 0.500000000000000000e+00_dp)
THEN
1319 IF (x1 <= 0.687500000000000000e+00_dp)
THEN
1320 tg1 = (2*x1 - 0.131250000000000000e+01_dp)*0.160000000000000000e+02_dp
1321 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1322 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 203))
1324 tg1 = (2*x1 - 0.143750000000000000e+01_dp)*0.160000000000000000e+02_dp
1325 tg2 = (2*x2 - 0.500000000000000000e+00_dp)*0.200000000000000000e+01_dp
1326 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 204))
1329 tg1 = (2*x1 - 0.137500000000000000e+01_dp)*0.800000000000000000e+01_dp
1330 tg2 = (2*x2 - 0.150000000000000000e+01_dp)*0.200000000000000000e+01_dp
1331 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 205))
1335 IF (x1 <= 0.875000000000000000e+00_dp)
THEN
1336 tg1 = (2*x1 - 0.162500000000000000e+01_dp)*0.800000000000000000e+01_dp
1337 tg2 = (2*x2 - 0.100000000000000000e+01_dp)*0.100000000000000000e+01_dp
1338 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 206))
1340 tg1 = (2*x1 - 0.187500000000000000e+01_dp)*0.800000000000000000e+01_dp
1341 tg2 = (2*x2 - 0.100000000000000000e+01_dp)*0.100000000000000000e+01_dp
1342 CALL pd2val(res, nderiv, tg1, tg2, c0(1, 207))
1356 SUBROUTINE init(Nder, iunit, mepos, group)
1357 INTEGER,
INTENT(IN) :: nder, iunit, mepos
1359 CLASS(mp_comm_type),
INTENT(IN) :: group
1362 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: chunk
1365 IF (nder > nderiv_max) cpabort(
"T_C_G0 init failed")
1367 IF (
ALLOCATED(c0))
DEALLOCATE (c0)
1369 ALLOCATE (c0(32*((31 + (nder + 1)*(degree + 1)*(degree + 2)/2)/32), patches))
1372 IF (mepos == 0)
THEN
1373 ALLOCATE (chunk((nderiv_max + 1)*(degree + 1)*(degree + 2)/2))
1375 READ (iunit, *) chunk
1376 c0(1:(nder + 1)*(degree + 1)*(degree + 2)/2, i) = chunk(1:(nder + 1)*(degree + 1)*(degree + 2)/2)
1380 CALL group%bcast(c0, 0)
1388 IF (
ALLOCATED(c0))
DEALLOCATE (c0)
1400 SUBROUTINE pd2val(RES, NDERIV, TG1, TG2, C0)
1401 REAL(kind=
dp),
INTENT(OUT) :: res(*)
1402 INTEGER,
INTENT(IN) :: nderiv
1403 REAL(kind=
dp),
INTENT(IN) :: tg1, tg2, c0(105, *)
1405 REAL(kind=
dp),
PARAMETER :: sqrt2 = 1.4142135623730950488016887242096980785696718753_dp
1408 REAL(kind=
dp) :: t1(0:13), t2(0:13)
1414 t1(2) = 2*tg1*t1(1) - sqrt2
1415 t2(2) = 2*tg2*t2(1) - sqrt2
1416 t1(3) = 2*tg1*t1(2) - t1(1)
1417 t2(3) = 2*tg2*t2(2) - t2(1)
1418 t1(4) = 2*tg1*t1(3) - t1(2)
1419 t2(4) = 2*tg2*t2(3) - t2(2)
1420 t1(5) = 2*tg1*t1(4) - t1(3)
1421 t2(5) = 2*tg2*t2(4) - t2(3)
1422 t1(6) = 2*tg1*t1(5) - t1(4)
1423 t2(6) = 2*tg2*t2(5) - t2(4)
1424 t1(7) = 2*tg1*t1(6) - t1(5)
1425 t2(7) = 2*tg2*t2(6) - t2(5)
1426 t1(8) = 2*tg1*t1(7) - t1(6)
1427 t2(8) = 2*tg2*t2(7) - t2(6)
1428 t1(9) = 2*tg1*t1(8) - t1(7)
1429 t2(9) = 2*tg2*t2(8) - t2(7)
1430 t1(10) = 2*tg1*t1(9) - t1(8)
1431 t2(10) = 2*tg2*t2(9) - t2(8)
1432 t1(11) = 2*tg1*t1(10) - t1(9)
1433 t2(11) = 2*tg2*t2(10) - t2(9)
1434 t1(12) = 2*tg1*t1(11) - t1(10)
1435 t2(12) = 2*tg2*t2(11) - t2(10)
1436 t1(13) = 2*tg1*t1(12) - t1(11)
1437 t2(13) = 2*tg2*t2(12) - t2(11)
1438 DO k = 1, nderiv + 1
1440 res(k) = res(k) + dot_product(t1(0:13), c0(1:14, k))*t2(0)
1441 res(k) = res(k) + dot_product(t1(0:12), c0(15:27, k))*t2(1)
1442 res(k) = res(k) + dot_product(t1(0:11), c0(28:39, k))*t2(2)
1443 res(k) = res(k) + dot_product(t1(0:10), c0(40:50, k))*t2(3)
1444 res(k) = res(k) + dot_product(t1(0:9), c0(51:60, k))*t2(4)
1445 res(k) = res(k) + dot_product(t1(0:8), c0(61:69, k))*t2(5)
1446 res(k) = res(k) + dot_product(t1(0:7), c0(70:77, k))*t2(6)
1447 res(k) = res(k) + dot_product(t1(0:6), c0(78:84, k))*t2(7)
1448 res(k) = res(k) + dot_product(t1(0:5), c0(85:90, k))*t2(8)
1449 res(k) = res(k) + dot_product(t1(0:4), c0(91:95, k))*t2(9)
1450 res(k) = res(k) + dot_product(t1(0:3), c0(96:99, k))*t2(10)
1451 res(k) = res(k) + dot_product(t1(0:2), c0(100:102, k))*t2(11)
1452 res(k) = res(k) + dot_product(t1(0:1), c0(103:104, k))*t2(12)
1453 res(k) = res(k) + dot_product(t1(0:0), c0(105:105, k))*t2(13)
1455 END SUBROUTINE pd2val
1465 INTEGER :: lmax_init
1467 lmax_init = nderiv_init
Defines the basic variable types.
integer, parameter, public dp
Interface to the message passing library MPI.
This module computes the basic integrals for the truncated coulomb operator.
subroutine, public t_c_g0_n(RES, use_gamma, R, T, NDERIV)
...
subroutine, public init(Nder, iunit, mepos, group)
...
integer function, public get_lmax_init()
Returns the value of nderiv_init so that one can check if opening the potential file is worhtwhile.
subroutine, public free_c0()
...