6 SUBROUTINE rmc01_surf(PZ, PLMO, PLK, PLEPS, ONEUTRAL)
51 USE yomhook
,ONLY : lhook, dr_hook
52 USE parkind1
,ONLY : jprb
59 REAL,
DIMENSION(:,:),
INTENT(IN) :: pz
60 REAL,
DIMENSION(:,:),
INTENT(IN) :: plmo
61 REAL,
DIMENSION(:,:),
INTENT(OUT) :: plk
62 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pleps
63 LOGICAL,
OPTIONAL,
INTENT(IN) :: oneutral
72 REAL,
DIMENSION(SIZE(PZ,1),SIZE(PZ,2)) :: zz_o_lmo
73 REAL,
DIMENSION(SIZE(PZ,1),SIZE(PZ,2)) :: zphim
75 REAL,
DIMENSION(SIZE(PZ,1),SIZE(PZ,2)) :: zphie
77 REAL(KIND=JPRB) :: zhook_handle
81 IF (present(oneutral)) gneutral = oneutral
87 IF (lhook) CALL dr_hook(
'RMC01_SURF',0,zhook_handle)
94 plk(:,:) = xkarman/sqrt(xalpsbl)/xcmfs * pz(:,:)
101 pleps(:,:) = xkarman*(xalpsbl**1.5)*xced * pz(:,:)
106 IF (lhook) CALL dr_hook(
'RMC01_SURF',1,zhook_handle)
112 WHERE (plmo(:,:)==xundef)
115 zz_o_lmo(:,:)=pz(:,:)/plmo(:,:)
117 zz_o_lmo(:,:) = max(zz_o_lmo(:,:),-10.)
118 zz_o_lmo(:,:) = min(zz_o_lmo(:,:), 10.)
132 plk(:,:) = plk(:,:) / (zphim(:,:)**2*sqrt(zphie(:,:)))
139 pleps(:,:) = pleps(:,:) / (zphim(:,:)**2*sqrt(zphie(:,:)))
141 WHERE (zz_o_lmo(:,:)<0.)
142 pleps(:,:) = pleps(:,:)/(1.-1.9*zz_o_lmo(:,:))
144 pleps(:,:) = pleps(:,:)/(1.-0.3*sqrt(zz_o_lmo(:,:)))
147 IF (lhook) CALL dr_hook(
'RMC01_SURF',1,zhook_handle)
subroutine rmc01_surf(PZ, PLMO, PLK, PLEPS, ONEUTRAL)