34
35
36
37
38
39
40
41
42
43
45 use element_mod , only : nixs,nixq,nixc,nixt,nixtg
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "com01_c.inc"
54#include "com04_c.inc"
55#include "param_c.inc"
56
57
58
59 INTEGER,INTENT(INOUT) :: NALE(NUMNOD)
60 INTEGER,INTENT(IN) :: IXS(NIXS,NUMELS), IXQ(NIXQ,NUMELQ), IXC(NIXC,NUMELC), IXT(NIXT,NUMELT), IXTG(NIXTG,NUMELTG)
61 INTEGER,INTENT(IN) :: ITAB(NUMNOD), NALE_R2R(*),FLAG_R2R, IGEO(NPROPGI,NUMGEO)
62 my_real,
INTENT(IN) :: pm(npropm,nummat)
63
64
65
66 INTEGER M, IAL, I, N, JWARN, IMAT, IPROP
67 INTEGER JALE_FROM_MAT, JALE_FROM_PROP
68
69
70
71
72
73
74
75 jwarn=0
76 IF(numelq /= 0)THEN
77 DO m=1,numelq
78 imat = iabs(ixq(1,m))
79 iprop = iabs(ixq(6,m))
80 IF(imat == 0)cycle
81 jale_from_mat = nint(pm(72,imat))
82 jale_from_prop = igeo(62,iprop)
83 ial = jale_from_mat + jale_from_prop
84 IF(ial /= 0)cycle
85 DO i=2,5
86 n=ixq(i,m)
87 IF(iabs(nale(n)) == 2)THEN
88 jwarn=1
89
90 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,i1=itab(n),prmod=msg_cumu,c1=
'QUAD')
91 ENDIF
92 nale(n)=0
93 ENDDO
94 ENDDO
95 ENDIF
96 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1, prmod=msg_print,c1=
'QUAD',c2=
'QUAD')
97
98
99
100
101 IF(numels /= 0)THEN
102 DO m=1,numels
103 imat = iabs(ixs(1,m))
104 iprop = iabs(ixs(10,m))
105 IF(imat == 0)cycle
106 jale_from_mat = nint(pm(72,imat))
107 jale_from_prop = igeo(62,iprop)
108 ial = jale_from_mat + jale_from_prop
109 IF(ial /= 0)cycle
110 DO i=2,9
111 n=ixs(i,m)
112 IF(iabs(nale(n)) == 2)THEN
113 jwarn=1
114
115 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,i1=itab(n),prmod=msg_cumu,c1=
'SOLID')
116 ENDIF
117 nale(n)=0
118 ENDDO
119 ENDDO
120 ENDIF
121 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,prmod=msg_print,c1=
'SOLID',c2=
'SOLID')
122
123
124
125
126 IF(numelc /= 0)THEN
127 DO m=1,numelc
128 DO i=2,5
129 n=ixc(i,m)
130 IF(iabs(nale(n)) == 2)THEN
131 jwarn=1
132
133 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,i1=itab(n),prmod=msg_cumu,c1=
'SHELL')
134 ENDIF
135 nale(n)=0
136 ENDDO
137 ENDDO
138 ENDIF
139 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,prmod=msg_print,c1=
'SHELL',c2=
'SOLID')
140
141
142
143
144 IF(numeltg /= 0 .AND. n2d == 0)THEN
145 DO m=1,numeltg
146 DO i=2,4
147 n=ixtg(i,m)
148 IF(iabs(nale(n)) == 2)THEN
149 jwarn=1
150 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,i1=itab(n),prmod=msg_cumu,c1=
'SH3N')
151 ENDIF
152 nale(n)=0
153 ENDDO
154 ENDDO
155 ENDIF
156 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,prmod=msg_print,c1=
'SHELL-3N',c2=
'SOLID')
157
158
159
160
161 IF(numelt /= 0)THEN
162 DO m=1,numelt
163 DO i=2,3
164 n=ixt(i,m)
165 IF(iabs(nale(n)) == 2)THEN
166 jwarn=1
167
168 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,i1=itab(n),prmod=msg_cumu
'TRUSS'
169 ENDIF
170 nale(n)=0
171 ENDDO
172 ENDDO
173 ENDIF
174 CALL ancmsg(msgid=336,msgtype=msgwarning,anmode=aninfo_blind_1,prmod=msg_print,c1=
'TRUSS',c2=
'PART')
175
176
177
178
179 IF(jwarn == 1) THEN
180 CALL ancmsg(msgid=337,msgtype=msgwarning, anmode=aninfo)
181 ENDIF
182
183
184
185
186 IF(iale /= 0)THEN
187
188 IF (flag_r2r > 0) THEN
189 DO n=1,numnod
190 nale(n) = nale_r2r(n)*nale(n)
191 END DO
192 ENDIF
193
194 ENDIF
195
196 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)