source: LMDZ5/branches/testing/libf/phymar/PHY_genTKE_INI.f90 @ 4622

Last change on this file since 4622 was 2160, checked in by Laurent Fairhead, 10 years ago

Merged trunk changes -r2070:2158 into testing branch. Compilation problems introduced by revision r2155 have been corrected by hand

File size: 4.1 KB
Line 
1      subroutine PHY_genTKE_INI
2
3!------------------------------------------------------------------------------+
4!                                                         Sun 16-Jun-2013  MAR |
5!   MAR          PHY_genTKE_INI                                                |
6!     subroutine PHY_genTKE_INI initialises TKE Equation                       |
7!                                                                              |
8!     version 3.p.4.1 created by H. Gallee,               Sat 16-Mar-2013      |
9!           Last Modification by H. Gallee,               Sun 16-Jun-2013      |
10!                                                                              |
11!------------------------------------------------------------------------------+
12
13      use Mod_Real
14      use Mod_Phy____dat
15      use Mod_Phy____grd
16      use Mod_PHY____kkl
17      use Mod_PHY_AT_ctr
18      use Mod_PHY_AT_kkl
19      use Mod_PHY_DY_kkl
20
21
22      IMPLICIT NONE
23
24
25
26! Global Variables
27! ================
28
29      integer            ::   ikl   ,k
30
31
32
33! Local  Variables
34! ================
35
36      real(kind=real8)   ::   dz_sig                  ! sigma Layer      Thickness                                        [m]
37
38
39
40! Parameters
41! ==========
42
43            c1ep =   c1epd
44
45      IF                     (Ee_Duynkerke)                         THEN
46             cmu =    cmud
47          sqrcmu = sqrcmud
48            c1ep =   c1epd
49            c2ep =   c2epd
50            sige =   siged
51            sigk =   sigkd
52
53      ELSE IF                (Ee_Kitada)                            THEN
54             cmu =    cmuk
55          sqrcmu = sqrcmuk
56            c1ep =   c1epk
57            c2ep =   c2epk
58            sige =   sigek
59            sigk =   sigkk
60
61      ELSE IF                (Kl_TherryLac)                         THEN
62!            cmu =    cmut
63          sqrcmu = sqrcmut
64            sige =   siget
65            sigk =   sigkt
66
67      ELSE                 ! (Bintanja, Huang & Raman)
68             cmu =    cmub
69          sqrcmu = sqrcmub
70            c1ep =   c1epb
71            c2ep =   c2epb
72            sige =   sigeb
73            sigk =   sigkb
74      END IF
75
76          vK_inv =    1./ vonKrm
77
78
79
80
81! Level below which box weighted vertical moving averages of TKE and e are performed
82! ==================================================================================
83
84             mz__KA=mzp-1
85      11 CONTINUE
86         IF (hsigma(mz__KA).GT.zz__KA.OR.mz__KA.LE.1)           GO TO 10
87             mz__KA=mz__KA-1
88                                                                GO TO 11
89      10 CONTINUE
90             write(6,1000)               mz__KA
91      1000   format(/,' TKE: Moving Average until mz -',i2,' Level',/)
92
93
94
95
96! pkt Turbulent Flux Limitor
97! ==========================
98
99      Dpkt_X = DThMAX / p0_kap / 3600.                                  !  From PT [K/h] to pkt = PT / p00**(R/Cp) [K/h]
100
101
102
103
104! Minimum Vertical Turbulent Diffusion Coefficient (ARPS.4.0 Users Guide,
105! ================================================  fin para 6.3.4 p.143)
106
107         DO k=1,mzp-1
108           dz_sig        =               hsigma(k)-hsigma(k+1)
109           Kz0_AT(    k) =                      A_MolV
110! #ARPS    Kz0_AT(    k) = min(0.15,     epsi * dz_sig * dz_sig )
111         END DO
112
113            k=  mzp
114           dz_sig         =               hsigma(k)
115           Kz0_AT(    k) =                      A_MolV
116! #ARPS    Kz0_AT(    k) = min(0.15,     epsi * dz_sig * dz_sig )
117
118
119! ++++++++++++++
120! INITIALIZATION
121! ++++++++++++++
122
123      IF (it_EXP.EQ.1)                                              THEN
124
125
126! Initial E,e
127! -----------
128
129         DO ikl=1,kcolp
130         DO k=1,mzp
131           TKE_AT(ikl,k) = eps6
132           eps_AT(ikl,k) = epsn
133! ...      These initial values of TKE and epsilon correspond to K ~ Kmol
134
135
136! Initial Transport of TKE
137! ------------------------
138
139           TrT_AT(ikl,k) = 0.
140
141
142! Initial Vertical Diffusion Coefficients
143! ---------------------------------------
144
145           Kzm_AT(ikl,k) = A_MolV
146           Kzh_AT(ikl,k) = A_MolV
147
148
149! Initial Inversion Height
150! ------------------------
151
152         END DO
153           zi__AT(ikl)   =     ZmidDY(ikl,mzp)-sh__AP(ikl)
154         END DO
155
156      END IF
157
158
159
160
161      end subroutine PHY_genTKE_INI
Note: See TracBrowser for help on using the repository browser.