1 |
guez |
3 |
|
2 |
guez |
81 |
! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/adaptdt.F,v 1.1.1.1 2004/05/19 |
3 |
|
|
! 12:53:05 lmdzadmin Exp $ |
4 |
guez |
3 |
|
5 |
guez |
81 |
SUBROUTINE adaptdt(nadv, dtbon, n, pbaru, masse) |
6 |
guez |
3 |
|
7 |
guez |
81 |
USE dimens_m |
8 |
|
|
USE paramet_m |
9 |
|
|
USE comconst |
10 |
|
|
USE disvert_m |
11 |
|
|
USE conf_gcm_m |
12 |
|
|
USE conf_gcm_m |
13 |
|
|
USE comgeom |
14 |
|
|
USE temps |
15 |
|
|
USE ener |
16 |
|
|
IMPLICIT NONE |
17 |
guez |
3 |
|
18 |
|
|
|
19 |
guez |
81 |
! ---------------------------------------------------------- |
20 |
|
|
! Arguments |
21 |
|
|
! ---------------------------------------------------------- |
22 |
|
|
INTEGER n, nadv |
23 |
|
|
REAL dtbon |
24 |
|
|
REAL, INTENT (IN) :: pbaru(iip1, jjp1, llm) |
25 |
|
|
REAL masse(iip1, jjp1, llm) |
26 |
|
|
! ---------------------------------------------------------- |
27 |
|
|
! Local |
28 |
|
|
! ---------------------------------------------------------- |
29 |
|
|
INTEGER i, j, l |
30 |
|
|
REAL cflmax, aaa, bbb |
31 |
guez |
3 |
|
32 |
guez |
81 |
cflmax = 0. |
33 |
|
|
DO l = 1, llm |
34 |
|
|
DO j = 2, jjm |
35 |
|
|
DO i = 1, iim |
36 |
|
|
aaa = pbaru(i, j, l)*dtvr/masse(i, j, l) |
37 |
|
|
cflmax = max(cflmax, aaa) |
38 |
|
|
bbb = -pbaru(i, j, l)*dtvr/masse(i+1, j, l) |
39 |
|
|
cflmax = max(cflmax, bbb) |
40 |
|
|
END DO |
41 |
|
|
END DO |
42 |
|
|
END DO |
43 |
|
|
n = int(cflmax) + 1 |
44 |
|
|
! pour reproduire cas VL du code qui appele x,y,z,y,x |
45 |
|
|
! if (nadv.eq.30) n=n/2 ! Pour Prather |
46 |
|
|
dtbon = dtvr/n |
47 |
guez |
3 |
|
48 |
guez |
81 |
RETURN |
49 |
|
|
END SUBROUTINE adaptdt |
50 |
guez |
3 |
|
51 |
|
|
|
52 |
|
|
|
53 |
guez |
81 |
|
54 |
|
|
|
55 |
|
|
|
56 |
|
|
|