 SUBROUTINE VelCFL(w,vloc)
!=========================== DOCUMENTATION ============================= 
!DOCDEBh*    PHY/VelCFL  *
!
!    NOM
! velcfl(w,vloc)
!    DESCRIPTION  
!*
! Calcul de la vitesse d onde Max
!
! Calculation of Max wave velocity
!*
! 
!    ENTREES / INPUT
! w    : objet de type "state" contenant les variables conservatives
!      / object of type "state" containing the conservative variables
!
!    SORTIES / OUTPUT
! vloc : vitesse d onde  /  wave velocity
!
!    SOURCE
! Ce logiciel est regi par la licence [CeCILL-B]
! This software is governed by the [CeCILL-B] license
!=========================== DEBUT DES DECLARATIONS ==================== 
!.1-----  Implicit, Use
  use phy_typ
  use phy ,only:  vitson
  IMPLICIT NONE
!.2-----  Declaration
  type(state),intent(in)            :: w !! Variables d etat / State variables
  real(kind=kind(0.d0)),intent(out) :: vloc !! Vitesse d onde : Wave speed
  
  real(kind=kind(0.d0))             :: cson,vconv
  real(kind=kind(0.d0))             :: r,u1,u2,u3,p,u

!=========================== DEBUT DU CODE EXECUTABLE ==================
  SELECT CASE (imodel_phy)
      CASE (1)
          u1=w%vprim%v(2)
          u2=w%vprim%v(3)
          u=dsqrt(u1*u1+u2*u2)  
          CALL vitson(w,cson)
          vconv=u+cson !     vitesse des ondes convectives
      CASE DEFAULT
          r=w%vprim%v(1)
          u1=w%vprim%v(2)
          u2=w%vprim%v(3)
          u3=w%vprim%v(4)
          p=w%vprim%v(5)
          u=dsqrt(u1*u1+u2*u2+u3*u3)  
          CALL vitson(w,cson)
          vconv=u+cson !     vitesse des ondes convectives
  END SELECT
  
  vloc=vconv

!===========================   FIN DE LA ROUTINE    ====================
END SUBROUTINE VelCFL
!DOCFIN