41
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "mvsiz_p.inc"
50
51
52
53#include "com01_c.inc"
54#include "vect01_c.inc"
55
56
57
58 INTEGER IXQ(NIXQ,*), NGL(*)
60 . volu(*), aire(*),
61 . y1(*), y2(*), y3(*), y4(*),
62 . z1(*), z2(*), z3(*), z4(*)
63
64
65
66 INTEGER I
68 . a1(mvsiz), a2(mvsiz)
69
70 DO i=lft,llt
71 a1(i) =y2(i)*(z3(i)-z4(i))+
72 . y3(i)*(z4(i)-z2(i))+y4(i)*(z2(i)-z3(i))
73 a2(i) =y2(i)*(z4(i)-z1(i))+
74 . y4(i)*(z1(i)-z2(i))+y1(i)*(z2(i)-z4(i))
75 aire(i)=(a1(i)+a2(i))* half
76 IF (aire(i)==zero) THEN
78 . msgtype=msgerror,
79 . anmode=aninfo_blind_1,
80 . i1=ixq(nixq,i))
81 ELSEIF(aire(i)<zero.AND.n2d==1) THEN
83 . msgtype=msgerror,
84 . anmode=aninfo_blind_1,
85 . i1=ngl(i),
86 . prmod=msg_cumu)
87 aire(i) = -aire(i)
88 ENDIF
89 END DO
90
91 IF(n2d==1) THEN
92 DO i=lft,llt
93 volu(i)=((y2(i)+y3(i)+y4(i))*a1(i)+
94 . (y1(i)+y2(i)+y4(i))*a2(i))* one_over_6
95 END DO
96 ELSE
97 DO i=lft,llt
98 volu(i)=aire(i)
99 END DO
100 ENDIF
101
102 DO i=lft,llt
103 IF(volu(i)<=0.0)THEN
105 . msgtype=msgerror,
106 . anmode=aninfo,
107 . i1=ngl(i))
108 EXIT
109 END IF
110 END DO
111
112 RETURN
113
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)