SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_nam_pgd_teb.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_NAM_PGD_TEB(HPROGRAM,KTEB_PATCH, HBEM,        &
00003                                   HCOOL_COIL, HHEAT_COIL, OAUTOSIZE,&
00004                                   KROAD_LAYER, KROOF_LAYER,         &
00005                                   KWALL_LAYER, KFLOOR_LAYER,        &
00006                                   OGREENROOF, OHYDRO                )
00007 !     ##############################################################
00008 !
00009 !!**** *READ_NAM_PGD_TEB* reads namelist for TEB
00010 !!
00011 !!    PURPOSE
00012 !!    -------
00013 !!
00014 !!    METHOD
00015 !!    ------
00016 !!   
00017 !
00018 !!    EXTERNAL
00019 !!    --------
00020 !!
00021 !!    IMPLICIT ARGUMENTS
00022 !!    ------------------
00023 !!
00024 !!    REFERENCE
00025 !!    ---------
00026 !!
00027 !!    AUTHOR
00028 !!    ------
00029 !!
00030 !!    V. Masson        Meteo-France
00031 !!
00032 !!    MODIFICATION
00033 !!    ------------
00034 !!
00035 !!    Original    01/2005
00036 !!       2008 B. Decharme : uniform value of subgrid drainage coefficient
00037 !!    12/2008 E. Martin   : files of data for subgrid drainage 
00038 !!                          and subgridrunoff
00039 !!    06/2009 B. Decharme : files of data for topographic index
00040 !!
00041 !!      A. Lemonsu      07/2012         Key for greenroofs & greenwalls
00042 !!      A. Lemonsu      07/2012         Key for urban hydrology
00043 !----------------------------------------------------------------------------
00044 !
00045 !*    0.     DECLARATION
00046 !            -----------
00047 !
00048 USE MODD_SURF_PAR, ONLY : XUNDEF, NUNDEF
00049 !
00050 USE MODI_GET_LUOUT
00051 USE MODI_OPEN_NAMELIST
00052 USE MODI_CLOSE_NAMELIST
00053 !
00054 USE MODE_POS_SURF
00055 !
00056 !
00057 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00058 USE PARKIND1  ,ONLY : JPRB
00059 !
00060 IMPLICIT NONE
00061 !
00062 !*    0.1    Declaration of arguments
00063 !            ------------------------
00064 !
00065  CHARACTER(LEN=6), INTENT(IN)  :: HPROGRAM         ! Type of program
00066 INTEGER,          INTENT(OUT) :: KTEB_PATCH       ! number of patches
00067  CHARACTER(LEN=3), INTENT(OUT) :: HBEM             ! to use BEM
00068  CHARACTER(LEN=6), INTENT(OUT) :: HCOOL_COIL       ! type of cooling coil
00069  CHARACTER(LEN=6), INTENT(OUT) :: HHEAT_COIL       ! type of heating coil
00070 LOGICAL,          INTENT(OUT) :: OAUTOSIZE        ! Flag to activate autosize calculations
00071 INTEGER,          INTENT(OUT) :: KROAD_LAYER      ! number of road layers
00072 INTEGER,          INTENT(OUT) :: KROOF_LAYER      ! number of roof layers
00073 INTEGER,          INTENT(OUT) :: KWALL_LAYER      ! number of wall layers
00074 INTEGER,          INTENT(OUT) :: KFLOOR_LAYER     ! number of floor layers
00075 LOGICAL,          INTENT(OUT) :: OGREENROOF       ! key for greenroof activation
00076 LOGICAL,          INTENT(OUT) :: OHYDRO           ! key for urban hydrology activation
00077 !
00078 !
00079 !*    0.2    Declaration of local variables
00080 !            ------------------------------
00081 !
00082 INTEGER                           :: ILUOUT    ! output listing logical unit
00083 INTEGER                           :: ILUNAM    ! namelist file logical unit
00084 LOGICAL                           :: GFOUND    ! flag when namelist is present
00085 !
00086 !*    0.3    Declaration of namelists
00087 !            ------------------------
00088 !
00089 INTEGER                  :: NTEB_PATCH       ! number of patches
00090  CHARACTER(LEN=3)         :: CBEM             ! to use BEM
00091  CHARACTER(LEN=6)         :: CCOOL_COIL       ! type of cooling coil
00092  CHARACTER(LEN=6)         :: CHEAT_COIL       ! type of heating coil
00093 LOGICAL                  :: LAUTOSIZE        ! Flag to activate autosize calculations
00094 INTEGER                  :: NROAD_LAYER      ! number of road layers
00095 INTEGER                  :: NROOF_LAYER      ! number of roof layers
00096 INTEGER                  :: NWALL_LAYER      ! number of wall layers
00097 INTEGER                  :: NFLOOR_LAYER     ! number of floor layers
00098 LOGICAL                  :: LGREENROOF       ! key for greenroof activation
00099 LOGICAL                  :: LHYDRO           ! key for urban hydrology activation
00100 !
00101 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00102 !
00103 NAMELIST/NAM_TEB/ NTEB_PATCH, CBEM, CCOOL_COIL, CHEAT_COIL, LAUTOSIZE, &
00104                   NROAD_LAYER, NFLOOR_LAYER, NROOF_LAYER, NWALL_LAYER, &
00105                   LGREENROOF, LHYDRO
00106 !
00107 !-------------------------------------------------------------------------------
00108 !
00109 !*    1.      Initializations of defaults
00110 !             ---------------------------
00111 !
00112 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_TEB',0,ZHOOK_HANDLE)
00113 NTEB_PATCH         = 1
00114 CBEM               = 'DEF'
00115 LAUTOSIZE          =.FALSE.
00116 CHEAT_COIL         ='IDEAL'
00117 CCOOL_COIL         ='IDEAL'
00118 NROAD_LAYER        = 5
00119 NROOF_LAYER        = 5
00120 NWALL_LAYER        = 5
00121 NFLOOR_LAYER       = 5
00122 LGREENROOF         = .FALSE.
00123 LHYDRO             = .FALSE.
00124 !
00125  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00126 !
00127 !-------------------------------------------------------------------------------
00128 !
00129 !*    2.      Reading of namelist
00130 !             -------------------
00131 !
00132  CALL OPEN_NAMELIST(HPROGRAM,ILUNAM)
00133 !
00134  CALL POSNAM(ILUNAM,'NAM_TEB',GFOUND,ILUOUT)
00135 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_TEB)
00136 !
00137  CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM)
00138 !
00139 !-------------------------------------------------------------------------------
00140 !
00141 KTEB_PATCH   = NTEB_PATCH           ! number of patches
00142 HBEM         = CBEM
00143 HCOOL_COIL   = CCOOL_COIL
00144 HHEAT_COIL   = CHEAT_COIL
00145 OAUTOSIZE    = LAUTOSIZE
00146 KROAD_LAYER  = NROAD_LAYER
00147 KROOF_LAYER  = NROOF_LAYER
00148 KWALL_LAYER  = NWALL_LAYER
00149 KFLOOR_LAYER = NFLOOR_LAYER
00150 !
00151 OGREENROOF   = LGREENROOF
00152 OHYDRO       = LHYDRO
00153 !
00154 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_TEB',1,ZHOOK_HANDLE)
00155 !
00156 !-------------------------------------------------------------------------------
00157 !
00158 END SUBROUTINE READ_NAM_PGD_TEB