7 subroutine ezspline_isindomain1_r8(spline_o, p1, ier)
10 type(EZspline1_r8) :: spline_o
11 real(ezspline_r8),
intent(in) :: p1
16 integer,
intent(out) :: ier
18 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
19 real(ezspline_r8) :: eps1
23 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
26 if(p1 < spline_o%x1( 1)-eps1)
then
30 if(p1 > spline_o%x1(spline_o%n1)+eps1)
then
35 end subroutine ezspline_isindomain1_r8
37 subroutine ezspline_isindomain1_array_r8(spline_o, k1, p1, ier)
39 type(EZspline1_r8) :: spline_o
40 integer,
intent(in) :: k1
41 real(ezspline_r8),
intent(in) :: p1(k1)
42 integer,
intent(out) :: ier
44 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
45 real(ezspline_r8) :: eps1
49 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
51 if(minval(p1(1:k1)) < spline_o%x1( 1)-eps1)
then
55 if(maxval(p1(1:k1)) > spline_o%x1(spline_o%n1)+eps1)
then
60 end subroutine ezspline_isindomain1_array_r8
69 subroutine ezspline_isindomain2_r8(spline_o, p1, p2, ier)
72 type(EZspline2_r8) :: spline_o
73 real(ezspline_r8),
intent(in) :: p1, p2
80 integer,
intent(out) :: ier
82 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
83 real(ezspline_r8) :: eps1, eps2
87 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
88 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
91 if(p1 < spline_o%x1( 1)-eps1)
then
95 if(p1 > spline_o%x1(spline_o%n1)+eps1)
then
99 if(p2 < spline_o%x2( 1)-eps2)
then
103 if(p2 > spline_o%x2(spline_o%n2)+eps2)
then
108 end subroutine ezspline_isindomain2_r8
110 subroutine ezspline_isindomain2_array_r8(spline_o, k1, k2, p1, p2, ier)
112 type(EZspline2_r8) :: spline_o
113 integer,
intent(in) :: k1, k2
114 real(ezspline_r8),
intent(in) :: p1(k1), p2(k2)
115 integer,
intent(out) :: ier
117 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
118 real(ezspline_r8) :: eps1, eps2
122 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
123 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
125 if(minval(p1(1:k1)) < spline_o%x1( 1)-eps1)
then
129 if(maxval(p1(1:k1)) > spline_o%x1(spline_o%n1)+eps1)
then
133 if(minval(p2(1:k2)) < spline_o%x2( 1)-eps2)
then
137 if(maxval(p2(1:k2)) > spline_o%x2(spline_o%n2)+eps2)
then
142 end subroutine ezspline_isindomain2_array_r8
144 subroutine ezspline_isindomain2_cloud_r8(spline_o, k, p1, p2, ier)
146 type(EZspline2_r8) :: spline_o
147 integer,
intent(in) :: k
148 real(ezspline_r8),
intent(in) :: p1(k), p2(k)
149 integer,
intent(out) :: ier
151 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
152 real(ezspline_r8) :: eps1, eps2
156 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
157 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
159 if(minval(p1(1:k)) < spline_o%x1( 1)-eps1)
then
163 if(maxval(p1(1:k)) > spline_o%x1(spline_o%n1)+eps1)
then
167 if(minval(p2(1:k)) < spline_o%x2( 1)-eps2)
then
171 if(maxval(p2(1:k)) > spline_o%x2(spline_o%n2)+eps2)
then
176 end subroutine ezspline_isindomain2_cloud_r8
185 subroutine ezspline_isindomain3_r8(spline_o, p1, p2, p3, ier)
188 type(EZspline3_r8) :: spline_o
189 real(ezspline_r8),
intent(in) :: p1, p2, p3
198 integer,
intent(out) :: ier
200 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
201 real(ezspline_r8) :: eps1, eps2, eps3
205 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
206 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
207 eps3 = small*(spline_o%x3(spline_o%n3) - spline_o%x3(1))
210 if(p1 < spline_o%x1( 1)-eps1)
then
214 if(p1 > spline_o%x1(spline_o%n1)+eps1)
then
218 if(p2 < spline_o%x2( 1)-eps2)
then
222 if(p2 > spline_o%x2(spline_o%n2)+eps2)
then
226 if(p3 < spline_o%x3( 1)-eps3)
then
230 if(p3 > spline_o%x3(spline_o%n3)+eps3)
then
235 end subroutine ezspline_isindomain3_r8
237 subroutine ezspline_isindomain3_array_r8(spline_o, k1, k2, k3, p1, p2, p3, ier)
239 type(EZspline3_r8) :: spline_o
240 integer,
intent(in) :: k1, k2, k3
241 real(ezspline_r8),
intent(in) :: p1(k1), p2(k2), p3(k3)
242 integer,
intent(out) :: ier
244 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
245 real(ezspline_r8) :: eps1, eps2, eps3
249 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
250 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
251 eps3 = small*(spline_o%x3(spline_o%n3) - spline_o%x3(1))
253 if(minval(p1(1:k1)) < spline_o%x1( 1)-eps1)
then
257 if(maxval(p1(1:k1)) > spline_o%x1(spline_o%n1)+eps1)
then
261 if(minval(p2(1:k2)) < spline_o%x2( 1)-eps2)
then
265 if(maxval(p2(1:k2)) > spline_o%x2(spline_o%n2)+eps2)
then
269 if(minval(p3(1:k3)) < spline_o%x3( 1)-eps3)
then
273 if(maxval(p3(1:k3)) > spline_o%x3(spline_o%n3)+eps3)
then
278 end subroutine ezspline_isindomain3_array_r8
280 subroutine ezspline_isindomain3_cloud_r8(spline_o, k, p1, p2, p3, ier)
282 type(EZspline3_r8) :: spline_o
283 integer,
intent(in) :: k
284 real(ezspline_r8),
intent(in) :: p1(k), p2(k), p3(k)
285 integer,
intent(out) :: ier
287 real(ezspline_r8),
parameter :: small = 1.e-10_ezspline_r8
288 real(ezspline_r8) :: eps1, eps2, eps3
292 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
293 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
294 eps3 = small*(spline_o%x3(spline_o%n3) - spline_o%x3(1))
296 if(minval(p1(1:k)) < spline_o%x1( 1)-eps1)
then
300 if(maxval(p1(1:k)) > spline_o%x1(spline_o%n1)+eps1)
then
304 if(minval(p2(1:k)) < spline_o%x2( 1)-eps2)
then
308 if(maxval(p2(1:k)) > spline_o%x2(spline_o%n2)+eps2)
then
312 if(minval(p3(1:k)) < spline_o%x3( 1)-eps3)
then
316 if(maxval(p3(1:k)) > spline_o%x3(spline_o%n3)+eps3)
then
320 end subroutine ezspline_isindomain3_cloud_r8
330 subroutine ezspline_isindomain1_r4(spline_o, p1, ier)
333 type(EZspline1_r4) :: spline_o
334 real(ezspline_r4),
intent(in) :: p1
339 integer,
intent(out) :: ier
341 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
342 real(ezspline_r4) :: eps1
346 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
349 if(p1 < spline_o%x1( 1)-eps1)
then
353 if(p1 > spline_o%x1(spline_o%n1)+eps1)
then
358 end subroutine ezspline_isindomain1_r4
360 subroutine ezspline_isindomain1_array_r4(spline_o, k1, p1, ier)
362 type(EZspline1_r4) :: spline_o
363 integer,
intent(in) :: k1
364 real(ezspline_r4),
intent(in) :: p1(k1)
365 integer,
intent(out) :: ier
367 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
368 real(ezspline_r4) :: eps1
372 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
374 if(minval(p1(1:k1)) < spline_o%x1( 1)-eps1)
then
378 if(maxval(p1(1:k1)) > spline_o%x1(spline_o%n1)+eps1)
then
383 end subroutine ezspline_isindomain1_array_r4
392 subroutine ezspline_isindomain2_r4(spline_o, p1, p2, ier)
395 type(EZspline2_r4) :: spline_o
396 real(ezspline_r4),
intent(in) :: p1, p2
403 integer,
intent(out) :: ier
405 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
406 real(ezspline_r4) :: eps1, eps2
410 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
411 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
414 if(p1 < spline_o%x1( 1)-eps1)
then
418 if(p1 > spline_o%x1(spline_o%n1)+eps1)
then
422 if(p2 < spline_o%x2( 1)-eps2)
then
426 if(p2 > spline_o%x2(spline_o%n2)+eps2)
then
431 end subroutine ezspline_isindomain2_r4
433 subroutine ezspline_isindomain2_array_r4(spline_o, k1, k2, p1, p2, ier)
435 type(EZspline2_r4) :: spline_o
436 integer,
intent(in) :: k1, k2
437 real(ezspline_r4),
intent(in) :: p1(k1), p2(k2)
438 integer,
intent(out) :: ier
440 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
441 real(ezspline_r4) :: eps1, eps2
445 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
446 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
448 if(minval(p1(1:k1)) < spline_o%x1( 1)-eps1)
then
452 if(maxval(p1(1:k1)) > spline_o%x1(spline_o%n1)+eps1)
then
456 if(minval(p2(1:k2)) < spline_o%x2( 1)-eps2)
then
460 if(maxval(p2(1:k2)) > spline_o%x2(spline_o%n2)+eps2)
then
465 end subroutine ezspline_isindomain2_array_r4
467 subroutine ezspline_isindomain2_cloud_r4(spline_o, k, p1, p2, ier)
469 type(EZspline2_r4) :: spline_o
470 integer,
intent(in) :: k
471 real(ezspline_r4),
intent(in) :: p1(k), p2(k)
472 integer,
intent(out) :: ier
474 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
475 real(ezspline_r4) :: eps1, eps2
479 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
480 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
482 if(minval(p1(1:k)) < spline_o%x1( 1)-eps1)
then
486 if(maxval(p1(1:k)) > spline_o%x1(spline_o%n1)+eps1)
then
490 if(minval(p2(1:k)) < spline_o%x2( 1)-eps2)
then
494 if(maxval(p2(1:k)) > spline_o%x2(spline_o%n2)+eps2)
then
499 end subroutine ezspline_isindomain2_cloud_r4
508 subroutine ezspline_isindomain3_r4(spline_o, p1, p2, p3, ier)
511 type(EZspline3_r4) :: spline_o
512 real(ezspline_r4),
intent(in) :: p1, p2, p3
521 integer,
intent(out) :: ier
523 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
524 real(ezspline_r4) :: eps1, eps2, eps3
528 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
529 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
530 eps3 = small*(spline_o%x3(spline_o%n3) - spline_o%x3(1))
533 if(p1 < spline_o%x1( 1)-eps1)
then
537 if(p1 > spline_o%x1(spline_o%n1)+eps1)
then
541 if(p2 < spline_o%x2( 1)-eps2)
then
545 if(p2 > spline_o%x2(spline_o%n2)+eps2)
then
549 if(p3 < spline_o%x3( 1)-eps3)
then
553 if(p3 > spline_o%x3(spline_o%n3)+eps3)
then
558 end subroutine ezspline_isindomain3_r4
560 subroutine ezspline_isindomain3_array_r4(spline_o, k1, k2, k3, p1, p2, p3, ier)
562 type(EZspline3_r4) :: spline_o
563 integer,
intent(in) :: k1, k2, k3
564 real(ezspline_r4),
intent(in) :: p1(k1), p2(k2), p3(k3)
565 integer,
intent(out) :: ier
567 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
568 real(ezspline_r4) :: eps1, eps2, eps3
572 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
573 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
574 eps3 = small*(spline_o%x3(spline_o%n3) - spline_o%x3(1))
576 if(minval(p1(1:k1)) < spline_o%x1( 1)-eps1)
then
580 if(maxval(p1(1:k1)) > spline_o%x1(spline_o%n1)+eps1)
then
584 if(minval(p2(1:k2)) < spline_o%x2( 1)-eps2)
then
588 if(maxval(p2(1:k2)) > spline_o%x2(spline_o%n2)+eps2)
then
592 if(minval(p3(1:k3)) < spline_o%x3( 1)-eps3)
then
596 if(maxval(p3(1:k3)) > spline_o%x3(spline_o%n3)+eps3)
then
601 end subroutine ezspline_isindomain3_array_r4
603 subroutine ezspline_isindomain3_cloud_r4(spline_o, k, p1, p2, p3, ier)
605 type(EZspline3_r4) :: spline_o
606 integer,
intent(in) :: k
607 real(ezspline_r4),
intent(in) :: p1(k), p2(k), p3(k)
608 integer,
intent(out) :: ier
610 real(ezspline_r4),
parameter :: small = 1.e-10_ezspline_r4
611 real(ezspline_r4) :: eps1, eps2, eps3
615 eps1 = small*(spline_o%x1(spline_o%n1) - spline_o%x1(1))
616 eps2 = small*(spline_o%x2(spline_o%n2) - spline_o%x2(1))
617 eps3 = small*(spline_o%x3(spline_o%n3) - spline_o%x3(1))
619 if(minval(p1(1:k)) < spline_o%x1( 1)-eps1)
then
623 if(maxval(p1(1:k)) > spline_o%x1(spline_o%n1)+eps1)
then
627 if(minval(p2(1:k)) < spline_o%x2( 1)-eps2)
then
631 if(maxval(p2(1:k)) > spline_o%x2(spline_o%n2)+eps2)
then
635 if(minval(p3(1:k)) < spline_o%x3( 1)-eps3)
then
639 if(maxval(p3(1:k)) > spline_o%x3(spline_o%n3)+eps3)
then
643 end subroutine ezspline_isindomain3_cloud_r4