SUBROUTINE SUSURF(KSW,KCSS,KSIL,KTILES,KTSW,&
 & LD_LEFLAKE, LD_LEOCML,& 
 & LD_LLCCNL,LD_LLCCNO,LD_LEVGEN,LD_LESSRO,LD_LELAIV,LD_LESN09,&
 & LD_LEOCWA,LD_LEOCCO,LD_LEOCSA,LD_LEOCLA,LD_LLE4ALB,&
 & LD_LSCMEC,LD_LROUGH,PEXTZ0M,PEXTZ0H,&
 & PTHRFRTI,PTSTAND,PXP,PRCCNSEA,PRCCNLND,&
 & PRSUN)  

USE PARKIND1  ,ONLY : JPIM     ,JPRB


!**   *SUSURF* IS THE SET-UP ROUTINE FOR surface modules contain constants

!     PURPOSE
!     -------
!          THIS ROUTINE INITIALIZES THE CONSTANTS IN COMMON BLOCK
!     *YOESOIL*

!     INTERFACE.
!     ----------
!     CALL *SUSURF* FROM *SUPHEC*

!     METHOD.
!     -------

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

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

!     Original    A.C.M. BELJAARS         E.C.M.W.F.      89/11/02
!     MODIFICATIONS
!     -------------
!     J.-J. MORCRETTE         E.C.M.W.F.      91/07/14
!     P. VITERBO              E.C.M.W.F.       8/10/93
!     P. Viterbo     99-03-26    Tiling of the land surface
!     C. Fischer 00-12-20 Meteo-France recode initialization of rdat to avoid
!                         memory overflow on SUN workstation
!     J.F. Estrade *ECMWF* 03-10-01 move in surf vob
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
!     P. Viterbo   ECMWF   03-12-2004  Include user-defined RTHRFRTI
!     P. Viterbo   ECMWF   May 2005    Externalise surf
!     G. Balsamo   ECMWF   10-01-2006  Include Vangenucthen Hydro.
!     JJMorcrette 20060511 MODIS albedo
!     V. Stepanen/G. Balsamo May 2008  Lake tile
!     Y. Takaya    ECMWF   07-10-2008  Implement an ocean mixed layer model
!     G. Balsamo   ECMWF   13-10-2008  Include switch for liquid water in snow
!     G. Balsamo   ECMWF   25-02-2009  Include full set of snow switches
!     S. Boussetta/G.Balsamo May 2009  Add LAI monthly fields
!     E. Dutra             16-11-2009  snow 2009 cleaning

!  INTERFACE: 

!    Integers (In):

!      KSW       : NUMBER OF SHORTWAVE SPECTRAL INTERVALS
!      KCSS      : Number of soil levels
!      KSIL      : NUMBER OF (infrared) SPECTRAL INTERVALS
!      KTILES    : Number of surface tiles
!      KTSW      : Maximum possible number of sw spectral intervals

!    Logicals (In):

!      LD_LLCCNL : .T. IF CCN CONCENTRATION OVER LAND IS DIAGNOSED
!      LD_LLCCNO : .T. IF CCN CONCENTRATION OVER OCEAN IS DIAGNOSED
!      LD_LEVGEN : .T. IF VAN GENUCHTEN HYDRO IS ACTIVATED
!      LD_LESSRO : .T. IF SUB-GRID SURFACE RUNOFF IS ACTIVATED
!      LD_LELAIV : .T. IF LAI IS READ FROM CLIMATE FIELDS
!      LD_LESN09 : .T. IF  SNOW 2009 IS ACTIVATED
!      LD_LLE4ALB: .T. IF MODIS ALBEDO IS USED
!      LD_LEFLAKE: .T. IF FLAKE PARAMETRIZATION USED FOR LAKES 
!      LD_LEOCML : .T. IF OCEAN MIXED LAYER MODEL (KPP) IS ACTIVATED

!    Reals (In):

!      PTHRFRTI  : ! MINIMUM THRESHOLD FOR TILE FRACTION
!      PTSTAND   : ! REFERENCE TEMPERATURE FOR TEMPERATURE DEPENDENCE
!      PXP       : ! POLYNOMIAL COEFFICIENTS OF PLANCK FUNCTION
!      PRCCNSEA  : ! NUMBER CONCENTRATION (CM-3) OF CCNs OVER SEA
!      PRCCNLND  : ! NUMBER CONCENTRATION (CM-3) OF CCNs OVER LAND
!      PRSUN     : ! SOLAR FRACTION IN SPECTRAL INTERVALS

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

IMPLICIT NONE

! Declaration of arguments

INTEGER(KIND=JPIM),INTENT(IN)    :: KSW 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTHRFRTI
INTEGER(KIND=JPIM),INTENT(IN)    :: KCSS  
INTEGER(KIND=JPIM),INTENT(IN)    :: KSIL 
INTEGER(KIND=JPIM),INTENT(IN)    :: KTILES 
INTEGER(KIND=JPIM),INTENT(IN)    :: KTSW 
LOGICAL           ,INTENT(IN)    :: LD_LLCCNL 
LOGICAL           ,INTENT(IN)    :: LD_LLCCNO  
LOGICAL           ,INTENT(IN)    :: LD_LEVGEN
LOGICAL           ,INTENT(IN)    :: LD_LESSRO
LOGICAL           ,INTENT(IN)    :: LD_LELAIV
LOGICAL           ,INTENT(IN)    :: LD_LESN09
LOGICAL           ,INTENT(IN)    :: LD_LEOCWA
LOGICAL           ,INTENT(IN)    :: LD_LEOCCO
LOGICAL           ,INTENT(IN)    :: LD_LEOCSA
LOGICAL           ,INTENT(IN)    :: LD_LEOCLA
LOGICAL           ,INTENT(IN)    :: LD_LLE4ALB
LOGICAL           ,INTENT(IN)    :: LD_LSCMEC
LOGICAL           ,INTENT(IN)    :: LD_LROUGH
LOGICAL           ,INTENT(IN)    :: LD_LEFLAKE 
LOGICAL           ,INTENT(IN)    :: LD_LEOCML
REAL(KIND=JPRB)   ,INTENT(IN)    :: PEXTZ0M
REAL(KIND=JPRB)   ,INTENT(IN)    :: PEXTZ0H
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTSTAND 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PXP(6,6) 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PRCCNSEA 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PRCCNLND 
REAL(KIND=JPRB)   ,INTENT(IN)    :: PRSUN(:) 


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

END SUBROUTINE SUSURF
