33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
55
56
57
58#include "implicit_f.inc"
59
60
61
62
63
64
65
66 INTEGER,INTENT(IN) :: NUMEL,NIX,IX(NIX,NUMEL),JALE_FROM_PROP,NEL,NFT
67 INTEGER,INTENT(IN) :: MAT_ID,NUMMAT, NPROPM
68 my_real,
INTENT(IN) :: pm(npropm,nummat)
69 TYPE(t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
70
71
72
73 INTEGER I, IVMAT,IMAT, ELEM_UID, MLN, J, IE, IEV, IAD1,LGTH
74 INTEGER lFOUND_monomat, lFOUND_multimat
75
76
77
78 IF(jale_from_prop == 0)THEN
79 CALL ancmsg(msgid = 122,msgtype=msgerror,anmode=aninfo,
80 . i1 = mat_id,
81 . c1 = "MATERIAL LAW 11 MUST BE DEFINED WITH ALE OR EULER FRAMEWORK" )
82 ENDIF
83
84 DO i=1,nel
85 ie = i + nft
86 elem_uid = ix(nix,ie)
87 imat = ix(1,ie)
88 lfound_monomat = 0
89 lfound_multimat = 0
90
91 iad1 = ale_connectivity%ee_connect%iad_connect(ie)
92 lgth = ale_connectivity%ee_connect%iad_connect(ie+1) - iad1
93 DO j=1,lgth
94 iev = ale_connectivity%ee_connect%connected(iad1 + j - 1)
95 IF(iev == 0)cycle
96 ivmat = abs(ix(1,iev))
97 mln = nint(pm(19,ivmat))
98 IF(mln == 51 .OR. mln == 151 .OR. mln == 37)lfound_multimat = lfound_multimat + 1
99 IF(mln /= 11)lfound_monomat = lfound_monomat + 1
100 enddo
101
102 IF(lfound_multimat /= 0)THEN
103 CALL ancmsg(msgid = 122,msgtype=msgerror,anmode=aninfo,
104 . i1 = elem_uid,
105 . c1 = "MATERIAL LAW 11 IS NOT COMPATIBLE WITH MULTIMATERIAL FORMULATION" )
106 ENDIF
107 IF(lfound_monomat == 0)THEN
108 CALL ancmsg(msgid = 123,msgtype=msgwarning,anmode=aninfo,
109 . i1 = elem_uid,
110 . c1 = "HAS NO ADJACENT FACE IN COMPUTATION DOMAIN (MATERIAL LAW11)" )
111 ENDIF
112 IF(lfound_monomat >= 2)THEN
113 CALL ancmsg(msgid = 122,msgtype=msgerror,anmode=aninfo,
114 . i1 = elem_uid,
115 . c1 = "MUST HAVE ONLY ONE FACE ADJACENT TO COMPUTATION DOMAIN (MATERIAL LAW11)" )
116 ENDIF
117 ENDDO
118
119 RETURN
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)