      SUBROUTINE REDPRM(VEGTYP,SOITYP,
     o CMCMAX,TOPT,RSMAX,ALBEDO,Z0,SHDFAC,NROOT,RCMIN,RGL,HS, 
     o B,DKSAT,DWSAT,SMCMAX,SMCWLT,SMCREF,SMCDRY,F1)
C
C    This subroutine reads the soil and vegetation parameters
C    required for the execusion of the OSU land-surface scheme. 
C    by F. Chen 3/15/95
C
      INTEGER NROOT,VEGTYP,SOITYP

C      Set-up soil parameters

       CALL PRMSOI(SOITYP,B,SMCDRY,F1,SMCMAX,SMCREF,
     &                    PSISAT,DKSAT,DWSAT,SMCWLT)
C
C      Set-up vegetation parameters

       CALL  PRMVEG(VEGTYP,CMCMAX,TOPT,RSMAX,ALBEDO,Z0,
     &                    SHDFAC,NROOT,RCMIN,RGL,HS)
C
      RETURN
      END
      
C
       SUBROUTINE  PRMVEG(VEGTYP,CMCMAX,TOPT,RSMAX,ALBEDO,Z0,
     &                    SHDFAC,NROOT,RCMIN,RGL,HS)
C
C    Set-up vegetation parameters for a given vegetaion type	
C
C 	Input:
C	       VEGTYP: Vegetation type
C	Ouput:
C	      Vegetation parameters:
C	 	ALBEDO: SFC albedo
C		CMXTBL: MAX CNPY Capacity
C		    Z0: Roughness length
C		SHDFAC: Plant shade factor
C                NROOT: Rooting depth
C                RCMIN: Mimimum stomatal resistance
C        RSMAX and RGL: Parameters used in radiation stress function
C                   HS: Parameter used in vapor pressure deficit function
C                 TOPT: Parameter used in temperature stress function
C               CMCMAX: Maximum canopy water capacity
C
C *************************************************************************
C
C     SSiB Vegetation Types (Dorman and Sellers, 1989; JAM)
C
C    1:   Broadleaf-evergreen trees  (tropical forest)
C    2:   Broadleaf-deciduous tress
C    3:   Broadleaf and needleleaf tress (mixed forest)
C    4:   Needleleaf-evergreen trees
C    5:   Needleleaf-deciduous tress (larch)
C    6:   Broadleaf tress with groundcover (savanna)
C    7:   Groundcover only (perennial)
C    8:   Broadleaf shrubs with perennial groundcover
C    9:   Broadleaf shrubs with bare soil
C   10:   Dwarf trees and shrubs with groundcover (tundra)
C   11:   Bare soil
C   12:   Cultivations (The same parameters for the Type 7)
C   13:   Glacial
C
C***************************************************************************
C
	INTEGER VEGTYP,NROTBL(13)
	REAL ALBTBL(13),Z0TBL(13),SHDTBL(13),RSMTBL(13),
     *       RGLTBL(13),HSTBL(13)

C	
        DATA ALBTBL/0.11, 0.19,  0.16,  0.13,  0.19,  0.19,  0.19,
     *              0.29, 0.29,  0.14,  0.15,  0.19,  0.15/
	DATA  Z0TBL/2.653,0.826, 0.563, 1.089, 0.854, 0.856, 0.075,
     *              0.238,0.065, 0.076, 0.011, 0.075, 0.011/
        DATA SHDTBL/0.90, 0.80,  0.80,  0.85,  0.40,  0.50,  0.80, 
     *              0.20, 0.15,  0.30,  0.0,   0.80,  0.0/
        DATA NROTBL/13*3/
        DATA RSMTBL/150.0,100.0, 125.0, 150.0, 100.0, 70.0,  40.0, 
     *              300.0,400.0, 150.0, 999.0, 40.0,  999.0/ 
        DATA RGLTBL/30.0, 30.0,  30.0,  30.0,  30.0,  65.0,  100.0,
     *              100.0,100.0, 100.0, 999.0, 100.0, 999.0/
        DATA HSTBL/41.69, 54.53, 51.93, 47.35, 47.35, 54.53, 36.35,
     *             42.00, 42.00, 42.00, 999.0, 36.35, 999.0/

        SAVE

