42 . ELBUF_TAB, NODAL_TENSOR, IFUNC , IPARG , GEO ,
43 . MASS , PM , ANIN , ITAB , NODE_ID ,
44 . INFO1 , INFO2 , IS_WRITTEN_NODE, H3D_PART , IPARTC ,
45 . IPARTTG , IXC , IXTG , TEMP , IFLOW ,
46 . RFLOW , IXS , IXQ , NV46,MONVOL, VOLMON ,
47 . DIAG_SMS , MS , PDAMA2 , X ,
48 . STIFR , STIFN , A , D , V ,
49 . CONT , FCONTG , FINT , FEXT , KEYWORD ,
50 . BUFMAT , IXS10 , IXS16 , IXS20 , IXT ,
51 . IXP , IXR , IAD_ELEM , FR_ELEM , WEIGHT ,
52 . IPARTSP , IPARTR , IPARTP , IPARTT , IPARTS ,
53 . IPARTQ , KXSP , N_H3D_PART_LIST)
63#include "implicit_f.inc"
74 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
76 . NODAL_TENSOR(*),MASS(*),GEO(NPROPG,*),
77 . PM(NPROPM,*),ANIN(*),TEMP(*),RFLOW(*),VOLMON(*), DIAG_SMS(*),MS(*),
78 . PDAMA2(2,*),X(*),STIFR(*),STIFN(*),A(3,*),D(3,*),V(3,*),
79 . CONT(3,*),FCONTG(3,*), FINT(3,*), FEXT(3,*),(*)
80 INTEGER IPARG(NPARG,*),IFUNC,NODE_ID(*),
81 . INFO1,INFO2,IS_WRITTEN_NODE(*),H3D_PART(*),ITAB(*)
86CHARACTER(LEN=NCHARLINE100) :: KEYWORD
87 INTEGER ,
INTENT(IN) :: IPARTSP(NUMSPH),IPARTR(NUMELR),IPARTP(NUMELP),
88 . IPARTT(NUMELT),IPARTS(NUMELS),IPARTQ()
89 INTEGER ,
INTENT(IN) :: KXSP(NISP,NUMSPH)
90 INTEGER ,
INTENT(IN) :: N_H3D_PART_LIST
95 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGPS, IOK_PART
97 . ,
DIMENSION(:,:),
ALLOCATABLE :: AFLU, VFLU,VALUES
99 . ,
DIMENSION(:),
ALLOCATABLE :: vgps
102 ALLOCATE(aflu(3,numnod))
103 ALLOCATE(vflu(3,numnod))
104 ALLOCATE(itagps(numnod))
105 ALLOCATE(vgps(numnod))
106 ALLOCATE(values(6,numnod))
107 ALLOCATE(iok_part(numnod))
110 values(1:6,1:numnod) = zero
115 is_written_node(i) = 0
118 IF(n_h3d_part_list .NE. 0)
THEN
120 IF ( h3d_part(ipartsp(i)) == 1)
THEN
121 IF(kxsp(2,i) > 0 )iok_part(kxsp(2,i)) = 1
126 IF ( h3d_part(ipartr(i)) == 1)
THEN
128 IF(ixr(j,i) > 0 )iok_part(ixr(j,i)) = 1
134 IF ( h3d_part(ipartp(i)) == 1)
THEN
136 IF(ixp(j,i) > 0 )iok_part(ixp(j,i)) = 1
142 IF ( h3d_part(ipartt(i)) == 1)
THEN
144 IF(ixt(j,i) > 0 )iok_part(ixt(j,i)) = 1
150 IF ( h3d_part(ipartc(i)) == 1)
THEN
152 IF(ixc(j,i) > 0 )iok_part(ixc(j,i)) = 1
158 IF ( h3d_part(iparttg(i)) == 1)
THEN
160 IF(ixtg(j,i) > 0 )iok_part(ixtg(j,i)) = 1
166 IF ( h3d_part(iparts(i)) == 1)
THEN
168 IF(ixs(j,i) > 0 )iok_part(ixs(j,i)) = 1
174 IF ( h3d_part(ipartq(i)) == 1)
THEN
176 IF(ixq(j,i) > 0 )iok_part(ixq(j,i)) = 1
181 iok_part(1:numnod) = 1
185 IF(keyword ==
'GPS')
THEN
196 CALL tensgps3(elbuf_tab,vflu ,aflu ,iparg ,geo ,
197 . ixs ,ixs10 ,ixs16 ,ixs20 ,ixq ,
198 . ixc ,ixtg ,ixt ,ixp ,ixr ,
202 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
211 IF (itagps(n)>0) values(j,n)=vflu(j,n)/itagps(n)
216 IF (itagps(n)>0) values(j,n)=aflu(j-3,n)/itagps(n)
220 ELSEIF(keyword ==
'GPS1')
THEN
231 CALL tensgps1(vflu ,aflu ,iparg ,geo ,
232 . ixs ,ixs10 ,ixs16 ,ixs20 ,ixq ,
233 . ixc ,ixtg ,ixt ,ixp ,ixr ,
234 . x ,itagps ,elbuf_tab)
237 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
247 IF (itagps(n)>0) values(j,n)=vflu(j,n)/itagps(n)
252 IF (itagps(n)>0) values(j
256 ELSEIF(keyword ==
'GPS2')
THEN
267 CALL tensgps2(vflu ,aflu ,iparg ,geo ,
268 . ixs ,ixs10 ,ixs16 ,ixs20 ,ixq ,
269 . ixc ,ixtg ,ixt ,ixp ,ixr ,
270 . x ,vgps ,elbuf_tab )
273 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
283 IF (vgps(n)>zero) values(j,n)=vflu(j,n)/vgps(n)
288 IF (vgps(n)>zero) values(j,n)=aflu(j-3,n)/vgps(n)
292 ELSEIF(keyword ==
'GPSTRAIN')
THEN
304 . ixs ,ixs10 ,ixs16 ,ixs20 ,ixq ,
305 . ixc ,ixtg ,ixt ,ixp ,ixr ,
309 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
319 IF (itagps(n)>0) values(j,n)=vflu(j,n)/itagps(n)
324 IF (itagps(n)>0) values(j,n)=aflu(j-3,n)/itagps(n)
328 ELSEIF(keyword ==
'GPS/TMAX')
THEN
332 ELSEIF(keyword ==
'GPS/TMIN')
THEN
336 ELSEIF(keyword ==
'GPSTRAIN/TMAX')
THEN
340 ELSEIF(keyword ==
'GPSTRAIN/TMIN')
THEN
subroutine h3d_nodal_tensor(elbuf_tab, nodal_tensor, ifunc, iparg, geo, mass, pm, anin, itab, node_id, info1, info2, is_written_node, h3d_part, ipartc, iparttg, ixc, ixtg, temp, iflow, rflow, ixs, ixq, nv46, monvol, volmon, diag_sms, ms, pdama2, x, stifr, stifn, a, d, v, cont, fcontg, fint, fext, keyword, bufmat, ixs10, ixs16, ixs20, ixt, ixp, ixr, iad_elem, fr_elem, weight, ipartsp, ipartr, ipartp, ipartt, iparts, ipartq, kxsp, n_h3d_part_list)