TABLE OF CONTENTS


NUM/dtloc [ Modules ]

[ Top ] [ Modules ]

NOM

 dtloc (calc)

DESCRIPTION

 Calcul du pas de temps local a  un domaine

 Calculating the local time step for a domain
 
    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
  IMPLICIT NONE
!.2-----  Declaration
  type(calcul), intent(inout) :: calc !! Objet calcul / Calcul object
  
  integer                     :: i
  real(kind=kind(0.d0))       :: vloc,dt_loc
!=========================== DEBUT DU CODE EXECUTABLE ==================

! On determine la vitesse d onde maximale sur toutes les cellules du calcul
  calc%vmax=0.d0
  calc%dt=1.d20
  DO i=1,calc%msh%nb_cell
      IF (calc%msh%numdom.eq.calc%msh%list_cell(i)%idom) THEN
          CALL VelCFL(calc%msh%list_cell(i)%w,vloc,calc%msh%list_cell(i)%h)
          IF (vloc.gt.calc%vmax)calc%vmax=vloc
          dt_loc=calc%msh%list_cell(i)%h*calc%cfl/vloc     
          IF (dt_loc.lt.calc%dt)calc%dt=dt_loc
      END IF
  END DO
!===========================   FIN DE LA ROUTINE    ====================
END SUBROUTINE dtloc