/[lmdze]/trunk/Sources/dyn3d/limz.f
ViewVC logotype

Contents of /trunk/Sources/dyn3d/limz.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 2 months ago) by guez
Original Path: trunk/libf/dyn3d/limz.f
File size: 2308 byte(s)
Initial import
1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/limz.F,v 1.1.1.1 2004/05/19 12:53:07 lmdzadmin Exp $
3 !
4 SUBROUTINE limz(s0,sz,sm,pente_max)
5 c
6 c Auteurs: P.Le Van, F.Hourdin, F.Forget
7 c
8 c ********************************************************************
9 c Shema d'advection " pseudo amont " .
10 c ********************************************************************
11 c nq,iq,q,pbaru,pbarv,w sont des arguments d'entree pour le s-pg ....
12 c
13 c
14 c --------------------------------------------------------------------
15 use dimens_m
16 use paramet_m
17 use comconst
18 use comvert
19 use logic
20 use comgeom
21 IMPLICIT NONE
22 c
23 c
24 c
25 c Arguments:
26 c ----------
27 real pente_max
28 REAL s0(ip1jmp1,llm),sm(ip1jmp1,llm)
29 real sz(ip1jmp1,llm)
30 c
31 c Local
32 c ---------
33 c
34 INTEGER ij,l,j,i,iju,ijq,indu(ip1jmp1),niju
35 integer n0,iadvplus(ip1jmp1,llm),nl(llm)
36 c
37 REAL q(ip1jmp1,llm)
38 real dzq(ip1jmp1,llm)
39
40
41 REAL new_m,zm
42 real dzqw(ip1jmp1)
43 real adzqw(ip1jmp1),dzqmax(ip1jmp1)
44
45 Logical extremum,first
46 save first
47
48 REAL SSUM,CVMGP,CVMGT
49 integer ismax,ismin
50 EXTERNAL SSUM, convflu,ismin,ismax
51 EXTERNAL filtreg
52
53 data first/.true./
54
55
56 DO l = 1,llm
57 DO ij=1,ip1jmp1
58 q(ij,l) = s0(ij,l) / sm ( ij,l )
59 dzq(ij,l) = sz(ij,l) /sm(ij,l)
60 ENDDO
61 ENDDO
62
63 c calcul de la pente en haut et en bas de la maille
64 do ij=1,ip1jmp1
65 do l = 1, llm-1
66 dzqw(l)=q(ij,l+1)-q(ij,l)
67 enddo
68 dzqw(llm)=0.
69
70 do l=1,llm
71 adzqw(l)=abs(dzqw(l))
72 enddo
73
74 c calcul de la pente maximum dans la maille en valeur absolue
75
76 do l=2,llm-1
77 dzqmax(l)=pente_max*min(adzqw(l-1),adzqw(l))
78 enddo
79
80 c calcul de la pente avec limitation
81
82 do l=2,llm-1
83 if( dzqw(l-1)*dzqw(l).gt.0.
84 & .and. dzq(ij,l)*dzqw(l).gt.0.) then
85 dzq(ij,l)=
86 & sign(min(abs(dzq(ij,l)),dzqmax(l)),dzq(ij,l))
87 else
88 c extremum local
89 dzq(ij,l)=0.
90 endif
91 enddo
92
93 DO l=1,llm
94 sz(ij,l) = dzq(ij,l)*sm(ij,l)
95 ENDDO
96
97 ENDDO
98
99 RETURN
100 END

  ViewVC Help
Powered by ViewVC 1.1.21