|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PGD_TEB_GREENROOF_PAR(HPROGRAM) 00003 ! ############################################################## 00004 ! 00005 !!**** *PGD_TEB_GREENROOF_PAR* monitor for averaging and interpolations of cover fractions 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 !! A. Lemonsu Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 09/2009 00032 !! A. Lemonsu / C. de Munck 04/2011 : TEB GreenRoof 00033 !! 00034 !---------------------------------------------------------------------------- 00035 ! 00036 !* 0. DECLARATION 00037 ! ----------- 00038 ! 00039 USE MODD_DATA_COVER_PAR, ONLY : NVEGTYPE 00040 USE MODD_SURF_PAR, ONLY : XUNDEF 00041 USE MODD_TEB_GRID_n, ONLY : NDIM 00042 USE MODD_TEB_n, ONLY : LECOCLIMAP 00043 USE MODD_TEB_GREENROOF_n, ONLY : NLAYER_GR, NTIME_GR, CTYP_GR 00044 USE MODD_TEB_VEG, ONLY : NLAYER_GR_MAX, NTIME_GR_MAX 00045 USE MODD_DATA_TEB_GREENROOF_n, ONLY : XPAR_OM_GR, XPAR_CLAY_GR, XPAR_SAND_GR, XPAR_LAI_GR 00046 ! 00047 USE MODD_PGDWORK, ONLY : CATYPE 00048 ! 00049 USE MODI_READ_NAM_PGD_TEB_GREENROOF 00050 USE MODI_PGD_FIELD 00051 USE MODI_TEST_NAM_VAR_SURF 00052 ! 00053 USE MODE_POS_SURF 00054 ! 00055 ! 00056 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00057 USE PARKIND1 ,ONLY : JPRB 00058 ! 00059 IMPLICIT NONE 00060 ! 00061 !* 0.1 Declaration of arguments 00062 ! ------------------------ 00063 ! 00064 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00065 ! 00066 ! 00067 !* 0.2 Declaration of local variables 00068 ! ------------------------------ 00069 ! 00070 INTEGER :: ILUOUT ! output listing logical unit 00071 INTEGER :: ILUNAM ! namelist file logical unit 00072 LOGICAL :: GFOUND ! true if namelist is found 00073 ! 00074 INTEGER :: JLAYER ! loop counter on layers 00075 INTEGER :: JLAYER_GR ! loop counter on green roof layers 00076 INTEGER :: JTIME ! loop counter on time 00077 INTEGER :: JPATCH ! loop counter on patch 00078 INTEGER :: JVEGTYPE ! loop counter on vegtypes 00079 ! 00080 ! 00081 INTEGER, PARAMETER :: JPGROUND_MAX = 20 00082 INTEGER, PARAMETER :: JPVEGTYPE_MAX = 12 00083 ! 00084 ! declaration of namelist variables 00085 INTEGER :: ILAYER_GR ! number of green roof physical layers 00086 INTEGER :: ITIME_GR ! ntime for green roof parameters 00087 CHARACTER(LEN=5) :: YTYP_GR ! type of green roof 00088 ! 00089 ! uniform value 00090 ! 00091 REAL,DIMENSION(NLAYER_GR_MAX) :: ZUNIF_OM_GR ! fraction of organic matter (OM) in green roof layer 00092 REAL,DIMENSION(NLAYER_GR_MAX) :: ZUNIF_CLAY_GR ! fraction of clay for the non-OM part of the green roof layer 00093 REAL,DIMENSION(NLAYER_GR_MAX) :: ZUNIF_SAND_GR ! fraction of sand for the non-OM part of the green roof layer 00094 REAL,DIMENSION(NTIME_GR_MAX) :: ZUNIF_LAI_GR ! LAI of green roof vegetation 00095 ! 00096 ! name of files containing data 00097 ! 00098 CHARACTER(LEN=28),DIMENSION(NLAYER_GR_MAX) :: YFNAM_OM_GR ! fraction of organic matter (OM) in green roof layer 00099 CHARACTER(LEN=28),DIMENSION(NLAYER_GR_MAX) :: YFNAM_CLAY_GR ! fraction of clay for the non-OM part of the green roof layer 00100 CHARACTER(LEN=28),DIMENSION(NLAYER_GR_MAX) :: YFNAM_SAND_GR ! fraction of sand for the non-OM part of the green roof layer 00101 CHARACTER(LEN=28),DIMENSION(NTIME_GR_MAX) :: YFNAM_LAI_GR ! LAI of green roof 00102 ! 00103 ! type of files containing data 00104 ! 00105 CHARACTER(LEN=6 ),DIMENSION(NLAYER_GR_MAX) :: YFTYP_OM_GR ! fraction of organic matter (OM) in green roof layer 00106 CHARACTER(LEN=6 ),DIMENSION(NLAYER_GR_MAX) :: YFTYP_CLAY_GR ! fraction of clay for the non-OM part of the green roof layer 00107 CHARACTER(LEN=6 ),DIMENSION(NLAYER_GR_MAX) :: YFTYP_SAND_GR ! fraction of sand for the non-OM part of the green roof layer 00108 CHARACTER(LEN=6 ),DIMENSION(NTIME_GR_MAX) :: YFTYP_LAI_GR ! LAI of green roof 00109 ! 00110 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00111 !------------------------------------------------------------------------------- 00112 ! 00113 !* 1. Initializations 00114 ! --------------- 00115 ! 00116 IF (LHOOK) CALL DR_HOOK('PGD_TEB_GREENROOF_PAR',0,ZHOOK_HANDLE) 00117 ! 00118 ILAYER_GR = 0 00119 ITIME_GR = 0 00120 YTYP_GR = ' ' 00121 ! 00122 ZUNIF_OM_GR = XUNDEF 00123 ZUNIF_CLAY_GR = XUNDEF 00124 ZUNIF_SAND_GR = XUNDEF 00125 ZUNIF_LAI_GR = XUNDEF 00126 ! 00127 YFNAM_OM_GR = ' ' 00128 YFNAM_CLAY_GR = ' ' 00129 YFNAM_SAND_GR = ' ' 00130 YFNAM_LAI_GR = ' ' 00131 ! 00132 YFTYP_OM_GR = ' ' 00133 YFTYP_CLAY_GR = ' ' 00134 YFTYP_SAND_GR = ' ' 00135 YFTYP_LAI_GR = ' ' 00136 ! 00137 !------------------------------------------------------------------------------- 00138 ! 00139 !* 2. Input files for green roof characteristics 00140 ! ------------------------------------------- 00141 ! 00142 CALL READ_NAM_PGD_TEB_GREENROOF(HPROGRAM, ITIME_GR,ILAYER_GR,YTYP_GR, & 00143 ZUNIF_OM_GR, ZUNIF_CLAY_GR, ZUNIF_SAND_GR, ZUNIF_LAI_GR, & 00144 YFNAM_OM_GR, YFNAM_CLAY_GR, YFNAM_SAND_GR, YFNAM_LAI_GR, & 00145 YFTYP_OM_GR, YFTYP_CLAY_GR, YFTYP_SAND_GR, YFTYP_LAI_GR) 00146 ! 00147 NTIME_GR = ITIME_GR 00148 NLAYER_GR = ILAYER_GR 00149 CTYP_GR = YTYP_GR 00150 ! 00151 !* Coherence of options for the green roof type 00152 ! ------------------------------------------- 00153 ! 00154 CALL TEST_NAM_VAR_SURF(ILUOUT,'CTYP_GR',CTYP_GR,'GRASS','SEDUM') 00155 ! 00156 ! 00157 ALLOCATE(XPAR_OM_GR (NDIM,NLAYER_GR)) 00158 ALLOCATE(XPAR_CLAY_GR (NDIM,NLAYER_GR)) 00159 ALLOCATE(XPAR_SAND_GR (NDIM,NLAYER_GR)) 00160 ALLOCATE(XPAR_LAI_GR (NDIM,NTIME_GR )) 00161 ! 00162 !------------------------------------------------------------------------------- 00163 ! 00164 !* 3.2 Uniform fields are prescribed 00165 ! ----------------------------- 00166 ! 00167 CATYPE = 'ARI' 00168 ! 00169 ! 00170 DO JLAYER_GR=1,NLAYER_GR 00171 CALL PGD_FIELD(HPROGRAM,'OM_GR: fraction of OM in GR layer','BLD',YFNAM_OM_GR(JLAYER_GR), & 00172 YFTYP_OM_GR(JLAYER_GR), ZUNIF_OM_GR(JLAYER_GR), XPAR_OM_GR(:,JLAYER_GR)) 00173 ENDDO 00174 ! 00175 DO JLAYER_GR=1,NLAYER_GR 00176 CALL PGD_FIELD(HPROGRAM,'CLAY_GR: fraction of CLAY in the non-OM part of GR layer','BLD',YFNAM_CLAY_GR(JLAYER_GR), & 00177 YFTYP_CLAY_GR(JLAYER_GR), ZUNIF_CLAY_GR(JLAYER_GR), XPAR_CLAY_GR(:,JLAYER_GR)) 00178 ENDDO 00179 ! 00180 DO JLAYER_GR=1,NLAYER_GR 00181 CALL PGD_FIELD(HPROGRAM,'SAND_GR: fraction of SAND in the non-OM part of GR layer','BLD',YFNAM_SAND_GR(JLAYER_GR), & 00182 YFTYP_SAND_GR(JLAYER_GR), ZUNIF_SAND_GR(JLAYER_GR), XPAR_SAND_GR(:,JLAYER_GR)) 00183 ENDDO 00184 ! 00185 DO JTIME=1,NTIME_GR 00186 CALL PGD_FIELD(HPROGRAM,'LAI_GR: LAI of green roof','BLD',YFNAM_LAI_GR(JTIME), & 00187 YFTYP_LAI_GR(JTIME),ZUNIF_LAI_GR(JTIME),XPAR_LAI_GR(:,JTIME)) 00188 ! 00189 ENDDO 00190 ! 00191 ! 00192 IF (LHOOK) CALL DR_HOOK('PGD_TEB_GREENROOF_PAR',1,ZHOOK_HANDLE) 00193 ! 00194 !------------------------------------------------------------------------------- 00195 ! 00196 END SUBROUTINE PGD_TEB_GREENROOF_PAR
1.8.0