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