/[lmdze]/trunk/libf/dyn3d/Vlsplt/vlsplt.f90
ViewVC logotype

Contents of /trunk/libf/dyn3d/Vlsplt/vlsplt.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 31 - (show annotations)
Thu Apr 1 14:59:19 2010 UTC (14 years, 1 month ago) by guez
File size: 2607 byte(s)
Split "vlsplt.f" in single-procedure files. Gathered the files in
directory "dyn3d/Vlsplt".

Defined "pbarum(:, 1, :)" and "pbarum(:, jjm + 1, :)" in procedure
"groupe".

1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/vlsplt.F,v 1.2
3 ! 2005/02/24 12:16:57 fairhead Exp $
4 !
5 !
6 !
7
8 SUBROUTINE vlsplt(q,pente_max,masse,w,pbaru,pbarv,pdt)
9 !
10 ! Auteurs: P.Le Van, F.Hourdin, F.Forget
11 !
12 ! *************************************************************
13 ! Shema d'advection " pseudo amont " .
14 ! **************************************************************
15 ! q,pbaru,pbarv,w sont des arguments d'entree pour le s-pg ....
16 !
17 ! pente_max facteur de limitation des pentes: 2 en general
18 ! 0 pour un schema amont
19 ! pbaru,pbarv,w flux de masse en u ,v ,w
20 ! pdt pas de temps
21 !
22 ! ---------------------------------------------------------------
23 use dimens_m
24 use paramet_m
25 use comconst
26 use comvert
27 use logic
28 IMPLICIT NONE
29 !
30
31 !
32 ! Arguments:
33 ! ----------
34 REAL masse(ip1jmp1,llm),pente_max
35 ! REAL masse(iip1,jjp1,llm),pente_max
36 REAL, intent(in):: pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm)
37 REAL q(ip1jmp1,llm)
38 ! REAL q(iip1,jjp1,llm)
39 REAL w(ip1jmp1,llm)
40 real, intent(in):: pdt
41 !
42 ! Local
43 ! ---------
44 !
45 INTEGER i,ij,l,j,ii
46 INTEGER ijlqmin,iqmin,jqmin,lqmin
47 !
48 REAL zm(ip1jmp1,llm),newmasse
49 REAL mu(ip1jmp1,llm)
50 REAL mv(ip1jm,llm)
51 REAL mw(ip1jmp1,llm+1)
52 REAL zq(ip1jmp1,llm),zz
53 REAL dqx(ip1jmp1,llm),dqy(ip1jmp1,llm),dqz(ip1jmp1,llm)
54 REAL second,temps0,temps1,temps2,temps3
55 REAL ztemps1,ztemps2,ztemps3
56 REAL zzpbar, zzw
57 LOGICAL testcpu
58 SAVE testcpu
59 SAVE temps1,temps2,temps3
60 INTEGER iminn,imaxx
61
62 REAL qmin,qmax
63 DATA qmin,qmax/0.,1.e33/
64 DATA testcpu/.false./
65 DATA temps1,temps2,temps3/0.,0.,0./
66
67
68 zzpbar = 0.5 * pdt
69 zzw = pdt
70 DO l=1,llm
71 DO ij = iip2,ip1jm
72 mu(ij,l)=pbaru(ij,l) * zzpbar
73 ENDDO
74 DO ij=1,ip1jm
75 mv(ij,l)=pbarv(ij,l) * zzpbar
76 ENDDO
77 DO ij=1,ip1jmp1
78 mw(ij,l)=w(ij,l) * zzw
79 ENDDO
80 ENDDO
81
82 DO ij=1,ip1jmp1
83 mw(ij,llm+1)=0.
84 ENDDO
85
86 CALL SCOPY(ijp1llm,q,1,zq,1)
87 CALL SCOPY(ijp1llm,masse,1,zm,1)
88
89 call vlx(zq,pente_max,zm,mu)
90
91 call vly(zq,pente_max,zm,mv)
92 call vlz(zq,pente_max,zm,mw)
93
94
95 call vly(zq,pente_max,zm,mv)
96
97
98 call vlx(zq,pente_max,zm,mu)
99
100
101 DO l=1,llm
102 DO ij=1,ip1jmp1
103 q(ij,l)=zq(ij,l)
104 ENDDO
105 DO ij=1,ip1jm+1,iip1
106 q(ij+iim,l)=q(ij,l)
107 ENDDO
108 ENDDO
109
110 RETURN
111 END

  ViewVC Help
Powered by ViewVC 1.1.21