40
41
42
43 USE elbufdef_mod
45 use element_mod , only : nixt,nixr,nixp
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "mvsiz_p.inc"
54#include "com01_c.inc"
55#include "com04_c.inc"
56#include "param_c.inc"
57
58
59
60
62 . pm(npropm,*), geo(npropg,*),
63 . anim(*),oned_vector(3,*),x(3,*),d(3,*),tors(15,*)
64 INTEGER IPARG(NPARG,*),
65 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IFUNC,
66 . NANIM1D_L,
67 . IS_WRITTEN_ONED(*),ID_ELEM(*),ITY_ELEM(*),
68 . IPARTT(*) ,IPARTP(*),IPARTR(*),H3D_PART(*)
69 INTEGER INFO1, INFO2
70
71 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
72 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
73
74
75
76
78 . evar(mvsiz), mass(mvsiz) ,
79 . off, p, vonm2, vonm, s1, s2, s12, s3, value(3),
80 . a1,b1,b2,b3,yeq,f1,m1,m2,m3, xm,
81 .
for,
area, feq, eplas, rho0, a0, xx1, yy1, zz1, al0
82 INTEGER I, NG, NEL, NFT, ITY,
83 . IADD, N, J, LLT, MLW, NB1, , NB3, NB4, NB5,
84 . NB6, NB7, NB8, NB9, NB10, NB11, NB12, NB13, NB14, NB15,
85 . NB16, LLL,NUVAR,IGTYP,
86 . ISTRAIN,NN, , K2,JTURB,MT,JALE, IMID, IALEL,IPID,
87 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,NF,
88 . OFFSET,K,INC,KK,IHBE,ISROT,ILAYER,IR,IS,JJ(6),IOK_PART(MVSIZ),
89 . IS_WRITTEN_VALUE(MVSIZ),N1,
90
91
92 TYPE(G_BUFEL_) ,POINTER :: GBUF
93
94
95
96 nn1 = 1
97 nn3 = 1
98 nn4 = nn3
99 nn5 = nn4
100 nn6 = nn5
101 nn7 = nn6 + numelt
102 nn8 = nn7 + numelp
103 nn9 = nn8 + numelr
104 nn10= nn9
105
106 DO ng=1,ngroup
107 mlw =iparg(1,ng)
108 nel =iparg(2,ng)
109 ity =iparg(5,ng)
110 igtyp =iparg(38,ng)
111
112 gbuf => elbuf_tab(ng)%GBUF
113
114 nft =iparg(3,ng)
115
116 DO i=1,6
117 jj(i) = nel*(i-1)
118 ENDDO
119
120 value(1:3) = zero
121 DO i=1,nel
122 is_written_value(i) = 0
123 ENDDO
124
125 IF (ity == 4) offset = 0
126 IF (ity == 5) offset = numelt
127 IF (ity == 6) offset = numelt+numelp
128
129 DO i=1,nel
130 IF (ity == 4) THEN
131 id_elem(offset+nft+i) = ixt(nixt,nft+i)
132 ity_elem(offset+nft+i) = 4
133 IF( h3d_part(ipartt(nft+i)) == 1) iok_part(i) = 1
134 ELSEIF (ity == 5) THEN
135 id_elem(offset+nft+i) = ixp(nixp,nft+i)
136 ity_elem(offset+nft+i) = 5
137 IF( h3d_part(ipartp(nft+i)) == 1) iok_part(i) = 1
138 ELSEIF (ity == 6) THEN
139 id_elem(offset+nft+i) = ixr(nixr,nft+i)
140 ity_elem(offset+nft+i) = 6
141 IF( h3d_part(ipartr(nft+i)) == 1) iok_part(i) = 1
142 ENDIF
143 ENDDO
144
145 IF(ity==4 .OR. ity==5 .OR. ity==6)THEN
146 DO i=1,nel
147 oned_vector(1:3,offset+nft+i) = zero
148 ENDDO
149 ENDIF
150
151
152
153 IF(ity==4)THEN
154
155 IF (keyword == 'FINT') THEN
156
157 DO i=1,nel
158 value(1) = tors(1,offset+nft+i)
159 value(2) = tors(2,offset+nft+i)
160 value(3) = tors(3,offset+nft+i)
162 . VALUE)
163 ENDDO
164
165
166
167
168
169
170
171
172
173
174 ENDIF
175
176
177
178 ELSEIF(ity==5)THEN
179
180 IF (keyword == 'FINT') THEN
181
182 DO i=1,nel
183 value(1) = tors(1,offset+nft+i)
184 value(2) = tors(2,offset+nft+i)
185 value(3) = tors(3,offset+nft+i)
187 . VALUE)
188 ENDDO
189
190
191
192
193
194
195
196
197
198
199 ENDIF
200
201
202
203 ELSEIF(ity==6)THEN
204
205 IF (keyword == 'FINT') THEN
206
207 DO i=1,nel
208 value(1) = tors(1,offset+nft+i)
209 value(2) = tors(2,offset+nft+i)
210 value(3) = tors(3,offset+nft+i)
212 . VALUE)
213 ENDDO
214
215
216
217
218
219
220
221
222
223
224 ENDIF
225 ENDIF
226 ENDDO
227
228 RETURN
subroutine h3d_write_vector(iok_part, is_written, vector, i, offset, nft, value)
subroutine area(d1, x, x2, y, y2, eint, stif0)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter ncharline100