!> @brief COMPUTE THE DISCHARGE ON THE WEIRS WHEN THE TYPE IS EQUAL 2
      SUBROUTINE CALCUL_Q_WEIR
!
      USE BIEF
      USE DECLARATIONS_TELEMAC2D
      USE DECLARATIONS_SPECIAL
      USE INTERFACE_PARALLEL, ONLY : P_MAX_ARRAY,P_MIN_ARRAY
!
      IMPLICIT NONE
!
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
!
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
      INTEGER          N, ITRAC
      INTEGER          I_1A_1, I_1B_1, I_1A_2, I_1B_2
      INTEGER          I_2A_1, I_2B_1, I_2A_2, I_2B_2
!
      DOUBLE PRECISION PHI
      DOUBLE PRECISION YS1, YS2
      DOUBLE PRECISION SL_1A_1, SL_1B_1, SL_1A_2, SL_1B_2
      DOUBLE PRECISION SL_2A_1, SL_2B_1, SL_2A_2, SL_2B_2
      DOUBLE PRECISION SL_1A, SL_1B
      DOUBLE PRECISION SL_2A, SL_2B
      DOUBLE PRECISION ZF_1A_1, ZF_1B_1, ZF_1A_2, ZF_1B_2
      DOUBLE PRECISION ZF_2A_1, ZF_2B_1, ZF_2A_2, ZF_2B_2
      DOUBLE PRECISION H_1A_1, H_1B_1, H_1A_2, H_1B_2
      DOUBLE PRECISION H_2A_1, H_2B_1, H_2A_2, H_2B_2
      DOUBLE PRECISION SLA, SLB
      DOUBLE PRECISION ZFA, ZFB
      DOUBLE PRECISION H_A, H_B, HMINI
      DOUBLE PRECISION QNSUR4, QELEM
      DOUBLE PRECISION C1A, C1B, C2A, C2B
!
      DOUBLE PRECISION TRAC_1A_1(NTRAC),TRAC_1B_1(NTRAC)
      DOUBLE PRECISION TRAC_1A_2(NTRAC),TRAC_1B_2(NTRAC)
      DOUBLE PRECISION TRAC_2A_1(NTRAC),TRAC_2B_1(NTRAC)
      DOUBLE PRECISION TRAC_2A_2(NTRAC),TRAC_2B_2(NTRAC)
      DOUBLE PRECISION TRAC
      CHARACTER(LEN=10) FMT1
!
      INTRINSIC MAX
!
!-----------------------------------------------------------------------
!  AJOUT OBA : DEFINITION VARIABLES
!
      INTEGER NUM1,NUM2,NUM3,PORNE,PCANA,PMARE,PHACRUE,K
      DOUBLE PRECISION SNUM1,SNUM2,SNUM3
      DOUBLE PRECISION HNUM1,HNUM2,HNUM3
      DOUBLE PRECISION ZFNUM1,ZFNUM2,ZFNUM3
      DOUBLE PRECISION :: VALUES(3), MAXVALUES(3), MINVALUES(3)
!
      DOUBLE PRECISION HTHUR,SURCOT
      DOUBLE PRECISION CCANA,CVEND,CAMON
!
      DOUBLE PRECISION ZMAX1,ZMAX2,ZMAX3,ZMAX4
      DOUBLE PRECISION ZRAD1,ZRAD2,ZRAD3,ZRAD4
      DOUBLE PRECISION ZSEU1,ZSEU2,ZSEU3,ZSEU4
      DOUBLE PRECISION VO1,VO2,VO3,VO4
      DOUBLE PRECISION YA1,YA2,YA3,YA4
      DOUBLE PRECISION YB1,YB2,YB3,YB4
!
!
! POUR SAUVEGARDER LA VALEUR DE ZSEU ENTRE DEUX APPELS DE LA SUBROUTINE
      SAVE             ZSEU1,ZSEU2,ZSEU3,ZSEU4
!
!-----------------------------------------------------------------------
!
!
      HMINI = 1.D-2
      PHI = 0.4
! ---------------------------------------------------------------------
! AJOUT OBA - DEBUT
! ---------------------------------------------------------------------
!
!             WRITE(LU,*) DT,ZSEU1,ZSEU2,ZSEU3,ZSEU4
!
! POINT CIBLE POUR CONTROLE DE NIVEAU  
      PORNE = 57004
      PCANA = 8185
      PMARE = 12024
      NUM1=GLOBAL_TO_LOCAL_POINT(PORNE,MESH)
      NUM2=GLOBAL_TO_LOCAL_POINT(PCANA,MESH)
      NUM3=GLOBAL_TO_LOCAL_POINT(PMARE,MESH)
      IF (NUM1.GT.0) THEN
        SNUM1 = H%R(NUM1)+ZF%R(NUM1)
      ELSE
        SNUM1 = 0.D0
      ENDIF
      IF (NUM2.GT.0) THEN
        SNUM2 = H%R(NUM2)+ZF%R(NUM2)
      ELSE
        SNUM2 = 0.D0
      ENDIF
      IF (NUM3.GT.0) THEN
        SNUM3 = H%R(NUM3)+ZF%R(NUM3)
      ELSE
        SNUM3 = 0.D0
      ENDIF
!
              WRITE(LU,*) 'etape 1'
!  SI LE POINT CIBLE N'EST PAS DANS LE SOUS-DOMAINE
      IF(NCSIZE.GT.1) THEN
              WRITE(LU,*) 'etape 2'
        VALUES(1) = SNUM1
        VALUES(2) = SNUM2
        VALUES(3) = SNUM3
              WRITE(LU,*) 'etape 4'
          CALL P_MAX_ARRAY(VALUES, 3, MAXVALUES)
          CALL P_MIN_ARRAY(VALUES, 3, MINVALUES)
              WRITE(LU,*) 'etape 5'
        SNUM1=MAXVALUES(1)+MINVALUES(1)
        SNUM2=MAXVALUES(2)+MINVALUES(2)
        SNUM3=MAXVALUES(3)+MINVALUES(3)
      ENDIF
!
              WRITE(LU,*) 'etape 6'
!
!  PHASES DE GESTION ET CONSIGNES DE NIVEAU
!