SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/writesurf_pgd_tebn.F90
Go to the documentation of this file.
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