8 integer,
parameter,
private :: kreal = kind(0.0d0)
12 real(kind=kreal) :: localcoord(3)
13 real(kind=kreal) :: func(20)
14 real(kind=kreal) ri,si,ti,rp,sp,tp,rm,sm,tm
15 ri=localcoord(1); si=localcoord(2); ti=localcoord(3)
16 rp=1.0+ri; sp=1.0+si; tp=1.0+ti
17 rm=1.0-ri; sm=1.0-si; tm=1.0-ti
18 func(1)=-0.125*rm*sm*tm*(2.0+ri+si+ti)
19 func(2)=-0.125*rp*sm*tm*(2.0-ri+si+ti)
20 func(3)=-0.125*rp*sp*tm*(2.0-ri-si+ti)
21 func(4)=-0.125*rm*sp*tm*(2.0+ri-si+ti)
22 func(5)=-0.125*rm*sm*tp*(2.0+ri+si-ti)
23 func(6)=-0.125*rp*sm*tp*(2.0-ri+si-ti)
24 func(7)=-0.125*rp*sp*tp*(2.0-ri-si-ti)
25 func(8)=-0.125*rm*sp*tp*(2.0+ri-si-ti)
26 func(9)=0.25*(1.0-ri**2)*sm*tm
27 func(10)=0.25*rp*(1.0-si**2)*tm
28 func(11)=0.25*(1.0-ri**2)*sp*tm
29 func(12)=0.25*rm*(1.0-si**2)*tm
30 func(13)=0.25*(1.0-ri**2)*sm*tp
31 func(14)=0.25*rp*(1.0-si**2)*tp
32 func(15)=0.25*(1.0-ri**2)*sp*tp
33 func(16)=0.25*rm*(1.0-si**2)*tp
34 func(17)=0.25*rm*sm*(1.0-ti**2)
35 func(18)=0.25*rp*sm*(1.0-ti**2)
36 func(19)=0.25*rp*sp*(1.0-ti**2)
37 func(20)=0.25*rm*sp*(1.0-ti**2)
41 real(kind=kreal) :: localcoord(3)
42 real(kind=kreal) :: func(20,3)
43 real(kind=kreal) ri,si,ti,rp,sp,tp,rm,sm,tm
44 ri=localcoord(1); si=localcoord(2); ti=localcoord(3)
45 rp=1.d0+ri; sp=1.d0+si; tp=1.d0+ti
46 rm=1.d0-ri; sm=1.d0-si; tm=1.d0-ti
48 func(1,1)=-0.125*rm*sm*tm+0.125*sm*tm*(2.0+ri+si+ti)
49 func(2,1)=+0.125*rp*sm*tm-0.125*sm*tm*(2.0-ri+si+ti)
50 func(3,1)=+0.125*rp*sp*tm-0.125*sp*tm*(2.0-ri-si+ti)
51 func(4,1)=-0.125*rm*sp*tm+0.125*sp*tm*(2.0+ri-si+ti)
52 func(5,1)=-0.125*rm*sm*tp+0.125*sm*tp*(2.0+ri+si-ti)
53 func(6,1)=+0.125*rp*sm*tp-0.125*sm*tp*(2.0-ri+si-ti)
54 func(7,1)=+0.125*rp*sp*tp-0.125*sp*tp*(2.0-ri-si-ti)
55 func(8,1)=-0.125*rm*sp*tp+0.125*sp*tp*(2.0+ri-si-ti)
56 func(9,1 )=-0.50*ri*sm*tm
57 func(10,1)=+0.25*(1.0-si**2)*tm
58 func(11,1)=-0.50*ri*sp*tm
59 func(12,1)=-0.25*(1.0-si**2)*tm
60 func(13,1)=-0.50*ri*sm*tp
61 func(14,1)=+0.25*(1.0-si**2)*tp
62 func(15,1)=-0.50*ri*sp*tp
63 func(16,1)=-0.25*(1.0-si**2)*tp
64 func(17,1)=-0.25*sm*(1.0-ti**2)
65 func(18,1)=+0.25*sm*(1.0-ti**2)
66 func(19,1)=+0.25*sp*(1.0-ti**2)
67 func(20,1)=-0.25*sp*(1.0-ti**2)
69 func(1,2)=-0.125*rm*sm*tm+0.125*rm*tm*(2.0+ri+si+ti)
70 func(2,2)=-0.125*rp*sm*tm+0.125*rp*tm*(2.0-ri+si+ti)
71 func(3,2)=+0.125*rp*sp*tm-0.125*rp*tm*(2.0-ri-si+ti)
72 func(4,2)=+0.125*rm*sp*tm-0.125*rm*tm*(2.0+ri-si+ti)
73 func(5,2)=-0.125*rm*sm*tp+0.125*rm*tp*(2.0+ri+si-ti)
74 func(6,2)=-0.125*rp*sm*tp+0.125*rp*tp*(2.0-ri+si-ti)
75 func(7,2)=+0.125*rp*sp*tp-0.125*rp*tp*(2.0-ri-si-ti)
76 func(8,2)=+0.125*rm*sp*tp-0.125*rm*tp*(2.0+ri-si-ti)
77 func(9,2)=-0.25*(1.0-ri**2)*tm
78 func(10,2)=-0.50*rp*si*tm
79 func(11,2)=+0.25*(1.0-ri**2)*tm
80 func(12,2)=-0.50*rm*si*tm
81 func(13,2)=-0.25*(1.0-ri**2)*tp
82 func(14,2)=-0.50*rp*si*tp
83 func(15,2)=+0.25*(1.0-ri**2)*tp
84 func(16,2)=-0.50*rm*si*tp
85 func(17,2)=-0.25*rm*(1.0-ti**2)
86 func(18,2)=-0.25*rp*(1.0-ti**2)
87 func(19,2)=+0.25*rp*(1.0-ti**2)
88 func(20,2)=+0.25*rm*(1.0-ti**2)
90 func(1,3)=-0.125*rm*sm*tm+0.125*rm*sm*(2.0+ri+si+ti)
91 func(2,3)=-0.125*rp*sm*tm+0.125*rp*sm*(2.0-ri+si+ti)
92 func(3,3)=-0.125*rp*sp*tm+0.125*rp*sp*(2.0-ri-si+ti)
93 func(4,3)=-0.125*rm*sp*tm+0.125*rm*sp*(2.0+ri-si+ti)
94 func(5,3)=+0.125*rm*sm*tp-0.125*rm*sm*(2.0+ri+si-ti)
95 func(6,3)=+0.125*rp*sm*tp-0.125*rp*sm*(2.0-ri+si-ti)
96 func(7,3)=+0.125*rp*sp*tp-0.125*rp*sp*(2.0-ri-si-ti)
97 func(8,3)=+0.125*rm*sp*tp-0.125*rm*sp*(2.0+ri-si-ti)
98 func(9,3)=-0.25*(1.0-ri**2)*sm
99 func(10,3)=-0.25*rp*(1.0-si**2)
100 func(11,3)=-0.25*(1.0-ri**2)*sp
101 func(12,3)=-0.25*rm*(1.0-si**2)
102 func(13,3)=0.25*(1.0-ri**2)*sm
103 func(14,3)=0.25*rp*(1.0-si**2)
104 func(15,3)=0.25*(1.0-ri**2)*sp
105 func(16,3)=0.25*rm*(1.0-si**2)
106 func(17,3)=-0.5*rm*sm*ti
107 func(18,3)=-0.5*rp*sm*ti
108 func(19,3)=-0.5*rp*sp*ti
109 func(20,3)=-0.5*rm*sp*ti