38 2 IXTG ,WA,WAP0 ,IPARTC, IPARTTG,
39 3 IPART_STATE,STAT_INDXC,STAT_INDXTG,THKE,SIZP0)
45 use element_mod ,
only : nixc,nixtg
49#include "implicit_f.inc"
64 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
65 . iparg(nparg,*),ipm(npropmi,*),igeo(npropgi,*),
66 . ipartc(*), iparttg(*), ipart_state(*),
67 . stat_indxc(*), stat_indxtg(*)
70 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
71 double precision WA(*),WAP0(*)
75 INTEGER I,J,K,N,II,JJ,LEN, , NG, NEL, NFT, ITY, LFT, NPT,
76 . LLT, MLW, ISTRAIN,ID, IPRT0, IPRT,NPG,IPG,IE,NPTR,NPTS,G_STRA,
78 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
79 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
81 . thk, em, eb, h1, h2, h3
82 CHARACTER*100 DELIMIT,LINE
83 TYPE(G_BUFEL_) ,
POINTER :: GBUF
87 .
DIMENSION(:),
POINTER :: strain
90 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
92 ./
'----7----|----8----|----9----|----10---|'/
96 CALL my_alloc(ptwa,
max(stat_numelc ,stat_numeltg))
97 ALLOCATE(ptwa_p0(0:
max(1,stat_numelc_g,stat_numeltg_g)))
100 IF(stat_numelc==0)
GOTO 200
106 gbuf => elbuf_tab(ng)%GBUF
112 nptr = elbuf_tab(ng)%NPTR
113 npts = elbuf_tab(ng)%NPTS
128 IF(ipart_state(iprt)==0)cycle
131 IF (mlw /= 0 .AND. mlw /= 13)
THEN
145 IF (mlw /= 0 .AND. mlw /= 13)
THEN
155 IF (mlw == 0 .or. mlw == 13)
THEN
162 ELSEIF (g_stra /= 0)
THEN
170 k = (ipg-1)*nel*g_stra
173 wa(jj) = strain(kk(j)+i+k)
204 IF(ispmd==0.AND.len>0)
THEN
214 ioff = nint(wap0(j + 1))
216 iprt = nint(wap0(j + 2))
217 IF(iprt /= iprt0)
THEN
218 IF (izipstrs == 0)
THEN
219 WRITE(iugeo,
'(A)') delimit
220 WRITE(iugeo,
'(A)')
'/INISHE/STRA_F'
222 .
'#------------------------ REPEAT --------------------------'
224 .
'# SHELLID NPT NPG THK'
225 WRITE(iugeo,
'(A/A/A)')
226 .
'# REPEAT I=1,NPG :',
227 .
'# E1, E2, E12, E23, E31,',
230 .
'#---------------------- END REPEAT ------------------------'
231 WRITE(iugeo,
'(A)') delimit
233 WRITE(line,
'(A)') delimit
235 WRITE(line,
'(A)')
'/INISHE/STRA_F'
238 .
'#------------------------ REPEAT --------------------------'
241 .
'# SHELLID NPT NPG THK'
243 WRITE(line,
'(A)')
'# REPEAT I=1,NPG :'
245 WRITE(line,
'(A)')
'# E1, E2, E12, E23, E31,'
247 WRITE(line,
'(A)')
'# K1, K2, K12'
250 .
'#---------------------- END REPEAT ------------------------'
252 WRITE(line,
'(A)') delimit
257 id = nint(wap0(j + 3))
258 npt = nint(wap0(j + 4))
259 npg = nint(wap0(j + 5))
262 IF (izipstrs == 0)
THEN
263 WRITE(iugeo,
'(3I10,1PE20.13)')id,npt,npg,thk
265 WRITE(line,
'(3I10,1PE20.13)')id,npt,npg,thk
270 IF (izipstrs == 0)
THEN
271 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,5)
272 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=6,8)
287 IF (stat_numeltg==0)
GOTO 300
293 gbuf => elbuf_tab(ng)%GBUF
300 nptr = elbuf_tab(ng)%NPTR
301 npts = elbuf_tab(ng)%NPTS
315 IF(ipart_state(iprt)==0)cycle
319 IF (mlw /= 0 .AND. mlw /= 13)
THEN
327 wa(jj) = ixtg(nixtg,n)
333 IF (mlw /= 0 .AND. mlw /= 13)
THEN
337 wa(jj) = thke(n+numelc)
344 IF (mlw == 0 .or. mlw == 13)
THEN
351 ELSEIF (g_stra > 0)
THEN
359 k = (ipg-1)*nel*g_stra
362 wa(jj) = strain(kk(j)+i+k)
393 IF(ispmd==0.AND.len>0)
THEN
396 DO n=1,stat_numeltg_g
403 ioff = nint(wap0(j + 1))
405 iprt = nint(wap0(j + 2))
406 IF(iprt /= iprt0)
THEN
407 IF (izipstrs == 0)
THEN
408 WRITE(iugeo,
'(A)') delimit
409 WRITE(iugeo,
'(A)')
'/INISH3/STRA_F'
411 .
'#------------------------ REPEAT --------------------------'
413 .
'# SH3NID NPT NPG THK'
414 WRITE(iugeo,
'(A/A/A)')
415 .
'# REPEAT I=1,NPG :',
416 .
'# E1, E2, E12, E23, E31,',
419 .
'#---------------------- END REPEAT ------------------------'
420 WRITE(iugeo,
'(A)') delimit
422 WRITE(line,
'(A)') delimit
424 WRITE(line,
'(A)')
'/INISH3/STRA_F'
427 .
'#------------------------ REPEAT --------------------------'
430 .
'# SH3NID NPT NPG THK'
432 WRITE(line,
'(A)')
'# REPEAT I=1,NPG :'
434 WRITE(line,
'(A)')
'# E1, E2, E12, E23, E31,'
436 WRITE(line,
'(A)')
'# K1, K2, K12'
439 .
'#---------------------- END REPEAT ------------------------'
441 WRITE(line,
'(A)') delimit
446 id = nint(wap0(j + 3))
447 npt = nint(wap0(j + 4))
448 npg = nint(wap0(j + 5))
451 IF (izipstrs == 0)
THEN
452 WRITE(iugeo,
'(3I10,1PE20.13)')id,npt,npg,thk
454 WRITE(line,
'(3I10,1PE20.13)')id,npt,npg,thk
458 IF (izipstrs == 0)
THEN
459 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,5)
460 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=6,8)
subroutine stat_c_straf(elbuf_tab, iparg, ipm, igeo, ixc, ixtg, wa, wap0, ipartc, iparttg, ipart_state, stat_indxc, stat_indxtg, thke, sizp0)