--- trunk/Sources/phylmd/coefkzmin.f 2017/11/10 15:16:48 239 +++ trunk/Sources/phylmd/coefkzmin.f 2018/01/08 14:12:02 251 @@ -4,21 +4,21 @@ contains - SUBROUTINE coefkzmin(knon, ypaprs, ypplay, yu, yv, yt, yq, ycoefm, kn) + SUBROUTINE coefkzmin(ypaprs, ypplay, yu, yv, yt, yq, ycoefm, kn) - ! 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 ! Entrées modifiées en attendant une version où les zlev et zlay ! soient disponibles. - USE dimphy, ONLY: klev, klon + USE dimphy, ONLY: klev USE suphec_m, ONLY: rd, rg, rkappa - integer, intent(in):: knon - REAL, intent(in):: ypaprs(klon, klev+1), ypplay(klon, klev) - REAL, intent(in):: yu(klon, klev), yv(klon, klev) ! wind, in m s-1 - REAL, intent(in):: yt(klon, klev) ! temperature, in K - REAL, intent(in):: yq(klon, klev) + REAL, intent(in):: ypaprs(:, :) ! (knon, klev+1) + REAL, intent(in):: ypplay(:, :) ! (knon, klev) + REAL, intent(in):: yu(:, :), yv(:, :) ! (knon, klev) wind, in m s-1 + REAL, intent(in):: yt(:, :) ! (knon, klev) temperature, in K + REAL, intent(in):: yq(:, :) ! (knon, klev) REAL, intent(in):: ycoefm(:) ! (knon) drag coefficient REAL, intent(out):: kn(:, 2:) ! (knon, 2:klev) coefficient de @@ -28,16 +28,17 @@ ! Local: - real ustar(knon) ! u* - real zlay(knon, klev) ! in m + integer knon + real ustar(size(ypaprs, 1)) ! (knon) u* + real zlay(size(ypaprs, 1), klev) ! (knon, klev) in m integer i, k - real pblhmin(knon) + real pblhmin(size(ypaprs, 1)) ! (knon) real, parameter:: coriol = 1e-4 - REAL zlev(knon, 2: klev) + REAL zlev(size(ypaprs, 1), 2: klev) ! (knon, 2: klev) ! altitude at level (interface between layer with same index), in m - REAL teta(knon, klev) + REAL teta(size(ypaprs, 1), klev) ! (knon, klev) ! température potentielle au centre de chaque couche (la valeur au ! debut du pas de temps) @@ -45,6 +46,8 @@ !--------------------------------------------------------------------- + knon = size(ypaprs, 1) + ! Debut de la partie qui doit etre incluse a terme dans clmain. do i = 1, knon @@ -69,7 +72,7 @@ enddo forall (k = 2: klev) zlev(:, k) = 0.5 * (zlay(:, k) + zlay(:, k-1)) - ustar = SQRT(ycoefm * (yu(:knon, 1)**2 + yv(:knon, 1)**2)) + ustar = SQRT(ycoefm * (yu(:, 1)**2 + yv(:, 1)**2)) ! Fin de la partie qui doit être incluse à terme dans clmain