4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE coefkzmin(ypaprs, ypplay, yu, yv, yt, yq, ycoefm, kn) |
SUBROUTINE coefkzmin(ypaprs, ypplay, yu, yv, yt, yq, cdragm, coefh) |
8 |
|
|
9 |
! From LMDZ4/libf/phylmd/coefkzmin.F, version 1.1.1.1, 2004/05/19 12:53:08 |
! From LMDZ4/libf/phylmd/coefkzmin.F, version 1.1.1.1, 2004/05/19 12:53:08 |
10 |
|
|
19 |
REAL, intent(in):: yu(:, :), yv(:, :) ! (knon, klev) wind, in m s-1 |
REAL, intent(in):: yu(:, :), yv(:, :) ! (knon, klev) wind, in m s-1 |
20 |
REAL, intent(in):: yt(:, :) ! (knon, klev) temperature, in K |
REAL, intent(in):: yt(:, :) ! (knon, klev) temperature, in K |
21 |
REAL, intent(in):: yq(:, :) ! (knon, klev) |
REAL, intent(in):: yq(:, :) ! (knon, klev) |
22 |
REAL, intent(in):: ycoefm(:) ! (knon) drag coefficient |
REAL, intent(in):: cdragm(:) ! (knon) drag coefficient |
23 |
|
|
24 |
REAL, intent(out):: kn(:, 2:) ! (knon, 2:klev) coefficient de |
REAL, intent(out):: coefh(:, 2:) ! (knon, 2:klev) coefficient de |
25 |
! diffusion turbulente de la quantité de mouvement et des |
! diffusion turbulente de la quantité de mouvement et des |
26 |
! scalaires (au bas de chaque couche) (en sortie : la valeur à la |
! scalaires (au bas de chaque couche) (en sortie : la valeur à la |
27 |
! fin du pas de temps), m2 s-1 |
! fin du pas de temps), m2 s-1 |
72 |
enddo |
enddo |
73 |
|
|
74 |
forall (k = 2: klev) zlev(:, k) = 0.5 * (zlay(:, k) + zlay(:, k-1)) |
forall (k = 2: klev) zlev(:, k) = 0.5 * (zlay(:, k) + zlay(:, k-1)) |
75 |
ustar = SQRT(ycoefm * (yu(:, 1)**2 + yv(:, 1)**2)) |
ustar = SQRT(cdragm * (yu(:, 1)**2 + yv(:, 1)**2)) |
76 |
|
|
77 |
! Fin de la partie qui doit être incluse à terme dans pbl_surface |
! Fin de la partie qui doit être incluse à terme dans pbl_surface |
78 |
|
|
88 |
do k = 2, klev |
do k = 2, klev |
89 |
do i = 1, knon |
do i = 1, knon |
90 |
if (teta(i, 2) > teta(i, 1)) then |
if (teta(i, 2) > teta(i, 1)) then |
91 |
kn(i, k) = kap * zlev(i, k) * ustar(i) & |
coefh(i, k) = kap * zlev(i, k) * ustar(i) & |
92 |
* (max(1. - zlev(i, k) / pblhmin(i), 0.))**2 |
* (max(1. - zlev(i, k) / pblhmin(i), 0.))**2 |
93 |
else |
else |
94 |
kn(i, k) = 0. ! min n'est utilisé que pour les SL stables |
coefh(i, k) = 0. ! min n'est utilisé que pour les SL stables |
95 |
endif |
endif |
96 |
enddo |
enddo |
97 |
enddo |
enddo |