1      SUBROUTINE CONVEX(X,Y,Z,VAL,IFVISO)
2      DIMENSION X(4),Y(4),Z(4),VAL(4),V(3,3),VN(3)
3      DO I=1,3
4        V(1,I) = X(I+1)-X(1)
5        V(2,I) = Y(I+1)-Y(1)
6        V(3,I) = Z(I+1)-Z(1)
7      ENDDO
8      VN(1) = (V(2,1)*V(3,2)-V(2,2)*V(3,1))
9      VN(2) = (V(1,2)*V(3,1)-V(1,1)*V(3,2))
10      VN(3) = (V(1,1)*V(2,2)-V(2,1)*V(1,2))
11      DET1 = VN(1)*(V(2,2)*V(3,3)-V(2,3)*V(3,2))
12     &     + VN(2)*(V(1,3)*V(3,2)-V(1,2)*V(3,3))
13     &     + VN(3)*(V(1,2)*V(2,3)-V(2,2)*V(1,3))
14      IF (DET1.LT.0.) THEN
15        DET2 = VN(1)*(V(2,3)*V(3,1)-V(2,1)*V(3,3))
16     &       + VN(2)*(V(1,1)*V(3,3)-V(1,3)*V(3,1))
17     &       + VN(3)*(V(1,3)*V(2,1)-V(2,3)*V(1,1))
18        IF (DET2.LT.0.) THEN
19          CALL ECHR(X(3),X(4))
20          CALL ECHR(Y(3),Y(4))
21          CALL ECHR(Z(3),Z(4))
22          IF (IFVISO.NE.0) CALL ECHR(VAL(3),VAL(4))
23        ELSE
24          CALL ECHR(X(3),X(2))
25          CALL ECHR(Y(3),Y(2))
26          CALL ECHR(Z(3),Z(2))
27          IF (IFVISO.NE.0) CALL ECHR(VAL(3),VAL(2))
28        ENDIF
29      ENDIF
30      END
31