      SUBROUTINE ISOTRIL(X,Y,V,N,VAL,IOPT)
C
      DIMENSION X(3),Y(3),V(3),VAL(*),TT(256,3)
      INTEGER   N(3),IRESTE(3,3),ISUC(3)
      DATA IRESTE / 0 , 3 , 2 , 3 , 0 , 1 , 2 , 1 , 0 /
      DATA ISUC   / 2,3,1 /
C
      IF ((N(1).NE.N(2)).OR.(N(2).NE.N(3))) THEN
        IF (N(1).LT.N(2)) THEN
          CALL BARYL(VAL,V(1),V(2),N(1),N(2),TT(1,3))
        ELSEIF(N(2).LT.N(1)) THEN
          CALL BARYL(VAL,V(2),V(1),N(2),N(1),TT(1,3))
        ENDIF
        IF (N(2).LT.N(3)) THEN
          CALL BARYL(VAL,V(2),V(3),N(2),N(3),TT(1,1))
        ELSEIF(N(3).LT.N(2)) THEN
          CALL BARYL(VAL,V(3),V(2),N(3),N(2),TT(1,1))
        ENDIF
        IF (N(3).LT.N(1)) THEN
          CALL BARYL(VAL,V(3),V(1),N(3),N(1),TT(1,2))
        ELSEIF(N(1).LT.N(3)) THEN
          CALL BARYL(VAL,V(1),V(3),N(1),N(3),TT(1,2))
        ENDIF
        N0 = MIN(N(1),N(2),N(3))
        N1 = MAX(N(1),N(2),N(3))
        DO I=1,3
          IF (N0.EQ.N(I)) THEN
            I0 = I
          ELSEIF(N1.EQ.N(I)) THEN
            I1 = I
          ENDIF
        ENDDO
        IM = IRESTE(I0,I1)
        IF (IM.EQ.ISUC(I0)) THEN
          SENS = 1.
        ELSE
          SENS = -1.
        ENDIF
        CALL TRAIT(V(I0),V(IM),V(I1),
     &             N(I0),N(IM),N(I1),
     &             X(I0),X(IM),X(I1),
     &             Y(I0),Y(IM),Y(I1),
     &             TT(1,I0),TT(1,IM),TT(1,I1),SENS,IOPT)
      ENDIF
      END
C=============================================================================
      SUBROUTINE BARYL(VAL,V1,V2,N1,N2,T)
      DIMENSION VAL(*),T(*)
C
      NN = 0
cnew      DO I=N1,N2-1
      DO I=N1,N2
        NN = NN+1
cnew        T(NN) = (.5*(VAL(I)+VAL(I+1))-V2)/(V1-V2)
        T(NN) = (VAL(I)-V2)/(V1-V2)
      ENDDO
      END

