40 use element_mod , only : nixtg
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "mvsiz_p.inc"
49
50
51
52#include "param_c.inc"
53#include "scr18_c.inc"
54
55
56
57 INTEGER ,INTENT(IN) :: NODADT_THERM
58 INTEGER JTHE,JFT, JLT, NVC
59 INTEGER IXTG(NIXTG,*),MAT(MVSIZ),IPARTTG(*)
61 . f(3,*), m(3,*), offg(*), off(*), sti(*), stir(*),
62 . stifn(*), stifr(*),condn(*),conde(*)
63 my_real f11(mvsiz), f12(mvsiz), f13(mvsiz),
64 . f21(mvsiz), f22(mvsiz), f23(mvsiz),
65 . f31(mvsiz), f32(mvsiz), f33(mvsiz),
66 . m11(mvsiz), m12(mvsiz), m13(mvsiz),
67 . m21(mvsiz), m22(mvsiz), m23(mvsiz),
68 . m31(mvsiz), m32(mvsiz), m33(mvsiz),
69 . them(mvsiz,3),fthe(*),eint(jlt,2),pm(npropm,*),
area(*),thk(*),
70 . partsav(npsav,*)
71
72
73
74 INTEGER I,NVC1,NVC2,NVC3,NC1,NC2,NC3
76 . off_l
77
78
79 off_l = zero
80 DO i=jft,jlt
81 IF(off(i)<one)offg(i) = off(i)
82 off_l =
min(off_l,offg(i))
83 ENDDO
84 IF (off_l < zero)THEN
85 DO i=jft,jlt
86 IF (offg(i) < zero)THEN
87 f11(i)=zero
88 f21(i)=zero
89 f31(i)=zero
90 m11(i)=zero
91 m21(i)=zero
92 m31(i)=zero
93 f12(i)=zero
94 f22(i)=zero
95 f32(i)=zero
96 m12(i)=zero
97 m22(i)=zero
98 m32(i)=zero
99 f13(i)=zero
100 f23(i)=zero
101 f33(i)=zero
102 m13(i)=zero
103 m23(i)=zero
104 m33(i)=zero
105 sti(i)=zero
106 stir(i)=zero
107 them(i,1) = zero
108 them(i,2) = zero
109 them(i,3) = zero
110 conde(i)=zero
111 ENDIF
112 ENDDO
113 ENDIF
114
115 nvc1= nvc/8
116 nvc2=(nvc-nvc1*8)/4
117 nvc3=(nvc-nvc1*8-nvc2*4)/2
118
119 IF(nvc1 == 0)THEN
120 IF(jthe == 0) THEN
121#include "vectorize.inc"
122 DO 100 i=jft,jlt
123 nc1 = ixtg(2,i)
124 f(1,nc1)=f(1,nc1)-f11(i)
125 f(2,nc1)=f(2,nc1)-f21(i)
126 f(3,nc1)=f(3,nc1)-f31(i)
127 m(1,nc1)=m(1,nc1)-m11(i)
128 m(2,nc1)=m(2,nc1)-m21(i)
129 m(3,nc1)=m(3,nc1)-m31(i)
130 stifn(nc1)=stifn(nc1)+sti(i)
131 stifr(nc1)=stifr(nc1)+stir(i)
132 100 CONTINUE
133 ELSE
134 IF(nodadt_therm == 1 ) THEN
135#include "vectorize.inc"
136 DO i=jft,jlt
137 nc1 = ixtg(2,i)
138 f(1,nc1)=f(1,nc1)-f11(i)
139 f(2,nc1)=f(2,nc1)-f21(i)
140 f(3,nc1)=f(3,nc1)-f31(i)
141 m(1,nc1)=m(1,nc1)-m11(i)
142 m(2,nc1)=m(2,nc1)-m21(i)
143 m(3,nc1)=m(3,nc1)-m31(i)
144 stifn(nc1)=stifn(nc1)+sti(i)
145 stifr(nc1)=stifr(nc1)+stir(i)
146 fthe(nc1) = fthe(nc1) + them(i,1)
147 condn(nc1)=condn(nc1)+conde(i)
148 ENDDO
149 ELSE
150#include "vectorize.inc"
151 DO i=jft,jlt
152 nc1 = ixtg(2,i)
153 f(1,nc1)=f(1,nc1)-f11(i)
154 f(2,nc1)=f(2,nc1)-f21(i)
155 f(3,nc1)=f(3,nc1)-f31(i)
156 m(1,nc1)=m(1,nc1)-m11(i)
157 m(2,nc1)=m(2,nc1)-m21(i)
158 m(3,nc1)=m(3,nc1)-m31(i)
159 stifn(nc1)=stifn(nc1)+sti(i)
160 stifr(nc1)=stifr(nc1)+stir(i)
161 fthe(nc1) = fthe(nc1) + them(i,1)
162 ENDDO
163 ENDIF
164 ENDIF
165
166 ELSE
167 IF(jthe == 0 ) THEN
168 DO 110 i=jft,jlt
169 nc1 = ixtg(2,i)
170 f(1,nc1)=f(1,nc1)-f11(i)
171 f(2,nc1)=f(2,nc1)-f21(i)
172 f(3,nc1)=f(3,nc1)-f31(i)
173 m(1,nc1)=m(1,nc1)-m11(i)
174 m(2,nc1)=m(2,nc1)-m21(i)
175 m(3,nc1)=m(3,nc1)-m31(i)
176 stifn(nc1)=stifn(nc1)+sti(i)
177 stifr(nc1)=stifr(nc1)+stir(i)
178 110 CONTINUE
179 ELSE
180 IF(nodadt_therm == 1 ) THEN
181 DO i=jft,jlt
182 nc1 = ixtg(2,i)
183 f(1,nc1)=f(1,nc1)-f11(i)
184 f(2,nc1)=f(2,nc1)-f21(i)
185 f(3,nc1)=f(3,nc1)-f31(i)
186 m(1,nc1)=m(1,nc1)-m11(i)
187 m(2,nc1)=m(2,nc1)-m21(i)
188 m(3,nc1)=m(3,nc1)-m31(i)
189 stifn(nc1)=stifn(nc1)+sti(i)
190 stifr(nc1)=stifr(nc1)+stir(i)
191 fthe(nc1) = fthe(nc1) + them(i,1)
192 condn(nc1)=condn(nc1)+conde(i)
193 ENDDO
194 ELSE
195 DO i=jft,jlt
196 nc1 = ixtg(2,i)
197 f(1,nc1)=f(1,nc1)-f11(i)
198 f(2,nc1)=f(2,nc1)-f21(i)
199 f(3,nc1)=f(3,nc1)-f31(i)
200 m(1,nc1)=m(1,nc1)-m11(i)
201 m(2,nc1)=m(2,nc1)-m21(i)
202 m(3,nc1)=m(3,nc1)-m31(i)
203 stifn(nc1)=stifn(nc1)+sti(i)
204 stifr(nc1)=stifr(nc1)+stir(i)
205 fthe(nc1) = fthe(nc1) + them(i,1)
206 ENDDO
207 ENDIF
208 ENDIF
209 ENDIF
210
211 IF(nvc2 == 0)THEN
212 IF(jthe == 0 ) THEN
213#include "vectorize.inc"
214 DO 200 i=jft,jlt
215 nc2 = ixtg(3,i)
216 f(1,nc2)=f(1,nc2)-f12(i)
217 f(2,nc2)=f(2,nc2)-f22(i)
218 f(3,nc2)=f(3,nc2)-f32(i)
219 m(1,nc2)=m(1,nc2)-m12(i)
220 m(2,nc2)=m(2,nc2)-m22(i)
221 m(3,nc2)=m(3,nc2)-m32(i)
222 stifn(nc2)=stifn(nc2)+sti(i)
223 stifr(nc2)=stifr(nc2)+stir(i)
224 200 CONTINUE
225 ELSE
226 IF(nodadt_therm == 1 ) THEN
227#include "vectorize.inc"
228 DO i=jft,jlt
229 nc2 = ixtg(3,i)
230 f(1,nc2)=f(1,nc2)-f12(i)
231 f(2,nc2)=f(2,nc2)-f22(i)
232 f(3,nc2)=f(3,nc2)-f32(i)
233 m(1,nc2)=m(1,nc2)-m12(i)
234 m(2,nc2)=m(2,nc2)-m22(i)
235 m(3,nc2)=m(3,nc2)-m32(i)
236 stifn(nc2)=stifn(nc2)+sti(i)
237 stifr(nc2)=stifr(nc2)+stir(i)
238 fthe(nc2) = fthe(nc2) + them(i,2)
239 condn(nc2)=condn(nc2)+conde(i)
240 ENDDO
241 ELSE
242#include "vectorize.inc"
243 DO i=jft,jlt
244 nc2 = ixtg(3,i)
245 f(1,nc2)=f(1,nc2)-f12(i)
246 f(2,nc2)=f(2,nc2)-f22(i)
247 f(3,nc2)=f(3,nc2)-f32(i)
248 m(1,nc2)=m(1,nc2)-m12(i)
249 m(2,nc2)=m(2,nc2)-m22(i)
250 m(3,nc2)=m(3,nc2)-m32(i)
251 stifn(nc2)=stifn(nc2)+sti(i)
252 stifr(nc2)=stifr(nc2)+stir(i)
253 fthe(nc2) = fthe(nc2) +
254 ENDDO
255 ENDIF
256 ENDIF
257 ELSE
258 IF(jthe == 0 ) THEN
259 DO 210 i=jft,jlt
260 nc2 = ixtg(3,i)
261 f(1,nc2)=f(1,nc2)-f12(i)
262 f(2,nc2)=f(2,nc2)-f22(i)
263 f(3,nc2)=f(3,nc2)-f32(i)
264 m(1,nc2)=m(1,nc2)-m12(i)
265 m(2,nc2)=m(2,nc2)-m22(i)
266 m(3,nc2)=m(3,nc2)-m32(i)
267 stifn(nc2)=stifn(nc2)+sti(i)
268 stifr(nc2)=stifr(nc2)+stir(i)
269 210 CONTINUE
270 ELSE
271 IF(nodadt_therm == 1 ) THEN
272 DO i=jft,jlt
273 nc2 = ixtg(3,i)
274 f(1,nc2)=f(1,nc2)-f12(i)
275 f(2,nc2)=f(2,nc2)-f22(i)
276 f(3,nc2)=f(3,nc2)-f32(i)
277 m(1,nc2)=m(1,nc2)-m12(i)
278 m(2,nc2)=m(2,nc2)-m22(i)
279 m(3,nc2)=m(3,nc2)-m32(i)
280 stifn(nc2)=stifn(nc2)+sti(i)
281 stifr(nc2)=stifr(nc2)+stir(i)
282 fthe(nc2) = fthe(nc2) + them(i,2)
283 condn(nc2)=condn(nc2)+conde(i)
284 ENDDO
285 ELSE
286 DO i=jft,jlt
287 nc2 = ixtg(3,i)
288 f(1,nc2)=f(1,nc2)-f12(i)
289 f(2,nc2)=f(2,nc2)-f22(i)
290 f(3,nc2)=f(3,nc2)-f32(i)
291 m(1,nc2)=m(1,nc2)-m12(i)
292 m(2,nc2)=m(2,nc2)-m22(i)
293 m(3,nc2)=m(3,nc2)-m32(i)
294 stifn(nc2)=stifn(nc2)+sti(i)
295 stifr(nc2)=stifr(nc2)+stir(i)
296 fthe(nc2) = fthe(nc2) + them(i,2)
297 ENDDO
298 ENDIF
299 ENDIF
300 ENDIF
301
302 IF(nvc3 == 0)THEN
303 IF(jthe == 0 ) THEN
304#include "vectorize.inc"
305 DO 300 i=jft,jlt
306 nc3 = ixtg(4,i)
307 f(1,nc3)=f(1,nc3)-f13(i)
308 f(2,nc3)=f(2,nc3)-f23(i)
309 f(3,nc3)=f(3,nc3)-f33(i)
310 m(1,nc3)=m(1,nc3)-m13(i)
311 m(2,nc3)=m(2,nc3)-m23(i)
312 m(3,nc3)=m(3,nc3)-m33(i)
313 stifn(nc3)=stifn(nc3)+sti(i)
314 stifr(nc3)=stifr(nc3)+stir(i)
315 300 CONTINUE
316 ELSE
317 IF(nodadt_therm == 1 ) THEN
318#include "vectorize.inc"
319 DO i=jft,jlt
320 nc3 = ixtg(4,i)
321 f(1,nc3)=f(1,nc3)-f13(i)
322 f(2,nc3)=f(2,nc3)-f23(i)
323 f(3,nc3)=f(3,nc3)-f33(i)
324 m(1,nc3)=m(1,nc3)-m13(i)
325 m(2,nc3)=m(2,nc3)-m23(i)
326 m(3,nc3)=m(3,nc3)-m33(i)
327 stifn(nc3)=stifn(nc3)+sti(i)
328 stifr(nc3)=stifr(nc3)+stir(i)
329 fthe(nc3) = fthe(nc3) + them(i,3)
330 condn(nc3)=condn(nc3)+conde(i)
331 ENDDO
332 ELSE
333#include "vectorize.inc"
334 DO i=jft,jlt
335 nc3 = ixtg(4,i)
336 f(1,nc3)=f(1,nc3)-f13(i)
337 f(2,nc3)=f(2,nc3)-f23(i)
338 f(3,nc3)=f(3,nc3)-f33(i)
339 m(1,nc3)=m(1,nc3)-m13(i)
340 m(2,nc3)=m(2,nc3)-m23(i)
341 m(3,nc3)=m(3,nc3)-m33(i)
342 stifn(nc3)=stifn(nc3)+sti(i)
343 stifr(nc3)=stifr(nc3)+stir(i)
344 fthe(nc3) = fthe(nc3) + them(i,3)
345 ENDDO
346 ENDIF
347 ENDIF
348
349 ELSE
350 IF(jthe == 0 ) THEN
351 DO 310 i=jft,jlt
352 nc3 = ixtg(4,i)
353 f(1,nc3)=f(1,nc3)-f13(i)
354 f(2,nc3)=f(2,nc3)-f23(i)
355 f(3,nc3)=f(3,nc3)-f33(i)
356 m(1,nc3)=m(1,nc3)-m13(i)
357 m(2,nc3)=m(2,nc3)-m23(i)
358 m(3,nc3)=m(3,nc3)-m33(i)
359 stifn(nc3)=stifn(nc3)+sti(i)
360 stifr(nc3)=stifr(nc3)+stir(i)
361 310 CONTINUE
362 ELSE
363 IF(nodadt_therm == 1 ) THEN
364 DO i=jft,jlt
365 nc3 = ixtg(4,i)
366 f(1,nc3)=f(1,nc3)-f13(i)
367 f(2,nc3)=f(2,nc3)-f23(i)
368 f(3,nc3)=f(3,nc3)-f33(i)
369 m(1,nc3)=m(1,nc3)-m13(i)
370 m(2,nc3)=m(2,nc3)-m23(i)
371 m(3,nc3)=m(3,nc3)-m33(i)
372 stifn(nc3)=stifn(nc3)+sti(i)
373 stifr(nc3)=stifr(nc3)+stir(i)
374 fthe(nc3) = fthe(nc3) + them(i,3)
375 condn(nc3)=condn(nc3)+conde(i)
376 ENDDO
377 ELSE
378 DO i=jft,jlt
379 nc3 = ixtg(4,i)
380 f(1,nc3)=f(1,nc3)-f13(i)
381 f(2,nc3)=f(2,nc3)-f23(i)
382 f(3,nc3)=f(3,nc3)-f33(i)
383 m(1,nc3)=m(1,nc3)-m13(i)
384 m(2,nc3)=m(2,nc3)-m23(i)
385 m(3,nc3)=m(3,nc3)-m33(i)
386 stifn(nc3)=stifn(nc3)+sti(i)
387 stifr(nc3)=stifr(nc3)+stir(i)
388 fthe(nc3) = fthe(nc3) + them(i,3)
389 ENDDO
390 ENDIF
391 ENDIF
392 ENDIF
393
394 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)