1 |
|
|
! |
2 |
|
|
! $Id: adaptdt.F 2622 2016-09-04 06:12:02Z emillour $ |
3 |
|
|
! |
4 |
|
|
subroutine adaptdt(nadv,dtbon,n,pbaru, |
5 |
|
|
c masse) |
6 |
|
|
|
7 |
|
|
USE comconst_mod, ONLY: dtvr |
8 |
|
|
IMPLICIT NONE |
9 |
|
|
|
10 |
|
|
include "dimensions.h" |
11 |
|
|
include "paramet.h" |
12 |
|
|
include "comdissip.h" |
13 |
|
|
include "comgeom2.h" |
14 |
|
|
include "description.h" |
15 |
|
|
|
16 |
|
|
c---------------------------------------------------------- |
17 |
|
|
c Arguments |
18 |
|
|
c---------------------------------------------------------- |
19 |
|
|
INTEGER n,nadv |
20 |
|
|
REAL dtbon |
21 |
|
|
REAL pbaru(iip1,jjp1,llm) |
22 |
|
|
REAL masse(iip1,jjp1,llm) |
23 |
|
|
c---------------------------------------------------------- |
24 |
|
|
c Local |
25 |
|
|
c---------------------------------------------------------- |
26 |
|
|
INTEGER i,j,l |
27 |
|
|
REAL CFLmax,aaa,bbb |
28 |
|
|
|
29 |
|
|
CFLmax=0. |
30 |
|
|
do l=1,llm |
31 |
|
|
do j=2,jjm |
32 |
|
|
do i=1,iim |
33 |
|
|
aaa=pbaru(i,j,l)*dtvr/masse(i,j,l) |
34 |
|
|
CFLmax=max(CFLmax,aaa) |
35 |
|
|
bbb=-pbaru(i,j,l)*dtvr/masse(i+1,j,l) |
36 |
|
|
CFLmax=max(CFLmax,bbb) |
37 |
|
|
enddo |
38 |
|
|
enddo |
39 |
|
|
enddo |
40 |
|
|
n=int(CFLmax)+1 |
41 |
|
|
c pour reproduire cas VL du code qui appele x,y,z,y,x |
42 |
|
|
c if (nadv.eq.30) n=n/2 ! Pour Prather |
43 |
|
|
dtbon=dtvr/n |
44 |
|
|
|
45 |
|
|
return |
46 |
|
|
end |
47 |
|
|
|
48 |
|
|
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
|
52 |
|
|
|
53 |
|
|
|