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