FUNCTION PAULSON_PSIH_2D(PZ_O_LMO)
IMPLICIT NONE
REAL, DIMENSION(:,:), INTENT(IN) :: PZ_O_LMO
REAL, DIMENSION(SIZE(PZ_O_LMO,1),SIZE(PZ_O_LMO,2)) :: PAULSON_PSIH_2D
!
REAL, DIMENSION(SIZE(PZ_O_LMO,1),SIZE(PZ_O_LMO,2)) :: ZY
REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK('MODE_SBLS:PAULSON_PSIH_2D',0,ZHOOK_HANDLE)
ZY=1.
WHERE ( PZ_O_LMO(:,:) < 0. )
ZY=(1.-9.*PZ_O_LMO)**(0.5)
PAULSON_PSIH_2D(:,:) = LOG( (1.+ZY)/2. )
ELSEWHERE
PAULSON_PSIH_2D(:,:) = - 4.7 * PZ_O_LMO / 0.74
END WHERE
IF (LHOOK) CALL DR_HOOK('MODE_SBLS:PAULSON_PSIH_2D',1,ZHOOK_HANDLE)
END FUNCTION PAULSON_PSIH_2D