FUNCTION LMO_1D(PUSTAR,PTHETA,PRV,PSFTH,PSFRV)
USE MODD_CSTS
USE MODD_SURF_PAR, ONLY : XUNDEF
IMPLICIT NONE
REAL, DIMENSION(:), INTENT(IN) :: PUSTAR
REAL, DIMENSION(:), INTENT(IN) :: PTHETA
REAL, DIMENSION(:), INTENT(IN) :: PRV
REAL, DIMENSION(:), INTENT(IN) :: PSFTH
REAL, DIMENSION(:), INTENT(IN) :: PSFRV
REAL, DIMENSION(SIZE(PUSTAR)) :: LMO_1D
!
REAL, DIMENSION(SIZE(PUSTAR)) :: ZTHETAV
REAL :: ZEPS
REAL(KIND=JPRB) :: ZHOOK_HANDLE
!
!
IF (LHOOK) CALL DR_HOOK('MODE_SBLS:LMO_1D',0,ZHOOK_HANDLE)
ZEPS=(XRV-XRD)/XRD
!
ZTHETAV(:) = PTHETA(:) * ( 1. +ZEPS * PRV(:))
!
LMO_1D(:) = XUNDEF
WHERE ( PSFTH(:)/ZTHETAV(:)+ZEPS*PSFRV(:)/=0. ) &
LMO_1D(:) = - MAX(PUSTAR(:),1.E-6)**3 &
/ ( XKARMAN * XG &
* ( PSFTH(:) / ZTHETAV(:) + ZEPS * PSFRV(:) ) )
WHERE(ABS(LMO_1D)>10000.) LMO_1D=XUNDEF
IF (LHOOK) CALL DR_HOOK('MODE_SBLS:LMO_1D',1,ZHOOK_HANDLE)
END FUNCTION LMO_1D