7 PSFLUX_F, PFORC_F, PDFORC_FDF, PDZ, PDZF, &
8 PEXT, PDEXTDV, PF, PWF, PALFA, PBETA )
53 INTEGER,
INTENT(IN) :: KI
54 INTEGER,
INTENT(IN) :: KLVL
55 REAL,
INTENT(IN) :: PTSTEP
56 INTEGER,
INTENT(IN) :: KIMPL
61 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PK
62 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PDKDDVDZ
65 REAL,
DIMENSION(KI),
INTENT(IN) :: PSFLUX_F
66 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PFORC_F
67 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PDFORC_FDF
69 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PDZ
71 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PDZF
73 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PEXT
74 REAL,
DIMENSION(KI,KLVL),
INTENT(IN) :: PDEXTDV
77 REAL,
DIMENSION(KI,KLVL),
INTENT(INOUT) :: PF
78 REAL,
DIMENSION(KI,KLVL),
INTENT(OUT) :: PWF
79 REAL,
DIMENSION(KI),
OPTIONAL,
INTENT(OUT) :: PALFA
80 REAL,
DIMENSION(KI),
OPTIONAL,
INTENT(OUT) :: PBETA
88 REAL,
DIMENSION(KI,KLVL) :: ZDFDZ
89 REAL,
DIMENSION(KI,KLVL) :: ZWORK
91 REAL,
DIMENSION(KI,KLVL) :: ZF
92 REAL,
DIMENSION(KI,KLVL) :: ZDFDDVDZ
95 REAL,
DIMENSION(KI) :: ZDFADT
96 REAL,
DIMENSION(KI) :: ZDWFDZ
97 REAL,
DIMENSION(KI) :: ZALFA, ZBETA
99 REAL(KIND=JPRB) :: ZHOOK_HANDLE
109 IF (
lhook)
CALL dr_hook(
'CANOPY_EVOL_FIELD',0,zhook_handle)
118 zdfdz(:,jlayer) = (pf(:,jlayer) - pf(:,jlayer-1)) / pdzf(:,jlayer)
129 zwork(:,1) = psflux_f(:)
133 zwork(:,jlayer) = -pk(:,jlayer) * zdfdz(:,jlayer)
147 zdfddvdz(:,2:klvl) = - pk(:,2:klvl) - pdkddvdz(:,2:klvl) * zdfdz(:,2:klvl
155 CALL tridiag_surf(pf, zwork, zdfddvdz, pext, pdextdv, ptstep, &
156 pdzf, pdz, zf, limpl, zalfa, zbeta )
158 IF (
PRESENT(palfa)) palfa = zalfa
159 IF (
PRESENT(pbeta)) pbeta = zbeta
167 pwf(:,1) = psflux_f(:)
170 pwf(:,jlayer) = pwf(:,jlayer-1)
182 IF (
lhook)
CALL dr_hook(
'CANOPY_EVOL_FIELD',1,zhook_handle)
subroutine canopy_evol_field(KI, KLVL, PTSTEP, KIMPL, PK, PDKDDVDZ
subroutine tridiag_surf(PVARM, PF, PDFDDTDZ, PEXT, PDEXTDV, PTSTEP, PDZZ, PDZM, PVARP, OIMPL, PALFA, PBETA)