/[lmdze]/trunk/Sources/phylmd/diagcld2.f
ViewVC logotype

Annotation of /trunk/Sources/phylmd/diagcld2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 221 - (hide annotations)
Thu Apr 20 14:44:47 2017 UTC (7 years ago) by guez
File size: 2274 byte(s)
clcdrag is no longer used in LMDZ. Replaced by cdrag in LMDZ. In cdrag
in LMDZ, zxli is a symbolic constant, false. So removed case zxli true
in LMDZE.

read_sst is called zero (if no ocean point on the whole planet) time or
once per call of physiq. If mod(itap - 1, lmt_pas) == 0 then we have
advanced in time of lmt_pas and deja_lu is necessarily false.

qsat[sl] and dqsat[sl] were never called.

Added output of qsurf in histins, following LMDZ.

Last dummy argument dtime of phystokenc is always the same as first
dummy argument pdtphys, removed dtime.

Removed make rules for nag_xref95, since it does not exist any longer.

1 guez 52 module diagcld2_m
2 guez 51
3     IMPLICIT none
4    
5 guez 52 contains
6 guez 51
7 guez 52 SUBROUTINE diagcld2(paprs, pplay, t, q, diafra, dialiq)
8 guez 51
9 guez 52 USE dimphy, ONLY : klev, klon
10     USE suphec_m, ONLY : rcpd, rd, retv, rtt
11     USE yoethf_m, ONLY : r2es
12 guez 221 USE fcttre, ONLY : foeew
13 guez 51
14 guez 52 ! Arguments d'entree:
15     REAL, intent(in):: paprs(klon, klev+1) ! pression (Pa) a inter-couche
16     REAL, intent(in):: pplay(klon, klev) ! pression (Pa) au milieu de couche
17     REAL, intent(in):: t(klon, klev) ! temperature (K)
18     REAL q(klon, klev) ! humidite specifique (Kg/Kg)
19 guez 51
20 guez 52 ! Arguments de sortie:
21     REAL diafra(klon, klev) ! fraction nuageuse diagnostiquee
22     REAL dialiq(klon, klev) ! eau liquide nuageuse
23 guez 51
24 guez 52 REAL, PARAMETER:: CETAMB = 0.8
25     REAL CLOIA, CLOIB, CLOIC, CLOID
26     PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.6, CLOID=5.0)
27     REAL RGAMMAS
28     PARAMETER (RGAMMAS=0.05)
29     REAL CRHL
30     PARAMETER (CRHL=0.15)
31 guez 51
32 guez 52 ! Variables locales:
33     INTEGER i, k, kb, invb(klon)
34     REAL zqs, zrhb, zcll, zdthmin(klon), zdthdp
35 guez 103 REAL zcor
36 guez 51
37 guez 52 !-----------------------------------------------------------
38 guez 51
39 guez 52 ! Initialisation:
40 guez 51
41 guez 52 DO k = 1, klev
42     DO i = 1, klon
43     diafra(i, k) = 0.0
44     dialiq(i, k) = 0.0
45     ENDDO
46     ENDDO
47 guez 51
48 guez 52 DO i = 1, klon
49     invb(i) = klev
50     zdthmin(i)=0.0
51     ENDDO
52    
53     DO k = 2, klev / 2 - 1
54     DO i = 1, klon
55     zdthdp = (t(i, k) - t(i, k+1)) / (pplay(i, k) - pplay(i, k+1)) &
56     - RD * 0.5 * (t(i, k) + t(i, k+1)) / RCPD / paprs(i, k+1)
57     zdthdp = zdthdp * CLOIA
58     IF (pplay(i, k) > CETAMB * paprs(i, 1) .AND. zdthdp < zdthmin(i)) THEN
59     zdthmin(i) = zdthdp
60     invb(i) = k
61     ENDIF
62     ENDDO
63     ENDDO
64    
65     DO i = 1, klon
66     kb=invb(i)
67 guez 207 zqs= R2ES*FOEEW(t(i, kb), RTT >= t(i, kb))/pplay(i, kb)
68     zqs=MIN(0.5, zqs)
69     zcor=1./(1.-RETV*zqs)
70     zqs=zqs*zcor
71 guez 52 zcll = CLOIB * zdthmin(i) + CLOIC
72     zcll = MIN(1.0, MAX(0.0, zcll))
73     zrhb= q(i, kb)/zqs
74     IF (zcll > 0.0.AND.zrhb < CRHL) &
75     zcll=zcll*(1.-(CRHL-zrhb)*CLOID)
76     zcll=MIN(1.0, MAX(0.0, zcll))
77     diafra(i, kb) = MAX(diafra(i, kb), zcll)
78     dialiq(i, kb)= diafra(i, kb) * RGAMMAS*zqs
79     ENDDO
80    
81     END SUBROUTINE diagcld2
82    
83     end module diagcld2_m

  ViewVC Help
Powered by ViewVC 1.1.21