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

Annotation of /trunk/dyn3d/Vlsplt/vlsplt.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 76 - (hide annotations)
Fri Nov 15 18:45:49 2013 UTC (10 years, 6 months ago) by guez
Original Path: trunk/dyn3d/Vlsplt/vlsplt.f90
File size: 2038 byte(s)
Moved everything out of libf.
1 guez 40 SUBROUTINE vlsplt(q, pente_max, masse, w, pbaru, pbarv, pdt)
2 guez 3
3 guez 40 ! 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 guez 3
6 guez 40 ! 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 guez 3
13 guez 40 USE dimens_m, ONLY: iim, llm
14     USE paramet_m, ONLY: iip1, iip2, ijp1llm, ip1jm, ip1jmp1
15 guez 3
16 guez 40 IMPLICIT NONE
17 guez 3
18 guez 40 ! Arguments:
19 guez 3
20 guez 40 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 guez 31
26 guez 40 ! Local
27 guez 3
28 guez 40 INTEGER i, ij, l, j, ii
29     INTEGER ijlqmin, iqmin, jqmin, lqmin
30 guez 3
31 guez 40 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 guez 3
45 guez 40 REAL qmin, qmax
46     DATA qmin, qmax/0., 1.e33/
47     DATA testcpu/.false./
48     DATA temps1, temps2, temps3/0., 0., 0./
49 guez 3
50 guez 40 !---------------------------------------------------------------
51 guez 3
52 guez 40 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 guez 3
66 guez 40 DO ij = 1, ip1jmp1
67     mw(ij, llm+1) = 0.
68     ENDDO
69 guez 3
70 guez 40 zq = q
71     zm = masse
72 guez 31
73 guez 40 call vlx(zq, pente_max, zm, mu)
74 guez 3
75 guez 40 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