6 SUBROUTINE canopy(KI, SB, PHEIGHT, PDENSITY, PCDRAG, PAIRVOL, PSV, &
7 PFORC, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE )
44 INTEGER,
INTENT(IN) :: KI
46 REAL,
DIMENSION(KI),
INTENT(IN) :: PHEIGHT
47 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(IN) :: PDENSITY
48 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(IN) :: PCDRAG
50 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(IN) :: PAIRVOL
52 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PSV
54 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC
56 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC_U
57 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PDFORC_UDU
59 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PFORC_E
60 REAL,
DIMENSION(KI,SB%NLVL),
INTENT(OUT) :: PDFORC_EDE
66 REAL(KIND=JPRB) :: ZHOOK_HANDLE
79 DO jlayer = 1,sb%NLVL-1
81 WHERE ( sb%XZF(:,jlayer) < pheight(:) )
82 psv(:,jlayer) = pdensity(:,jlayer) / pheight(:)
83 WHERE ( sb%XZF(:,jlayer+1) > pheight(:) )
84 psv(:,jlayer) = psv(:,jlayer) * ( pheight(:) - sb%XZF(:,jlayer) )
86 psv(:,jlayer) = psv(:,jlayer) * sb%XDZ(:,jlayer)
92 pforc(:,:) = pcdrag(:,:) * sb%XU(:,:) * psv(:,:)/pairvol(:,:)/sb%XDZ(:,:)
111 pforc_u(:,:) = pforc_u - pforc(:,:) * sb%XU(:,:)
112 pdforc_udu(:,:) = pdforc_udu - 2. * pforc(:,:)
134 pforc_e = pforc_e + pforc(:,:) * sb%XU(:,:)**2
135 pdforc_ede = pdforc_ede + 0.
subroutine canopy(KI, SB, PHEIGHT, PDENSITY, PCDRAG, PAIRVOL, PSV, PFORC, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE)