8 pforc_u,pdforc_udu,pforc_e,pdforc_ede, &
9 pz,pzf,pdz,pdzf,pu,ptke,pustar, &
49 USE modi_canopy_evol_wind
50 USE modi_canopy_evol_tke
54 USE yomhook
,ONLY : lhook, dr_hook
55 USE parkind1
,ONLY : jprb
62 INTEGER,
INTENT(IN) :: ki
63 INTEGER,
INTENT(IN) :: klvl
64 REAL,
INTENT(IN) :: ptstep
65 INTEGER,
INTENT(IN) :: kimpl
70 REAL,
DIMENSION(KI),
INTENT(IN) :: pwind
71 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
72 REAL,
DIMENSION(KI),
INTENT(IN) :: psflux_u
73 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pforc_u
74 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pdforc_udu
76 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pforc_e
77 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pdforc_ede
80 REAL,
DIMENSION(KI,KLVL),
INTENT(INOUT) :: pz
81 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pzf
82 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pdz
83 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: pdzf
84 REAL,
DIMENSION(KI,KLVL),
INTENT(INOUT) :: pu
85 REAL,
DIMENSION(KI,KLVL),
INTENT(INOUT) :: ptke
86 REAL,
DIMENSION(KI),
INTENT(OUT) :: pustar
87 REAL,
DIMENSION(KI),
INTENT(OUT) :: palfau
88 REAL,
DIMENSION(KI),
INTENT(OUT) :: pbetau
96 REAL,
DIMENSION(KI,KLVL) :: zk
97 REAL,
DIMENSION(KI,KLVL) :: zdkddvdz
98 REAL,
DIMENSION(KI,KLVL) :: zexn
99 REAL,
DIMENSION(KI,KLVL) :: zuw
100 REAL,
DIMENSION(KI,KLVL) :: zth
101 REAL,
DIMENSION(KI,KLVL) :: zwth
102 REAL,
DIMENSION(KI,KLVL) :: zwq
103 REAL,
DIMENSION(KI,KLVL) :: zleps
104 REAL,
DIMENSION(KI,KLVL) :: zz
105 REAL,
DIMENSION(KI,KLVL) :: zlm
106 REAL,
DIMENSION(KI) :: zustar
110 REAL(KIND=JPRB) :: zhook_handle
119 IF (lhook) CALL dr_hook(
'CANOPY_EVOL_NEUTRAL',0,zhook_handle)
121 IF(pwind(ji)>0. .AND. pu(ji,klvl-1)==0.)
THEN
123 pu(ji,:) = pwind(ji) * log(pz(ji,:)/zz0) / log(pz(ji,klvl)/zz0)
133 zlm(:,jlayer) = xkarman/sqrt(xalpsbl)/xcmfs * pz(:,jlayer)
134 zleps(:,jlayer) = xkarman*(xalpsbl**1.5)*xced * pz(:,jlayer)
147 zk(:,jlayer) = 0.5 * xcmfs * zlm(:,jlayer) * sqrt(ptke(:,jlayer) ) &
148 + 0.5 * xcmfs * zlm(:,jlayer-1) * sqrt(ptke(:,jlayer-1))
162 CALL
canopy_evol_wind(ki,klvl,ptstep,kimpl,pwind,zk,zdkddvdz,psflux_u,pforc_u,pdforc_udu,pdz,pdzf,pu,zuw,palfau,pbetau)
167 pustar = sqrt(abs(zuw(:,klvl)))
179 CALL
canopy_evol_tke(ki,klvl,ptstep,prhoa,pz,pzf,pdz,pdzf,pforc_e,pdforc_ede, &
180 pu,zth,zuw,zwth,zwq,zleps,ptke )
187 pu(:,klvl) = pwind(:)
188 IF (lhook) CALL dr_hook(
'CANOPY_EVOL_NEUTRAL',1,zhook_handle)
subroutine canopy_evol_tke(KI, KLVL, PTSTEP, PRHOA, PZ, PZF, PDZ, PDZF, PFORC_E, PDFORC_EDE, PU, PTH, PUW, PWTH, PWQ, PLEPS, PTKE)
subroutine canopy_evol_neutral(KI, KLVL, PTSTEP, KIMPL, PWIND, PRHOA, PSFLUX_U, PFORC_U, PDFORC_UDU, PFORC_E, PDFORC_EDE, PZ, PZF, PDZ, PDZF, PU, PTKE, PUSTAR, PALFAU, PBETAU)
subroutine canopy_evol_wind(KI, KLVL, PTSTEP, KIMPL, PWIND, PK, PDKDDVDZ, PSFLUX_U, PFORC_U, PDFORC_UDU, PDZ, PDZF, PU, PUW, PALFA, PBETA)