60 TYPE(
diag_t),
INTENT(INOUT) :: D
62 REAL,
DIMENSION(:),
INTENT(IN) :: PZS_MOY
63 REAL,
DIMENSION(:),
INTENT(IN) :: PZS_MIN
65 REAL,
DIMENSION(:),
INTENT(OUT) :: PPS_MIN
66 REAL,
DIMENSION(:),
INTENT(OUT) :: PRHOA_2M_MIN
70 REAL,
DIMENSION(SIZE(D%XQ2M )) :: ZQA_2M
71 REAL,
DIMENSION(SIZE(D%XQ2M )) :: ZQA_2M_MIN
72 REAL,
DIMENSION(SIZE(D%XRHOA)) :: ZRHOA_2M
73 REAL,
DIMENSION(SIZE(D%XRHOA)) :: ZRHOA_2M_MIN
75 REAL(KIND=JPRB) :: ZHOOK_HANDLE
79 IF (
lhook)
CALL dr_hook(
'MINZS_VERT_SHIFT',0,zhook_handle)
81 zqa_2m = d%XQ2M / d%XRHOA
86 d%XT2M_MIN_ZS = d%XT2M +
xclim_t_grad * (pzs_min - pzs_moy)
93 pps_min = d%XPS * exp( -
xg/
xrd/(0.5*(d%XT2M+d%XT2M_MIN_ZS)*( 1.+((
xrv/
xrd)-1.)*zqa_2m(:) )) &
101 zqa_2m_min = zqa_2m /
qsat(d%XT2M, d%XPS) *
qsat(d%XT2M_MIN_ZS,pps_min)
108 zrhoa_2m(:) = d%XPS (:) /
xrd / d%XT2M (:) / ( 1.+((
xrv/
xrd)-1.)*zqa_2m(:) )
109 zrhoa_2m_min(:) = pps_min(:) /
xrd / d%XT2M_MIN_ZS(:) / ( 1.+((
xrv/
xrd)-1.)*zqa_2m_min(:) )
111 prhoa_2m_min(:) = d%XRHOA(:) * zrhoa_2m_min(:) / zrhoa_2m(:)
118 d%XQ2M_MIN_ZS = zqa_2m_min * prhoa_2m_min
120 IF (
lhook)
CALL dr_hook(
'MINZS_VERT_SHIFT',1,zhook_handle)
subroutine minzs_vert_shift(D, PZS_MOY, PZS_MIN, PPS_MIN, PRHOA_2M_MIN)