SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/ini_surf_csts.F90
Go to the documentation of this file.
00001 SUBROUTINE INI_SURF_CSTS 
00002 !     ##################
00003 !
00004 !!****  *INI_SURF_CSTS * - routine to initialize all surface parameter as
00005 !!                         emissivity and anbedo
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!      The physical constants are set to their default numerical values 
00013 !!      or specified in namelist NAM_SURF_CSTS
00014 !!     
00015 !!
00016 !!    EXTERNAL
00017 !!    --------
00018 !!
00019 !!
00020 !!    IMPLICIT ARGUMENTS
00021 !!    ------------------
00022 !!
00023 !!    REFERENCE
00024 !!    ---------
00025 !!
00026 !!    AUTHOR
00027 !!    ------
00028 !!      B. Decharme       * Meteo France *
00029 !!
00030 !!    MODIFICATIONS
00031 !!    -------------
00032 !!      Original    08/2009
00033 !!
00034 !-------------------------------------------------------------------------------
00035 !
00036 !*       0.    DECLARATIONS
00037 !              ------------
00038 !
00039 USE MODD_SURF_CONF, ONLY : CPROGNAME
00040 !
00041 USE MODD_WATER_PAR
00042 USE MODD_FLOOD_PAR
00043 USE MODD_SNOW_PAR,  ONLY : XEMISSN, XANSMIN, XANSMAX, &
00044                            XAGLAMIN, XAGLAMAX, XHGLA, &
00045                            XWSNV, XZ0SN, XZ0HSN, &
00046                            XTAU_SMELT
00047 !
00048 USE MODI_GET_LUOUT
00049 USE MODI_OPEN_NAMELIST
00050 USE MODI_CLOSE_NAMELIST
00051 USE MODE_POS_SURF
00052 !
00053 !
00054 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00055 USE PARKIND1  ,ONLY : JPRB
00056 !
00057 IMPLICIT NONE
00058 !
00059 INTEGER               :: ILUOUT    ! unit of output listing file
00060 INTEGER               :: ILUNAM    ! namelist file  logical unit
00061 LOGICAL               :: GFOUND    ! true if namelist is found
00062 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00063 !
00064 NAMELIST/NAM_SURF_CSTS/ XEMISSN, XANSMIN, XANSMAX, XAGLAMIN, XAGLAMAX, &
00065                         XALBWAT, XALBCOEF_TA96, XALBSCA_WAT, XEMISWAT, &
00066                         XALBWATICE, XEMISWATICE, XHGLA, XWSNV, XCFFV,  &
00067                         XZ0SN, XZ0HSN, XTAU_SMELT  
00068 !
00069 !-------------------------------------------------------------------------------
00070 !*       1. Default values
00071 !-------------------------------------------------------------------------------
00072 !
00073 ! Snow emissivity:
00074 !
00075 IF (LHOOK) CALL DR_HOOK('INI_SURF_CSTS',0,ZHOOK_HANDLE)
00076 XEMISSN = 1.0  ! (-)
00077 !
00078 ! Minimum and maximum values of the albedo of snow:
00079 !
00080 XANSMIN = 0.50 ! (-)
00081 XANSMAX = 0.85 ! (-)
00082 !
00083 ! Minimum and maximum values of the albedo of permanet snow/ice:
00084 !
00085 XAGLAMIN = 0.8 ! (-)
00086 XAGLAMAX = 0.85 ! (-)
00087 ! 
00088 ! Height of aged snow in glacier case (allows Pn=1)
00089 !
00090 XHGLA    = 33.3 !(m)
00091 ! 
00092 ! Coefficient for calculation of snow fraction over vegetation
00093 !
00094 XWSNV = 5.0 !(-)
00095 !
00096 ! Water global albedo (option "UNIF")
00097 !
00098 XALBWAT =  0.135
00099 !
00100 ! Water direct albedo coefficient (option "TA96")
00101 !
00102 XALBCOEF_TA96 =  0.037
00103 !
00104 ! Water diffuse albedo
00105 !
00106 XALBSCA_WAT =  0.06
00107 !                        
00108 ! Water emissivity
00109 !
00110 XEMISWAT =  0.98                      
00111 !
00112 ! Sea ice albedo
00113 !
00114 XALBWATICE = 0.85
00115 !
00116 ! Sea ice emissivity
00117 !
00118 XEMISWATICE = 1.0
00119 !
00120 ! Coefficient for calculation of floodplain fraction over vegetation
00121 !
00122 XCFFV = 3.0
00123 !
00124 ! Roughness length of pure snow surface (m)
00125 !
00126 XZ0SN = 0.001
00127 !
00128 ! Roughness length for heat of pure snow surface (m)
00129 !
00130 XZ0HSN = 0.0001
00131 !
00132 ! Snow Melt timescale with D95 (s): needed to prevent time step 
00133 ! dependence of melt when snow fraction < unity.
00134 !
00135 XTAU_SMELT = 300.
00136 !
00137 !-------------------------------------------------------------------------------
00138 !*       2. User values
00139 !-------------------------------------------------------------------------------
00140 !
00141  CALL GET_LUOUT(CPROGNAME,ILUOUT)
00142 !
00143  CALL OPEN_NAMELIST(CPROGNAME,ILUNAM)
00144 !
00145  CALL POSNAM(ILUNAM,'NAM_SURF_CSTS',GFOUND,ILUOUT)
00146 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_SURF_CSTS)
00147 !
00148  CALL CLOSE_NAMELIST(CPROGNAME,ILUNAM)
00149 IF (LHOOK) CALL DR_HOOK('INI_SURF_CSTS',1,ZHOOK_HANDLE)
00150 !
00151 !-------------------------------------------------------------------------------
00152 !
00153 END SUBROUTINE INI_SURF_CSTS