 SUBROUTINE copy_sol(cin,cout)
!=========================== DOCUMENTATION ============================= 
!DOCDEBh*    UTI/PRE/copy_sol  *
!
!    NOM
!   copy_sol(cin,cout)  
!    DESCRIPTION  
!*
! Copie des objets solides  
!
! Copy solid objects  
!*
! 
! 
!    ENTREES / INPUT
!   cin : objet calcul initial / initial calcul object
!
!    SORTIES / OUTPUT
!   cout : objet calcul copie / copied 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
  IMPLICIT NONE
!.2-----  Declaration
  type(calcul),intent(inout) :: cin,cout !! Objets calcul en entree, sortie / calcul object input and output
  integer                    :: i
!=========================== DEBUT DU CODE EXECUTABLE ==================
! calcul des termes sources (physiques et ordre 2 non conservatif)
      cout%nb_sol = cin%nb_sol
      call empty_sol(cout%list_sol)

      do i=1,cin%nb_sol
        cout%list_sol(i)%id     =cin%list_sol(i)%id
        cout%list_sol(i)%imv    =cin%list_sol(i)%imv
        cout%list_sol(i)%nb_vert=cin%list_sol(i)%nb_vert
        cout%list_sol(i)%nb_face=cin%list_sol(i)%nb_face
        cout%list_sol(i)%xmin_s =cin%list_sol(i)%xmin_s
        cout%list_sol(i)%xmax_s =cin%list_sol(i)%xmax_s
        cout%list_sol(i)%ymin_s =cin%list_sol(i)%ymin_s
        cout%list_sol(i)%ymax_s =cin%list_sol(i)%ymax_s
        cout%list_sol(i)%zmin_s =cin%list_sol(i)%zmin_s
        cout%list_sol(i)%zmax_s =cin%list_sol(i)%zmax_s
        cout%list_sol(i)%rho    =cin%list_sol(i)%rho
        cout%list_sol(i)%xg     =cin%list_sol(i)%xg
        cout%list_sol(i)%theta  =cin%list_sol(i)%theta
        allocate(cout%list_sol(i)%list_facette(cin%list_sol(i)%nb_face))
        cout%list_sol(i)%list_facette  =cin%list_sol(i)%list_facette
        allocate(cout%list_sol(i)%list_vertex(cin%list_sol(i)%nb_vert))
        cout%list_sol(i)%list_vertex  =cin%list_sol(i)%list_vertex
        cout%list_sol(i)%nb_cell= 0

!      integer, dimension(:), allocatable        :: list_cells
     enddo  
  
  
!===========================   FIN DE LA ROUTINE    ====================
END SUBROUTINE copy_sol
!DOCFIN