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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 155 - (show annotations)
Wed Jul 8 17:03:45 2015 UTC (8 years, 10 months ago) by guez
File size: 1933 byte(s)
Do not write any longer to startphy.nc nor read from restartphy.nc the
NetCDF variable ALBLW: it was the same than ALBE. ALBE was for the
visible and ALBLW for the near infrared. In physiq, use only variables
falbe and albsol, removed falblw and albsollw. See revision 888 of
LMDZ.

Removed unused arguments pdp of SUBROUTINE lwbv, ptave of SUBROUTINE
lwv, kuaer of SUBROUTINE lwvd, nq of SUBROUTINE initphysto.

1
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/limz.F,v 1.1.1.1 2004/05/19
3 ! 12:53:07 lmdzadmin Exp $
4
5 SUBROUTINE limz(s0, sz, sm, pente_max)
6
7 ! Auteurs: P.Le Van, F.Hourdin, F.Forget
8
9 ! ********************************************************************
10 ! Shema d'advection " pseudo amont " .
11 ! ********************************************************************
12 ! nq,iq,q,pbaru,pbarv,w sont des arguments d'entree pour le s-pg ....
13
14
15 ! --------------------------------------------------------------------
16 USE dimens_m
17 USE paramet_m
18 USE comconst
19 USE disvert_m
20 USE conf_gcm_m
21 USE comgeom
22 IMPLICIT NONE
23
24
25
26 ! Arguments:
27 ! ----------
28 REAL pente_max
29 REAL s0(ip1jmp1, llm), sm(ip1jmp1, llm)
30 REAL sz(ip1jmp1, llm)
31
32 ! Local
33 ! ---------
34
35 INTEGER ij, l
36
37 REAL q(ip1jmp1, llm)
38 REAL dzq(ip1jmp1, llm)
39
40 REAL dzqw(ip1jmp1)
41 REAL adzqw(ip1jmp1), dzqmax(ip1jmp1)
42
43 LOGICAL first
44 SAVE first
45
46 REAL ssum
47 INTEGER ismax, ismin
48 EXTERNAL ssum, convflu, ismin, ismax
49
50 DATA first/.TRUE./
51
52
53 DO l = 1, llm
54 DO ij = 1, ip1jmp1
55 q(ij, l) = s0(ij, l)/sm(ij, l)
56 dzq(ij, l) = sz(ij, l)/sm(ij, l)
57 END DO
58 END DO
59
60 ! calcul de la pente en haut et en bas de la maille
61 DO ij = 1, ip1jmp1
62 DO l = 1, llm - 1
63 dzqw(l) = q(ij, l+1) - q(ij, l)
64 END DO
65 dzqw(llm) = 0.
66
67 DO l = 1, llm
68 adzqw(l) = abs(dzqw(l))
69 END DO
70
71 ! calcul de la pente maximum dans la maille en valeur absolue
72
73 DO l = 2, llm - 1
74 dzqmax(l) = pente_max*min(adzqw(l-1), adzqw(l))
75 END DO
76
77 ! calcul de la pente avec limitation
78
79 DO l = 2, llm - 1
80 IF (dzqw(l-1)*dzqw(l)>0. .AND. dzq(ij,l)*dzqw(l)>0.) THEN
81 dzq(ij, l) = sign(min(abs(dzq(ij,l)),dzqmax(l)), dzq(ij,l))
82 ELSE
83 ! extremum local
84 dzq(ij, l) = 0.
85 END IF
86 END DO
87
88 DO l = 1, llm
89 sz(ij, l) = dzq(ij, l)*sm(ij, l)
90 END DO
91
92 END DO
93
94 RETURN
95 END SUBROUTINE limz

  ViewVC Help
Powered by ViewVC 1.1.21