54 interfacesfelemtract, &
55 interfacesfnumelems, interfacesfnumnodes, &
56 interfacesfelemconn, &
57 mapnodesf,lwrbnd,uppbnd,coor)
64 INTEGER :: lwrbnd,uppbnd
66 INTEGER :: interfacesfnumelems,interfacesfnumnodes
67 INTEGER,
DIMENSION(1:UppBnd,1:InterfaceSFNumElems) :: interfacesfelemconn
68 INTEGER,
DIMENSION(1:InterfaceSFNumNodes) :: mapnodesf
69 REAL*8,
DIMENSION(1:3, 1:InterfaceSFNumElems) :: interfacesfelemtract
73 REAL*8,
DIMENSION(1:3*numnp) :: r_ex
78 INTEGER,
DIMENSION(1:3) :: triconn
79 REAL*8,
DIMENSION(1:3) :: uniftract
82 REAL*8,
DIMENSION(1:3,1:numnp) :: coor
91 REAL*8 :: x1x0, y1y0, z1z0
92 REAL*8 :: x2x0, y2y0, z2z0
95 REAL*8 :: xnorm, area,
at
99 DO i = 1, interfacesfnumelems
103 triconn(1:3) = interfacesfelemconn(1:3,
i)
109 x0p = coor(1,mapnodesf(triconn(1)))
110 y0p = coor(2,mapnodesf(triconn(1)))
111 z0p = coor(3,mapnodesf(triconn(1)))
113 x1p = coor(1,mapnodesf(triconn(2)))
114 y1p = coor(2,mapnodesf(triconn(2)))
115 z1p = coor(3,mapnodesf(triconn(2)))
117 x2p = coor(1,mapnodesf(triconn(3)))
118 y2p = coor(2,mapnodesf(triconn(3)))
119 z2p = coor(3,mapnodesf(triconn(3)))
133 x3p = y1y0 * z2z0 - z1z0 * y2y0
134 y3p = z1z0 * x2x0 - x1x0 * z2z0
135 z3p = x1x0 * y2y0 - y1y0 * x2x0
139 xnorm =
sqrt( x3p*x3p + y3p*y3p + z3p*z3p )
145 uniftract(1:3) = interfacesfelemtract(1:3,
i)*area/3.d0
149 triconn(1:3) = interfacesfelemconn(lwrbnd:uppbnd,
i)
152 nz = mapnodesf(triconn(
j))*3
155 r_ex(nx) = r_ex(nx) + uniftract(1)
156 r_ex(ny) = r_ex(ny) + uniftract(2)
157 r_ex(nz) = r_ex(nz) + uniftract(3)
subroutine tractload(R_ex, numnp, InterfaceSFElemTract, InterfaceSFNumElems, InterfaceSFNumNodes, InterfaceSFElemConn, MapNodeSF, LwrBnd, UppBnd, coor)