4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE vdif_kcay(ngrid, dt, g, rconst, plev, temp, zlev, zlay, & |
SUBROUTINE vdif_kcay(ngrid, dt, g, rconst, plev, temp, zlev, zlay, u, v, & |
8 |
u, v, teta, cd, q2, q2diag, km, kn, ustar, l_mix) |
teta, cd, q2, q2diag, km, kn, ustar, l_mix) |
9 |
|
|
10 |
! From LMDZ4/libf/phylmd/vdif_kcay.F, version 1.1 2004/06/22 11:45:36 |
! From LMDZ4/libf/phylmd/vdif_kcay.F, version 1.1 2004/06/22 11:45:36 |
11 |
|
|
12 |
USE dimphy, ONLY: klev, klon |
USE dimphy, ONLY: klev, klon |
13 |
|
use yamada_m, only: yamada |
14 |
|
|
15 |
|
INTEGER ngrid |
16 |
! dt : pas de temps |
! dt : pas de temps |
17 |
! g : g |
! g : g |
18 |
! zlev : altitude a chaque niveau (interface inferieure de la couche |
! zlev : altitude a chaque niveau (interface inferieure de la couche |
42 |
REAL v(klon, klev) |
REAL v(klon, klev) |
43 |
REAL teta(klon, klev) |
REAL teta(klon, klev) |
44 |
REAL, intent(in):: cd (:) ! (ngrid) cdrag, valeur au debut du pas de temps |
REAL, intent(in):: cd (:) ! (ngrid) cdrag, valeur au debut du pas de temps |
45 |
REAL q2(klon, klev+1), q2s(klon, klev+1) |
REAL q2(klon, klev+1) |
46 |
REAL q2diag(klon, klev+1) |
REAL q2diag(klon, klev+1) |
47 |
REAL km(klon, klev+1) |
REAL km(klon, klev+1) |
48 |
REAL kn(klon, klev+1) |
REAL kn(klon, klev+1) |
49 |
real sq(klon), sqz(klon), zz(klon, klev+1), zq, long0(klon) |
real sq(klon), sqz(klon), zq, long0(klon) |
50 |
|
|
51 |
integer l_mix, iii |
integer l_mix |
52 |
|
|
53 |
! nlay : nombre de couches |
! nlay : nombre de couches |
54 |
! nlev : nombre de niveaux |
! nlev : nombre de niveaux |
59 |
! q : echelle de vitesse au bas de chaque couche |
! q : echelle de vitesse au bas de chaque couche |
60 |
! (valeur a la fin du pas de temps) |
! (valeur a la fin du pas de temps) |
61 |
|
|
62 |
INTEGER nlay, nlev, ngrid |
INTEGER nlay, nlev |
63 |
REAL unsdz(klon, klev) |
REAL unsdz(klon, klev) |
64 |
REAL unsdzdec(klon, klev+1) |
REAL unsdzdec(klon, klev+1) |
65 |
REAL q(klon, klev+1) |
REAL q(klon, klev+1) |