 SUBROUTINE calc_source(calc,lev)
!=========================== DOCUMENTATION ============================= 
!DOCDEBh*    NUM/calc_source  *
!
!    NOM
!   calc_source(calc,lev)
!    DESCRIPTION  
!*
! Calcul des termes sources sur les cellules 
! Calculation of source terms on cells 
!*
! 
!    ENTREES / INPUT
!   calc : objet calcul / Calcul object
!   lev : niveau maximal de raffinement a considerer / maximum level of refinement to be considered
!    SORTIES / OUTPUT
!   calc : objet calcul avec les termes sources mis a jour / Calcul object with updated source terms
!   lev : niveau maximal de raffinement a considerer / maximum level of refinement to be considered
!
!    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 num_typ
  IMPLICIT NONE
!.2-----  Declaration
  type(calcul),intent(inout) :: calc !! Objet calcul / Calcul object
  integer, intent(inout)     :: lev  !! niveau maximal de raffinement a considerer / maximum level of refinement to be considered
  
  integer                    :: ic
  real(kind=kind(0.d0))      :: vol
  type(vect_nvar)            :: sloc
!=========================== DEBUT DU CODE EXECUTABLE ==================
! calcul des termes sources (physiques et ordre 2 non conservatif)

  DO ic=1,calc%msh%nb_cell
      IF (calc%msh%list_cell(ic)%clevel.le.lev) THEN
          IF (calc%msh%list_cell(ic)%idom.eq.calc%msh%numdom) THEN
              CALL sources(calc%msh%list_cell(ic)%w,sloc,calc%iordre_e)
              vol=calc%msh%list_cell(ic)%vol
              calc%msh%list_cell(ic)%balance%v=calc%msh%list_cell(ic)%balance%v+vol*sloc%v    
          END IF
      END IF

  END DO
!===========================   FIN DE LA ROUTINE    ====================
END SUBROUTINE calc_source
!DOCFIN