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
44 INTEGER I
46 . u_m_r,u_p_r,u_m_s,u_p_s,u_m_t,u_p_t,
47 . ums_umt,ums_upt,ups_umt,ups_upt,
48 . umr_ums,umr_ups,upr_ums,upr_ups,
49 . umt_umr,umt_upr,upt_umr,upt_upr,
50 . a
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
143 u_m_r = half*(one - r)
144 u_p_r = half*(one + r)
145
146 u_m_s = half*(one - s)
147 u_p_s = half*(one + s)
148
149 u_m_t = half*(one - t)
150 u_p_t = half*(one + t)
151
152 ums_umt = u_m_s * u_m_t
153 ums_upt = u_m_s * u_p_t
154 ups_umt = u_p_s * u_m_t
155 ups_upt = u_p_s * u_p_t
156
157 umr_ums = u_m_r * u_m_s
158 umr_ups = u_m_r * u_p_s
159 upr_ums = u_p_r * u_m_s
160 upr_ups = u_p_r * u_p_s
161
162 umt_umr = u_m_t * u_m_r
163 umt_upr = u_m_t * u_p_r
164 upt_umr = u_p_t * u_m_r
165 upt_upr = u_p_t * u_p_r
166
167 ni(1) = u_m_r * ums_umt * (-r-t-one)
168 ni(2) = u_m_r * ums_upt * (-r+t-one)
169 ni(3) = u_p_r * ums_upt * ( r+t-one)
170 ni(4) = u_p_r * ums_umt * ( r-t-one)
171 ni(5) = u_m_r * ups_umt * (-r-t-one)
172 ni(6) = u_m_r * ups_upt * (-r+t-one)
173 ni(7) = u_p_r * ups_upt * ( r+t-one)
174 ni(8) = u_p_r * ups_umt * ( r-t-one)
175
176 dnidr(1) = -ums_umt * (-half*t - r)
177 dnidr(2) = -ums_upt * ( half*t - r)
178 dnidr(3) = ums_upt * ( half*t + r)
179 dnidr(4) = ums_umt * (-half*t + r)
180 dnidr(5) = -ups_umt * (-half*t - r)
181 dnidr(6) = -ups_upt * ( half*t - r)
182 dnidr(7) = ups_upt * ( half*t + r)
183 dnidr(8) = ups_umt * (-half*t + r)
184
185 dnids(1) = -umt_umr * (-r-t-one)*half
186 dnids(2) = -upt_umr * (-r+t-one)*half
187 dnids(3) = -upt_upr * ( r+t-one)*half
188 dnids(4) = -umt_upr * ( r-t-one)*half
189 dnids(5) = umt_umr * (-r-t-one)*half
190 dnids(6) = upt_umr * (-r+t-one)*half
191 dnids(7) = upt_upr * ( r+t-one)*half
192 dnids(8) = umt_upr * ( r-t-one)*half
193
194 dnidt(1) = -umr_ums * (-half*r - t)
195 dnidt(2) = umr_ums * (-half*r + t)
196 dnidt(3) = upr_ums * (+half*r + t)
197 dnidt(4) = -upr_ums * (+half*r - t)
198 dnidt(5) = -umr_ups * (-half*r - t)
199 dnidt(6) = umr_ups * (-half*r + t)
200 dnidt(7) = upr_ups * (+half*r + t)
201 dnidt(8) = -upr_ups * (+half*r - t)
202
203 a = (one - r*r)
204 ni(10) = a * ums_upt
205 ni(12) = a * ums_umt
206 ni(14) = a * ups_upt
207 ni(16) = a * ups_umt
208
209 a = half*a
210 dnidt(10) = a * u_m_s
211 dnidt(14) = a * u_p_s
212 dnids(10) = -a * u_p_t
213 dnids(12) = -a * u_m_t
214
215 a = -two*r
216 dnidr(10) = a * ums_upt
217 dnidr(12) = a * ums_umt
218 dnidr(14) = a * ups_upt
219 dnidr(16) = a * ups_umt
220
221 a = (one - t*t)
222 ni(9) = a * umr_ums
223 ni(11) = a * upr_ums
224 ni(13) = a * umr_ups
225 ni(15) = a * upr_ups
226
227 a = half*a
228
229
230
231
232 dnidr(9) = -a * u_m_s
233 dnidr(13) = -a * u_p_s
234
235
236
237
238
239 dnids(9) = -a * u_m_r
240 dnids(11) = -a * u_p_r
241
242 a = -two*t
243 dnidt(9) = a * umr_ums
244 dnidt(11) = a * upr_ums
245 dnidt(13) = a * umr_ups
246 dnidt(15) = a * upr_ups
247
248
249 RETURN