 
MODULE uti 
!=========================== DOCUMENTATION ============================= 
!DOCDEBm*    UTI/uti  *
!
!    NOM
!    uti
!    DESCRIPTION  
!*
! Interface des routines du Module UTIlitaires
! Interface of routines from UTIlitary Module 
!*!     
!
!    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
  IMPLICIT NONE
!=========================== DEBUT DU CODE EXECUTABLE ==================
 


!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE amr2tec(bl,critere,nbdom)
        use  num_typ
        type(bloc),dimension(:), intent(in)            :: bl
        real(kind=kind(0.d0)), dimension(:),intent(in) :: critere
        integer, intent(in)                            :: nbdom
      END SUBROUTINE amr2tec
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE block2mesh(cb,nzone,zone,nzonei,zonei)
        use  num
        type(calcul)  :: cb 
        integer       :: nzonei
        real(kind=kind(0.d0)),allocatable,dimension(:,:)  :: zone,zonei
        integer,allocatable,dimension(:,:)  :: nzone
      END SUBROUTINE block2mesh
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE calc_bathy(calc)
        USE num
        type(calcul),intent(inout) :: calc
      END SUBROUTINE calc_bathy
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
    interface
       SUBROUTINE copy_sol(cin,cout)
         use  num_typ
         type(calcul),intent(inout) :: cin,cout
       END SUBROUTINE copy_sol
    end interface
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE critraf(calc,critere,ib,nb_cell_bloc)
        use  num_typ
        integer, intent(in)             :: ib ,nb_cell_bloc
        type(calcul), intent(in)        :: calc 
        real(kind=kind(0.d0)), dimension(:),intent(inout)   :: critere
      END SUBROUTINE critraf
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------------------------------
  INTERFACE
       SUBROUTINE empty_sol(list_sol)
         use  geo_typ
         type(solide), dimension(5), intent(inout) :: list_sol
       END SUBROUTINE empty_sol
  END INTERFACE
!----- Fin Interface ---------------------------------------------------

!----- Debut Interface -------------------------
  INTERFACE
    SUBROUTINE  fct_mesh(x,y,z,ifct,nrb)
        use  num
        real(kind=kind(0.d0)), intent(in)                :: x,y,z
        integer, intent(in)                              :: ifct
        integer, intent(out)                             :: nrb
    END SUBROUTINE fct_mesh
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
INTERFACE
  SUBROUTINE ini_w(calc,nzonei,zonei)
    use  num
    TYPE(calcul)                                      :: calc
    INTEGER                                           :: nzonei
    REAL(kind=kind(0.d0)),allocatable,dimension(:,:)  :: zonei
  END SUBROUTINE ini_w
END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
INTERFACE
  SUBROUTINE init_def_bloc(cb,nzone,zone)
    use  num
    IMPLICIT NONE
    TYPE(calcul)                                      :: cb
    real(kind=kind(0.d0)),allocatable,dimension(:,:)  :: zone
    integer,allocatable,dimension(:,:)                :: nzone
  END SUBROUTINE init_def_bloc
END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE inter (bl,nb_bloc,nb_dom,interdom,nbl,ndim)
        use  num_typ
        integer, intent(in)     ::   nb_bloc,nb_dom,ndim
        type(bloc),dimension(:),intent(inout)  ::   bl
        type(list_int),dimension(:) :: interdom
        integer,dimension(:),intent(inout) :: nbl
      END SUBROUTINE inter
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
     SUBROUTINE mame2bloc(xmin,xmax,ymin,ymax,zmin,zmax,nx,ny,nz,lst_bloc,ndim)
         use  num
         use  zorder
         implicit none
         real(kind=kind(0.d0)), intent(inout)             :: xmin,xmax,ymin,ymax,zmin,zmax
         integer, intent(in)                              :: nx,ny,nz,ndim
         type(bloc), pointer, dimension(:), intent(inout) :: lst_bloc
    END SUBROUTINE mame2bloc
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE proddl(w,bli,blo,co,idi)
        use  num_typ
        type(bloc), intent(in)          :: bli,blo 
        type(list_vec), intent(inout)   :: w 
        integer,intent(in)              :: idi
        type(calcul), intent(inout)     :: co 
      END SUBROUTINE proddl
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
    SUBROUTINE read_bath(icode,iarg)
        use  num
        integer, intent(inout)                           :: icode,iarg
    END SUBROUTINE read_bath
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
       SUBROUTINE read_cond(lst_bloc,icode,iarg,nb_bloc)
          use  num
          type(bloc), pointer, dimension(:), intent(inout) :: lst_bloc
          integer, intent(inout)                           :: icode, nb_bloc, iarg
       END SUBROUTINE read_cond
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------------------------------
  INTERFACE
       SUBROUTINE read_gmsh(fichmsh,calc)
          use  num
          type(calcul), intent(inout) :: calc
          character(*), intent(in)    :: fichmsh ! Nom du maillage
       END SUBROUTINE read_gmsh
  END INTERFACE
!----- Fin Interface ---------------------------------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_init(icode,iarg,zonei,nzonei)
        use  num
        integer, intent(inout)       :: icode,iarg ,nzonei
        real(kind=kind(0.d0)),allocatable,dimension(:,:) :: zonei
      END SUBROUTINE read_init
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_mame(calc,icode,iarg)
        use  num
        type(calcul), intent(inout)         :: calc 
        integer, intent(in)                 :: icode,iarg
      END SUBROUTINE read_mame
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_mesh(calc,nzone,zone)
        use  num
        type(calcul), intent(inout)                       :: calc 
        integer,allocatable,dimension(:,:), intent(inout) :: nzone
        real(kind=kind(0.d0)),allocatable,dimension(:,:), intent(inout)  :: zone
      END SUBROUTINE read_mesh
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_nume(calc)
        use  num
        type(calcul), intent(inout)  :: calc 
      END SUBROUTINE read_nume
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_obst(calc,iarg)
        use  num
        type(calcul), intent(inout)  :: calc 
        integer, intent(inout)       :: iarg 
      END SUBROUTINE read_obst
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_obj(isol,sol,file)
          use  geo
          integer, intent(in)          :: isol
          type(solide), intent(inout)  :: sol
          CHARACTER*20, intent(in)     :: file
      END SUBROUTINE read_obj
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
  INTERFACE
      SUBROUTINE read_phys()
        use  num
      END SUBROUTINE read_phys
  END INTERFACE
!----- Fin Interface ---------------------------

!----- Debut Interface -------------------------
    interface
        SUBROUTINE save_obj (calc)
            use  num_typ
            type(calcul),intent(in) :: calc
        END SUBROUTINE save_obj  
    end interface
!----- Fin Interface ---------------------------

!----- Debut Interface ------------------------- ! 
  INTERFACE
      SUBROUTINE splitdom_Z (bl,nb_bloc,nbdv,ndim)
        use  num_typ
        integer, intent(in)     ::   nb_bloc,nbdv,ndim
        type(bloc),dimension(:),intent(inout)  ::   bl
      END SUBROUTINE splitdom_Z      
  END INTERFACE
!----- Fin Interface --------------------------- ! 



!===========================   FIN DU MODULE   =========================
END MODULE UTI
!DOCFIN