30
31
32
33#include "implicit_f.inc"
34
35
36
37#include "mvsiz_p.inc"
38
39
40
41#include "param_c.inc"
42
43
44
45 INTEGER FXBELM(*), IPARG(NPARG,*), IXT(NIXT,*), NELT
47 . fxbsig(*), x(3,*), pm(npropm
48 . geo(npropg,*)
49
50
51
52 INTEGER IG, OFFSET, LAST, NFT, NFS, I, NG, IEL,
53 . MAT, PROP, N1, N2
55 .
area, e, x1, y1, z1, x2, y2, z2, l0, d11, d12, d13,
56 . d21, d22, d23, xc1, yc1, zc1, xc2, yc2, zc2, lc
57
58
59 DO ig=1,nelt,mvsiz
60 offset=ig-1
61 last=
min(mvsiz,nelt-offset)
62 nft=offset*7
63 nfs=offset*2
64 DO i=1,last
65 ng=fxbelm(nft+7*(i-1)+1)
66 iel=iparg(3,ng)+fxbelm(nft+7*(i-1)+2)
67 mat=ixt(1,iel)
68 prop=ixt(4,iel)
70 e=pm(20,mat)
71 x1=x(1,ixt(2,iel))
72 y1=x(2,ixt(2,iel))
73 z1=x(3,ixt(2,iel))
74 x2=x(1,ixt(3,iel))
75 y2=x(2,ixt(3,iel))
76 z2=x(3,ixt(3,iel))
77 l0=sqrt((x2-x1)**2+(y2-y1)**2+(z2-z1)**2)
78 n1=fxbelm(nft+7*(i-1)+3)
79 n2=fxbelm(nft+7*(i-1)+4)
80 d11=fxbmod(6*(n1-1)+1)
81 d12=fxbmod(6*(n1-1)+2)
82 d13=fxbmod(6*(n1-1)+3)
83 d21=fxbmod(6*(n2-1)+1)
84 d22=fxbmod(6*(n2-1)+2)
85 d23=fxbmod(6*(n2-1)+3)
86 xc1=x1+d11
87 yc1=y1+d12
88 zc1=z1+d13
89 xc2=x2+d21
90 yc2=y2+d22
91 zc2=z2+d23
92 lc=sqrt((xc2-xc1)**2+(yc2-yc1)**2+(zc2-zc1)**2)
93
94 fxbsig(nfs+2*(i-1)+1)=e*
area*(lc-l0)
95 fxbsig(nfs+2*(i-1)+2)=half*e*
area*(lc-l0)**2
96 ENDDO
97 ENDDO
98
99 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)