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