SURFEX v7.3
General documentation of Surfex
|
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