37 . IXC,IXTG,IPARTC,IPARTTG,IPART_STATE,
38 . NODTAG,STAT_INDXC,STAT_INDXTG,LENGC,LENGTG,
39 . IPARG ,ELBUF_TAB,THKE,IDEL)
49#include "implicit_f.inc"
64 INTEGER ITAB(*), ITABG(*), LENG, IPART(LIPART1,*),
65 . (NPROPGI,*), IXC(NIXC,*), IXTG(NIXTG,*),
66 . IPARTC(*), IPARTTG(*), IPART_STATE(*),
67 . nodtag(*), stat_indxc(*), stat_indxtg(*),
68 . lengc, lengtg, iparg(nparg,*),idel
69 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
75 INTEGER I, N, JJ, IPRT, BUF, IPRT0, K, II
76 INTEGER NG, NEL, NFT, LFT, , ITY, LEN, ITHK, MLW,IOFF
78 INTEGER THK_LEN,THK0_LEN
79 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IADD
80 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IADG
81 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
82 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NPGLOB
83 INTEGER,
DIMENSION(:,:),
ALLOCATABLE
84DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: THK
85 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: THK0
86 TYPE(g_bufel_) ,
POINTER :: GBUF
88 CALL my_alloc(np,
max(7*numelc,6*numeltg))
89 CALL my_alloc(npglob,
max(7*lengc,6*lengtg))
90 CALL my_alloc(clef,2,
max(numelcg,numeltgg))
91 CALL my_alloc(iadg,nspmd,npart)
92 CALL my_alloc(iadd,npart+1)
96 thk_len =
max(1,
max(numelc,numeltg))
97 ALLOCATE(thk(thk_len))
99 thk0_len =
max(1,
max(numelcg,numeltgg))
103 ALLOCATE(thk0(thk0_len))
108 npglob(1:
max(7*lengc,6*lengtg)) = 0
117 gbuf => elbuf_tab(ng)%GBUF
126 IF(ipart_state(iprt)==0)cycle
128 np(jj+1) = ixc(nixc,n)
129 np(jj+2) = itab(ixc(2,n))
130 np(jj+3) = itab(ixc(3,n))
131 np(jj+4) = itab(ixc(4,n))
132 np(jj+5) = itab(ixc(5,n))
134 np(jj+7) = iabs(nint(gbuf%OFF(i)))
136 IF (mlw /= 0 .AND. mlw /= 13)
THEN
138 thk(ii) = gbuf%THK(i)
147 stat_numelc =stat_numelc+1
159 . iadg,npglob,stat_indxc)
167 clef(1,n)=npglob(7*(n-1)+7)
168 clef(2,n)=npglob(7*(n-1)+1)
170 CALL my_orders(0,work,clef,stat_indxc,stat_numelc_g,2)
178 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
179 IF(iprt /= iprt0)
THEN
180 WRITE(iugeo,
'(A,I10)')
'/SHELL/',ipart(4,iprt)
182 .
'# SHELLID NOD1 NOD2 NOD3 NOD4 THK'
185 WRITE(iugeo,
'(5I10,30X,1PE20.13)')
187 . npglob(jj+2),npglob(jj+3),npglob(jj+4),npglob(jj+5),thk0(k)
203 gbuf => elbuf_tab(ng)%GBUF
213 IF(ipart_state(iprt)==0)cycle
215 np(jj+1) = ixtg(nixtg,n)
216 np(jj+2) = itab(ixtg(2,n))
217 np(jj+3) = itab(ixtg(3,n))
218 np(jj+4) = itab(ixtg(4,n))
220 np(jj+6) = iabs(nint(gbuf%OFF(i)))
222 IF (mlw /= 0 .AND. mlw /= 13)
THEN
224 thk(ii) = gbuf%THK(i)
234 stat_numeltg =stat_numeltg+1
245 . iadg,npglob,stat_indxtg)
250 DO n=1,stat_numeltg_g
252 clef(1,n)=npglob(6*(n-1)+6)
253 clef(2,n)=npglob(6*(n-1)+1)
255 CALL my_orders(0,work,clef,stat_indxtg,stat_numeltg_g,2)
258 DO n=1,stat_numeltg_g
263 IF(idel==0.OR.(idel==1.AND.ioff >= 1))
THEN
264 IF(iprt /= iprt0)
THEN
265 WRITE(iugeo,
'(A,I10)')
'/SH3N/',ipart(4,iprt)
267 .
'# SH3NID NOD1 NOD2 NOD3 THK'
270 WRITE(iugeo,
'(4I10,40X,1PE20.13)')
272 . 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)