/[lmdze]/trunk/libf/phylmd/Conflx/flxini.f90
ViewVC logotype

Contents of /trunk/libf/phylmd/Conflx/flxini.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 52 - (show annotations)
Fri Sep 23 12:28:01 2011 UTC (12 years, 7 months ago) by guez
File size: 4667 byte(s)
Split "conflx.f" into single-procedure files in directory "Conflx".

Split "cv_routines.f" into single-procedure files in directory
"CV_routines". Made module "cvparam" from included file
"cvparam.h". No included file other than "netcdf.inc" left in LMDZE.

1 SUBROUTINE flxini(pten, pqen, pqsen, pgeo, paph, pgeoh, ptenh, &
2 pqenh, pqsenh, ptu, pqu, ptd, pqd, pmfd, pmfds, pmfdq, &
3 pdmfdp, pmfu, pmfus, pmfuq, pdmfup, pdpmel, plu, plude, &
4 klab,pen_u, pde_u, pen_d, pde_d)
5 use dimens_m
6 use dimphy
7 use SUPHEC_M
8 use yoethf_m
9 IMPLICIT none
10 !----------------------------------------------------------------------
11 ! THIS ROUTINE INTERPOLATES LARGE-SCALE FIELDS OF T,Q ETC.
12 ! TO HALF LEVELS (I.E. GRID FOR MASSFLUX SCHEME),
13 ! AND INITIALIZES VALUES FOR UPDRAFTS
14 !----------------------------------------------------------------------
15 !
16 REAL pten(klon,klev) ! temperature (environnement)
17 REAL pqen(klon,klev) ! humidite (environnement)
18 REAL pqsen(klon,klev) ! humidite saturante (environnement)
19 REAL pgeo(klon,klev) ! geopotentiel (g * metre)
20 REAL pgeoh(klon,klev) ! geopotentiel aux demi-niveaux
21 REAL paph(klon,klev+1) ! pression aux demi-niveaux
22 REAL ptenh(klon,klev) ! temperature aux demi-niveaux
23 REAL pqenh(klon,klev) ! humidite aux demi-niveaux
24 REAL pqsenh(klon,klev) ! humidite saturante aux demi-niveaux
25 !
26 REAL ptu(klon,klev) ! temperature du panache ascendant (p-a)
27 REAL pqu(klon,klev) ! humidite du p-a
28 REAL plu(klon,klev) ! eau liquide du p-a
29 REAL pmfu(klon,klev) ! flux de masse du p-a
30 REAL pmfus(klon,klev) ! flux de l'energie seche dans le p-a
31 REAL pmfuq(klon,klev) ! flux de l'humidite dans le p-a
32 REAL pdmfup(klon,klev) ! quantite de l'eau precipitee dans p-a
33 REAL plude(klon,klev) ! quantite de l'eau liquide jetee du
34 ! p-a a l'environnement
35 REAL pdpmel(klon,klev) ! quantite de neige fondue
36 !
37 REAL ptd(klon,klev) ! temperature du panache descendant (p-d)
38 REAL pqd(klon,klev) ! humidite du p-d
39 REAL pmfd(klon,klev) ! flux de masse du p-d
40 REAL pmfds(klon,klev) ! flux de l'energie seche dans le p-d
41 REAL pmfdq(klon,klev) ! flux de l'humidite dans le p-d
42 REAL pdmfdp(klon,klev) ! quantite de precipitation dans p-d
43 !
44 REAL pen_u(klon,klev) ! quantite de masse entrainee pour p-a
45 REAL pde_u(klon,klev) ! quantite de masse detrainee pour p-a
46 REAL pen_d(klon,klev) ! quantite de masse entrainee pour p-d
47 REAL pde_d(klon,klev) ! quantite de masse detrainee pour p-d
48 !
49 INTEGER klab(klon,klev)
50 LOGICAL llflag(klon)
51 INTEGER k, i, icall
52 REAL zzs
53 !----------------------------------------------------------------------
54 ! SPECIFY LARGE SCALE PARAMETERS AT HALF LEVELS
55 ! ADJUST TEMPERATURE FIELDS IF STATICLY UNSTABLE
56 !----------------------------------------------------------------------
57 DO 130 k = 2, klev
58 !
59 DO i = 1, klon
60 pgeoh(i,k)=pgeo(i,k)+(pgeo(i,k-1)-pgeo(i,k))*0.5
61 ptenh(i,k)=(MAX(RCPD*pten(i,k-1)+pgeo(i,k-1), &
62 RCPD*pten(i,k)+pgeo(i,k))-pgeoh(i,k))/RCPD
63 pqsenh(i,k)=pqsen(i,k-1)
64 llflag(i)=.TRUE.
65 ENDDO
66 !
67 icall=0
68 CALL flxadjtq(paph(1,k),ptenh(1,k),pqsenh(1,k),llflag,icall)
69 !
70 DO i = 1, klon
71 pqenh(i,k)=MIN(pqen(i,k-1),pqsen(i,k-1)) &
72 +(pqsenh(i,k)-pqsen(i,k-1))
73 pqenh(i,k)=MAX(pqenh(i,k),0.)
74 ENDDO
75 !
76 130 CONTINUE
77 !
78 DO 140 i = 1, klon
79 ptenh(i,klev)=(RCPD*pten(i,klev)+pgeo(i,klev)- &
80 pgeoh(i,klev))/RCPD
81 pqenh(i,klev)=pqen(i,klev)
82 ptenh(i,1)=pten(i,1)
83 pqenh(i,1)=pqen(i,1)
84 pgeoh(i,1)=pgeo(i,1)
85 140 CONTINUE
86 !
87 DO 160 k = klev-1, 2, -1
88 DO 150 i = 1, klon
89 zzs = MAX(RCPD*ptenh(i,k)+pgeoh(i,k), &
90 RCPD*ptenh(i,k+1)+pgeoh(i,k+1))
91 ptenh(i,k) = (zzs-pgeoh(i,k))/RCPD
92 150 CONTINUE
93 160 CONTINUE
94 !
95 !-----------------------------------------------------------------------
96 ! INITIALIZE VALUES FOR UPDRAFTS AND DOWNDRAFTS
97 !-----------------------------------------------------------------------
98 DO k = 1, klev
99 DO i = 1, klon
100 ptu(i,k) = ptenh(i,k)
101 pqu(i,k) = pqenh(i,k)
102 plu(i,k) = 0.
103 pmfu(i,k) = 0.
104 pmfus(i,k) = 0.
105 pmfuq(i,k) = 0.
106 pdmfup(i,k) = 0.
107 pdpmel(i,k) = 0.
108 plude(i,k) = 0.
109 !
110 klab(i,k) = 0
111 !
112 ptd(i,k) = ptenh(i,k)
113 pqd(i,k) = pqenh(i,k)
114 pmfd(i,k) = 0.0
115 pmfds(i,k) = 0.0
116 pmfdq(i,k) = 0.0
117 pdmfdp(i,k) = 0.0
118 !
119 pen_u(i,k) = 0.0
120 pde_u(i,k) = 0.0
121 pen_d(i,k) = 0.0
122 pde_d(i,k) = 0.0
123 ENDDO
124 ENDDO
125 !
126 RETURN
127 END

  ViewVC Help
Powered by ViewVC 1.1.21