SURFEX v7.3
General documentation of Surfex
|
00001 ! ######spl 00002 SUBROUTINE DIAG_MISC_TEB_INIT_n(HPROGRAM,KLU,KSW) 00003 ! ##################### 00004 ! 00005 !!**** *DIAG_MISC_TEB_INIT_n* - routine to initialize TEB diagnostic variables 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! EXTERNAL 00014 !! -------- 00015 !! 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! 00024 !! AUTHOR 00025 !! ------ 00026 !! V. Masson *Meteo France* 00027 !! 00028 !! MODIFICATIONS 00029 !! ------------- 00030 !! Original 01/2004 00031 !------------------------------------------------------------------------------- 00032 ! 00033 !* 0. DECLARATIONS 00034 ! ------------ 00035 ! 00036 USE MODD_SURF_PAR, ONLY : XUNDEF 00037 USE MODD_TYPE_DATE_SURF 00038 ! 00039 USE MODD_TEB_n, ONLY : CBEM 00040 USE MODD_DIAG_MISC_TEB_n, ONLY : LSURF_MISC_BUDGET, & 00041 XQF_BLD, XQF_TOWN, XDQS_TOWN, XFLX_BLD, & 00042 XRN_ROAD, XH_ROAD, XLE_ROAD, XGFLUX_ROAD,& 00043 XRN_WALL_A, XH_WALL_A, XGFLUX_WALL_A, & 00044 XRN_WALL_B, XH_WALL_B, XGFLUX_WALL_B, & 00045 XRN_ROOF, XH_ROOF, XLE_ROOF, XGFLUX_ROOF,& 00046 XRN_GARDEN,XH_GARDEN,XLE_GARDEN, & 00047 XGFLUX_GARDEN, & 00048 XRN_STRLROOF, XH_STRLROOF, & 00049 XLE_STRLROOF, XGFLUX_STRLROOF, & 00050 XRN_GREENROOF, XH_GREENROOF, & 00051 XLE_GREENROOF, XGFLUX_GREENROOF, & 00052 XRUNOFF_GREENROOF, XDRAIN_GREENROOF, & 00053 XRN_BLT,XH_BLT,XLE_BLT,XGFLUX_BLT, & 00054 XABS_SW_ROOF ,XABS_SW_SNOW_ROOF, & 00055 XABS_LW_ROOF ,XABS_LW_SNOW_ROOF, & 00056 XABS_SW_ROAD ,XABS_SW_SNOW_ROAD, & 00057 XABS_LW_ROAD ,XABS_LW_SNOW_ROAD, & 00058 XABS_SW_WALL_A, XABS_SW_WALL_B, & 00059 XABS_LW_WALL_A, XABS_LW_WALL_B, & 00060 XABS_SW_GARDEN,XABS_LW_GARDEN, & 00061 XABS_SW_GREENROOF,XABS_LW_GREENROOF, & 00062 XG_GREENROOF_ROOF, & 00063 XH_BLD_COOL, XT_BLD_COOL, & 00064 XH_BLD_HEAT, XLE_BLD_COOL, XLE_BLD_HEAT, & 00065 XH_WASTE, XLE_WASTE, XHVAC_COOL, & 00066 XHVAC_HEAT, XCAP_SYS, XM_SYS, XCOP, & 00067 XQ_SYS, XT_SYS, XTR_SW_WIN, XFAN_POWER, & 00068 XABS_SW_WIN, XABS_LW_WIN, XEMIT_LW_GRND, & 00069 XEMIT_LW_FAC, XT_RAD_IND, & 00070 XREF_SW_GRND, XREF_SW_FAC, XHU_BLD 00071 00072 ! 00073 USE MODI_READ_SURF 00074 ! 00075 ! 00076 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00077 USE PARKIND1 ,ONLY : JPRB 00078 ! 00079 IMPLICIT NONE 00080 ! 00081 !* 0.1 Declarations of arguments 00082 ! ------------------------- 00083 ! 00084 INTEGER, INTENT(IN) :: KLU ! size of arrays 00085 INTEGER, INTENT(IN) :: KSW ! spectral bands 00086 CHARACTER(LEN=6), INTENT(IN):: HPROGRAM ! program calling 00087 ! 00088 !* 0.2 Declarations of local variables 00089 ! ------------------------------- 00090 ! 00091 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00092 CHARACTER(LEN=12) :: YREC ! Name of the article to be read 00093 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00094 ! 00095 !------------------------------------------------------------------------------- 00096 ! 00097 !* surface energy budget 00098 ! 00099 IF (LHOOK) CALL DR_HOOK('DIAG_MISC_TEB_INIT_N',0,ZHOOK_HANDLE) 00100 ! 00101 !* miscellaneous fields 00102 ! 00103 IF (LSURF_MISC_BUDGET) THEN 00104 ALLOCATE(XQF_BLD (KLU)) 00105 ALLOCATE(XFLX_BLD (KLU)) 00106 ALLOCATE(XQF_TOWN (KLU)) 00107 ALLOCATE(XDQS_TOWN (KLU)) 00108 ALLOCATE(XRN_ROAD (KLU)) 00109 ALLOCATE(XH_ROAD (KLU)) 00110 ALLOCATE(XLE_ROAD (KLU)) 00111 ALLOCATE(XGFLUX_ROAD (KLU)) 00112 ALLOCATE(XRN_WALL_A (KLU)) 00113 ALLOCATE(XH_WALL_A (KLU)) 00114 ALLOCATE(XGFLUX_WALL_A (KLU)) 00115 ALLOCATE(XRN_WALL_B (KLU)) 00116 ALLOCATE(XH_WALL_B (KLU)) 00117 ALLOCATE(XGFLUX_WALL_B (KLU)) 00118 ALLOCATE(XRN_ROOF (KLU)) 00119 ALLOCATE(XH_ROOF (KLU)) 00120 ALLOCATE(XLE_ROOF (KLU)) 00121 ALLOCATE(XGFLUX_ROOF (KLU)) 00122 ALLOCATE(XRN_GARDEN (KLU)) 00123 ALLOCATE(XH_GARDEN (KLU)) 00124 ALLOCATE(XLE_GARDEN (KLU)) 00125 ALLOCATE(XGFLUX_GARDEN (KLU)) 00126 ALLOCATE(XRN_BLT (KLU)) 00127 ALLOCATE(XH_BLT (KLU)) 00128 ALLOCATE(XLE_BLT (KLU)) 00129 ALLOCATE(XGFLUX_BLT (KLU)) 00130 ALLOCATE(XRN_STRLROOF (KLU)) 00131 ALLOCATE(XH_STRLROOF (KLU)) 00132 ALLOCATE(XLE_STRLROOF (KLU)) 00133 ALLOCATE(XGFLUX_STRLROOF (KLU)) 00134 ALLOCATE(XRN_GREENROOF (KLU)) 00135 ALLOCATE(XH_GREENROOF (KLU)) 00136 ALLOCATE(XLE_GREENROOF (KLU)) 00137 ALLOCATE(XGFLUX_GREENROOF (KLU)) 00138 ALLOCATE(XG_GREENROOF_ROOF (KLU)) 00139 ALLOCATE(XRUNOFF_GREENROOF (KLU)) 00140 ALLOCATE(XDRAIN_GREENROOF (KLU)) 00141 ! 00142 ALLOCATE(XABS_SW_ROOF (KLU)) 00143 ALLOCATE(XABS_SW_SNOW_ROOF (KLU)) 00144 ALLOCATE(XABS_LW_ROOF (KLU)) 00145 ALLOCATE(XABS_LW_SNOW_ROOF (KLU)) 00146 ALLOCATE(XABS_SW_ROAD (KLU)) 00147 ALLOCATE(XABS_SW_SNOW_ROAD (KLU)) 00148 ALLOCATE(XABS_LW_ROAD (KLU)) 00149 ALLOCATE(XABS_LW_SNOW_ROAD (KLU)) 00150 ALLOCATE(XABS_SW_WALL_A (KLU)) 00151 ALLOCATE(XABS_SW_WALL_B (KLU)) 00152 ALLOCATE(XABS_LW_WALL_A (KLU)) 00153 ALLOCATE(XABS_LW_WALL_B (KLU)) 00154 ALLOCATE(XABS_SW_GARDEN (KLU)) 00155 ALLOCATE(XABS_LW_GARDEN (KLU)) 00156 ALLOCATE(XABS_SW_GREENROOF (KLU)) 00157 ALLOCATE(XABS_LW_GREENROOF (KLU)) 00158 ! 00159 ALLOCATE(XREF_SW_FAC (KLU)) 00160 ALLOCATE(XREF_SW_GRND (KLU)) 00161 ! 00162 ALLOCATE(XEMIT_LW_FAC (KLU)) 00163 ALLOCATE(XEMIT_LW_GRND (KLU)) 00164 ! 00165 IF (CBEM=='BEM') THEN 00166 ALLOCATE(XH_BLD_COOL (KLU)) 00167 ALLOCATE(XT_BLD_COOL (KLU)) 00168 ALLOCATE(XH_BLD_HEAT (KLU)) 00169 ALLOCATE(XLE_BLD_COOL (KLU)) 00170 ALLOCATE(XLE_BLD_HEAT (KLU)) 00171 ALLOCATE(XH_WASTE (KLU)) 00172 ALLOCATE(XLE_WASTE (KLU)) 00173 ALLOCATE(XHVAC_COOL (KLU)) 00174 ALLOCATE(XHVAC_HEAT (KLU)) 00175 ALLOCATE(XCAP_SYS (KLU)) 00176 ALLOCATE(XM_SYS (KLU)) 00177 ALLOCATE(XCOP (KLU)) 00178 ALLOCATE(XQ_SYS (KLU)) 00179 ALLOCATE(XT_SYS (KLU)) 00180 ALLOCATE(XTR_SW_WIN (KLU)) 00181 ALLOCATE(XFAN_POWER (KLU)) 00182 ALLOCATE(XT_RAD_IND (KLU)) 00183 ALLOCATE(XHU_BLD (KLU)) 00184 ALLOCATE(XABS_SW_WIN (KLU)) 00185 ALLOCATE(XABS_LW_WIN (KLU)) 00186 ENDIF 00187 ! 00188 XQF_BLD = XUNDEF 00189 XFLX_BLD = XUNDEF 00190 XQF_TOWN = XUNDEF 00191 XDQS_TOWN = XUNDEF 00192 XRN_ROAD = XUNDEF 00193 XH_ROAD = XUNDEF 00194 XLE_ROAD = XUNDEF 00195 XGFLUX_ROAD = XUNDEF 00196 XRN_WALL_A = XUNDEF 00197 XH_WALL_A = XUNDEF 00198 XGFLUX_WALL_A = XUNDEF 00199 XRN_WALL_B = XUNDEF 00200 XH_WALL_B = XUNDEF 00201 XGFLUX_WALL_B = XUNDEF 00202 XRN_ROOF = XUNDEF 00203 XH_ROOF = XUNDEF 00204 XLE_ROOF = XUNDEF 00205 XGFLUX_ROOF = XUNDEF 00206 XRN_GARDEN = XUNDEF 00207 XH_GARDEN = XUNDEF 00208 XLE_GARDEN = XUNDEF 00209 XGFLUX_GARDEN = XUNDEF 00210 XRN_BLT = XUNDEF 00211 XH_BLT = XUNDEF 00212 XLE_BLT = XUNDEF 00213 XGFLUX_BLT = XUNDEF 00214 XRN_STRLROOF = XUNDEF 00215 XH_STRLROOF = XUNDEF 00216 XLE_STRLROOF = XUNDEF 00217 XGFLUX_STRLROOF = XUNDEF 00218 XRN_GREENROOF = XUNDEF 00219 XH_GREENROOF = XUNDEF 00220 XLE_GREENROOF = XUNDEF 00221 XGFLUX_GREENROOF = XUNDEF 00222 XG_GREENROOF_ROOF = XUNDEF 00223 XRUNOFF_GREENROOF = XUNDEF 00224 XDRAIN_GREENROOF = XUNDEF 00225 ! 00226 XABS_SW_ROOF = XUNDEF 00227 XABS_SW_SNOW_ROOF = XUNDEF 00228 XABS_LW_ROOF = XUNDEF 00229 XABS_LW_SNOW_ROOF = XUNDEF 00230 XABS_SW_ROAD = XUNDEF 00231 XABS_SW_SNOW_ROAD = XUNDEF 00232 XABS_LW_ROAD = XUNDEF 00233 XABS_LW_SNOW_ROAD = XUNDEF 00234 XABS_SW_WALL_A = XUNDEF 00235 XABS_SW_WALL_B = XUNDEF 00236 XABS_LW_WALL_A = XUNDEF 00237 XABS_LW_WALL_B = XUNDEF 00238 XABS_SW_GARDEN = XUNDEF 00239 XABS_LW_GARDEN = XUNDEF 00240 XABS_SW_GREENROOF = XUNDEF 00241 XABS_LW_GREENROOF = XUNDEF 00242 ! 00243 XREF_SW_FAC = XUNDEF 00244 XREF_SW_GRND = XUNDEF 00245 ! 00246 XEMIT_LW_FAC = XUNDEF 00247 XEMIT_LW_GRND = XUNDEF 00248 ! 00249 IF (CBEM=='BEM') THEN 00250 XH_BLD_COOL = XUNDEF 00251 XT_BLD_COOL = XUNDEF 00252 XH_BLD_HEAT = XUNDEF 00253 XLE_BLD_COOL = XUNDEF 00254 XLE_BLD_HEAT = XUNDEF 00255 XH_WASTE = XUNDEF 00256 XLE_WASTE = XUNDEF 00257 XHVAC_COOL = XUNDEF 00258 XHVAC_HEAT = XUNDEF 00259 XCAP_SYS = XUNDEF 00260 XM_SYS = XUNDEF 00261 XCOP = XUNDEF 00262 XQ_SYS = XUNDEF 00263 XT_SYS = XUNDEF 00264 XTR_SW_WIN = XUNDEF 00265 XFAN_POWER = XUNDEF 00266 XT_RAD_IND = XUNDEF 00267 XHU_BLD = XUNDEF 00268 XABS_SW_WIN = XUNDEF 00269 XABS_LW_WIN = XUNDEF 00270 ENDIF 00271 ! 00272 ENDIF 00273 ! 00274 IF (LHOOK) CALL DR_HOOK('DIAG_MISC_TEB_INIT_N',1,ZHOOK_HANDLE) 00275 ! 00276 !------------------------------------------------------------------------------- 00277 ! 00278 END SUBROUTINE DIAG_MISC_TEB_INIT_n