38 . IXC,IXTG,IPARTC,IPARTTG,IPART_STATE,
39 . NODTAG,STAT_INDXC,STAT_INDXTG,LENGC,LENGTG,
40 . IPARG ,ELBUF_TAB,THKE,IDEL)
47 use element_mod ,
only : nixc,nixtg
51#include "implicit_f.inc"
66 INTEGER ITAB(*), ITABG(*), LENG, IPART(LIPART1,*),
67 . IGEO(NPROPGI,*), IXC(NIXC,*), IXTG(NIXTG,*),
68 . IPARTC(*), IPARTTG(*), IPART_STATE(*),
69 . nodtag(*), stat_indxc(*), stat_indxtg(*),
70 . lengc, lengtg, iparg(nparg,*),idel
71 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
77 INTEGER I, N, JJ, IPRT, IPRT0, K, II
78 INTEGER NG, NEL, NFT, LFT, LLT, ITY, LEN, ITHK, MLW,IOFF
80 INTEGER THK_LEN,THK0_LEN
81 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IADD
82 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IADG
83 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
84 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NPGLOB
85 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: CLEF
86 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: THK
87 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: THK0
88 TYPE() ,
POINTER :: GBUF
90 CALL my_alloc(np,
max(7*numelc,6*numeltg))
91 CALL my_alloc(npglob,
max(7*lengc,6*lengtg
92 CALL my_alloc(clef,2,
max(numelcg,numeltgg))
93 CALL my_alloc(iadg,nspmd,npart)
94 CALL my_alloc(iadd,npart+1)
98 thk_len =
max(1,
max(numelc,numeltg))
99 ALLOCATE(thk(thk_len))
101 thk0_len =
max(1,
max(numelcg,numeltgg))
105 ALLOCATE(thk0(thk0_len))
110 npglob(1:
max(7*lengc,6*lengtg)) = 0
119 gbuf => elbuf_tab(ng)%GBUF
128 IF(ipart_state(iprt)==0)cycle
130 np(jj+1) = ixc(nixc,n)
131 np(jj+2) = itab(ixc(2,n))
132 np(jj+3) = itab(ixc(3,n))
133 np(jj+4) = itab(ixc(4,n))
134 np(jj+5) = itab(ixc(5,n))
136 np(jj+7) = iabs(nint(gbuf%OFF(i)))
138 IF (mlw /= 0 .AND. mlw /= 13)
THEN
140 thk(ii) = gbuf%THK(i)
149 stat_numelc =stat_numelc+1
161 . iadg,npglob,stat_indxc)
169 clef(1,n)=npglob(7*(n-1)+7)
170 clef(2,n)=npglob(7*(n-1)+1)
172 CALL my_orders(0,work,clef,stat_indxc,stat_numelc_g,2)
180 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
181 IF(iprt /= iprt0)
THEN
182 WRITE(iugeo,
'(A,I10)')
'/SHELL/',ipart(4,iprt)
184 .
'# SHELLID NOD1 NOD2 NOD3 NOD4 THK'
187 WRITE(iugeo,
'(5I10,30X,1PE20.13)')
189 . npglob(jj+2),npglob(jj+3),npglob(jj+4),npglob(jj+5),thk0(k)
205 gbuf => elbuf_tab(ng)%GBUF
215 IF(ipart_state(iprt)==0)cycle
217 np(jj+1) = ixtg(nixtg,n)
218 np(jj+2) = itab(ixtg(2,n))
219 np(jj+3) = itab(ixtg(3,n))
220 np(jj+4) = itab(ixtg(4,n))
222 np(jj+6) = iabs(nint(gbuf%OFF(i)))
224 IF (mlw /= 0 .AND. mlw /= 13)
THEN
226 thk(ii) = gbuf%THK(i)
236 stat_numeltg =stat_numeltg+1
247 . iadg,npglob,stat_indxtg)
252 DO n=1,stat_numeltg_g
254 clef(1,n)=npglob(6*(n-1)+6)
255 clef(2,n)=npglob(6*(n-1)+1)
257 CALL my_orders(0,work,clef,stat_indxtg,stat_numeltg_g,2)
260 DO n=1,stat_numeltg_g
265 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
266 IF(iprt /= iprt0)
THEN
267 WRITE(iugeo,
'(A,I10)')
'/SH3N/',ipart(4,iprt)
269 .
'# SH3NID NOD1 NOD2 NOD3 THK'
272 WRITE(iugeo,
'(4I10,40X,1PE20.13)')
274 . npglob(jj+2),npglob(jj+3),npglob(jj+4),thk0(k)
subroutine stat_shel_spmd(itab, itabg, leng, ipart, igeo, ixc, ixtg, ipartc, iparttg, ipart_state, nodtag, stat_indxc, stat_indxtg, lengc, lengtg, iparg, elbuf_tab, thke, idel)