C	ALBEDO = ALBTBL(VEGTYP)
C        Z0 = Z0TBL(VEGTYP)
C        NROOT = NROTBL(VEGTYP)
C        SHDFAC = SHDTBL(VEGTYP)
        RCMIN = RSMTBL(VEGTYP)
        RGL = RGLTBL(VEGTYP)
        HS = HSTBL(VEGTYP)
        IF(VEGTYP.EQ.11) SHDFAC=0.0
C
	RETURN
	END
C        
C	
       SUBROUTINE  PRMSOI(SOLTYP,SBB,SDRYSMC,SF11,SMAXSMC,SREFSMC,
     &                    SSATPSI,SSATDK,SSATDW,SWLTSMC)
C
C    Set-up soil Parameters for given soil type	
C
C 	Input:
C	       SOLTYP: Soil type
C	Ouput:
C
C	      Soil parameters:
C		SMAXSMC: MAX soil moisture content
C		SREFSMC:	Reference soil moisture 
C		SWLTSMC: Wilting PT soil moisture contents
C		SDRYSMC: Air dry soil moist content limits
C		SSATPSI: SAT soil potential coefs.
C	 	SSATDK:  SAT soil diffusivity/conductivity coefs.
C 		SBB:     Soil diffusivity/conductivity coef.
C		SSATDW:  SAT soil diffusivity/conductivity coefs.
C		SF11:    Soil diffusivity/conductivity coef.
C
C *************************************************************************
C
C	 SOIL TYPES     Zobler (1986)         Cosby et al (1984)
C             1          COARSE                LOAMY SAND 
C             2          MEDIUM                SILTY CLAY LOAM
C             3          FINE                  LIGHT CLAY
C             4          COARSE-MEDIUM         SANDY LOAM
C             5          COARSE-FINE           SANDY CLAY
C             6          MEDIUM-FINE           CLAY LOAM
C             7          COARSE-MED-FINE       SANDY CLAY LOAM 
C             8          ORGANIC               LOAM
C             9          LAND ICE              LOAMY SAND
C
C***************************************************************************
C
	INTEGER SOLTYP

        REAL BB(9),DRYSMC(9),F11(9),MAXSMC(9),REFSMC(9),SATPSI(9),
     &       SATDK(9),SATDW(9),WLTSMC(9)
C
        DATA MAXSMC/0.421, 0.464, 0.468, 0.434, 0.406, 0.465, 0.404,
     &               0.439, 0.421/
        DATA DRYSMC/0.07,  0.14,  0.22,  0.08,  0.18,  0.16,  0.120,
     &               0.10,  0.07/
        DATA SATPSI/0.04,  0.62, 0.47, 0.14, 0.10, 0.26, 0.14,
     &               0.36,  0.04/
        DATA SATDK /1.41E-5, 0.20E-5, 0.10E-5, 0.52E-5, 0.72E-5,
     &              0.25E-5, 0.45E-5, 0.34E-5, 1.41E-5/
        DATA BB    /4.26,  8.72, 11.55, 4.74, 10.73, 8.17, 6.77,
     &              5.25,  4.26/
        DATA REFSMC/0.283, 0.387, 0.412, 0.312, 0.338, 0.382, 0.315,
     &              0.329, 0.283/
        DATA WLTSMC/0.029, 0.119, 0.139, 0.047, 0.020, 0.103, 0.069,
     &              0.066, 0.029/
        DATA SATDW  /5.71E-6, 2.33E-5, 1.16E-5, 7.95E-6, 1.90E-5,
     &               1.14E-5, 1.06E-5, 1.46E-5, 5.71E-6/
        DATA F11    /-0.999, -1.116, -2.137, -0.572, -3.201, -1.302,
     &               -1.519, -0.329, -0.999/

C NOTE: SATDW = BB*SATDK*(SATPSI/MAXSMC)
C         F11 = ALOG10(SATPSI) + BB*ALOG10(MAXSMC) + 2.0
C       REFSMC1=MAXSMC*(5.79E-9/SATDK)**(1/(2*BB+3)) 5.79E-9 m/s= 0.5 mm/day
C       REFSMC=REFSMC1+1./3.(MAXSMC-REFSMC1)
C       WLTSMC1=MAXSMC*(200./SATPSI)**(-1./BB)    (Wetzel and Chang, 1987)
C       WLTSMC=WLTSMC1-0.5*WLTSMC1

        SAVE

