mod_phy_typ.f90

### TABLE OF CONTENTS

- 1. PHY/phy_typ

## PHY/phy_typ [ Methods ]

[ Top ] [ Methods ]

NOM

     phy_typ

DESCRIPTION

     Descrition des types de structures PHYsiques

     Description of PHYsical structure types
     Type:
         vect_nvar  -> vecteur de taille nvarmax (seules les nvar premieres sont utiles)
         vect_3     -> vecteur de taille 3
         state      -> objet "etat": variables conservatives, variables primitives, gradient des variables primitives
                       modele Saint-Venant: h,u,v,entropie,z_b
                       modele Bifluide    : rho,u,v,w, p, entropie

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, intrinsic :: iso_fortran_env, only : output_unit, error_unit
      IMPLICIT NONE
    !.2-----  Declaration
    ! ----- nbre de variables de bilan
      integer,parameter               :: nvarmax=6 , phy_nb_cl=10
      integer                         :: nvar=5
    ! Indice de variable reserve pour l entropie
    ! A DEFINIR DANS LA ROUTINE entropie
      integer                         :: ive_phy=0
      integer :: imodel_phy=2  ! type de modele physique
    ! =2   --> bifluide isotherme (loi de pression isobare ou non)
    ! =1   --> Saint Venant

      real(kind=kind(0.D0)) ::etac_phy=0.D0 ! constante eta
      integer :: inoncons_phy=0 ! indicateur de modele non-conservatif
                                !=0 : pas de termes non conservatifs
                                !=1 : possede des termes non-conservatifs
      real(kind=kind(0.d0)) :: vi_phy   ! vitesse d interface du modele non conservatif
      integer               :: icell_phy   ! no de cellule (debogage)

    !----- quelques constantes physiques
      real(kind=kind(0.D0)) :: gpes_phy=9.81d0 !pesanteur

    ! modele bi-fluide isotherme
      real(kind=kind(0.D0)) :: c_phy=20.d0                       ! vitesses du son dans le melange air / eau (en m/s)
      real(kind=kind(0.D0)) :: p0_phy=1.d5                       ! pression de reference (en Pa)
      real(kind=kind(0.D0)) :: rho0A_phy=1.d0, rho0W_phy=1000.d0 ! masses volumiques de reference pour l air et l eau (en kg/m^3)
      real(kind=kind(0.D0)) :: sharp_phy=0.d0                    ! parametre de compression de l interface
      integer               :: pes_xyz=2                         ! orientation de la pesanteur 0/aucune, 1/suivant x, 2/suivant y, 3/suivant z

    ! modele de Saint Venant
      real(kind=kind(0.D0)) :: tc
      real(kind=kind(0.D0)) :: hzero_phy=1.d-4

      integer               :: ibathy=0 ! 0/ fond plat
                                        ! 1/ bathy et friction definies par fonction de numero num_bathy
                                        ! 2/ bathy et friction definies lineairement par bloc aux sommets
                                        ! 3/ bathy et friction definies par bloc sur le niveau de raffinement max
      character(30)         :: fich_bathy
      integer               :: num_bathy=0   ! numero de la fonction utilisateur definissant la bathymetrie, son gradient et la friction
      integer               :: ngrad_bathy=0 ! gradient de bathymetrie numerique 0/non , 1/oui
      integer               :: ifrict=0 ! 0/ Pas de Fiction
                                        ! 1/ friction Manning-Sticker Cf u u /h**4/3
                                        ! 2/ friction Darcy-Weisbach Cf u u /h

    !=========================== DEBUT DU CODE EXECUTABLE ==================
    !----- Debut Type ------------------------------------------------------
    !  vecteur de taille nvar (surdimensionne Ã  nvarmax)
      TYPE vect_nvar
         real(kind=kind(0.d0)),dimension(nvarmax):: v
      END TYPE vect_nvar
    !----- Fin Type -------------------------------------------------------

    !----- Debut Type -----------------------------------------------------
    ! vecteur de taille 3
      TYPE vect_3
         real(kind=kind(0.d0)),dimension(3):: v
      END TYPE vect_3
    !----- Fin Type -------------------------------------------------------

    !----- Debut Type -----------------------------------------------------
    ! etat physique: variables de bilan et primitives
    ! gradient des variables primitives
      TYPE state
         type(vect_nvar)             :: vbal,vprim
         type(vect_nvar),dimension(3):: gprim
         real(kind=kind(0.d0))       :: enti,entf,pe,chi
      END TYPE state
    !----- Fin Type -------------------------------------------------------

     CONTAINS

     SUBROUTINE print_err(fich,msg)
      implicit none
      character(len=*), intent(in)       :: msg, fich
     write(output_unit,*)achar(27)//'[31mX ERR-'//fich//' : '//msg  ! en rouge
     write(output_unit,*)'X ERR-'//fich//' : end program.'//achar(27)//'[0m'
     stop
     END SUBROUTINE print_err

     SUBROUTINE print_avert(fich,msg)
      implicit none
      character(len=*), intent(in)       :: msg, fich
      write(output_unit,*)achar(27)//'[34m! AVERT-'//fich//' : '//msg//achar(27)//'[0m' ! en bleu
     END SUBROUTINE print_avert

     SUBROUTINE print_info(fich,msg)
      implicit none
      character(len=*), intent(in)       :: msg, fich
      write(output_unit,*)achar(27)//'[32m> INFO-'//fich//' : '//msg//achar(27)//'[0m' ! en vert
     END SUBROUTINE print_info

    !===========================   FIN DU MODULE   =========================
      END MODULE phy_typ