!OPTIONS XOPT(NOEVAL)
SUBROUTINE SUPHY2(KULOUT)

!**** *SUPHY2*   - Initialize common YOMPHY2 physics controlling
!                  constants

!     Purpose.
!     --------
!           Initialize YOMPHY2, the common that contains the parameters
!           for the control part of the physics of the model.

!**   Interface.
!     ----------
!        *CALL* *SUPHY2(KULOUT)

!        Explicit arguments :
!        --------------------
!        KULOUT : Logical unit for the output

!        Implicit arguments :
!        --------------------
!        COMMON YOMPHY2

!     Method.
!     -------
!        See documentation

!     Externals.
!     ----------

!     Reference.
!     ----------
!        Documentation ARPEGE

!     Author.
!     -------
!        J.-F. Geleyn .
!        Original : 90-9-1

!     Modifications.
!     --------------
!        R. EL Khatib : 93-04-02 Set-up defaults controled by LECMWF
!        J.-F. Geleyn : 93-08-19 New cloudiness diagnostics.
!        J.-F. Geleyn : 95-04-10 Anti-fibril. Girard-Delage.
!        P. Marquet   : 97-02-18 Value of VETAF=VAH/VP00+VBH.
!        J.M. Piriou  : 97-04-17 XMULAF default value.
!        E. Bazile    : 98-03-10 Introduce XMUCVPP.
!        W. Owcarz    : 2000-03-27 Set a default value for TSPHY
!        R. EL Khatib : 2000-06-13 RIPBLC
!        R. EL Khatib : 2000-08-21 Turbulent gusts setup
!        J.M. Piriou  : 2002-01-10 set default values to operational ones.
!        Modified by R. EL Khatib : 02-03-29 Control XMULAF<0 ; add LMULAF
!        Modified by D. Banciu    : 02-12-09 Introduction of XDAMP
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
!        E. Bazile    : 07-05-07 Allowed  XMULAF>=1 for TKE (LECT)
!        F. Bouyssel  : 07-05-07 Remove control on XMULAF>0
!     ------------------------------------------------------------------

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

USE YOMLUN   , ONLY : NULNAM
USE YOMCT0B  , ONLY : LECMWF
USE YOMGEM   , ONLY : VALH     ,VBH
USE YOMDIM   , ONLY : NFLEVG
USE YOMPHY   , ONLY : LECT
USE YOMPHY2  , ONLY : NTSHM    ,NTSML    ,XMUCVPP  ,LMULAF   ,&
 & XMULAF   ,XDAMP    ,HCLP     ,HTCLS    ,&
 & RIPBLC   ,&
 & LRAFTUR  ,GZ0RAF   ,FACRAF   ,&
 & HVCLS    ,HTSHM    ,HTSML    ,&
 & TSPHY  

IMPLICIT NONE

INTEGER(KIND=JPIM),INTENT(IN)    :: KULOUT 
INTEGER(KIND=JPIM) :: JLEV

REAL(KIND=JPRB) :: ZVETAF
REAL(KIND=JPRB) :: ZHOOK_HANDLE

#include "abor1.intfb.h"
#include "posnam.intfb.h"

#include "namphy2.h"
!     ------------------------------------------------------------------

!*       1.    Set default values.
!              -------------------

!        1.1 Set implicit default values

IF (LHOOK) CALL DR_HOOK('SUPHY2',0,ZHOOK_HANDLE)
XMULAF=-1.75_JPRB
XMUCVPP=0._JPRB
XDAMP=0._JPRB
HCLP=1500._JPRB
HTCLS=2._JPRB
HVCLS=10._JPRB
HTSHM=0.450_JPRB
HTSML=0.785_JPRB
TSPHY=1._JPRB
RIPBLC=0.5_JPRB
LRAFTUR=.FALSE.
GZ0RAF=10.0_JPRB
FACRAF=15.0_JPRB
LMULAF=.FALSE.

!        1.2 Modify default values according to LECMWF

IF (LECMWF) THEN
ELSE
  LRAFTUR=.TRUE.
ENDIF

!     Remark : values for TSPHY, NTSHM/ML are calculated and not set up.

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

!*       2.    Modify default values.
!              ----------------------

CALL POSNAM(NULNAM,'NAMPHY2')
READ(NULNAM,NAMPHY2)
!     ------------------------------------------------------------------

!*       3.    Compute cloud transition indexes.
!              ---------------------------------

NTSHM=0
NTSML=0
DO JLEV=1,NFLEVG
  ZVETAF=(VALH(JLEV)+VBH(JLEV)+VALH(JLEV-1)+VBH(JLEV-1))*0.5_JPRB
  IF (ZVETAF <= HTSHM) THEN
    NTSHM=JLEV
  ENDIF
  IF (ZVETAF <= HTSML) THEN
    NTSML=JLEV
  ENDIF
ENDDO

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

!*       4.    Print final values.
!              -------------------

WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY2 '')')
WRITE(UNIT=KULOUT,FMT='('' XMUCVPP = '',E10.4,'' XMULAF = '',E10.4 &
 & ,'' XDAMP = '',E10.4 &
 & ,'' LMULAF = '',L2,/,'' HTCLS = '',E10.4 &
 & ,'' HVCLS = '',E10.4,'' HCLP = '',E10.4,/&
 & ,'' RIPBLC  = '',F8.4 &
 & ,'' LRAFTUR = '',L2,'' GZ0RAF = '',E10.4,'' FACRAF = '',E10.4 &
 & ,'' HTSHM = '',F8.4,'' NTSHM = '',I3,'' HTSML = '',F8.4 &
 & ,'' NTSML = '',I3 &
 & )')&
 & XMUCVPP,XMULAF,XDAMP,LMULAF,&
 & HTCLS,HVCLS,HCLP,&
 & RIPBLC,&
 & LRAFTUR,GZ0RAF,FACRAF,&
 & HTSHM,NTSHM,HTSML,NTSML  

!*       5.    Control
!              -------

IF ((XDAMP /= 0.0_JPRB).AND.(XMUCVPP /= 0.0_JPRB)) THEN
  WRITE(UNIT=KULOUT,FMT='(A)') 'INCONSISTENCY BETWEEN XDAMP AND XMUCVPP !'
  CALL ABOR1('XDAMP/=0. IMPLIES XMUCVPP=0.!...')
ENDIF

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

IF (LHOOK) CALL DR_HOOK('SUPHY2',1,ZHOOK_HANDLE)
END SUBROUTINE SUPHY2
