adaptdt.f90 Source File


This file depends on

sourcefile~~adaptdt.f90~~EfferentGraph sourcefile~adaptdt.f90 adaptdt.f90 sourcefile~paramet_mod_h.f90 paramet_mod_h.f90 sourcefile~adaptdt.f90->sourcefile~paramet_mod_h.f90 sourcefile~comdissip_mod_h.f90 comdissip_mod_h.f90 sourcefile~adaptdt.f90->sourcefile~comdissip_mod_h.f90 sourcefile~comgeom2_mod_h.f90 comgeom2_mod_h.f90 sourcefile~adaptdt.f90->sourcefile~comgeom2_mod_h.f90 sourcefile~comconst_mod.f90 comconst_mod.f90 sourcefile~adaptdt.f90->sourcefile~comconst_mod.f90 sourcefile~comgeom2_mod_h.f90->sourcefile~paramet_mod_h.f90

Contents

Source Code


Source Code

!
! $Id: adaptdt.f90 5285 2024-10-28 13:33:29Z abarral $
!
subroutine adaptdt(nadv,dtbon,n,pbaru, &
        masse)

  USE comgeom2_mod_h
  USE comdissip_mod_h
  USE comconst_mod, ONLY: dtvr
  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
USE paramet_mod_h
IMPLICIT NONE



  !----------------------------------------------------------
  ! Arguments
  !----------------------------------------------------------
  INTEGER :: n,nadv
  REAL :: dtbon
  REAL :: pbaru(iip1,jjp1,llm)
  REAL :: masse(iip1,jjp1,llm)
  !----------------------------------------------------------
  ! Local
  !----------------------------------------------------------
  INTEGER :: i,j,l
  REAL :: CFLmax,aaa,bbb

    CFLmax=0.
    do l=1,llm
     do j=2,jjm
      do i=1,iim
         aaa=pbaru(i,j,l)*dtvr/masse(i,j,l)
         CFLmax=max(CFLmax,aaa)
         bbb=-pbaru(i,j,l)*dtvr/masse(i+1,j,l)
         CFLmax=max(CFLmax,bbb)
      enddo
     enddo
    enddo
    n=int(CFLmax)+1
  ! pour reproduire cas VL du code qui appele x,y,z,y,x
     ! if (nadv.eq.30) n=n/2   ! Pour Prather
    dtbon=dtvr/n

   return
end subroutine adaptdt