34 . ELBUF_STR,IPARG ,IPM ,IGEO ,NUMMAT ,NUMGEO ,
35 . NGROUP ,NPARG ,NPROPMI ,NPROPGI ,MAT_PARAM,N2D ,
36 . IXT ,NUMELT ,IXP ,NUMELP ,IXR ,NUMELR ,
48#include "implicit_f.inc"
52 INTEGER,
INTENT(IN) :: IPARG(NPARG,NGROUP),N2D,
53 . IPM(NPROPMI,NUMMAT),IGEO(NPROPGI,NUMGEO),
54 . NUMMAT,NUMGEO,NGROUP,NPARG,NPROPMI,NPROPGI,
55 . IXT(NIXT,NUMELT),IXP(NIXP,NUMELP),
56 . ixr(nixr,numelr),kxx(5,numelx),numelt,numelp,
58 TYPE(elbuf_struct_),
DIMENSION(NGROUP),
INTENT(IN) :: ELBUF_STR
59 TYPE(MATPARAM_STRUCT_),
DIMENSION(NUMMAT),
INTENT(IN) :: MAT_PARAM
63 INTEGER :: NG,,PID,PROP_ID,NLAY,IL,IMAT,ILAW,IEOS,MAT_ID,K,ITY,ISNOD,NFT,IVISC,MLW
64 LOGICAL :: COMPAT_ELEM,COMPAT_PROP,COMPAT_EOS,COMPAT_VISC
65 CHARACTER (LEN = 10) :: ELTYP
77 igtyp = elbuf_str(ng)%IGTYP
78 nlay = elbuf_str(ng)%NLAY
82 ! solid, shell, integrated beam and sph
94 imat = elbuf_str(ng)%BUFLY(il)%IMAT
95 ilaw = elbuf_str(ng)%BUFLY(il)%ILAW
96 ieos = mat_param(imat)%IEOS
97 ivisc = mat_param(imat)%IVISC
112 IF (mat_param(imat)%PROP_SOLID == 0) compat_elem = .false.
116 ELSEIF (isnod == 6)
THEN
118 ELSEIF (isnod == 10)
THEN
120 ELSEIF (isnod == 16)
THEN
122 ELSEIF (isnod == 20)
THEN
131 IF (mat_param(imat)%PROP_SOLID == 0) compat_elem = .false.
138 IF (mat_param(imat)%PROP_SHELL == 0) compat_elem = .false.
143 IF (mlw /= 151) compat_elem = .false.
146 IF (mat_param(imat)%PROP_SHELL == 0) compat_elem = .false.
153 IF (mat_param(imat)%PROP_BEAM == 0) compat_elem = .false.
159 IF (mat_param(imat)%PROP_SPH == 0) compat_elem = .false.
174 IF (mat_param(imat)%PROP_SHELL /= 1 .AND.
175 . mat_param(imat)%PROP_SHELL /= 5) compat_prop = .false.
178 IF (mat_param(imat)%PROP_SHELL /= 1 .AND.
179 . mat_param(imat)%PROP_SHELL /= 2 .AND.
180 . mat_param(imat)%PROP_SHELL /= 5) compat_prop = .false.
182 CASE (10,11,17,19,51,52)
184 . mat_param(imat)%PROP_SHELL /= 2 .AND.
185 . mat_param(imat)%PROP_SHELL /= 3 .AND.
186 . mat_param(imat)%PROP_SHELL /
187 . mat_param(imat)%PROP_SHELL /= 5) compat_prop = .false.
190 IF (mat_param(imat)%PROP_SHELL /= 4 .AND.
191 . mat_param(imat)%PROP_SHELL /= 5) compat_prop = .false.
197 IF (mat_param(imat)%PROP_SOLID /= 1 .AND.
198 . mat_param(imat)%PROP_SOLID /= 5 .AND.
199 . mat_param(imat)%PROP_SOLID /= 6) compat_prop = .false.
203 . mat_param(imat)%PROP_SOLID /= 2 .AND.
204 . mat_param(imat)%PROP_SOLID /= 6) compat_prop = .false.
207 IF (mat_param(imat)%PROP_SOLID /= 1 .AND.
208 . mat_param(imat)%PROP_SOLID /= 2 .AND.
209 . mat_param(imat)%PROP_SOLID /= 3 .AND.
210 . mat_param(imat)%PROP_SOLID /= 6) compat_prop = .false.
213 IF (mat_param(imat)%PROP_SOLID /= 4 .AND.
214 . mat_param(imat)%PROP_SOLID /= 6) compat_prop
217 IF (mat_param(imat)%PROP_SOLID /= 5) compat_prop = .false
223 IF (mat_param(imat)%PROP_BEAM /= 2 .AND.
224 . mat_param(imat)%PROP_BEAM /= 3) compat_prop = .false.
230 IF (mat_param(imat)%PROP_SPH /= 1) compat_prop = .false.
236 IF (ieos > 0 .and. mat_param(imat)%COMPATIBILITY_EOS == 0)
THEN
243 IF (ivisc > 0 .AND. mat_param(imat)%COMPATIBILITY_VISC == 1 .AND.
244 . (mat_param(imat)%PROP_SHELL == 2 .OR.
245 . mat_param(imat)%PROP_SHELL == 3 .OR.
246 . mat_param(imat)%PROP_SHELL == 4 ).AND.
248 compat_visc = .false.
256 IF (.NOT. compat_elem)
THEN
259 . anmode=aninfo_blind_1,
265 ELSEIF ((compat_elem).AND.(.NOT. compat_prop))
THEN
268 . anmode=aninfo_blind_1,
276 IF (.NOT. compat_eos)
THEN
285 IF (.NOT. compat_visc)
THEN
288 . anmode=aninfo_blind_1,
317 IF (mat_param(imat)%PROP_TRUSS == 0) compat_elem = .false.
325 IF (mat_param(imat)%PROP_BEAM == 0) compat_elem
334 IF (mat_param(imat)%PROP_SPRING == 0) compat_elem = .false.
357 IF (mat_param(imat)%PROP_TRUSS /= 1) compat_prop = .false.
363 IF (mat_param(imat)%PROP_BEAM /= 1 .AND.
364 . mat_param(imat)%PROP_BEAM /= 3) compat_prop = .false.
371 IF (mat_param(imat)%PROP_SPRING /= 1 .AND.
372 . mat_param(imat)%PROP_SPRING /= 3) compat_prop = .false.
376 IF (mat_param(imat)%PROP_SPRING /= 2 .AND.
377 . mat_param(imat)%PROP_SPRING /= 3) compat_prop = .false.
386 prop_id = igeo(1,pid)
399 IF (.NOT. compat_elem)
THEN
402 . anmode=aninfo_blind_1,
408 ELSE IF ((compat_elem).AND.(.NOT. compat_prop))
THEN
411 . anmode=aninfo_blind_1,
428 . anmode=aninfo_blind_1,
432 . anmode=aninfo_blind_1,
436 . anmode=aninfo_blind_1,
440 . anmode=aninfo_blind_1,
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)