17 SUBROUTINE calupdhel(UPDHEL)
22 use vrbls3d, only: wh, uh, vh, zint, zmid
23 use masks, only: lmh, dx, dy
25 use ctlblk_mod
, only: lm, jsta_2l, jend_2u, jsta_m, jend_m, &
26 global, spval, im, jm, &
27 ista_2l, iend_2u, ista_m, iend_m
28 use gridspec_mod
, only: gridtype
29 use upp_math, only: dvdxdudy, ddvdx, ddudy
36 REAL,
PARAMETER:: hlower=2000., hupper=5000.
38 real :: r2dx, r2dy, dz, dcdx, dudy, dvdx
39 REAL :: htsfc(ista_2l:iend_2u,jsta_2l:jend_2u),updhel(ista_2l:iend_2u,jsta_2l:jend_2u)
41 INTEGER,
dimension(jm) :: ihe,ihw
52 CALL exch(uh(ista_2l,jsta_2l,l))
54 IF (gridtype ==
'B')
THEN
56 CALL exch(vh(ista_2l,jsta_2l,l))
79 htsfc(i,j) = zint(i,j,nint(lmh(i,j))+1)
86 IF (htsfc(i,j) < spval)
THEN
88 r2dx = 1./(2.*dx(i,j))
89 r2dy = 1./(2.*dy(i,j))
98 IF ( (zmidloc - htsfc(i,j)) >= hlower .AND. &
99 (zmidloc - htsfc(i,j)) <= hupper )
THEN
100 dz=(zint(i,j,l)-zint(i,j,l+1))
102 IF (wh(i,j,l) < 0)
THEN
112 CALL dvdxdudy(uh(:,:,l),vh(:,:,l))
116 updhel(i,j)=updhel(i,j)+(dvdx-dudy)*wh(i,j,l)*dz
dvdxdudy() computes dudy, dvdx, uwnd