  MODULE num_typ
!=========================== DOCUMENTATION ============================= 
!DOCDEBm*    NUM/num_typ  *
!
!    NOM
! num_typ
!    DESCRIPTION  
!*
! Descrition des types de structures NUMerique
!
! Description of NUMeric structure types
!*
!    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 geo
  IMPLICIT NONE
!=========================== DEBUT DU CODE EXECUTABLE ==================
!----- Debut Type ---------------------------------------------------------
  TYPE calcul
      real(kind=kind(0.d0))            :: tmin,tmax         ! borne en temps du calcul / time bounds of the calculation
      real(kind=kind(0.d0))            :: dt                ! pas de temps courant / current time step
      real(kind=kind(0.d0))            :: pdtp              ! pas de temps precedent / previous time step
      real(kind=kind(0.d0))            :: cfl               ! cfl 
      real(kind=kind(0.d0))            :: vmax              ! vitesse d onde maximale observee sur le calcul / maximum wave speed observed in the calculation
      integer                          :: isauv, istart     ! type de sauvegarde, indicateur de reprise / type of saving, restart indicator
      integer                          :: ipas              ! numero du pas de temps courant / current time step number
      integer                          :: iordre_t          ! ordre de la methode en temps / order of the time method
      integer                          :: iordre_e          ! ordre de la methode en espace / order of the space method
      integer                          :: imeth_int_temps   ! methode  integration en temps 1/rk 2/adams / method of time integration 1/rk 2/adams
      type(point),dimension(1:20)      :: point_sondes      ! points ou mettre une sonde /  points where to put a probe
      integer                          :: nb_sondes         ! nombre de sondes / number of probes
      integer,dimension(1:10)          :: num_point_min
      type(mesh)                       :: msh               ! maillage / mesh
      integer                          :: ityp_flux =0      ! type du flux numerique : =0 --> rusanov    =1 --> godunov
      integer                          :: ilimiteur=0       ! type de limiteur  0: barth , 1: cartesien          
      integer                          :: nb_bloc=0         ! Nombre de blocs du domaine / number of blocks in the domain
      integer                          :: nbds=1            ! Nombre de domaines souhaites / number of desired domains
      integer                          :: nrma=0            ! Niveau de rafinement maximal / maximum refinement level
      integer                          :: sera=0            ! 
      real(kind=kind(0.d0))            :: vcde=0.002d0      ! Valeur du critere de deraffinement / Value of the derefinement criterion
      real(kind=kind(0.d0))            :: vcra=0.02d0       ! Valeur du critere de raffinement / Value of the refinement criterion
      type(bloc),pointer,dimension(:)  :: list_bloc => null()   !  liste des blocs / list of blocks
      integer                          :: nb_sol = 0            ! Nombre de solides <nb_sol_max / Number of solids <nb_sol_max
      type(solide), dimension(nb_sol_max) :: list_sol           ! Liste de solides / List of solids
  END TYPE calcul
!----- Fin Type ----------------------------------------------------------
!===========================   FIN DU MODULE   =========================
  END MODULE num_typ
!DOCFIN