169 |
REAL yu(klon, klev), yv(klon, klev) |
REAL yu(klon, klev), yv(klon, klev) |
170 |
REAL yt(klon, klev), yq(klon, klev) |
REAL yt(klon, klev), yq(klon, klev) |
171 |
REAL ypaprs(klon, klev + 1), ypplay(klon, klev), ydelp(klon, klev) |
REAL ypaprs(klon, klev + 1), ypplay(klon, klev), ydelp(klon, klev) |
172 |
REAL ycoefm0(klon, klev), ycoefh0(klon, klev) |
REAL ycoefm0(klon, 2:klev), ycoefh0(klon, 2:klev) |
173 |
REAL yzlay(klon, klev), zlev(klon, klev + 1), yteta(klon, klev) |
REAL yzlay(klon, klev), zlev(klon, klev + 1), yteta(klon, klev) |
174 |
REAL ykmm(klon, klev + 1), ykmn(klon, klev + 1) |
REAL ykmm(klon, klev + 1), ykmn(klon, klev + 1) |
|
REAL ykmq(klon, klev + 1) |
|
175 |
REAL yq2(klon, klev + 1) |
REAL yq2(klon, klev + 1) |
176 |
REAL delp(klon, klev) |
REAL delp(klon, klev) |
177 |
INTEGER i, k, nsrf |
INTEGER i, k, nsrf |
316 |
coefh(:knon, :), ycdragm(:knon), ycdragh(:knon)) |
coefh(:knon, :), ycdragm(:knon), ycdragh(:knon)) |
317 |
|
|
318 |
IF (iflag_pbl == 1) THEN |
IF (iflag_pbl == 1) THEN |
319 |
CALL coefkz2(nsrf, knon, ypaprs, ypplay, yt, ycoefm0(:knon, 2:), & |
CALL coefkz2(nsrf, knon, ypaprs, ypplay, yt, ycoefm0(:knon, :), & |
320 |
ycoefh0(:knon, 2:)) |
ycoefh0(:knon, :)) |
321 |
ycoefm0(:knon, 1) = 0. |
coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :)) |
322 |
ycoefh0(:knon, 1) = 0. |
coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :)) |
323 |
coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, 2:)) |
ycdragm(:knon) = max(ycdragm(:knon), 0.) |
324 |
coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, 2:)) |
ycdragh(:knon) = max(ycdragh(:knon), 0.) |
|
ycdragm(:knon) = max(ycdragm(:knon), ycoefm0(:knon, 1)) |
|
|
ycdragh(:knon) = max(ycdragh(:knon), ycoefh0(:knon, 1)) |
|
325 |
END IF |
END IF |
326 |
|
|
327 |
! on met un seuil pour ycdragm et ycdragh |
! on met un seuil pour ycdragm et ycdragh |
333 |
IF (ok_kzmin) THEN |
IF (ok_kzmin) THEN |
334 |
! Calcul d'une diffusion minimale pour les conditions tres stables |
! Calcul d'une diffusion minimale pour les conditions tres stables |
335 |
CALL coefkzmin(knon, ypaprs, ypplay, yu, yv, yt, yq, & |
CALL coefkzmin(knon, ypaprs, ypplay, yu, yv, yt, yq, & |
336 |
ycdragm(:knon), ycoefm0(:knon, 2:), ycoefh0(:knon, 2:)) |
ycdragm(:knon), ycoefh0(:knon, :)) |
337 |
coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, 2:)) |
ycoefm0(:knon, :) = ycoefh0(:knon, :) |
338 |
coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, 2:)) |
coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :)) |
339 |
ycdragm(:knon) = max(ycdragm(:knon), ycoefm0(:knon, 1)) |
coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :)) |
|
ycdragh(:knon) = max(ycdragh(:knon), ycoefh0(:knon, 1)) |
|
340 |
END IF |
END IF |
341 |
|
|
342 |
IF (iflag_pbl >= 6) THEN |
IF (iflag_pbl >= 6) THEN |
375 |
|
|
376 |
ustar(:knon) = ustarhb(yu(:knon, 1), yv(:knon, 1), ycdragm(:knon)) |
ustar(:knon) = ustarhb(yu(:knon, 1), yv(:knon, 1), ycdragm(:knon)) |
377 |
CALL yamada4(dtime, rg, zlev(:knon, :), yzlay(:knon, :), & |
CALL yamada4(dtime, rg, zlev(:knon, :), yzlay(:knon, :), & |
378 |
yu(:knon, :), yv(:knon, :), yteta(:knon, :), & |
yu(:knon, :), yv(:knon, :), yteta(:knon, :), yq2(:knon, :), & |
379 |
ycdragm(:knon), yq2(:knon, :), ykmm(:knon, :), & |
ykmm(:knon, :), ykmn(:knon, :), ustar(:knon)) |
380 |
ykmn(:knon, :), ykmq(:knon, :), ustar(:knon)) |
coefm(:knon, :) = ykmm(:knon, 2:klev) |
381 |
coefm(:knon, 2:) = ykmm(:knon, 2:klev) |
coefh(:knon, :) = ykmn(:knon, 2:klev) |
|
coefh(:knon, 2:) = ykmn(:knon, 2:klev) |
|
382 |
END IF |
END IF |
383 |
|
|
384 |
CALL clvent(dtime, yu(:knon, 1), yv(:knon, 1), coefm(:knon, :), & |
CALL clvent(dtime, yu(:knon, 1), yv(:knon, 1), coefm(:knon, :), & |
491 |
END DO |
END DO |
492 |
END DO |
END DO |
493 |
|
|
494 |
DO j = 1, knon |
ycoefh(ni(:knon), 2:) = ycoefh(ni(:knon), 2:) + coefh(:knon, :) |
495 |
i = ni(j) |
ycoefh(ni(:knon), 1) = ycoefh(ni(:knon), 1) + ycdragh(:knon) |
|
DO k = 2, klev |
|
|
ycoefh(i, k) = ycoefh(i, k) + coefh(j, k) |
|
|
END DO |
|
|
END DO |
|
|
|
|
|
DO j = 1, knon |
|
|
i = ni(j) |
|
|
ycoefh(i, 1) = ycoefh(i, 1) + ycdragh(j) |
|
|
END DO |
|
496 |
|
|
497 |
! diagnostic t, q a 2m et u, v a 10m |
! diagnostic t, q a 2m et u, v a 10m |
498 |
|
|