 SUBROUTINE init_calc(calc)
!=========================== DOCUMENTATION ============================= 
!DOCDEBh*    NUM/init_cal  *
!
!    NOM
!   init_calc(calc)
!    DESCRIPTION  
!*
! Initialisation d un calcul: initialisation MPI, recuperation du nombre de domaines,
! du numero du domaine courant. Lecture des donnees du calcul.
!
! Initialisation of a calculation: MPI initialisation, recovery of the number of domains,
! the number of the current domain. Reading calculation data.
!*
!
!    ENTREES / INPUT
!   calc : Objet calcul / Calcul object
!    SORTIES / OUTPUT
!   calc : Objet calcul / Calcul object
!
!    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
  use num ,only: get_calc
  IMPLICIT NONE
  
#ifdef _MPI
  include 'mpif.h'
#endif
!.2-----  Declaration
  type(calcul),intent(inout) :: calc !! Objet calcul / Calcul object
  
  integer                    :: ierr
!=========================== DEBUT DU CODE EXECUTABLE ==================

  CALL empty_mesh(calc%msh,0,0)

#ifdef _MPI
  CALL MPI_INIT(ierr)
  CALL MPI_COMM_RANK( MPI_COMM_WORLD, calc%msh%numdom, ierr )
#else
  calc%msh%numdom=0
#endif

#ifdef _MPI
  CALL MPI_COMM_SIZE( MPI_COMM_WORLD, calc%msh%nb_dom,ierr )
#else
  calc%msh%nb_dom=1
#endif

  calc%msh%numdom=1+calc%msh%numdom
  CALL empty_mesh(calc%msh,calc%msh%nb_dom,calc%msh%numdom)
  CALL get_calc(calc)
   

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