51 use element_mod , only : nixs
52
53
54
55 USE elbufdef_mod
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "mvsiz_p.inc"
64
65
66
67#include "com04_c.inc"
68#include "param_c.inc"
69
70
71
72 INTEGER, INTENT(IN) :: IFORMDT
73 INTEGER, INTENT(IN) :: NFT
74 INTEGER, INTENT(IN) :: MTN
75 INTEGER, INTENT(IN) :: ISMSTR
76 INTEGER, INTENT(IN) ::
77 INTEGER, INTENT(IN) :: IREP
78 INTEGER, INTENT(IN) :: ISORTH
79 INTEGER (NIXS,*), IKGEO
80C
81 INTEGER NEL ,IPM(NPROPMI,*),IGEO(NPROPGI,*),
82 . ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
83C
85 . pm(npropm,*), geo(npropg,*), x(*),
86 . k11(9,mvsiz) ,k12(9,mvsiz) ,k13(9,mvsiz) ,k14(9,mvsiz) ,
87 . k22(9,mvsiz) ,k23(9,mvsiz) ,k24(9,mvsiz) ,k33(9,mvsiz) ,
88 . k34(9,mvsiz) ,k44(9,mvsiz) , off(mvsiz) ,bufmat(*) ,
89 . k_diag(*) ,k_lt(*)
90 TYPE(G_BUFEL_) :: GBUF
91
92
93
94 INTEGER NF1, I,IBID,IBID1
95 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IADBUF,IKORTH
97 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
98 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
99 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz) ,
100 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
101 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
102 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz) ,
103 . voln(mvsiz), deltax(mvsiz), bid(1)
104
105 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ)
107 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
108 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
109 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
110 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
111 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
112 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz)
113
115 . hh(2,mvsiz),dd(9,mvsiz),gg(mvsiz),dm(9,mvsiz),gm(9,mvsiz),
116 . dgm(9,mvsiz),dg(9,mvsiz),g33(9,mvsiz),gama(mvsiz,6)
117
118 DOUBLE PRECISION
119 . VOLDP(MVSIZ)
120
121
122
123 IF (isorth>0) THEN
124 ikorth=1
125 ELSE
126 ikorth=0
127 ENDIF
128
129 nf1=nft+1
130
132 1 x, ixs(1,nf1),x1, x2,
133 2 x3, x4, y1, y2,
134 3 y3, y4, z1, z2,
135 4 z3, z4, gbuf%OFF, off,
136 5 gbuf%SMSTR,nc1, nc2, nc3,
137 6 nc4, ngl, mxt, ngeo,
138 7 k11, k12, k13, k14,
139 8 k22, k23, k24, k33,
140 9 k34, k44, nel, ismstr)
142 1 off, voln, ngl, deltax,
143 2 mxt, x1, x2, x3,
144 3 x4, y1, y2, y3,
145 4 y4, z1, z2, z3,
146 5 z4, px1, px2, px3,
147 6 px4, py1, py2, py3,
148 7 py4, pz1, pz2, pz3,
149 8 pz4, rx, ry, rz,
150 9 sx, sy, sz, tx,
151 a ty, tz, pm, voldp,
152 b nel, iformdt)
154 1 rx, ry, rz, sx,
155 2 sy, sz, tx, ty,
156 3 tz, e1x, e2x, e3x,
157 4 e1y, e2y, e3y, e1z,
158 5 e2z, e3z, nel)
159 IF (isorth == 0) THEN
160 DO i=1,nel
161 gama(i,1) = one
162 gama(i,2) = zero
163 gama(i,3) = zero
164 gama(i,4) = zero
165 gama(i,5) = one
166 gama(i,6) = zero
167 ENDDO
168 ELSE
170 1 rx, ry, rz, sx,
171 2 sy, sz, tx, ty,
172 3 tz, e1x, e2x, e3x,
173 4 e1y, e2y, e3y, e1z,
174 5 e2z, e3z, gbuf%GAMA,gama,
175 6 nel, irep)
177 + e1y,e2y ,e3y ,e1z,e2z,e3z)
178 ENDIF
179
180 IF (mtn>=28) THEN
181
182 ELSE
183 iadbuf = 1
184 ENDIF
185 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
186 . mtn ,ikorth ,ipm ,igeo ,gama ,
187 . bufmat(iadbuf) ,dm ,dgm ,gm ,
188 . jhbe ,gbuf%SIG ,bid ,ibid1 ,nel )
189 ibid = 0
190 ibid1 = 1
192 1 pm, mxt, hh, voln,
193 2 ibid, dd, gg, dg,
194 3 g33, dm, gm, dgm,
195 4 ikorth, gbuf%SIG,ibid1, ibid1,
196 5 ibid1, nel, jhbe, mtn)
198 1 px1, px2, px3, px4,
199 2 py1, py2, py3, py4,
200 3 pz1, pz2, pz3, pz4,
201 4 k11, k12, k13, k14,
202 5 k22, k23, k24, k33,
203 6 k34, k44, dd, gg,
204 7 dg, g33, ikorth, nel)
205
206
207
208 IF (ikgeo>0) THEN
210 1 gbuf%SIG,voln, px1, px2,
211 2 px3, px4, py1, py2,
212 3 py3, py4, pz1, pz2,
213 4 pz3, pz4, k11, k12,
214 5 k13, k14, k22, k23,
215 6 k24, k33, k34, k44,
216 7 nel)
217 ENDIF
218
220 1 1, nel, ixs(1,nf1), etag, off)
222 1 ixs(1,nf1),nel ,iddl ,ndof ,k_diag,
223 2 k_lt ,iadk ,jdik ,k11 ,k12 ,
224 3 k13 ,k14 ,k22 ,k23 ,k24 ,
225 4 k33 ,k34 ,k44 ,off )
226
227 RETURN
subroutine assem_s4(ixs, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, off)
subroutine mmats(jft, jlt, pm, mat, hh, mtn, iorth, ipm, igeo, gama, uparam, cc, cg, g33, jhbe, sig, eps, nppt, nel)
subroutine mmstifs(pm, mat, hh, vol, icsig, dd, gg, dg, g33, dm, gm, dgm, iorth, sig, ir, is, it, nel, jhbe, mtn)
subroutine morthlock3(lft, llt, gama, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine s4coork(x, ixs, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, offg, off, sav, nc1, nc2, nc3, nc4, ngl, mxt, ngeo, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, nel, ismstr)
subroutine s4cumg3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, dd, gg, dg, g33, iksup, nel)
subroutine s4derit3(off, det, ngl, deltax, mxt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, rx, ry, rz, sx, sy, sz, tx, ty, tz, pm, voldp, nel, iformdt)
subroutine s4kgeo3(sig, vol, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, nel)
subroutine s8eoff(jft, jlt, ixs, etag, off)
subroutine sorthdir3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, gama0, gama, nel, irep)
subroutine sreploc3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)