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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 178 - (show annotations)
Fri Mar 11 18:47:26 2016 UTC (8 years, 3 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
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/limx.F,v 1.1.1.1 2004/05/19
3 ! 12:53:06 lmdzadmin Exp $
4
5 SUBROUTINE limx(s0, sx, 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 sx(ip1jmp1, llm)
31
32 ! Local
33 ! ---------
34
35 INTEGER ij, l
36
37 REAL q(ip1jmp1, llm)
38 REAL dxq(ip1jmp1, llm)
39
40 REAL dxqu(ip1jmp1)
41 REAL adxqu(ip1jmp1), dxqmax(ip1jmp1)
42
43 EXTERNAL convflu
44
45 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