! ! $Id: adaptdt.f90 5272 2024-10-24 15:53:15Z abarral $ ! subroutine adaptdt(nadv,dtbon,n,pbaru, & masse) USE comconst_mod, ONLY: dtvr USE dimensions_mod, ONLY: iim, jjm, llm, ndm USE paramet_mod_h, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, & ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm IMPLICIT NONE include "comdissip.h" include "comgeom2.h" include "description.h" !---------------------------------------------------------- ! 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