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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 178 - (hide annotations)
Fri Mar 11 18:47:26 2016 UTC (8 years, 2 months ago) by guez
File size: 2087 byte(s)
Moved variables date0, deltat, datasz_max, ncvar_ids, point, buff_pos,
buffer, regular from module histcom_var to modules where they are
defined.

Removed procedure ioipslmpp, useless for a sequential program.

Added argument datasz_max to histwrite_real (to avoid circular
dependency with histwrite).

Removed useless variables and computations everywhere.

Changed real litteral constants from default kind to double precision
in lwb, lwu, lwvn, sw1s, swtt, swtt1, swu.

Removed unused arguments: paer of sw, sw1s, sw2s, swclr; pcldsw of
sw1s, sw2s; pdsig, prayl of swr; co2_ppm of clmain, clqh; tsol of
transp_lay; nsrf of screenp; kcrit and kknu of gwstress; pstd of
orosetup.

Added output of relative humidity.

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 178 EXTERNAL convflu
44 guez 3
45 guez 81 DO l = 1, llm
46     DO ij = 1, ip1jmp1
47     q(ij, l) = s0(ij, l)/sm(ij, l)
48     dxq(ij, l) = sx(ij, l)/sm(ij, l)
49     END DO
50     END DO
51    
52     ! calcul de la pente a droite et a gauche de la maille
53    
54     DO l = 1, llm
55     DO ij = iip2, ip1jm - 1
56     dxqu(ij) = q(ij+1, l) - q(ij, l)
57     END DO
58     DO ij = iip1 + iip1, ip1jm, iip1
59     dxqu(ij) = dxqu(ij-iim)
60     END DO
61    
62     DO ij = iip2, ip1jm
63     adxqu(ij) = abs(dxqu(ij))
64     END DO
65    
66     ! calcul de la pente maximum dans la maille en valeur absolue
67    
68     DO ij = iip2 + 1, ip1jm
69     dxqmax(ij) = pente_max*min(adxqu(ij-1), adxqu(ij))
70     END DO
71    
72     DO ij = iip1 + iip1, ip1jm, iip1
73     dxqmax(ij-iim) = dxqmax(ij)
74     END DO
75    
76     ! calcul de la pente avec limitation
77    
78     DO ij = iip2 + 1, ip1jm
79     IF (dxqu(ij-1)*dxqu(ij)>0. .AND. dxq(ij,l)*dxqu(ij)>0.) THEN
80     dxq(ij, l) = sign(min(abs(dxq(ij,l)),dxqmax(ij)), dxq(ij,l))
81     ELSE
82     ! extremum local
83     dxq(ij, l) = 0.
84     END IF
85     END DO
86     DO ij = iip1 + iip1, ip1jm, iip1
87     dxq(ij-iim, l) = dxq(ij, l)
88     END DO
89    
90     DO ij = 1, ip1jmp1
91     sx(ij, l) = dxq(ij, l)*sm(ij, l)
92     END DO
93    
94     END DO
95    
96     RETURN
97     END SUBROUTINE limx

  ViewVC Help
Powered by ViewVC 1.1.21