43
44
45
46 USE elbufdef_mod
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "com01_c.inc"
57#include "com04_c.inc"
58#include "com08_c.inc"
59#include "param_c.inc"
60#include "tabsiz_c.inc"
61
62
63
64 INTEGER, INTENT(IN):: ITASK
65 INTEGER, DIMENSION(NPARG,NGROUP) ,INTENT(IN):: IPARG
66 INTEGER, DIMENSION(NIXC,NUMELC) ,INTENT(IN):: IXC
67 INTEGER, DIMENSION(NIXTG,NUMELTG) ,INTENT(IN):: IXTG
68 INTEGER, DIMENSION(NIXS,NUMELS) ,INTENT(IN):: IXS
69 INTEGER, DIMENSION(NIXQ,NUMELQ) ,INTENT(IN):: IXQ
70 INTEGER, DIMENSION(NIXT,NUMELT) ,INTENT(IN)::
71 INTEGER, DIMENSION(NIXP,NUMELP) ,INTENT(IN):: IXP
72 INTEGER, DIMENSION(NIXR,NUMELR) ,INTENT(IN):: IXR
73 INTEGER, DIMENSION(6,NUMELS10) ,INTENT(IN):: IXS10
74 INTEGER, DIMENSION(8,NUMELS16) ,INTENT(IN):: IXS16
75 INTEGER, DIMENSION(12,NUMELS20) ,INTENT(IN):: IXS20
76 INTEGER, DIMENSION(2,NSPMD+1) ,INTENT(IN)::
77 INTEGER, DIMENSION(SFR_ELEM) ,INTENT(IN):
78INTEGER, DIMENSION(NUMNOD) ,INTENT(IN):: WEIGHT
79 INTEGER, DIMENSION(NPROPMI,NUMMAT) ,INTENT(IN):: IPM
80 INTEGER, DIMENSION(NPROPGI,NUMGEO) ,INTENT(IN):: IGEO
81 my_real,
DIMENSION(NPROPG,NUMGEO) ,
INTENT(IN):: geo
82 my_real,
DIMENSION(NPROPM,NUMMAT) ,
INTENT(IN):: pm
83 my_real,
DIMENSION(3,NUMNOD) ,
INTENT(IN):: x,d,v
84 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
85 TYPE (STACK_PLY) :: STACK
86
87
88
89 INTEGER N, I, J,,ITY,NEL
90 TYPE(G_BUFEL_) ,POINTER :: GBUF
91 TYPE(L_BUFEL_) ,POINTER :: LBUF
92 TYPE(BUF_LAY_) ,POINTER :: BUFLY
93
94
95
96
98 IF (tt==zero) THEN
99 IF (itask==0) THEN
100 DO ng=1,ngroup
101 ity=iparg(5,ng)
102 nel=iparg(2,ng)
103 IF (ity /= 1 .AND. ity /= 3 .AND. ity /= 7) cycle
104 gbuf => elbuf_tab(ng)%GBUF
111 END DO
117 tm_pnsig(1:numnod) = zero
118 tm_pnsig(numnod+1:2*numnod) = ep30
119 END IF
121 tm_pnstra(1:numnod) = zero
122 tm_pnstra(numnod+1:2*numnod) = ep30
123 END IF
124 END IF
125 END IF
126
128
129 CALL upd_tmax(elbuf_tab,iparg ,geo ,pm
130 . ixs ,ixs10 ,ixs16 ,ixs20 ,ixq ,
131 . ixc ,ixtg ,ixt ,ixp ,ixr ,
132 . x ,d ,v ,iad_elem,fr_elem ,
133 . weight ,ipm ,igeo ,stack ,itask )
134
135 ELSEIF (itask==0) THEN
136 DO ng=1,ngroup
137 ity=iparg(5,ng)
138 nel=iparg(2,ng)
139 IF (ity /= 1 .AND. ity /= 3 .AND. ity /= 7) cycle
140 gbuf => elbuf_tab(ng)%GBUF
147 SELECT CASE (ity)
148 CASE(1)
149 IF (gbuf%G_TM_SIG>0) THEN
150 CALL sig3d2pin(gbuf%TM_SIG1,gbuf%TM_SIG3,gbuf%TM_PSIG,nel)
151 END IF
152 IF (gbuf%G_TM_STRA>0) THEN
153 CALL sig3d2pin(gbuf%TM_STRA1,gbuf%TM_STRA3,gbuf%TM_PSTRA,nel)
154 END IF
155 CASE(3,7)
156 IF (gbuf%G_TM_SIG>0) THEN
157 CALL sig2d2pin(gbuf%TM_SIG1,gbuf%TM_SIG3,gbuf%TM_PSIG,nel)
158 END IF
159 IF (gbuf%G_TM_STRA>0) THEN
160 CALL sig2d2pin(gbuf%TM_STRA1,gbuf%TM_STRA3,gbuf%TM_PSTRA,nel)
161 END IF
162 END SELECT
163 END DO
170 END IF
171 END IF
172
173 RETURN
subroutine ini_tmnorm2(tm_d, tm_norm2, nnod)
subroutine sig2d2pin(sig1, sig3, pin, nel)
subroutine sig3d2pin(sig1, sig3, pin, nel)
subroutine upd_tmax(elbuf_tab, iparg, geo, pm, ixs, ixs10, ixs16, ixs20, ixq, ixc, ixtg, ixt, ixp, ixr, x, d, v, iad_elem, fr_elem, weight, ipm, igeo, stack, itask)