6 SUBROUTINE sm10(PZ,PBLD_HEIGHT,PLAMBDA_F,PL)
38 REAL,
DIMENSION(:,:),
INTENT(IN) :: PZ
39 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD_HEIGHT
40 REAL,
DIMENSION(:),
INTENT(IN) :: PLAMBDA_F
41 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PL
47 REAL,
DIMENSION(SIZE(PZ,1)) :: ZZ_CAN
48 REAL,
DIMENSION(SIZE(PZ,1),SIZE(PZ,2)):: ZZ_SURF
49 REAL,
DIMENSION(SIZE(PZ,1),SIZE(PZ,2)):: ZZ_ISBL
50 REAL,
DIMENSION(SIZE(PZ,1)) :: ZZ_BASE_ISBL
51 REAL,
DIMENSION(SIZE(PZ,1)) :: ZDISP_H
52 REAL,
PARAMETER :: ZALPHA_CAN = 1.12
56 REAL(KIND=JPRB) :: ZHOOK_HANDLE
67 zdisp_h(:) = min( plambda_f(:)**0.13 * pbld_height(:) , 0.75 * pbld_height )
68 zz_can(:) = zalpha_can * (pbld_height(:) - zdisp_h(:))
71 zz_surf(:,:) = pz(:,:)
75 zz_isbl(:,jlayer) = max(zz_can(:), pz(:,jlayer) - zdisp_h(:))
78 zz_base_isbl(:) = max(pz(:,1), 1.5 * pbld_height(:) )
82 WHERE (pz(:,jlayer)<=pbld_height(:))
84 pl(:,jlayer) = min(zz_surf(:,jlayer), zz_can(:))
86 WHERE (pz(:,jlayer)>zz_base_isbl(:) )
88 pl(:,jlayer) = zz_isbl(:,jlayer)
90 WHERE (pz(:,jlayer)>pbld_height(:) .AND. pz(:,jlayer)<=1.5*pbld_height(:))
92 pl(:,jlayer) = zz_can(:) + (zz_isbl(:,jlayer)-zz_can(:)) &
93 * (pz(:,jlayer)-pbld_height(:)) / (zz_base_isbl(:) - pbld_height(:))
100 pl(:,jlayer) = max(pl(:,jlayer-1),pl(:,jlayer))
subroutine sm10(PZ, PBLD_HEIGHT, PLAMBDA_F, PL)