source: dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/ustarhb.F90 @ 3818

Last change on this file since 3818 was 3818, checked in by millour, 10 years ago

Some partial cleanup on uses of "dimensions.h" in physics.
At this point 3D gcm compiles and bench seems to run fine :-)
EM

File size: 1.8 KB
RevLine 
[3809]1
2! $Header$
3
4SUBROUTINE ustarhb(knon, u, v, cd_m, ustar)
5  USE dimphy
6  IMPLICIT NONE
7  ! ======================================================================
8  ! Laurent Li (LMD/CNRS), le 30 septembre 1998
9  ! Couche limite non-locale. Adaptation du code du CCM3.
10  ! Code non teste, donc a ne pas utiliser.
11  ! ======================================================================
12  ! Nonlocal scheme that determines eddy diffusivities based on a
13  ! diagnosed boundary layer height and a turbulent velocity scale.
14  ! Also countergradient effects for heat and moisture are included.
15
16  ! For more information, see Holtslag, A.A.M., and B.A. Boville, 1993:
17  ! Local versus nonlocal boundary-layer diffusion in a global climate
18  ! model. J. of Climate, vol. 6, 1825-1842.
19  ! ======================================================================
20  include "YOMCST.h"
21
22  ! Arguments:
23
24  INTEGER knon ! nombre de points a calculer
25  REAL u(klon, klev) ! vitesse U (m/s)
26  REAL v(klon, klev) ! vitesse V (m/s)
27  REAL cd_m(klon) ! coefficient de friction au sol pour vitesse
28  REAL ustar(klon)
29
30  INTEGER i, k
31  REAL zxt, zxq, zxu, zxv, zxmod, taux, tauy
32  REAL zx_alf1, zx_alf2 ! parametres pour extrapolation
33  LOGICAL unssrf(klon) ! unstb pbl w/lvls within srf pbl lyr
34  LOGICAL unsout(klon) ! unstb pbl w/lvls in outer pbl lyr
35  LOGICAL check(klon) ! True=>chk if Richardson no.>critcal
36
37  include "YOETHF.h"
38  include "FCTTRE.h"
39  DO i = 1, knon
40    zx_alf1 = 1.0
41    zx_alf2 = 1.0 - zx_alf1
42    zxu = u(i, 1)*zx_alf1 + u(i, 2)*zx_alf2
43    zxv = v(i, 1)*zx_alf1 + v(i, 2)*zx_alf2
44    zxmod = 1.0 + sqrt(zxu**2+zxv**2)
45    taux = zxu*zxmod*cd_m(i)
46    tauy = zxv*zxmod*cd_m(i)
47    ustar(i) = sqrt(taux**2+tauy**2)
48    ! print*,'Ust ',zxu,zxmod,taux,ustar(i)
49  END DO
50
51  RETURN
52END SUBROUTINE ustarhb
Note: See TracBrowser for help on using the repository browser.