51
52
53
54 USE mat_elem_mod
59
60
61
62#include "implicit_f.inc"
63
64
65
66#include "mvsiz_p.inc"
67
68
69
70#include "param_c.inc"
71#include "vect01_c.inc"
72
73
74
75 INTEGER ,INTENT(IN) :: NUMMAT
76 INTEGER NEL,NLAY,NIX,NSIGSH,NUMEL,IGTYP,PROPID,IPROP,
77 . IDRAPE ,NPT_ALL,NUMEL_DRAPE
78 INTEGER IGEO(NPROPGI,*),IX(NIX,*),PTSH(*),(MVSIZ),
79 . IPM(NPROPMI,*),ISUBSTACK,IGEO_STACK(*)
80 INTEGER , DIMENSION(NUMEL_DRAPE) :: INDX
82 . pm(*),geo(npropg,*),skew(lskew,*),aldt(*),
83 . sigsh(nsigsh,*),shang(*),geo_stack(*),x(3,*)
84 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
85 TYPE (STACK_PLY) :: STACK
86 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,
87 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4
88 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(IN) :: MAT_PARAM
89
90
91
92 INTEGER IT,IL,NUVAR,NPTT,ILAW,NUPARAM
94 . vx(mvsiz),vy(mvsiz),vz(mvsiz),phi1(npt_all,mvsiz),phi2(npt_all,mvsiz)
96 . coor1(npt_all,mvsiz),coor2(npt_all,mvsiz),coor3(npt_all,mvsiz),
97 . coor4(npt_all,mvsiz)
98 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
100 . DIMENSION(:),POINTER :: uvar,dir1,dir2
101 TYPE(G_BUFEL_) ,POINTER :: GBUF
102 TYPE(L_BUFEL_) ,POINTER :: LBUF
103 TYPE(BUF_LAY_) ,POINTER :: BUFLY
104 TYPE(DRAPE_) :: DRAPE(NUMELC_DRAPE + )
105
106 coor1 = zero
107 coor2 = zero
108 coor3 = zero
109 coor4 = zero
110
111 gbuf => elbuf_str%GBUF
112
114 . lft ,llt ,nft ,nlay
115 . nsigsh ,nix ,ix ,igeo ,geo ,
116 . skew ,sigsh ,ptsh ,phi1 ,phi2 ,
117 . vx ,vy ,vz ,coor1 ,coor2
118 . coor3 ,coor4 ,iorthloc ,isubstack ,stack ,
119 . irep ,elbuf_str ,drape ,shang ,x ,
120 . geo_stack ,e3x ,e3y ,e3z
121 . gbuf%BETAORTH,x1 ,x2 ,y1 ,y2 ,
122 . z1 ,z2 ,nel ,gbuf%G_ADD_NODE,gbuf%ADD_NODE,
123 . npt_all ,idrape ,indx)
124
125
126 IF(igtyp == 51 .OR. igtyp == 52 .OR. igmat > 0) THEN
128 . igeo ,geo ,vx
129 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
130 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
131 . stack ,geo_stack ,igeo_stack,ir ,is ,
132 . nel ,imat ,iprop ,
133 . x1 ,x2 ,x3 ,x4 ,y1 ,y2
134 . y3 ,y4 ,z1 ,z2
135 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
136 . npt_all ,idrape)
137
138 ELSEIF (mtn == 27) THEN
140 . geo ,igeo ,pm ,ipm ,ix ,nix,
141 . nlay,ir ,is ,imat )
142 ELSEIF (mtn==15 .or. mtn==19 .or. mtn==25 .or. mtn >= 28) THEN
143 IF (mtn == 19 .and. igtyp /= 9) THEN
145 . anmode=aninfo,
146 . msgtype=msgerror,
147 . i1=ix(1,1))
148 ENDIF
149
151 . igeo ,geo ,vx ,vy ,vz ,
152 . phi1 ,phi2 ,coor1 ,coor2
153 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
154 . stack ,geo_stack ,igeo_stack,ir ,is ,
155 . nel ,imat ,iprop ,
156 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
157 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
158 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
159 . npt_all ,idrape )
160 ENDIF
161
162 IF ((mtn == 58 .or. mtn == 158) .AND.
163 . igtyp /= 16 .AND. igtyp /= 51 .AND. igtyp /= 52) THEN
165 . msgtype=msgerror,
166 . anmode=aninfo_blind_1,
167 . i1=propid,
168 . c1=titr,
169 . i2=mtn,
170 . i3=igtyp)
171 ELSEIF (mtn == 58 .or. mtn == 158 .OR. igtyp == 51 .OR. igtyp == 52) THEN
172
173 IF (idrape == 0) THEN
174 DO il = 1,nlay
175 nptt = elbuf_str%BUFLY(il)%NPTT
176 imat = elbuf_str%BUFLY(il)%IMAT
177 ilaw = elbuf_str%BUFLY(il)%ILAW
178 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
179 dir1 => elbuf_str%BUFLY(il)%DIRA
180 dir2 => elbuf_str%BUFLY(il)%DIRB
181 nuparam = mat_param(imat)%NUPARAM
182
183 IF (ilaw == 58) THEN
184 DO it=1,nptt
185 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
186 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
187 CALL cm58in3(irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
188 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
189 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
190 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
191 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
192 ENDDO
193 ELSE IF (ilaw == 158) THEN
194 DO it=1,nptt
195 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
196 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
198 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
199 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
200 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
201 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
202 ENDDO
203 ENDIF
204 ENDDO
205 ELSE
206 DO il = 1,nlay
207 nptt = elbuf_str%BUFLY(il)%NPTT
208 imat = elbuf_str%BUFLY(il)%IMAT
209 ilaw = elbuf_str%BUFLY(il)%ILAW
210 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
211 nuparam = mat_param(imat)%NUPARAM
212
213 IF (ilaw == 58) THEN
214 DO it=1,nptt
215 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
216 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
217 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
218 dir2 => elbuf_str%BUFLY(il
219 CALL cm58in3(irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
220 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
221 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
222 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
223 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
224 ENDDO
225 ELSE IF (ilaw == 158) THEN
226 DO it=1,nptt
227 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
228 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
229 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
230 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
232 . uvar
233 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
234 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
235 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
236 ENDDO
237 ENDIF
238 ENDDO
239 ENDIF
240 ENDIF
241
242 RETURN
subroutine cm27in3(elbuf_str, geo, igeo, pm, ipm, ix, nix, nlay, ir, is, imat)
subroutine cm58in3(irep, dir1, dir2, uparam, uvar, aldt, nel, nuvar, tan_phi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine corthdir(elbuf_str, igeo, geo, vx, vy, vz, phi1, phi2, coor1, coor2, coor3, coor4, iorthloc, nlay, irep, isubstack, stack, geo_stack, igeo_stack, ir, is, nel, imat, iprop, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, npt_all, idrape)
subroutine corthini(jft, jlt, nft, nlay, numel, nsigsh, nix, ix, igeo, geo, skew, sigsh, ptsh, phi1, phi2, vx, vy, vz, coor1, coor2, coor3, coor4, iorthloc, isubstack, stack, irep, elbuf_str, drape, angle, x, geo_stack, e3x, e3y, e3z, betaorth, x1, x2, y1, y2, z1, z2, nel, g_add_node, add_node, npt_all, idrape, indx)
subroutine law158_init(dir1, dir2, uvar, aldt, nel, nuvar, tan_phi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)