4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE vdif_kcay(ngrid, dt, g, rconst, plev, temp, zlev, zlay, & |
SUBROUTINE vdif_kcay(ngrid, dt, g, plev, zlev, zlay, u, v, teta, cd, q2, & |
8 |
u, v, teta, cd, q2, q2diag, km, kn, ustar, l_mix) |
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 |
33 |
|
|
34 |
REAL, intent(in):: dt |
REAL, intent(in):: dt |
35 |
real, intent(in):: g |
real, intent(in):: g |
36 |
real rconst |
real plev(klon, klev+1) |
|
real plev(klon, klev+1), temp(klon, klev) |
|
37 |
real ustar(klon), snstable |
real ustar(klon), snstable |
38 |
REAL zlev(klon, klev+1) |
REAL zlev(klon, klev+1) |
39 |
REAL zlay(klon, klev) |
REAL zlay(klon, klev) |
41 |
REAL v(klon, klev) |
REAL v(klon, klev) |
42 |
REAL teta(klon, klev) |
REAL teta(klon, klev) |
43 |
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 |
44 |
REAL q2(klon, klev+1), q2s(klon, klev+1) |
REAL q2(klon, klev+1) |
45 |
REAL q2diag(klon, klev+1) |
REAL q2diag(klon, klev+1) |
46 |
REAL km(klon, klev+1) |
REAL km(klon, klev+1) |
47 |
REAL kn(klon, klev+1) |
REAL kn(klon, klev+1) |
48 |
real sq(klon), sqz(klon), zz(klon, klev+1), zq, long0(klon) |
real sq(klon), sqz(klon), zq, long0(klon) |
49 |
|
|
50 |
integer l_mix, iii |
integer l_mix |
51 |
|
|
52 |
! nlay : nombre de couches |
! nlay : nombre de couches |
53 |
! nlev : nombre de niveaux |
! nlev : nombre de niveaux |
58 |
! q : echelle de vitesse au bas de chaque couche |
! q : echelle de vitesse au bas de chaque couche |
59 |
! (valeur a la fin du pas de temps) |
! (valeur a la fin du pas de temps) |
60 |
|
|
61 |
INTEGER nlay, nlev, ngrid |
INTEGER nlay, nlev |
62 |
REAL unsdz(klon, klev) |
REAL unsdz(klon, klev) |
63 |
REAL unsdzdec(klon, klev+1) |
REAL unsdzdec(klon, klev+1) |
64 |
REAL q(klon, klev+1) |
REAL q(klon, klev+1) |
197 |
|
|
198 |
! Initialisation de q2 |
! Initialisation de q2 |
199 |
|
|
200 |
call yamada(ngrid, g, rconst, plev, temp, zlev, zlay, u, v, teta, & |
call yamada(ngrid, g, zlev, zlay, u, v, teta, q2diag, km, kn) |
|
q2diag, km, kn, ustar, l_mix) |
|
201 |
if (first.and.1.eq.1) then |
if (first.and.1.eq.1) then |
202 |
first=.false. |
first=.false. |
203 |
q2=q2diag |
q2=q2diag |