FUNCTION PAULSON_PSIM_1D(PZ_O_LMO)
USE MODD_CSTS
IMPLICIT NONE
REAL, DIMENSION(:), INTENT(IN) :: PZ_O_LMO
REAL, DIMENSION(SIZE(PZ_O_LMO,1)) :: PAULSON_PSIM_1D
!
REAL, DIMENSION(SIZE(PZ_O_LMO,1)) :: ZX
REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK('MODE_SBLS:PAULSON_PSIM_1D',0,ZHOOK_HANDLE)
ZX=1.
WHERE ( PZ_O_LMO(:) < 0. )
ZX=(1.-15.*PZ_O_LMO)**(0.25)
PAULSON_PSIM_1D(:) = LOG( (1.+ZX**2)*(1+ZX)**2/8. ) - 2.*ATAN(ZX) + XPI/2.
ELSEWHERE
PAULSON_PSIM_1D(:) = - 4.7 * PZ_O_LMO
END WHERE
IF (LHOOK) CALL DR_HOOK('MODE_SBLS:PAULSON_PSIM_1D',1,ZHOOK_HANDLE)
END FUNCTION PAULSON_PSIM_1D