--- trunk/Sources/phylmd/coefkz.f 2018/01/05 16:40:13 248 +++ trunk/phylmd/coefkz.f 2018/07/20 14:30:23 279 @@ -4,8 +4,7 @@ contains - SUBROUTINE coefkz(nsrf, paprs, pplay, ksta, ksta_ter, ts, u, v, t, q, & - zgeop, coefm, coefh) + SUBROUTINE coefkz(nsrf, paprs, pplay, ts, u, v, t, q, zgeop, coefm, coefh) ! Authors: F. Hourdin, M. Forichon, Z. X. Li (LMD/CNRS) ! Date: September 22nd, 1993 @@ -13,6 +12,7 @@ ! Objet : calculer les coefficients d'échange turbulent dans ! l'atmosphère. + USE clesphys, ONLY: ksta, ksta_ter USE conf_phys_m, ONLY: iflag_pbl USE dimphy, ONLY: klev USE fcttre, ONLY: foede, foeew @@ -28,7 +28,6 @@ real, intent(in):: pplay(:, :) ! (knon, klev) ! pression au milieu de chaque couche (en Pa) - REAL, intent(in):: ksta, ksta_ter REAL, intent(in):: ts(:) ! (knon) temperature du sol (en Kelvin) REAL, intent(in):: u(:, :), v(:, :) ! (knon, klev) wind REAL, intent(in):: t(:, :) ! (knon, klev) temperature (K) @@ -36,7 +35,7 @@ REAL, intent(in):: zgeop(:, :) ! (knon, klev) REAL, intent(out):: coefm(:, 2:) ! (knon, 2:klev) coefficient, vitesse - real, intent(out):: coefh(:, 2:) ! (knon, 2:klev) + real, intent(out):: coefh(:, 2:) ! (knon, 2:klev) ! coefficient, chaleur et humidité ! Local: @@ -88,7 +87,7 @@ knon = size(ts) ! Prescrire la valeur de contre-gradient - if (iflag_pbl.eq.1) then + if (iflag_pbl == 1) then DO k = 3, klev gamt(k) = - 1E-3 ENDDO @@ -99,7 +98,7 @@ ENDDO ENDIF - IF (nsrf .NE. is_oce ) THEN + IF (nsrf /= is_oce) THEN kstable = ksta_ter ELSE kstable = ksta @@ -135,16 +134,16 @@ zfr = MAX(0.0, MIN(1.0, zfr)) IF (.NOT.richum) zfr = 0.0 - ! calculer le nombre de Richardson: + ! calculer le nombre de Richardson: IF (tvirtu) THEN ztvd = (t(i, k) & + zdphi/RCPD/(1. + RVTMP2 * zq) & - * ((1. - zfr) + zfr * (1. + RLVTT * zqs/RD/zt)/(1. + zdqs) ) & + * ((1. - zfr) + zfr * (1. + RLVTT * zqs/RD/zt)/(1. + zdqs)) & ) * (1. + RETV * q(i, k)) ztvu = (t(i, k - 1) & - zdphi/RCPD/(1. + RVTMP2 * zq) & - * ((1. - zfr) + zfr * (1. + RLVTT * zqs/RD/zt)/(1. + zdqs) ) & + * ((1. - zfr) + zfr * (1. + RLVTT * zqs/RD/zt)/(1. + zdqs)) & ) * (1. + RETV * q(i, k - 1)) ri(i) = zmgeom(i) * (ztvd - ztvu)/(zdu2 * 0.5 * (ztvd + ztvu)) ri(i) = ri(i) & @@ -190,7 +189,7 @@ ENDIF ELSE l2(i) = (mixlen * MAX(0.0, (paprs(i, k) - paprs(i, itop(i) + 1)) & - /(paprs(i, 2) - paprs(i, itop(i) + 1)) ))**2 + /(paprs(i, 2) - paprs(i, itop(i) + 1))))**2 coefm(i, k) = sqrt(max(cdn**2 * (ric - ri(i)) / ric, kstable)) coefm(i, k) = l2(i) * coefm(i, k) coefh(i, k) = coefm(i, k) / prandtl ! h et m different