|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITESURF_PGD_TEB_n(HPROGRAM) 00003 ! ############################################### 00004 ! 00005 !!**** *WRITE_PGD_TEB_n* - writes TEB fields 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/2003 00031 !! B. Decharme 07/2011 : delete argument HWRITE 00032 !------------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATIONS 00035 ! ------------ 00036 ! 00037 ! 00038 USE MODD_TEB_n, ONLY : CBEM, NROOF_LAYER, NROAD_LAYER, NWALL_LAYER, & 00039 XZS, XCOVER, LCOVER, LECOCLIMAP, LGARDEN, & 00040 LGREENROOF, LHYDRO, & 00041 NTEB_PATCH, CBLD_ATYPE 00042 USE MODD_BEM_n, ONLY : NFLOOR_LAYER, CCOOL_COIL, CHEAT_COIL, LAUTOSIZE 00043 USE MODD_TEB_GRID_n, ONLY : XLAT, XLON, XMESH_SIZE, CGRID, XGRID_PAR 00044 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER 00045 USE MODD_TEB_VEG_n, ONLY : CISBA, CPEDOTF, CPHOTO, LTR_ML 00046 ! 00047 USE MODI_WRITE_SURF 00048 USE MODI_WRITE_GRID 00049 ! 00050 ! 00051 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00052 USE PARKIND1 ,ONLY : JPRB 00053 ! 00054 USE MODI_WRITESURF_PGD_TEB_PAR_n 00055 USE MODI_WRITESURF_PGD_TEB_VEG_n 00056 USE MODI_WRITESURF_PGD_TEB_GREENROOF_n 00057 ! 00058 IMPLICIT NONE 00059 ! 00060 !* 0.1 Declarations of arguments 00061 ! ------------------------- 00062 ! 00063 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling 00064 ! 00065 !* 0.2 Declarations of local variables 00066 ! ------------------------------- 00067 ! 00068 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00069 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00070 CHARACTER(LEN=100):: YCOMMENT ! Comment string 00071 ! 00072 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00073 ! 00074 !------------------------------------------------------------------------------- 00075 IF (LHOOK) CALL DR_HOOK('WRITESURF_PGD_TEB_N',0,ZHOOK_HANDLE) 00076 ! 00077 !* 1. Dimension initializations: 00078 ! ------------------------- 00079 ! 00080 ! 00081 !* number of TEB patches 00082 ! 00083 YRECFM='TEB_PATCH' 00084 YCOMMENT=YRECFM 00085 CALL WRITE_SURF(HPROGRAM,YRECFM,NTEB_PATCH,IRESP,HCOMMENT=YCOMMENT) 00086 ! 00087 ! 00088 !* number of roof layers 00089 ! 00090 YRECFM='ROOF_LAYER' 00091 YCOMMENT=YRECFM 00092 CALL WRITE_SURF(HPROGRAM,YRECFM,NROOF_LAYER,IRESP,HCOMMENT=YCOMMENT) 00093 ! 00094 !* number of road layers 00095 ! 00096 YRECFM='ROAD_LAYER' 00097 YCOMMENT=YRECFM 00098 CALL WRITE_SURF(HPROGRAM,YRECFM,NROAD_LAYER,IRESP,HCOMMENT=YCOMMENT) 00099 ! 00100 !* number of wall layers 00101 ! 00102 YRECFM='WALL_LAYER' 00103 YCOMMENT=YRECFM 00104 CALL WRITE_SURF(HPROGRAM,YRECFM,NWALL_LAYER,IRESP,HCOMMENT=YCOMMENT) 00105 ! 00106 !* flag indicating if fields are computed from ecoclimap or not 00107 ! 00108 YRECFM='ECOCLIMAP' 00109 YCOMMENT=YRECFM 00110 CALL WRITE_SURF(HPROGRAM,YRECFM,LECOCLIMAP,IRESP,HCOMMENT=YCOMMENT) 00111 ! 00112 ! 00113 !* Type of Building Energy Model 00114 ! 00115 YRECFM='BEM' 00116 YCOMMENT=YRECFM 00117 CALL WRITE_SURF(HPROGRAM,YRECFM,CBEM,IRESP,HCOMMENT=YCOMMENT) 00118 ! 00119 IF (CBEM=='BEM') THEN 00120 YRECFM='COOL_COIL' 00121 YCOMMENT=YRECFM 00122 CALL WRITE_SURF(HPROGRAM,YRECFM,CCOOL_COIL,IRESP,HCOMMENT=YCOMMENT) 00123 ! 00124 YRECFM='HEAT_COIL' 00125 YCOMMENT=YRECFM 00126 CALL WRITE_SURF(HPROGRAM,YRECFM,CHEAT_COIL,IRESP,HCOMMENT=YCOMMENT) 00127 ! 00128 YRECFM='AUTOSIZE' 00129 YCOMMENT=YRECFM 00130 CALL WRITE_SURF(HPROGRAM,YRECFM,LAUTOSIZE,IRESP,HCOMMENT=YCOMMENT) 00131 END IF 00132 ! 00133 !* Type of averaging of buildings characteristics 00134 ! 00135 YRECFM='BLD_ATYPE' 00136 YCOMMENT=YRECFM 00137 CALL WRITE_SURF(HPROGRAM,YRECFM,CBLD_ATYPE,IRESP,HCOMMENT=YCOMMENT) 00138 ! 00139 ! 00140 ! 00141 !* number of floor layers 00142 ! 00143 IF (CBEM=="BEM") THEN 00144 YRECFM='FLOOR_LAYER' 00145 YCOMMENT=YRECFM 00146 CALL WRITE_SURF(HPROGRAM,YRECFM,NFLOOR_LAYER,IRESP,HCOMMENT=YCOMMENT) 00147 ENDIF 00148 ! 00149 !------------------------------------------------------------------------------ 00150 ! 00151 ! * ISBA fields for urban green areas 00152 ! 00153 IF (LGARDEN) THEN 00154 ! 00155 ! * Greenroofs and hydrology (only activated if LGARDEN) 00156 ! 00157 YRECFM='LGREENROOF' 00158 YCOMMENT=YRECFM 00159 CALL WRITE_SURF(HPROGRAM,YRECFM,LGREENROOF,IRESP,HCOMMENT=YCOMMENT) 00160 ! 00161 YRECFM='LHYDRO' 00162 YCOMMENT=YRECFM 00163 CALL WRITE_SURF(HPROGRAM,YRECFM,LHYDRO,IRESP,HCOMMENT=YCOMMENT) 00164 ! 00165 ! * General ISBA options for urban vegetation 00166 ! 00167 ! * Pedo-transfert function 00168 ! 00169 YRECFM='GD_PEDOTF' 00170 YCOMMENT=YRECFM 00171 CALL WRITE_SURF(HPROGRAM,YRECFM,CPEDOTF,IRESP,HCOMMENT=YCOMMENT) 00172 ! 00173 ! * type of photosynthesis 00174 ! 00175 YRECFM='GD_PHOTO' 00176 YCOMMENT=YRECFM 00177 CALL WRITE_SURF(HPROGRAM,YRECFM,CPHOTO,IRESP,HCOMMENT=YCOMMENT) 00178 ! 00179 !* new radiative transfert 00180 ! 00181 YRECFM='GD_TR_ML' 00182 YCOMMENT=YRECFM 00183 CALL WRITE_SURF(HPROGRAM,YRECFM,LTR_ML,IRESP,HCOMMENT=YCOMMENT) 00184 ! 00185 ! * ISBA fields specific to urban gardens 00186 ! 00187 CALL WRITESURF_PGD_TEB_VEG_n(HPROGRAM) 00188 ! 00189 ! * ISBA fields specific to urban greenroofs 00190 ! 00191 IF (LGREENROOF) CALL WRITESURF_PGD_TEB_GREENROOF_n(HPROGRAM) 00192 ! 00193 ENDIF 00194 ! 00195 !------------------------------------------------------------------------------ 00196 ! 00197 !* 2. Physiographic data fields: 00198 ! ------------------------- 00199 ! 00200 !* cover classes 00201 ! 00202 YRECFM='COVER_LIST' 00203 YCOMMENT='(LOGICAL LIST)' 00204 CALL WRITE_SURF(HPROGRAM,YRECFM,LCOVER(:),IRESP,HCOMMENT=YCOMMENT,HDIR='-') 00205 ! 00206 YCOMMENT='COVER FIELDS' 00207 CALL WRITE_SURF(HPROGRAM,'COVER',XCOVER(:,:),LCOVER,IRESP,HCOMMENT=YCOMMENT) 00208 ! 00209 !* orography 00210 ! 00211 YRECFM='ZS' 00212 YCOMMENT='ZS' 00213 CALL WRITE_SURF(HPROGRAM,YRECFM,XZS(:),IRESP,HCOMMENT=YCOMMENT) 00214 ! 00215 !* latitude, longitude 00216 ! 00217 CALL WRITE_GRID(HPROGRAM,CGRID,XGRID_PAR,XLAT,XLON,XMESH_SIZE,IRESP) 00218 ! 00219 !------------------------------------------------------------------------------- 00220 CALL WRITESURF_PGD_TEB_PAR_n(HPROGRAM) 00221 ! 00222 IF (LHOOK) CALL DR_HOOK('WRITESURF_PGD_TEB_N',1,ZHOOK_HANDLE) 00223 !------------------------------------------------------------------------------- 00224 ! 00225 END SUBROUTINE WRITESURF_PGD_TEB_n
1.8.0