38
39
40
42 use element_mod , only : nixt,nixr,nixp
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "com01_c.inc"
51#include "mvsiz_p.inc"
52#include "com04_c.inc"
53#include "param_c.inc"
54
55
56
57
59 . evar(9,mvsiz),tors(15,*),oned_torsor(9,*)
60 INTEGER IPARG(NPARG,*),IFUNC,INFO1 ,INFO2 ,
61 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
62 . IS_WRITTEN_ONED(*),ID_ELEM(*),ITY_ELEM(*),
63 . IPARTT(*) ,IPARTP(*),IPARTR(*),H3D_PART(*)
64 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
65
66
67
68
70 . off, fac, a1, a2, a3, thk
71
72 INTEGER I, NG, NEL, NFT, IAD, ITY, LFT, M,
73 . IADD, N, J, LLT, MLW, NB1, , NB3, NB4, NB5,
74 . NB6, NB7, NB8, NB9, NB10, NB11, NB12, ISTRAIN,
75 . IPID, I1, I2, IAD2, NS1, NS2 , IALEL, ISTRE,
76 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,NNI,N0,
77 . IHBE,BUF,IOK_PART(MVSIZ),OFFSET
78
79
80 DO ng=1,ngroup
81
82 mlw =iparg(1,ng)
83 nel =iparg(2,ng)
84 nft =iparg(3,ng)
85 iad =iparg(4,ng)
86 ity =iparg(5,ng)
87 nb1 =iad - 1
88 lft=1
89 llt=nel
90
91 IF (ity == 4) offset = 0
92 IF (ity == 5) offset = numelt
93 IF (ity == 6) offset = numelt+numelp
94
95 DO i=1,nel
96 IF (ity == 4) THEN
97 id_elem(offset+nft+i) = ixt(nixt,nft+i)
98 ity_elem(offset+nft+i) = 4
99 IF( h3d_part(ipartt(nft+i)) == 1) iok_part(i) = 1
100 ELSEIF (ity == 5) THEN
101 id_elem(offset+nft+i) = ixp(nixp,nft+i)
102 ity_elem(offset+nft+i) = 5
103 IF( h3d_part(ipartp(nft+i)) == 1) iok_part(i) = 1
104 ELSEIF (ity == 6) THEN
105 id_elem(offset+nft+i) = ixr(nixr,nft+i)
106 ity_elem(offset+nft+i) = 6
107 IF( h3d_part(ipartr(nft+i)) == 1) iok_part(i) = 1
108 ENDIF
109 ENDDO
110
111 IF(ity==4 .OR. ity==5 .OR. ity==6)THEN
112 DO i=1,nel
113 oned_torsor(1:9,offset+nft+i) = zero
114 ENDDO
115 ENDIF
116
117 IF(ity==4)THEN
118
119 IF (keyword == 'F1') THEN
120
121 DO i=1,nel
122 m = nft+i+offset
123 evar(1,i) = tors(1,m)
124 ENDDO
125
126 ELSEIF (keyword == 'F2') THEN
127
128 DO i=1,nel
129 m = nft+i+offset
130 evar(1,i) = tors(2,m)
131 ENDDO
132
133 ELSEIF (keyword == 'F3') THEN
134
135 DO i=1,nel
136 m = nft+i+offset
137 evar(1,i) = tors(3,m)
138 ENDDO
139
140 ELSEIF (keyword == 'M11') THEN
141
142 DO i=1,nel
143 m = nft+i+offset
144 evar(1,i) = tors(4,m)
145 ENDDO
146
147 ELSEIF (keyword == 'M21') THEN
148
149 DO i=1,nel
150 m = nft+i+offset
151 evar(1,i) = tors(5,m)
152 ENDDO
153
154 ELSEIF (keyword == 'M31') THEN
155
156 DO i=1,nel
157 m = nft+i+offset
158 evar(1,i) = tors(6,m)
159 ENDDO
160
161 ELSEIF (keyword == 'M12') THEN
162
163 DO i=1,nel
164 m = nft+i+offset
165 evar(1,i) = tors(7,m)
166 ENDDO
167
168 ELSEIF (keyword == 'M22') THEN
169
170 DO i=1,nel
171 m = nft+i+offset
172 evar(1,i) = tors(8,m)
173 ENDDO
174
175 ELSEIF (keyword == 'M32') THEN
176
177 DO i=1,nel
178 m = nft+i+offset
179 evar(1,i) = tors(9,m)
180 ENDDO
181 ENDIF
182
184 . evar)
185
186 ELSEIF(ity==5)THEN
187
188 IF (keyword == 'F1') THEN
189
190 DO i=1,nel
191 m = nft+i+offset
192 evar(1,i) = tors(1,m)
193 ENDDO
194
195 ELSEIF (keyword == 'F2') THEN
196
197 DO i=1,nel
198 m = nft+i+offset
199 evar(1,i) = tors(2,m)
200 ENDDO
201
202 ELSEIF (keyword == 'F3') THEN
203
204 DO i=1,nel
205 m = nft+i+offset
206 evar(1,i) = tors(3,m)
207 ENDDO
208
209 ELSEIF (keyword == 'M11') THEN
210
211 DO i=1,nel
212 m = nft+i+offset
213 evar(1,i) = tors(4,m)
214 ENDDO
215
216 ELSEIF (keyword == 'M21') THEN
217
218 DO i=1,nel
219 m = nft+i+offset
220 evar(1,i) = tors(5,m)
221 ENDDO
222
223 ELSEIF (keyword == 'M31') THEN
224
225 DO i=1,nel
226 m = nft+i+offset
227 evar(1,i) = tors(6,m)
228 ENDDO
229
230 ELSEIF (keyword == 'M12') THEN
231
232 DO i=1,nel
233 m = nft+i+offset
234 evar(1,i) = tors(7,m)
235 ENDDO
236
237 ELSEIF (keyword == 'M22') THEN
238
239 DO i=1,nel
240 m = nft+i+offset
241 evar(1,i) = tors(8,m)
242 ENDDO
243
244 ELSEIF (keyword == 'M32') THEN
245
246 DO i=1,nel
247 m = nft+i+offset
248 evar(1,i) = tors(9,m)
249 ENDDO
250 ENDIF
251
253 . evar)
254 ELSEIF(ity==6)THEN
255
256 IF (keyword == 'F1') THEN
257
258 DO i=1,nel
259 m = nft+i+offset
260 evar(1,i) = tors(1,m)
261 ENDDO
262
263 ELSEIF (keyword == 'F2') THEN
264
265 DO i=1,nel
266 m = nft+i+offset
267 evar(1,i) = tors(2,m)
268 ENDDO
269
270 ELSEIF (keyword == 'F3') THEN
271
272 DO i=1,nel
273 m = nft+i+offset
274 evar(1,i) = tors(3,m)
275 ENDDO
276
277 ELSEIF (keyword == 'M11') THEN
278
279 DO i=1,nel
280 m = nft+i+offset
281 evar(1,i) = tors(4,m)
282 ENDDO
283
284 ELSEIF (keyword == 'M21') THEN
285
286 DO i=1,nel
287 m = nft+i+offset
288 evar(1,i) = tors(5,m)
289 ENDDO
290
291 ELSEIF (keyword == 'M31') THEN
292
293 DO i=1,nel
294 m = nft+i+offset
295 evar(1,i) = tors(6,m)
296 ENDDO
297
298 ELSEIF (keyword == 'M12') THEN
299
300 DO i=1,nel
301 m = nft+i+offset
302 evar(1,i) = tors(7,m)
303 ENDDO
304
305 ELSEIF (keyword == 'M22') THEN
306
307 DO i=1,nel
308 m = nft+i+offset
309 evar(1,i) = tors(8,m)
310 ENDDO
311
312 ELSEIF (keyword == 'M32') THEN
313
314 DO i=1,nel
315 m = nft+i+offset
316 evar(1,i) = tors(9,m)
317 ENDDO
318 ENDIF
319
321 . evar)
322 ENDIF
323
324 ENDDO
325
326
327 RETURN
subroutine h3d_write_torsor(iok_part, is_written, torsor, nel, offset, nft, value)
integer, parameter ncharline100