|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PGD_TEB(HPROGRAM,OECOCLIMAP,OGARDEN) 00003 ! ############################################################## 00004 ! 00005 !!**** *PGD_TEB* monitor for averaging and interpolations of TEB physiographic fields 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 ! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! V. Masson Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 10/12/97 00032 !! A. Lemonsu 05/2009 Key for garden option 00033 !! G. Pigeon /09/12: WALL, ROOF, FLOOR, MASS LAYER default to 5 00034 !! 00035 !---------------------------------------------------------------------------- 00036 ! 00037 !* 0. DECLARATION 00038 ! ----------- 00039 ! 00040 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER 00041 USE MODD_TEB_n, ONLY : XCOVER, LCOVER, XZS, & 00042 NROAD_LAYER, NWALL_LAYER, NROOF_LAYER, & 00043 LECOCLIMAP, LGARDEN, NTEB_PATCH, & 00044 CBLD_ATYPE, CBEM, LGREENROOF, LHYDRO 00045 USE MODD_BEM_n, ONLY : NFLOOR_LAYER, CCOOL_COIL, CHEAT_COIL, LAUTOSIZE 00046 USE MODD_TEB_GRID_n, ONLY : CGRID, XGRID_PAR, XLAT, XLON, XMESH_SIZE, NDIM 00047 ! 00048 USE MODI_GET_SURF_SIZE_n 00049 USE MODI_PACK_PGD 00050 USE MODI_PGD_TEB_PAR 00051 USE MODI_PGD_TEB_VEG 00052 USE MODI_GET_LUOUT 00053 USE MODI_READ_NAM_PGD_TEB 00054 USE MODI_TEST_NAM_VAR_SURF 00055 USE MODI_PGD_BEM_PAR 00056 USE MODI_ABOR1_SFX 00057 ! 00058 ! 00059 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00060 USE PARKIND1 ,ONLY : JPRB 00061 ! 00062 USE MODI_WRITE_COVER_TEX_TEB 00063 ! 00064 IMPLICIT NONE 00065 ! 00066 !* 0.1 Declaration of arguments 00067 ! ------------------------ 00068 ! 00069 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00070 LOGICAL, INTENT(IN) :: OECOCLIMAP ! T if parameters are computed with ecoclimap 00071 ! ! F if all parameters must be specified 00072 LOGICAL, INTENT(IN) :: OGARDEN ! T if urban green areas 00073 ! 00074 ! 00075 !* 0.2 Declaration of local variables 00076 ! ------------------------------ 00077 ! 00078 INTEGER :: ILUOUT ! output listing logical unit 00079 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00080 ! 00081 !------------------------------------------------------------------------------- 00082 ! 00083 !* 1. Initializations of defaults 00084 ! --------------------------- 00085 ! 00086 IF (LHOOK) CALL DR_HOOK('PGD_TEB',0,ZHOOK_HANDLE) 00087 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00088 00089 NROOF_LAYER = 5 00090 NROAD_LAYER = 5 00091 NWALL_LAYER = 5 00092 NFLOOR_LAYER = 5 00093 ! 00094 !------------------------------------------------------------------------------- 00095 ! 00096 !* 2. Reading of namelist 00097 ! ------------------- 00098 ! 00099 CALL READ_NAM_PGD_TEB(HPROGRAM,NTEB_PATCH,CBEM,CCOOL_COIL,CHEAT_COIL,LAUTOSIZE,& 00100 NROAD_LAYER,NROOF_LAYER,NWALL_LAYER,NFLOOR_LAYER, & 00101 LGREENROOF,LHYDRO ) 00102 ! 00103 !------------------------------------------------------------------------------- 00104 ! 00105 !* 3. Coherence of options 00106 ! -------------------- 00107 ! 00108 CALL TEST_NAM_VAR_SURF(ILUOUT,'CBLD',CBEM,'DEF','BEM ') 00109 CALL TEST_NAM_VAR_SURF(ILUOUT,'CCOOL_COIL',CCOOL_COIL,'IDEAL ','DXCOIL') 00110 CALL TEST_NAM_VAR_SURF(ILUOUT,'CHEAT_COIL',CHEAT_COIL,'IDEAL ','FINCAP') 00111 ! 00112 IF (.NOT. OGARDEN) THEN 00113 IF (LGREENROOF) CALL ABOR1_SFX('ERROR: You cannot activate LGREENROOF if LGARDEN is FALSE') 00114 IF (LHYDRO ) CALL ABOR1_SFX('ERROR: You cannot activate LHYDRO if LGARDEN is FALSE') 00115 ENDIF 00116 ! 00117 !------------------------------------------------------------------------------- 00118 ! 00119 !* 4. Number of points and packing 00120 ! ---------------------------- 00121 ! 00122 CALL GET_SURF_SIZE_n('TOWN ',NDIM) 00123 ! 00124 ALLOCATE(LCOVER (JPCOVER)) 00125 ALLOCATE(XCOVER (NDIM,JPCOVER)) 00126 ALLOCATE(XZS (NDIM)) 00127 ALLOCATE(XLAT (NDIM)) 00128 ALLOCATE(XLON (NDIM)) 00129 ALLOCATE(XMESH_SIZE (NDIM)) 00130 ! 00131 CALL PACK_PGD(HPROGRAM, 'TOWN ', & 00132 CGRID, XGRID_PAR, & 00133 LCOVER, XCOVER, XZS, & 00134 XLAT, XLON, XMESH_SIZE ) 00135 ! 00136 !------------------------------------------------------------------------------- 00137 ! 00138 !* 5. TEB specific fields 00139 ! ------------------- 00140 ! 00141 LECOCLIMAP = OECOCLIMAP 00142 CALL PGD_TEB_PAR(HPROGRAM,OGARDEN,LGREENROOF,CBLD_ATYPE) 00143 ! 00144 !------------------------------------------------------------------------------- 00145 ! 00146 !* 6. Prints of cover parameters in a tex file 00147 ! ---------------------------------------- 00148 ! 00149 IF (OECOCLIMAP) CALL WRITE_COVER_TEX_TEB 00150 ! 00151 ! 00152 !------------------------------------------------------------------------------- 00153 ! 00154 !* 7. Case of urban green areas (and hydrology) 00155 ! ----------------------------------------- 00156 ! 00157 LGARDEN = OGARDEN 00158 ! 00159 IF (LGARDEN) CALL PGD_TEB_VEG(HPROGRAM) 00160 ! 00161 !------------------------------------------------------------------------------- 00162 ! 00163 !* 8. Case of Building Energy Model 00164 ! ----------------------------- 00165 ! 00166 IF (CBEM .EQ. 'BEM') CALL PGD_BEM_PAR(HPROGRAM,LAUTOSIZE) 00167 ! 00168 IF (LHOOK) CALL DR_HOOK('PGD_TEB',1,ZHOOK_HANDLE) 00169 ! 00170 !------------------------------------------------------------------------------- 00171 ! 00172 END SUBROUTINE PGD_TEB
1.8.0