73 USE yomhook
,ONLY : lhook, dr_hook
74 USE parkind1
,ONLY : jprb
80 REAL,
DIMENSION(:,:),
INTENT(IN) :: pt
81 REAL,
INTENT(IN) :: ptstep
82 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc
83 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc
84 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd
85 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pa
86 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pb
87 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pc
88 REAL,
DIMENSION(:,:),
INTENT(OUT) :: py
89 REAL,
INTENT(IN) :: pimpl
97 REAL,
DIMENSION(SIZE(PT,1),SIZE(PT,2)) :: zmtc_o_d
99 REAL,
DIMENSION(SIZE(PT,1),SIZE(PT,2)) :: zhc_d
104 REAL(KIND=JPRB) :: zhook_handle
106 IF (lhook) CALL dr_hook(
'LAYER_E_BUDGET_GET_COEF',0,zhook_handle)
119 zmtc_o_d(jj,jlayer) = 2./( pd(jj,jlayer)/ptc(jj,jlayer) + pd(jj,jlayer+1)/ptc(jj,jlayer+1) )
120 zhc_d(jj,jlayer) = phc(jj,jlayer) * pd(jj,jlayer)
125 zhc_d(jj,ilayer) = phc(jj,ilayer) * pd(jj,ilayer)
134 DO jlayer = 1, ilayer
135 DO jj = 1,
SIZE(pt,1)
137 IF ( jlayer == 1 )
THEN
140 pa(jj,jlayer) = - zimpl * zmtc_o_d(jj,jlayer-1)
143 IF ( jlayer == ilayer )
THEN
146 pc(jj,jlayer) = - zimpl * zmtc_o_d(jj,jlayer)
149 pb(jj,jlayer) = zhc_d(jj,jlayer)/ptstep
150 py(jj,jlayer) = zhc_d(jj,jlayer)/ptstep * pt(jj,jlayer)
152 IF ( jlayer .GT. 1.)
THEN
153 pb(jj,jlayer) = pb(jj,jlayer) + zimpl * zmtc_o_d(jj,jlayer-1)
154 py(jj,jlayer) = py(jj,jlayer) + zexpl * zmtc_o_d(jj,jlayer-1) * ( pt(jj,jlayer-1) - pt(jj,jlayer) )
157 IF ( jlayer .LT. ilayer)
THEN
158 pb(jj,jlayer) = pb(jj,jlayer) + zimpl * zmtc_o_d(jj,jlayer)
159 py(jj,jlayer) = py(jj,jlayer) + zexpl * zmtc_o_d(jj,jlayer) * ( pt(jj,jlayer+1) - pt(jj,jlayer) )
166 IF (lhook) CALL dr_hook(
'LAYER_E_BUDGET_GET_COEF',1,zhook_handle)
subroutine layer_e_budget_get_coef(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY)