39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "mvsiz_p.inc"
47
48
49
50 INTEGER, INTENT(IN) :: NEL
52 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),px5(mvsiz),
53 . px6(mvsiz),px7(mvsiz),px8(mvsiz),px9(mvsiz),px10(mvsiz),
54 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),py5(mvsiz),
55 . py6(mvsiz),py7(mvsiz),py8(mvsiz),py9(mvsiz),py10(mvsiz),
56 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),pz5(mvsiz),
57 . pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),pz9(mvsiz),pz10(mvsiz),
58 . nx1(mvsiz),nx2(mvsiz),nx3(mvsiz),nx4(mvsiz),nx5(mvsiz),
59 . nx6(mvsiz),nx7(mvsiz),nx8(mvsiz),nx9(mvsiz),nx10(mvsiz),
60 . vol(mvsiz),alph,beta,w,jac_i(10,mvsiz)
61
62
63
64
65
66
67 INTEGER I
69 . a4mb4,a4,b4
70 DOUBLE PRECISION
71 . A4M1,B4M1
72
74 . drdx, dsdx, dtdx,
75 . drdy, dsdy, dtdy,
76 . drdz, dsdz, dtdz
77
78
79
80
81
82
83
84 a4 = four * alph
85 b4 = four * beta
86 a4m1 = a4 - one
87 b4m1 = b4 - one
88 a4mb4 = a4 - b4
89 DO i=1,nel
90 drdx=jac_i(1,i)
91 dsdx=jac_i(4,i)
92 dtdx=jac_i(7,i)
93
94 drdy=jac_i(2,i)
95 dsdy=jac_i(5,i)
96 dtdy=jac_i(8,i)
97
98 drdz=jac_i(3,i)
99 dsdz=jac_i(6,i)
100 dtdz=jac_i(9,i)
101
102 vol(i) = jac_i(10,i)
103
104 px1(i) = b4m1 * drdx
105 py1(i) = b4m1 * drdy
106 pz1(i) = b4m1 * drdz
107
108 px2(i) = b4m1 * dsdx
109 py2(i) = b4m1 * dsdy
110 pz2(i) = b4m1 * dsdz
111
112 px3(i) = b4m1 * dtdx
113 py3(i) = b4m1 * dtdy
114 pz3(i) = b4m1 * dtdz
115
116 px4(i) =-a4m1 * (drdx+dsdx+dtdx)
117 py4(i) =-a4m1 * (drdy+dsdy+dtdy)
118 pz4(i) =-a4m1 * (drdz+dsdz+dtdz)
119
120 px5(i) = b4 * (drdx+dsdx)
121 py5(i) = b4 * (drdy+dsdy)
122 pz5(i) = b4 * (drdz+dsdz)
123
124 px6(i) = b4 * (dsdx+dtdx)
125 py6(i) = b4 * (dsdy+dtdy)
126 pz6(i) = b4 * (dsdz+dtdz)
127
128 px7(i) = b4 * (dtdx+drdx)
129 py7(i) = b4 * (dtdy+drdy)
130 pz7(i) = b4 * (dtdz+drdz)
131
132 px8(i) = a4mb4 * drdx - px6(i)
133 py8(i) = a4mb4 * drdy - py6(i)
134 pz8(i) = a4mb4 * drdz - pz6(i)
135
136 px9(i) = a4mb4 * dsdx - px7(i)
137 py9(i) = a4mb4 * dsdy - py7(i)
138 pz9(i) = a4mb4 * dsdz - pz7(i)
139
140 px10(i)= a4mb4 * dtdx - px5(i)
141 py10(i)= a4mb4 * dtdy - py5(i)
142 pz10(i)= a4mb4 * dtdz - pz5(i)
143
144 ENDDO
145
146 RETURN