C    SOIL PARAMETERS

        SBB = BB(SOLTYP)
	SDRYSMC = DRYSMC(SOLTYP)
	SF11 = F11(SOLTYP)
	SMAXSMC = MAXSMC(SOLTYP)
	SREFSMC = REFSMC(SOLTYP)
        SSATPSI = SATPSI(SOLTYP)
	SSATDK = SATDK(SOLTYP)
	SSATDW = SATDW(SOLTYP)
	SWLTSMC = WLTSMC(SOLTYP)
C
	RETURN
	END

      SUBROUTINE DCOEF ( Z, Z0, T1V, TH2V, SFCSPD, CM, CH )

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CC    NAME:  DETERMINE COEFFICIENTS (DCOEF)       VERSION: N/A
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

      REAL A
      REAL AH
      REAL AM
      REAL BETA
      REAL B1
      REAL B2
      REAL CH
      REAL CM
      REAL CTP
      REAL CUP
      REAL CUS
      REAL DEW
      REAL DRIP
      REAL EC
      REAL EDIR
      REAL ETT
      REAL EXMCH
      REAL FLX1
      REAL FLX2
      REAL FLX3
      REAL G
      REAL PR
      REAL RHO
      REAL RIB
      REAL RUNOFF
      REAL SFCSPD
      REAL TH2V
      REAL T1V
      REAL VK
      REAL Z
      REAL Z0
      REAL Z0H
!!$omp threadlocal /rite/
      COMMON/RITE/ BETA,DRIP,EC,EDIR,ETT,FLX1,FLX2,FLX3,RHO,RUNOFF,
     &             DEW,RIB
      DATA B1     / 9.4 /
      DATA B2     / 15.0 /
      DATA CUS    / 7.4 /
      DATA EXMCH  / -1. /
      DATA G      / 9.806 /
C
C      DATA PR     / .74 /
C   Set PR=1 the same as in Ek's version for PILPS 1994
C
      DATA PR     / 1.0 /
      DATA VK     / .4 /

C 
      SFCSPD=MAX(SFCSPD, 0.01)

C   Set Z0H as function of Z0 as in Beljaars and Betts (1992?)
C      
      Z0H = Z0/10.
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C     CALC A FRICTION VELOCITY FOR USE IN CALCULATING THE DRAG
C     COEF FOR MOMENTUM AND ONE FOR USE IN CALCULATING THE DRAG
C     COEF FOR HEAT.
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

      A = VK / ALOG( Z / Z0 )
      AM = A * A
      AH = A * VK / ALOG( Z / Z0H )

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C     CALC A BULK RICHARDSON NUMBER.  CONSTRAIN ITS VALUE IN THE
C     STABLE CASE TO A MAXIMUM OF 1.0 TO AVOID CREATING EXCHANGE
C     COEFFICIENTS THAT APPROACH ZERO.
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

      RIB = G * Z * ( TH2V - T1V ) / ( TH2V * SFCSPD * SFCSPD )
      RIB = MIN( RIB, 1.0 )

      IF ( RIB .GE. 0. ) THEN

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C       IF THE RICHARDSON NUMBER IS .GE. ZERO, THE AIR IS STABLY
C       STRATIFIED.  CALC THE DRAG COEFFICIENTS USING A METHOD
C       DEVELOPED BY MAHRT (MONTHLY WEATHER REVIEW, 1987).  THE
C       SMALLEST ALLOWABLE CM VALUE IS 1.0E-6.
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

        CM = AM * SFCSPD * EXP( EXMCH * RIB )
        IF ( CM .LT. 1.0E-6) THEN
          CM = 1.0E-6
          CH = 1.0E-6
        ELSE
          CH = ( CM * AH / AM ) / PR
        ENDIF
      ELSE

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C       OTHERWISE, THE AIR IS UNSTABLY STRATIFIED AND THE DRAG
C       COEFFICIENTS WILL BE CALCULATED AS FOLLOWS.
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

        CUP = CUS * AM * B1 * SQRT( -RIB * Z / Z0 )
        CTP = CUS * AH * B1 * SQRT( -RIB * Z / Z0H )
        CM = ( 1.0 - (B1 * RIB)/(1.0 + CUP) ) * AM * SFCSPD
        CH = ( 1.0 - (B2 * RIB)/(1.0 + CTP) ) * AH * SFCSPD / PR
      END IF

      RETURN
      END

