40 . ELBUF_TAB,SKIN_TENSOR, IPARG ,IXS ,X ,PM ,
41 4 IPARTS ,IPM ,IGEO ,IXS10 ,IXS16 , IXS20 ,
42 5 IS_WRITTEN_SKIN ,H3D_PART,INFO1 ,KEYWORD ,NSKIN ,
43 6 IAD_ELEM ,FR_ELEM , WEIGHT , TAG_SKINS6 )
53#include "implicit_f.inc"
66 . skin_tensor(3,*),pm(npropm,*), x(3,*)
67 INTEGER IPARG(NPARG,*),
68 . IXS(NIXS,*),IPM(NPROPMI,*),IPARTS(*),
69 . ixs10(6,*) ,ixs16(8,*) ,ixs20(12,*) ,
70 . igeo(npropgi,*),is_written_skin(*),
71 . h3d_part(*),info1,nskin,tag_skins6(*),iad_elem(2,*),fr_elem(*),weight(*)
72 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
73CHARACTER(LEN=NCHARLINE100):: KEYWORD
79 INTEGER I,I1,II,J,LENR,NEL,NFT,N
80 INTEGER IOK_PART(MVSIZ),IS_WRITTEN_TENSOR(MVSIZ),TAG_SKIN_ND(NUMNOD)
82 INTEGER IXSKIN(7,NUMSKIN),ISKIN(MVSIZ),IXSK(5,MVSIZ),IDEB,ie
84 TYPE(g_bufel_) ,
POINTER :: GBUF
85 TYPE(L_BUFEL_) ,
POINTER :: LBUF
86 TYPE(buf_lay_) ,
POINTER :: BUFLY
87 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGPS
89 . ,
DIMENSION(:,:),
ALLOCATABLE :: aflu, vflu,
VALUE
90 INTEGER FACES(4,6),NS,K1,PWR(7),LL
91 DATA pwr/1,2,4,8,16,32,64/
100 ALLOCATE(aflu(3,numnod),vflu(3,numnod
101 ALLOCATE(itagps(numnod))
107 tag_skin_nd(1:numnod) = 0
111 IF(mod(ll,pwr(jj+1))/pwr(jj) /= 0)cycle
113 ns=ixs(faces(k1,jj)+1,i)
119 IF (keyword ==
'TENS/STRESS/OUTER')
THEN
121 . ixs ,ixs10 ,ixs16 ,ixs20 ,
122 . x ,itagps ,pm ,tag_skin_nd)
125 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
134 IF (itagps(n)>0) value(j,n)=vflu(j,n)/itagps(n)
139 IF (itagps(n)>0) value(j,n)=aflu(j-3,n)/itagps(n)
142 ELSEIF (keyword ==
'TENS/STRAIN/OUTER')
THEN
144 . ixs ,ixs10 ,ixs16 ,ixs20 ,x ,
145 . itagps ,pm ,tag_skin_nd
147 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
156 IF (itagps(n)>0) value(j,n)=vflu(j,n)/itagps(n)
162 IF (itagps(n)>0) value(j,n)=half*aflu(j-3,n)/itagps(n)
168 ixskin(1:7,1:numskin)=0
170 . ixskin ,tag_skins6,nskin )
172 DO i=nft+1,nskin,mvsiz
173 nel =
min(nskin-ideb,mvsiz)
176 ixsk(1:5,ii) = ixskin(1:5,n)
180 IF (keyword ==
'TENS/STRAIN/OUTER')
THEN
183 skin_tensor(1:3,n) = evar(1:3,ii)
184 IF(h3d_part(ixsk(1,ii)) == 1) is_written_skin(n) = 1
186 ELSEIF (keyword ==
'TENS/STRESS/OUTER')
THEN
189 skin_tensor(1:3,n) = evar(1:3,ii)
190 IF(h3d_part(ixsk(1,ii)) == 1) is_written_skin(n) = 1
195 DEALLOCATE(aflu,vflu,
VALUE,itagps)
subroutine h3d_sol_skin_tensor(elbuf_tab, skin_tensor, iparg, ixs, x, pm, iparts, ipm, igeo, ixs10, ixs16, ixs20, is_written_skin, h3d_part, info1, keyword, nskin, iad_elem, fr_elem, weight, tag_skins6)