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

Annotation of /trunk/Sources/dyn3d/limx.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 155 - (hide annotations)
Wed Jul 8 17:03:45 2015 UTC (8 years, 11 months ago) by guez
File size: 2195 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 guez 3
2 guez 81 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/limx.F,v 1.1.1.1 2004/05/19
3     ! 12:53:06 lmdzadmin Exp $
4 guez 3
5 guez 81 SUBROUTINE limx(s0, sx, sm, pente_max)
6 guez 3
7 guez 81 ! Auteurs: P.Le Van, F.Hourdin, F.Forget
8 guez 3
9 guez 81 ! ********************************************************************
10     ! Shema d'advection " pseudo amont " .
11     ! ********************************************************************
12     ! nq,iq,q,pbaru,pbarv,w sont des arguments d'entree pour le s-pg ....
13 guez 3
14    
15 guez 81 ! --------------------------------------------------------------------
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 guez 3
24    
25    
26 guez 81 ! Arguments:
27     ! ----------
28     REAL pente_max
29     REAL s0(ip1jmp1, llm), sm(ip1jmp1, llm)
30     REAL sx(ip1jmp1, llm)
31 guez 3
32 guez 81 ! Local
33     ! ---------
34 guez 3
35 guez 155 INTEGER ij, l
36 guez 3
37 guez 81 REAL q(ip1jmp1, llm)
38     REAL dxq(ip1jmp1, llm)
39 guez 3
40 guez 81 REAL dxqu(ip1jmp1)
41     REAL adxqu(ip1jmp1), dxqmax(ip1jmp1)
42 guez 3
43 guez 155 LOGICAL first
44 guez 81 SAVE first
45 guez 3
46 guez 155 REAL ssum
47 guez 81 INTEGER ismax, ismin
48     EXTERNAL ssum, convflu, ismin, ismax
49 guez 3
50 guez 81 DATA first/.TRUE./
51 guez 3
52 guez 81
53     DO l = 1, llm
54     DO ij = 1, ip1jmp1
55     q(ij, l) = s0(ij, l)/sm(ij, l)
56     dxq(ij, l) = sx(ij, l)/sm(ij, l)
57     END DO
58     END DO
59    
60     ! calcul de la pente a droite et a gauche de la maille
61    
62     DO l = 1, llm
63     DO ij = iip2, ip1jm - 1
64     dxqu(ij) = q(ij+1, l) - q(ij, l)
65     END DO
66     DO ij = iip1 + iip1, ip1jm, iip1
67     dxqu(ij) = dxqu(ij-iim)
68     END DO
69    
70     DO ij = iip2, ip1jm
71     adxqu(ij) = abs(dxqu(ij))
72     END DO
73    
74     ! calcul de la pente maximum dans la maille en valeur absolue
75    
76     DO ij = iip2 + 1, ip1jm
77     dxqmax(ij) = pente_max*min(adxqu(ij-1), adxqu(ij))
78     END DO
79    
80     DO ij = iip1 + iip1, ip1jm, iip1
81     dxqmax(ij-iim) = dxqmax(ij)
82     END DO
83    
84     ! calcul de la pente avec limitation
85    
86     DO ij = iip2 + 1, ip1jm
87     IF (dxqu(ij-1)*dxqu(ij)>0. .AND. dxq(ij,l)*dxqu(ij)>0.) THEN
88     dxq(ij, l) = sign(min(abs(dxq(ij,l)),dxqmax(ij)), dxq(ij,l))
89     ELSE
90     ! extremum local
91     dxq(ij, l) = 0.
92     END IF
93     END DO
94     DO ij = iip1 + iip1, ip1jm, iip1
95     dxq(ij-iim, l) = dxq(ij, l)
96     END DO
97    
98     DO ij = 1, ip1jmp1
99     sx(ij, l) = dxq(ij, l)*sm(ij, l)
100     END DO
101    
102     END DO
103    
104     RETURN
105     END SUBROUTINE limx

  ViewVC Help
Powered by ViewVC 1.1.21