41 1 IXS10,IXS16,IXS20,X ,DR ,
42 2 WA,WAP0 ,IPARTS, IPART_STATE,
43 3 STAT_INDXS,IPART,SIZP0)
50 use element_mod ,
only : nixs
54#include "implicit_f.inc"
69#include "vect01_c.inc"
71#include "tabsiz_c.inc"
76 INTEGER IXS(,*),IXS10(6,*),IXS16(8,*),(12,*),
77 . IPARG(NPARG,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),
78 . iparts(*), ipart_state(*), stat_indxs(*),ipart(lipart1,*)
81 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
82 double precision WA(*),(*)
86 INTEGER I, N, J, K, JJ, LEN, ISOLNOD0,
87 . ISOLNOD,ISTRAIN,NG, NEL, MLW, ID, IPRT0, IPRT,IE,
88 . NPG,IPG,IPT,IL,IR,IS,IT,IPID,PID,IOFF,KK(8),NC(20),
90 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
91 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
92 X0(MVSIZ,20), Y0(MVSIZ,20), Z0(MVSIZ,20)
93 CHARACTER*100 DELIMIT,LINE
95 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
97 ./
'----7----|----8----|----9----|----10---|'/
100 TYPE(g_bufel_) ,
POINTER :: GBUF
102 CALL MY_ALLOC(PTWA,STAT_NUMELS)
103 ALLOCATE(ptwa_p0(0:
max(1,stat_numels_g)))
106 IF(stat_numels==0)
GOTO 200
112 isolnod = iparg(28,ng)
117 istrain = iparg(44,ng)
127 2 mlw ,nel ,nft ,iad ,ity ,
128 3 npt ,jale ,ismstr ,jeul ,jtur ,
129 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
130 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
131 6 irep ,iint ,igtyp ,israt ,isrot ,
132 7 icsen ,isorth ,isorthg ,ifailure,jsms )
133 IF (jhbe==17.AND.iint==2) jhbe = 18
134 IF (jhbe==1.AND.iint==3) jhbe = 5
137 IF (isolnod0==4 .AND. isrot==1)
THEN
141 gbuf => elbuf_tab(ng)%GBUF
145 IF(ismstr==1.OR.ismstr>=10)
THEN
146 CALL getconfig(lft,llt,isolnod,ismstr,x0,y0,z0,
152 IF(ipart_state(iprt)==0)cycle
154 wa(jj+ 2)= ixs(nixs,n)
158 wa(jj+ 6)= gbuf%OFF(i)
161 IF(ismstr==1.OR.ismstr>=10)
THEN
166 ELSEIF(isolnod0== 4)
THEN
171 ELSEIF(isolnod == 6)
THEN
178 ELSEIF(isolnod0== 10)
THEN
185 nc(j+4) = ixs10(j,nn1)
187 ELSEIF(isolnod == 16)
THEN
189 nn1 = n - (numels8+numels10+numels20)
191 nc(j+8) = ixs16(j,nn1)
193 ELSEIF(isolnod == 20)
THEN
195 nn1 = n - (numels8+numels10)
197 nc(j+8) = ixs20(j,nn1)
244 IF(ispmd == 0.AND.len>0)
THEN
253 ioff = nint(wap0(j + 6))
254 iprt = nint(wap0(j + 1))
255 ismstr = nint(wap0(j + 5))
256 IF (ioff >= 1.AND.(ismstr==1.OR.ismstr>=10))
THEN
257 IF(iprt /= iprt0)
THEN
258 IF (izipstrs == 0)
THEN
259 WRITE(iugeo,
'(A)') delimit
260 WRITE(iugeo,
'(A)')
'/INIBRI/EREF'
262 .
'#------------------------ REPEAT -------------------------'
264 .
'# BRICKID ISOLNOD ISOLID ISMSTR NSROT'
266 .
'# REPEAT K=1,ISOLNOD ',
269 .
'#------------------------ REPEAT -------------------------'
270 WRITE(iugeo,
'(A)') delimit
272 WRITE(line,
'(A)') delimit
274 WRITE(line,
'(A)')
'/INIBRI/EREF'
277 .
'#------------------------ REPEAT -------------------------'
280 .
'# BRICKID ISOLNOD ISOLID ISMSTR NSROT'
283 .
'# REPEAT K=1,ISOLNOD '
285 WRITE(line,
'(A)')
'# X, Y, Z'
288 .
'# REPEAT K=1,NSROT '
290 WRITE(line,
'(A)')
'# RX, RY, RZ'
293 .
'#------------------------ REPEAT -------------------------'
295 WRITE(line,
'(A)') delimit
300 id = nint(wap0(j + 2))
301 isolnod = nint(wap0(j + 3))
302 jhbe = nint(wap0(j + 4))
303 nsrot = nint(wap0(j + 7))
307 IF (izipstrs == 0)
THEN
308 WRITE(iugeo,
'(I10,10X,4I10)') id,isolnod,jhbe,ismstr,nsrot
310 WRITE(line,
'(I10,10X,4I10)') id,isolnod,jhbe,ismstr,nsrot
313 DO ipt = 1, isolnod+nsrot
314 IF (izipstrs == 0)
THEN
315 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,3)
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
subroutine stat_s_eref(elbuf_tab, iparg, ipm, igeo, ixs, ixs10, ixs16, ixs20, x, dr, wa, wap0, iparts, ipart_state, stat_indxs, ipart, sizp0)