36 4 ELBUF_TAB,IPARG,PM ,NTAG ,TEMP ,
37 5 TSTIF ,E ,IAD_ELEM,FR_ELEM )
46#include "implicit_f.inc"
57 INTEGER (NPARG,*), NELW(*) ,IXS(NIXS,*),
58 . NTAG(*), IAD_ELEM(2,*), FR_ELEM(*)
60 . pm(npropm,*), x(3,*),e(*),
62 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
66 INTEGER I, II, N1, N2, N3, N4, IE, NG, MAT, IFA, LENR,
69 . x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4,
70 . nx, ny, nz, dx, dy, dz, dd, grad, phi, tempe, vol,
72 INTEGER :: LLT ,NFT ,MTN ,IAD ,ITY ,NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,JTHE ,JLAG ,JMULT ,JHBE
73 INTEGER :: JIVF, NVAUX, JPOR, JCVT, JCLOSE, JPLASOL, IREP, IINT, IGTYP
74 INTEGER :: ISORTH, ISORTHG, ISRAT, ISROT, ICSEN, IFAILURE, JSMS
76 TYPE(g_bufel_) ,
POINTER :: GBUF
78 DATA iface/ 2, 3, 4, 5,
91 ifa = nelw(ie) - 10*ii
92 n1 = ixs(iface(1,ifa),ii)
93 n2 = ixs(iface(2,ifa),ii)
94 n3 = ixs(iface(3,ifa),ii)
95 n4 = ixs(iface(4,ifa),ii)
96 IF(ntag(n1)>0) ntag(n1) = ntag(n1) + 1
97 IF(ntag(n2)>0) ntag(n2) = ntag(n2) + 1
98 IF(ntag(n3)>0) ntag(n3) = ntag(n3) + 1
99 IF(ntag(n4)>0) ntag(n4) = ntag(n4) + 1
105 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
113 ifa = nelw(ie) - 10*ii
114 n1 = ixs(iface(1,ifa),ii)
115 n2 = ixs(iface(2,ifa),ii)
116 n3 = ixs(iface(3,ifa),ii)
117 n4 = ixs(iface(4,ifa),ii)
118 IF(ntag(n1)+ntag(n2)+ntag(n3)+ntag(n4)>0)
THEN
122 DO 200 ng=ii/nvsiz,ngroup
124 2 mtn ,llt ,nft ,iad ,ity ,
125 3 npt ,jale ,ismstr ,jeul ,jtur ,
126 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
127 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
128 6 irep ,iint ,igtyp ,israt ,isrot ,
129 7 icsen ,isorth ,isorthg ,ifailure,jsms )
131 IF(ii>nft+llt)
GO TO 200
132 IF(iparg(8,ng)==1)
GO TO 600
133 IF(jthe/=1)
GO TO 600
139 gbuf => elbuf_tab(ng)%GBUF
148 IF(ntag(n1)>1) ee = ee + e(n1) / (ntag(n1)-1)
149 IF(ntag(n2)>1) ee = ee + e(n2) / (ntag(n2)-1)
150 IF(ntag(n3)>1) ee = ee + e(n3) / (ntag(n3)-1)
151 IF(ntag(n4)>1) ee = ee + e(n4) / (ntag(n4)-1)
174 nx=(y3-y1)*(z2-z4) - (z3-z1)*(y2-y4)
175 ny=(z3-z1)*(x2-x4) - (x3-x1)*(z2-z4)
176 nz=(x3-x1)*(y2-y4) - (y3-y1)*(x2-x4)
180 dx = two*(x1 + x2 + x3 + x4)
181 . -x(1,ixs(2,ii))-x(1,ixs(3,ii))
182 . -x(1,ixs(4,ii))-x(1,ixs(5,ii))
183 . -x(1,ixs(6,ii))-x(1,ixs(7,ii))
184 . -x(1,ixs(8,ii))-x(1,ixs(9,ii))
186 dy = two*(y1 + y2 + y3 + y4)
187 . -x(2,ixs(2,ii))-x(2,ixs(3,ii))
188 . -x(2,ixs(4,ii))-x(2,ixs(5,ii))
189 . -x(2,ixs(6,ii))-x(2,ixs(7,ii))
190 . -x(2,ixs(8,ii))-x(2,ixs(9,ii))
192 dz = two*(z1 + z2 + z3 + z4)
193 . -x(3,ixs(2,ii))-x(3,ixs(3,ii))
194 . -x(3,ixs(4,ii))-x(3,ixs(5,ii))
195 . -x(3,ixs(6,ii))-x(3,ixs
196 . -x(3,ixs(8,ii))-x(3,ixs(9,ii))
202 grad = four*(dx*nx+dy*ny+dz*nz) /
max(em15,dd)
208 IF(tempe<=pm(80,mat))
THEN
209 coef=pm(75,mat)+pm(76,mat)*tempe
211 coef=pm(77,mat)+pm(78,mat)*tempe
215 phi = tstife*tstif*(temp-tempe)
216 2 /
max(em20,(tstife+tstif))
218 + (
min(ntag(n1),1) +
min(ntag(n2),1)
219 + +
min(ntag(n3),1) +
min(ntag(n4),1) )
224 phi = (phi + ee) /
max(vol,em20)
225 gbuf%EINT(i) = gbuf%EINT(i) + phi
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)