10 integer,
parameter,
private :: kreal = kind(0.0d0)
14 real(kind=kreal),
intent(in) :: lcoord(2)
15 real(kind=kreal) :: func(8)
16 real(kind=kreal) :: ri,si,rp,sp,rm,sm
17 ri=lcoord(1); si=lcoord(2)
22 func(1)=0.25d0*rm*sm*(-1.d0-ri-si)
23 func(2)=0.25d0*rp*sm*(-1.d0+ri-si)
24 func(3)=0.25d0*rp*sp*(-1.d0+ri+si)
25 func(4)=0.25d0*rm*sp*(-1.d0-ri+si)
26 func(5)=0.5d0*(1.d0-ri*ri)*(1.d0-si)
27 func(6)=0.5d0*(1.d0-si*si)*(1.d0+ri)
28 func(7)=0.5d0*(1.d0-ri*ri)*(1.d0+si)
29 func(8)=0.5d0*(1.d0-si*si)*(1.d0-ri)
33 real(kind=kreal),
intent(in) :: lcoord(2)
34 real(kind=kreal) :: func(8,2)
35 func(1,1)= .25d0*(1.d0-lcoord(2))*(2.d0*lcoord(1)+lcoord(2))
36 func(2,1)= .25d0*(1.d0-lcoord(2))*(2.d0*lcoord(1)-lcoord(2))
37 func(3,1)= .25d0*(1.d0+lcoord(2))*(2.d0*lcoord(1)+lcoord(2))
38 func(4,1)= .25d0*(1.d0+lcoord(2))*(2.d0*lcoord(1)-lcoord(2))
39 func(5,1)=-lcoord(1)*(1.d0-lcoord(2))
40 func(6,1)= 0.5d0*(1.d0-lcoord(2)*lcoord(2))
41 func(7,1)=-lcoord(1)*(1.d0+lcoord(2))
42 func(8,1)=-0.5d0*(1.d0-lcoord(2)*lcoord(2))
45 func(1,2)= .25d0*(1.d0-lcoord(1))*(lcoord(1)+2.d0*lcoord(2))
46 func(2,2)=-.25d0*(1.d0+lcoord(1))*(lcoord(1)-2.d0*lcoord(2))
47 func(3,2)= .25d0*(1.d0+lcoord(1))*(lcoord(1)+2.d0*lcoord(2))
48 func(4,2)=-.25d0*(1.d0-lcoord(1))*(lcoord(1)-2.d0*lcoord(2))
49 func(5,2)=-0.5d0*(1.d0-lcoord(1)*lcoord(1))
50 func(6,2)=-lcoord(2)*(1.d0+lcoord(1))
51 func(7,2)= 0.5d0*(1.d0-lcoord(1)*lcoord(1))
52 func(8,2)=-lcoord(2)*(1.d0-lcoord(1))
56 real(kind=kreal),
intent(in) :: lcoord(2)
57 real(kind=kreal) :: func(8,2,2)
58 func(1,1,1) = 0.5d0*(1.d0-lcoord(2))
59 func(2,1,1) = 0.5d0*(1.d0-lcoord(2))
60 func(3,1,1) = 0.5d0*(1.d0+lcoord(2))
61 func(4,1,1) = 0.5d0*(1.d0+lcoord(2))
62 func(5,1,1) = lcoord(2)-1.d0
64 func(7,1,1) =-lcoord(2)-1.d0
67 func(1,1,2) = 0.25d0-0.5d0*(lcoord(1)+lcoord(2))
68 func(2,1,2) =-0.25d0-0.5d0*(lcoord(1)-lcoord(2))
69 func(3,1,2) = 0.25d0+0.5d0*(lcoord(1)+lcoord(2))
70 func(4,1,2) =-0.25d0+0.5d0*(lcoord(1)-lcoord(2))
71 func(5,1,2) = lcoord(1)
72 func(6,1,2) =-lcoord(2)
73 func(7,1,2) =-lcoord(1)
74 func(8,1,2) = lcoord(2)
76 func(1,2,1) = 0.25d0-0.5d0*(lcoord(1)+lcoord(2))
77 func(2,2,1) =-0.25d0-0.5d0*(lcoord(1)-lcoord(2))
78 func(3,2,1) = 0.25d0+0.5d0*(lcoord(1)+lcoord(2))
79 func(4,2,1) =-0.25d0+0.5d0*(lcoord(1)-lcoord(2))
80 func(5,2,1) = lcoord(1)
81 func(6,2,1) =-lcoord(2)
82 func(7,2,1) =-lcoord(1)
83 func(8,2,1) = lcoord(2)
85 func(1,2,2) = 0.5d0*(1.d0-lcoord(1))
86 func(2,2,2) = 0.5d0*(1.d0+lcoord(1))
87 func(3,2,2) = 0.5d0*(1.d0+lcoord(1))
88 func(4,2,2) = 0.5d0*(1.d0-lcoord(1))
90 func(6,2,2) =-lcoord(1)-1.d0
92 func(8,2,2) = lcoord(1)-1.d0