MODULE SUVEXC_MOD
CONTAINS
SUBROUTINE SUVEXC(LD_LEOCWA,LD_LEOCCO,LD_LEOCSA,LD_LEOCLA,&
          & LD_LSCMEC,LD_LROUGH,PEXTZ0M,PEXTZ0H)

USE PARKIND1  ,ONLY : JPIM     ,JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

USE YOS_EXC   , ONLY :  LELWDD, LEOCWA, LEOCCO, LEOCSA, LEOCLA, RKAP &
 & ,  RCHAR, REPDU2 , RPARZI, RZ0ICE, REPUST, RNUM, RNUH, RNUQ, LSCMEC &
 & ,  LROUGH, REXTZ0M, REXTZ0H
!     ------------------------------------------------------------------

!**   *SUVEXC* IS THE SET-UP ROUTINE FOR COMMON BLOCK *YOS_EXC*

!     A.C.M. BELJAARS         E.C.M.W.F.       2/11/89

!     PURPOSE
!     -------

!          THIS ROUTINE INITIALIZES THE CONSTANTS IN COMMON BLOCK
!     *YOS_EXC*

!     INTERFACE.
!     ----------

!    Logicals (In):

!      LD_LEOCWA : .T. if WARM OCEAN LAYER PARAMETRIZATION active
!      LD_LEOCCO : .T. if COOL OCEAN SKIN PARAMETRIZATION active
!      LD_LEOCSA : .T. if SALINTY EFFECT ON SATURATION AT OCEAN SURFACE active
!      LD_LEOCLA : .T. if LANGMUIR CIURCULATION EFFECT IN VOSKIN active

!     CALL *SUVEXC* FROM *SUSURF*

!     METHOD.
!     -------

!     EXTERNALS.
!     ----------

!     NONE.

!     REFERENCE.
!     ----------

!     MODIFICATIONS
!     -------------
!     J.-J. MORCRETTE         E.C.M.W.F.      91/07/14
!     M.Hamrud                01-Oct-2003     CY28 Cleaning
!     P. Viterbo              09/06/2005      Externalise surf

!     ------------------------------------------------------------------

IMPLICIT NONE

LOGICAL           ,INTENT(IN)    :: LD_LEOCWA
LOGICAL           ,INTENT(IN)    :: LD_LEOCCO
LOGICAL           ,INTENT(IN)    :: LD_LEOCSA
LOGICAL           ,INTENT(IN)    :: LD_LEOCLA
LOGICAL           ,INTENT(IN)    :: LD_LSCMEC
LOGICAL           ,INTENT(IN)    :: LD_LROUGH
REAL(KIND=JPRB)   ,INTENT(IN)    :: PEXTZ0M
REAL(KIND=JPRB)   ,INTENT(IN)    :: PEXTZ0H

REAL(KIND=JPRB) :: Z_CEPZ0O, ZNU
REAL(KIND=JPRB) :: ZHOOK_HANDLE

!     ------------------------------------------------------------------

IF (LHOOK) CALL DR_HOOK('SUVEXC_MOD:SUVEXC',0,ZHOOK_HANDLE)

! First set of constants

RKAP   =0.4_JPRB
RZ0ICE =0.001_JPRB

! Simplified physics constant
RCHAR  =0.018_JPRB

! Other constants

REPDU2 =(0.1_JPRB)**2
REPUST=0.0001_JPRB  

!     KINEMATIC VISCOSITY OF AIR

ZNU   =1.5E-5_JPRB
RNUM  =0.11_JPRB*ZNU
RNUH  =0.40_JPRB*ZNU
RNUQ  =0.62_JPRB*ZNU

!     ENTRAINMENT PARAMETRIZATION

RPARZI=1000._JPRB

!     COMPUTATION OF SKIN TEMPERATURE

LELWDD=.TRUE.

!     Ocean skin effects and ocean salinity effect on esat

LEOCWA=LD_LEOCWA
LEOCCO=LD_LEOCCO
LEOCSA=LD_LEOCSA
LEOCLA=LD_LEOCLA

!     SCM parameters for surface roughness length

LSCMEC =LD_LSCMEC
LROUGH =LD_LROUGH
REXTZ0M=PEXTZ0M
REXTZ0H=PEXTZ0H


!     ------------------------------------------------------------------

IF (LHOOK) CALL DR_HOOK('SUVEXC_MOD:SUVEXC',1,ZHOOK_HANDLE)
END SUBROUTINE SUVEXC
END MODULE SUVEXC_MOD

