C VHYNOE    SOURCE    CHAT      05/01/13    04:07:09     5004
      SUBROUTINE VHYNOE(UELEM,IZNOEU,IZUN,NDIM,XY,ITP,IEL)
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
C     CALCUL DE LA VITESSE REELE POUR UN NOEUD DU MAILLAGE EN
C     FORMULATION HYBRIDE
C
C     ENTREES
C          IZNOEU POINTEUR
C              XELE(NDIM,NOEL) COORDONNES DES NOEUDS DE L ELEMENT CONSIDERE
C          IZUN POINTEUR FLUX AUX CENTRES DES FACES DE L ELEMENT
C          ITP             TYPE DE L'ELEMENT CONSIDERE
C          XY          coordonnees DU NOEUD POUR LEQUEL ON CALCULERA
C                         LA VITESSE
C     SORTIE
C          UELEM VITESSE REELLE AU NOEUD INOELO
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)
C
C
C
      SEGMENT  IZNOEU
            REAL*8 XELE(IDIM,NOEL)
            INTEGER NOEGLO(NOEL)
      ENDSEGMENT
      SEGMENT IZUN
           REAL*8 UN(I1,I2,I3)
      ENDSEGMENT
      SEGMENT HYTRAV
            REAL*8 XEL(3,NOEL),SHP(6,NOEL),SHY(12,NOEL)
            REAL*8 ZJAC(NDIM,NDIM)
      ENDSEGMENT
C
C
      DIMENSION XY(3),UELEM(*),VECT(3)
C
C
C                     FORMULATION HYBRIDE ON VA CALCULER LA VITESSE
C                   REELLE AU NOEUD DU MAILLAGE
           CALL INITD(UELEM,NDIM,0.D0)
           NOEL=XELE(/2)
           SEGINI HYTRAV
           CALL SHAPE(XY(1),XY(2),XY(3),ITP,SHP,IRET)
C          write(6,*)'shp ',(shp(1,j),j=1,noel)
           DO 40 J=1,NOEL
           DO 35 I=1,NDIM
           XEL(I,J)=XELE(I,J)
   35      CONTINUE
   40      CONTINUE
           CALL MATJAC(XEL,SHP,NDIM,NOEL,ZJAC,DJAC)
C          write(6,*)' zjac',((zjac(i,j),i=1,ndim),j=1,ndim)
           NTYP=NUMHYB(ITP)
           CALL HYSHP(XY(1),XY(2),XY(3),NTYP,NOEL,12,SHY,IRET)
C           write(6,*)' shy ',((shy(i,j),i=1,ndim),j=1,noel)
           I2=UN(/2)
           DO 50 IDDL=1,I2
                CALL INITD(VECT,NDIM,0.D0)
                DO 60 J=1,NDIM
                     DO 55 I=1,NDIM
                        VECT(I)=VECT(I)+ZJAC(I,J)*SHY(J,IDDL)
   55                CONTINUE
   60           CONTINUE
                COEF=UN(1,IDDL,IEL)/DJAC
C       write(6,*)' flux ',iddl,iel,UN(1,IDDL,IEL),coef,djac
                     DO 65 I=1,NDIM
                          UELEM(I)=UELEM(I)+COEF*VECT(I)
   65                CONTINUE
   50           CONTINUE
           SEGSUP HYTRAV
      RETURN
      END

