/[lmdze]/trunk/Sources/phylmd/ustarhb.f
ViewVC logotype

Annotation of /trunk/Sources/phylmd/ustarhb.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 76 - (hide annotations)
Fri Nov 15 18:45:49 2013 UTC (10 years, 6 months ago) by guez
Original Path: trunk/phylmd/ustarhb.f90
File size: 1768 byte(s)
Moved everything out of libf.
1 guez 62 module ustarhb_m
2    
3     IMPLICIT none
4    
5     contains
6    
7     SUBROUTINE ustarhb(knon, u, v, cd_m, ustar)
8    
9     ! From LMDZ4/libf/phylmd/ustarhb.F, version 1.1 2004/06/22 11:45:35
10    
11     ! Laurent Li (LMD/CNRS), le 30 septembre 1998
12     ! Couche limite non-locale. Adaptation du code du CCM3.
13     ! Code non teste, donc a ne pas utiliser.
14    
15     ! Nonlocal scheme that determines eddy diffusivities based on a
16     ! diagnosed boundary layer height and a turbulent velocity scale.
17     ! Also countergradient effects for heat and moisture are included.
18    
19     ! For more information, see Holtslag, A.A.M., and B.A. Boville, 1993:
20     ! Local versus nonlocal boundary-layer diffusion in a global climate
21     ! model. J. of Climate, vol. 6, 1825-1842.
22    
23     USE dimphy, ONLY: klev, klon
24    
25     ! Arguments:
26    
27     INTEGER knon ! nombre de points a calculer
28     REAL u(klon, klev) ! vitesse U (m/s)
29     REAL v(klon, klev) ! vitesse V (m/s)
30    
31     REAL, intent(in):: cd_m(:)
32     ! (knon) coefficient de friction au sol pour vitesse
33    
34     REAL ustar(klon)
35    
36     INTEGER i, k
37     REAL zxt, zxq, zxu, zxv, zxmod, taux, tauy
38     REAL zx_alf1, zx_alf2 ! parametres pour extrapolation
39     LOGICAL unssrf(klon) ! unstb pbl w/lvls within srf pbl lyr
40     LOGICAL unsout(klon) ! unstb pbl w/lvls in outer pbl lyr
41     LOGICAL check(klon) ! True=>chk if Richardson no.>critcal
42    
43     !---------------------------------------------------------------
44    
45     DO i = 1, knon
46     zx_alf1 = 1.0
47     zx_alf2 = 1.0 - zx_alf1
48     zxu = u(i, 1)*zx_alf1+u(i, 2)*zx_alf2
49     zxv = v(i, 1)*zx_alf1+v(i, 2)*zx_alf2
50     zxmod = 1.0+SQRT(zxu**2+zxv**2)
51     taux = zxu *zxmod*cd_m(i)
52     tauy = zxv *zxmod*cd_m(i)
53     ustar(i) = SQRT(taux**2+tauy**2)
54     ENDDO
55    
56     end SUBROUTINE ustarhb
57    
58     end module ustarhb_m

  ViewVC Help
Powered by ViewVC 1.1.21