31
32
33
34#include "implicit_f.inc"
35
36
37
39 1 r,s,t,
40 2 ni(16) ,dnidr(16),dnids(16),dnidt(16)
41
42
43
45 . u_m_r,u_p_r,u_m_s,u_p_s,u_m_t,u_p_t,
46 . ums_umt,ums_upt,ups_umt,ups_upt,
47 . umr_ums,umr_ups,upr_ums,upr_ups,
48 . umt_umr,umt_upr,upt_umr,upt_upr,
49 . a
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142 u_m_r = half*(one - r)
143 u_p_r = half*(one + r)
144
145 u_m_s = half*(one - s)
146 u_p_s = half*(one + s)
147
148 u_m_t = half*(one - t)
149 u_p_t = half*(one + t)
150
151 ums_umt = u_m_s * u_m_t
152 ums_upt = u_m_s * u_p_t
153 ups_umt = u_p_s * u_m_t
154 ups_upt = u_p_s * u_p_t
155
156 umr_ums = u_m_r * u_m_s
157 umr_ups = u_m_r * u_p_s
158 upr_ums = u_p_r * u_m_s
159 upr_ups = u_p_r * u_p_s
160
161 umt_umr = u_m_t * u_m_r
162 umt_upr = u_m_t * u_p_r
163 upt_umr = u_p_t * u_m_r
164 upt_upr = u_p_t * u_p_r
165
166 ni(1) = u_m_r * ums_umt * (-r-t-one)
167 ni(2) = u_m_r * ums_upt * (-r+t-one)
168 ni(3) = u_p_r * ums_upt * ( r+t-one)
169 ni(4) = u_p_r * ums_umt * ( r-t-one)
170 ni(5) = u_m_r * ups_umt * (-r-t-one)
171 ni(6) = u_m_r * ups_upt * (-r+t-one)
172 ni(7) = u_p_r * ups_upt * ( r+t-one)
173 ni(8) = u_p_r * ups_umt * ( r-t-one)
174
175 dnidr(1) = -ums_umt * (-half*t - r)
176 dnidr(2) = -ums_upt * ( half*t - r)
177 dnidr(3) = ums_upt * ( half*t + r)
178 dnidr(4) = ums_umt * (-half*t + r)
179 dnidr(5) = -ups_umt * (-half*t - r)
180 dnidr(6) = -ups_upt * ( half*t - r)
181 dnidr(7) = ups_upt * ( half*t + r)
182 dnidr(8) = ups_umt * (-half*t + r)
183
184 dnids(1) = -umt_umr * (-r-t-one)*half
185 dnids(2) = -upt_umr * (-r+t-one)*half
186 dnids(3) = -upt_upr * ( r+t-one)*half
187 dnids(4) = -umt_upr * ( r-t-one)*half
188 dnids(5) = umt_umr * (-r-t-one)*half
189 dnids(6) = upt_umr * (-r+t-one)*half
190 dnids(7) = upt_upr * ( r+t-one)*half
191 dnids(8) = umt_upr * ( r-t-one)*half
192
193 dnidt(1) = -umr_ums * (-half*r - t)
194 dnidt(2) = umr_ums * (-half*r + t)
195 dnidt(3) = upr_ums * (+half*r + t)
196 dnidt(4) = -upr_ums * (+half*r - t)
197 dnidt(5) = -umr_ups * (-half*r - t)
198 dnidt(6) = umr_ups * (-half*r + t)
199 dnidt(7) = upr_ups * (+half*r + t)
200 dnidt(8) = -upr_ups * (+half*r - t)
201
202 a = (one - r*r)
203 ni(10) = a * ums_upt
204 ni(12) = a * ums_umt
205 ni(14) = a * ups_upt
206 ni(16) = a * ups_umt
207
208 a = half*a
209 dnidt(10) = a * u_m_s
210 dnidt(14) = a * u_p_s
211 dnids(10) = -a * u_p_t
212 dnids(12) = -a * u_m_t
213
214 a = -two*r
215 dnidr(10) = a * ums_upt
216 dnidr(12) = a * ums_umt
217 dnidr(14) = a * ups_upt
218 dnidr(16) = a * ups_umt
219
220 a = (one - t*t)
221 ni(9) = a * umr_ums
222 ni(11) = a * upr_ums
223 ni(13) = a * umr_ups
224 ni(15) = a * upr_ups
225
226 a = half*a
227
228
229
230
231 dnidr(9) = -a * u_m_s
232 dnidr(13) = -a * u_p_s
233
234
235
236
237
238 dnids(9) = -a * u_m_r
239 dnids(11) = -a * u_p_r
240
241 a = -two*t
242 dnidt(9) = a * umr_ums
243 dnidt(11) = a * upr_ums
244 dnidt(13) = a * umr_ups
245 dnidt(15) = a * upr_ups
246
247
248 RETURN