/[lmdze]/trunk/Sources/dyn3d/Vlsplt/vlsplt.f
ViewVC logotype

Contents of /trunk/Sources/dyn3d/Vlsplt/vlsplt.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (show annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years ago) by guez
File size: 2038 byte(s)
Sources inside, compilation outside.
1 SUBROUTINE vlsplt(q, pente_max, masse, w, pbaru, pbarv, pdt)
2
3 ! From LMDZ4/libf/dyn3d/vlsplt.F, version 1.2 2005/02/24 12:16:57 fairhead
4 ! Auteurs: P. Le Van, F. Hourdin, F. Forget
5
6 ! Shema d'advection "pseudo amont".
7 ! q, pbaru, pbarv, w sont des arguments d'entree pour le sous-programme.
8 ! pente_max facteur de limitation des pentes : 2 en general
9 ! 0 pour un schema amont
10 ! pbaru, pbarv, w flux de masse en u, v, w
11 ! pdt pas de temps
12
13 USE dimens_m, ONLY: iim, llm
14 USE paramet_m, ONLY: iip1, iip2, ijp1llm, ip1jm, ip1jmp1
15
16 IMPLICIT NONE
17
18 ! Arguments:
19
20 REAL masse(ip1jmp1, llm), pente_max
21 REAL, intent(in):: pbaru( ip1jmp1, llm ), pbarv( ip1jm, llm)
22 REAL, intent(inout):: q(ip1jmp1, llm)
23 REAL w(ip1jmp1, llm)
24 real, intent(in):: pdt
25
26 ! Local
27
28 INTEGER i, ij, l, j, ii
29 INTEGER ijlqmin, iqmin, jqmin, lqmin
30
31 REAL zm(ip1jmp1, llm), newmasse
32 REAL mu(ip1jmp1, llm)
33 REAL mv(ip1jm, llm)
34 REAL mw(ip1jmp1, llm+1)
35 REAL zq(ip1jmp1, llm), zz
36 REAL dqx(ip1jmp1, llm), dqy(ip1jmp1, llm), dqz(ip1jmp1, llm)
37 REAL second, temps0, temps1, temps2, temps3
38 REAL ztemps1, ztemps2, ztemps3
39 REAL zzpbar, zzw
40 LOGICAL testcpu
41 SAVE testcpu
42 SAVE temps1, temps2, temps3
43 INTEGER iminn, imaxx
44
45 REAL qmin, qmax
46 DATA qmin, qmax/0., 1.e33/
47 DATA testcpu/.false./
48 DATA temps1, temps2, temps3/0., 0., 0./
49
50 !---------------------------------------------------------------
51
52 zzpbar = 0.5 * pdt
53 zzw = pdt
54 DO l = 1, llm
55 DO ij = iip2, ip1jm
56 mu(ij, l) = pbaru(ij, l) * zzpbar
57 ENDDO
58 DO ij = 1, ip1jm
59 mv(ij, l) = pbarv(ij, l) * zzpbar
60 ENDDO
61 DO ij = 1, ip1jmp1
62 mw(ij, l) = w(ij, l) * zzw
63 ENDDO
64 ENDDO
65
66 DO ij = 1, ip1jmp1
67 mw(ij, llm+1) = 0.
68 ENDDO
69
70 zq = q
71 zm = masse
72
73 call vlx(zq, pente_max, zm, mu)
74
75 call vly(zq, pente_max, zm, mv)
76 call vlz(zq, pente_max, zm, mw)
77
78 call vly(zq, pente_max, zm, mv)
79
80 call vlx(zq, pente_max, zm, mu)
81
82 q = zq
83 DO ij = 1, ip1jm+1, iip1
84 q(ij+iim, :) = q(ij, :)
85 ENDDO
86
87 END SUBROUTINE vlsplt

  ViewVC Help
Powered by ViewVC 1.1.21