4 SUBROUTINE yamada(ngrid, dt, g, rconst, plev, temp, zlev, zlay, u, v, teta, &
 
    5     cd, q2, km, kn, ustar, l_mix)
 
   32   REAL ustar(
klon), snstable
 
   56   REAL ri, zrif, zalpha, zsm
 
   65   REAL ric, rifc, b1, kap
 
   66   SAVE ric, rifc, b1, kap
 
   67   DATA ric, rifc, b1, kap/0.195, 0.191, 16.6, 0.3/
 
   70   REAL frif, falpha, fsm
 
   72   frif(ri) = 0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156))
 
   73   falpha(ri) = 1.318*(0.2231-ri)/(0.2341-ri)
 
   74   fsm(ri) = 1.96*(0.1912-ri)*(0.2341-ri)/((1.-ri)*(0.2231-ri))
 
   79   IF (0==1 .AND. first) 
THEN 
   94       print *, ri, rif, zalpha, zsm
 
  103       dz(ig, k) = zlay(ig, k) - zlay(ig, k-1)
 
  104       m2(ig, k) = ((u(ig,k)-u(ig,k-1))**2+(v(ig,k)-v(ig, &
 
  105         k-1))**2)/(dz(ig,k)*dz(ig,k))
 
  106       n2(ig, k) = g*2.*(teta(ig,k)-teta(ig,k-1))/(teta(ig,k-1)+teta(ig,k))/ &
 
  108       ri = n2(ig, k)/max(m2(ig,k), 1.e-10)
 
  110         rif(ig, k) = frif(ri)
 
  114       IF (rif(ig,k)<0.16) 
THEN 
  115         alpha(ig, k) = falpha(rif(ig,k))
 
  116         sm(ig, k) = fsm(rif(ig,k))
 
  121       zz(ig, k) = b1*m2(ig, k)*(1.-rif(ig,k))*sm(ig, k)
 
  132       l(ig, k) = l0(ig)*kap*zlev(ig, k)/(kap*zlev(ig,k)+l0(ig))
 
  143         q2(ig, k) = l(ig, k)**2*zz(ig, k)
 
  144         l(ig, k) = min(l0(ig)*kap*zlev(ig,k)/(kap*zlev(ig, &
 
  145           k)+l0(ig)), 0.5*sqrt(q2(ig,k))/sqrt(max(n2(ig,k),1.e-10)))
 
  147         sqz(ig) = sqz(ig) + zq*zlev(ig, k)*(zlay(ig,k)-zlay(ig,k-1))
 
  148         sq(ig) = sq(ig) + zq*(zlay(ig,k)-zlay(ig,k-1))
 
  152       l0(ig) = 0.2*sqz(ig)/sq(ig)
 
  160       l(ig, k) = min(l0(ig)*kap*zlev(ig,k)/(kap*zlev(ig, &
 
  161         k)+l0(ig)), 0.5*sqrt(q2(ig,k))/sqrt(max(n2(ig,k),1.e-10)))
 
  162       q2(ig, k) = l(ig, k)**2*zz(ig, k)
 
  163       km(ig, k) = l(ig, k)*sqrt(q2(ig,k))*sm(ig, k)
 
  164       kn(ig, k) = km(ig, k)*alpha(ig, k)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
 
subroutine yamada(ngrid, dt, g, rconst, plev, temp, zlev, zlay, u, v, teta, cd, q2, km, kn, ustar, l_mix)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true