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