source: flexpart.git/src/hanna_short.f90 @ 3481cc1

10.4.1_peseiGFS_025bugfixes+enhancementsdevrelease-10release-10.4.1scaling-bug
Last change on this file since 3481cc1 was 3481cc1, checked in by Ignacio Pisso <ip@…>, 4 years ago

move license from headers to a different file

  • Property mode set to 100644
File size: 2.9 KB
Line 
1subroutine hanna_short(z)
2  !                       i
3  !*****************************************************************************
4  !                                                                            *
5  !   Computation of \sigma_i and \tau_L based on the scheme of Hanna (1982)   *
6  !                                                                            *
7  !   Author: A. Stohl                                                         *
8  !                                                                            *
9  !   4 December 1997                                                          *
10  !                                                                            *
11  !*****************************************************************************
12  !                                                                            *
13  ! Variables:                                                                 *
14  ! dsigwdz [1/s]     vertical gradient of sigw                                *
15  ! ol [m]            Obukhov length                                           *
16  ! sigu, sigv, sigw  standard deviations of turbulent velocity fluctuations   *
17  ! tlu [s]           Lagrangian time scale for the along wind component.      *
18  ! tlv [s]           Lagrangian time scale for the cross wind component.      *
19  ! tlw [s]           Lagrangian time scale for the vertical wind component.   *
20  ! ust, ustar [m/s]  friction velocity                                        *
21  ! wst, wstar [m/s]  convective velocity scale                                *
22  !                                                                            *
23  !*****************************************************************************
24
25  use par_mod
26  use com_mod
27  use hanna_mod
28
29  implicit none
30
31  real :: z
32
33
34
35  !**********************
36  ! 1. Neutral conditions
37  !**********************
38
39  if (h/abs(ol).lt.1.) then
40    ust=max(1.e-4,ust)
41    sigw=1.3*exp(-2.e-4*z/ust)
42    dsigwdz=-2.e-4*sigw
43    sigw=sigw*ust+1.e-2
44    tlw=0.5*z/sigw/(1.+1.5e-3*z/ust)
45
46
47  !***********************
48  ! 2. Unstable conditions
49  !***********************
50
51  else if (ol.lt.0.) then
52
53
54  ! Determine sigmas
55  !*****************
56
57    sigw=sqrt(1.2*wst**2*(1.-.9*zeta)*zeta**0.66666+ &
58         (1.8-1.4*zeta)*ust**2)+1.e-2
59    dsigwdz=0.5/sigw/h*(-1.4*ust**2+wst**2* &
60         (0.8*max(zeta,1.e-3)**(-.33333)-1.8*zeta**0.66666))
61
62
63  ! Determine average Lagrangian time scale
64  !****************************************
65
66    if (z.lt.abs(ol)) then
67      tlw=0.1*z/(sigw*(0.55-0.38*abs(z/ol)))
68    else if (zeta.lt.0.1) then
69      tlw=0.59*z/sigw
70    else
71      tlw=0.15*h/sigw*(1.-exp(-5*zeta))
72    endif
73
74
75  !*********************
76  ! 3. Stable conditions
77  !*********************
78
79  else
80    sigw=1.e-2+1.3*ust*(1.-zeta)
81    dsigwdz=-1.3*ust/h
82    tlw=0.1*h/sigw*zeta**0.8
83  endif
84
85
86  tlu=max(10.,tlu)
87  tlv=max(10.,tlv)
88  tlw=max(30.,tlw)
89  if (dsigwdz.eq.0.) dsigwdz=1.e-10
90
91end subroutine hanna_short
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG