--- trunk/Sources/phylmd/clmain.f 2017/11/03 12:38:47 228 +++ trunk/Sources/phylmd/clmain.f 2017/11/07 10:52:46 233 @@ -25,6 +25,7 @@ use clvent_m, only: clvent use coefkz_m, only: coefkz use coefkzmin_m, only: coefkzmin + use coefkz2_m, only: coefkz2 USE conf_gcm_m, ONLY: lmt_pas USE conf_phys_m, ONLY: iflag_pbl USE dimphy, ONLY: klev, klon, zmasq @@ -95,7 +96,7 @@ ! flux de vapeur d'eau (kg / m2 / s) à la surface REAL, intent(out):: flux_u(klon, nbsrf), flux_v(klon, nbsrf) - ! tension du vent à la surface, en Pa + ! tension du vent (flux turbulent de vent) à la surface, en Pa REAL, INTENT(out):: cdragh(klon), cdragm(klon) real q2(klon, klev + 1, nbsrf) @@ -311,8 +312,8 @@ ! calculer Cdrag et les coefficients d'echange CALL coefkz(nsrf, ypaprs, ypplay, ksta, ksta_ter, yts(:knon), & - yrugos, yu, yv, yt, yq, yqsurf(:knon), coefm(:knon, :), & - coefh(:knon, :)) + yrugos, yu, yv, yt, yq, yqsurf(:knon), coefm(:knon, 2:), & + coefh(:knon, 2:), coefm(:knon, 1), coefh(:knon, 1)) IF (iflag_pbl == 1) THEN CALL coefkz2(nsrf, knon, ypaprs, ypplay, yt, ycoefm0, ycoefh0) @@ -329,7 +330,7 @@ IF (ok_kzmin) THEN ! Calcul d'une diffusion minimale pour les conditions tres stables CALL coefkzmin(knon, ypaprs, ypplay, yu, yv, yt, yq, & - coefm(:knon, 1), ycoefm0, ycoefh0) + coefm(:knon, 1), ycoefm0(:knon, 2:), ycoefh0(:knon, 2:)) coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :)) coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :)) END IF @@ -369,24 +370,21 @@ END DO ustar(:knon) = ustarhb(yu(:knon, 1), yv(:knon, 1), coefm(:knon, 1)) - - ! iflag_pbl peut \^etre utilis\'e comme longueur de m\'elange - CALL yamada4(dtime, rg, zlev(:knon, :), yzlay(:knon, :), & yu(:knon, :), yv(:knon, :), yteta(:knon, :), & coefm(:knon, 1), yq2(:knon, :), ykmm(:knon, :), & - ykmn(:knon, :), ykmq(:knon, :), ustar(:knon), iflag_pbl) - + ykmn(:knon, :), ykmq(:knon, :), ustar(:knon)) coefm(:knon, 2:) = ykmm(:knon, 2:klev) coefh(:knon, 2:) = ykmn(:knon, 2:klev) END IF - ! calculer la diffusion des vitesses "u" et "v" - CALL clvent(knon, dtime, yu(:knon, 1), yv(:knon, 1), & - coefm(:knon, :), yt, yu, ypaprs, ypplay, ydelp, y_d_u, & + CALL clvent(dtime, yu(:knon, 1), yv(:knon, 1), coefm(:knon, 2:), & + coefm(:knon, 1), yt(:knon, :), yu(:knon, :), ypaprs(:knon, :), & + ypplay(:knon, :), ydelp(:knon, :), y_d_u(:knon, :), & y_flux_u(:knon)) - CALL clvent(knon, dtime, yu(:knon, 1), yv(:knon, 1), & - coefm(:knon, :), yt, yv, ypaprs, ypplay, ydelp, y_d_v, & + CALL clvent(dtime, yu(:knon, 1), yv(:knon, 1), coefm(:knon, 2:), & + coefm(:knon, 1), yt(:knon, :), yv(:knon, :), ypaprs(:knon, :), & + ypplay(:knon, :), ydelp(:knon, :), y_d_v(:knon, :), & y_flux_v(:knon)) ! calculer la diffusion de "q" et de "h"