SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_teb_greenroofn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_TEB_GREENROOF_n(HPROGRAM,HPATCH)
00003 !     ##################################
00004 !
00005 !!****  *READ_TEB_GREENROOF_n* - routine to initialise ISBA variables
00006 !!                         
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!**  METHOD
00012 !!    ------
00013 !!
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!    based on read_teb_greenroofn
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!      C. de Munck & A. Lemonsu *Meteo France* 
00028 !!
00029 !!    MODIFICATIONS
00030 !!    -------------
00031 !!      Original    07/2011
00032 !-------------------------------------------------------------------------------
00033 !
00034 !*       0.    DECLARATIONS
00035 !              ------------
00036 !
00037 !
00038 USE MODD_CO2V_PAR,          ONLY : XANFMINIT, XCONDCTMIN
00039 USE MODD_TEB_VEG_n,         ONLY : CPHOTO, CRESPSL, NNBIOMASS
00040 USE MODD_TEB_GREENROOF_n,   ONLY : NLAYER_GR,                          &
00041                                    XTG, XWG, XWGI, XWR, XLAI, TSNOW,   &
00042                                    XRESA, XANFM, XAN, XLE, XANDAY,     &
00043                                    XBSLAI, XBIOMASS, XRESP_BIOMASS
00044 !                                
00045 USE MODD_SURF_PAR,          ONLY : XUNDEF
00046 USE MODD_SNOW_PAR,          ONLY : XZ0SN
00047 !
00048 USE MODI_READ_SURF
00049 !
00050 USE MODI_READ_GR_SNOW
00051 !
00052 !
00053 !
00054 !
00055 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00056 USE PARKIND1  ,ONLY : JPRB
00057 !
00058 USE MODI_GET_TYPE_DIM_n
00059 !
00060 IMPLICIT NONE
00061 !
00062 !*       0.1   Declarations of arguments
00063 !              -------------------------
00064 !
00065  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! calling program
00066  CHARACTER(LEN=3),  INTENT(IN)  :: HPATCH   ! current TEB patch identificator
00067 !
00068 !*       0.2   Declarations of local variables
00069 !              -------------------------------
00070 INTEGER           :: ILU                             ! 1D physical dimension
00071 INTEGER           :: IRESP                           ! Error code after redding
00072 INTEGER           :: IWORK                           ! Work integer
00073 INTEGER           :: JLAYER, JNBIOMASS               ! loop counter on layers
00074  CHARACTER(LEN=30) :: YRECFM                          ! Name of the article to be read
00075  CHARACTER(LEN=4)  :: YLVL
00076 REAL, DIMENSION(:),ALLOCATABLE  :: ZWORK             ! 2D array to write data in file
00077 !
00078 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00079 !
00080 !-------------------------------------------------------------------------------
00081 !
00082 !
00083 !* 1D physical dimension
00084 !
00085 IF (LHOOK) CALL DR_HOOK('READ_TEB_GREENROOF_N',0,ZHOOK_HANDLE)
00086 YRECFM='SIZE_TOWN'
00087  CALL GET_TYPE_DIM_n('TOWN  ',ILU)
00088 !
00089 !
00090 !*       2.     Prognostic fields:
00091 !               -----------------
00092 !
00093 ALLOCATE(ZWORK(ILU))
00094 !
00095 !* soil temperatures
00096 !
00097 IWORK = NLAYER_GR
00098 !
00099 DO JLAYER=1,IWORK
00100   WRITE(YLVL,'(I2)') JLAYER
00101   YRECFM=HPATCH//'GR_TG'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00102   YRECFM=ADJUSTL(YRECFM)
00103   CALL READ_SURF(HPROGRAM,YRECFM,ZWORK(:),IRESP)
00104   XTG(:,JLAYER) = ZWORK
00105 END DO
00106 !
00107 !
00108 !* soil liquid water content
00109 !
00110 DO JLAYER=1,NLAYER_GR
00111   WRITE(YLVL,'(I2)') JLAYER
00112   YRECFM=HPATCH//'GR_WG'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00113   YRECFM=ADJUSTL(YRECFM)
00114   CALL READ_SURF(HPROGRAM,YRECFM,ZWORK(:),IRESP)
00115   XWG(:,JLAYER) = ZWORK
00116 END DO
00117 !
00118 !* soil ice water content
00119 !
00120 DO JLAYER=1,NLAYER_GR
00121   WRITE(YLVL,'(I2)') JLAYER
00122   YRECFM=HPATCH//'GR_WGI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00123   YRECFM=ADJUSTL(YRECFM)
00124   CALL READ_SURF(HPROGRAM,YRECFM,ZWORK(:),IRESP)
00125   XWGI(:,JLAYER) = ZWORK
00126 END DO
00127 !
00128 !* water intercepted on leaves
00129 !
00130 YRECFM=HPATCH//'GR_WR'
00131 YRECFM=ADJUSTL(YRECFM)
00132  CALL READ_SURF(HPROGRAM,YRECFM,XWR(:),IRESP)
00133 !
00134 !* Leaf Area Index
00135 !
00136 IF (CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN
00137   YRECFM = HPATCH//'GR_LAI'
00138   YRECFM=ADJUSTL(YRECFM)
00139   CALL READ_SURF(HPROGRAM,YRECFM,XLAI(:),IRESP)
00140 END IF
00141 !
00142 !* snow mantel
00143 !
00144  CALL READ_GR_SNOW(HPROGRAM,'GR',HPATCH,ILU,1,TSNOW  )! GROO:GreenROOf 
00145 !
00146 !-------------------------------------------------------------------------------
00147 !
00148 !*       4.  Semi-prognostic variables
00149 !            -------------------------
00150 !
00151 !* aerodynamical resistance
00152 !
00153 YRECFM = HPATCH//'GR_RESA'
00154 YRECFM=ADJUSTL(YRECFM)
00155 XRESA(:) = 100.
00156  CALL READ_SURF(HPROGRAM,YRECFM,XRESA(:),IRESP)
00157 !
00158 XLE(:) = XUNDEF
00159 !
00160 !* ISBA-AGS variables
00161 !
00162 IF (CPHOTO/='NON') THEN
00163   XAN(:)    = 0.
00164   XANDAY(:) = 0.
00165   XANFM(:)  = XANFMINIT
00166   XLE(:)    = 0.
00167 END IF
00168 !
00169 IF (CPHOTO=='AGS' .OR. CPHOTO=='AST') THEN
00170   XBIOMASS(:,:)      = 0.
00171   XRESP_BIOMASS(:,:) = 0.
00172 ELSEIF (CPHOTO=='LAI' .OR. CPHOTO=='LST') THEN
00173   XBIOMASS(:,1)      = XBSLAI(:) * XLAI(:)
00174   XRESP_BIOMASS(:,:) = 0.
00175 ELSEIF (CPHOTO=='NIT') THEN
00176   XBIOMASS(:,:) = 0.
00177   DO JNBIOMASS=1,NNBIOMASS
00178     WRITE(YLVL,'(I1)') JNBIOMASS
00179     YRECFM=HPATCH//'GR_BIOMA'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00180     CALL READ_SURF(HPROGRAM,YRECFM,XBIOMASS(:,JNBIOMASS),IRESP)
00181   END DO
00182 
00183   XRESP_BIOMASS(:,:) = 0.
00184   DO JNBIOMASS=2,NNBIOMASS
00185     WRITE(YLVL,'(I1)') JNBIOMASS
00186     YRECFM=HPATCH//'GR_RESPI'//ADJUSTL(YLVL(:LEN_TRIM(YLVL)))
00187     CALL READ_SURF(HPROGRAM,YRECFM,XRESP_BIOMASS(:,JNBIOMASS),IRESP)
00188   END DO
00189 ENDIF
00190 !
00191 !
00192 DEALLOCATE(ZWORK)
00193 IF (LHOOK) CALL DR_HOOK('READ_TEB_GREENROOF_N',1,ZHOOK_HANDLE)
00194 !
00195 !-------------------------------------------------------------------------------
00196 !
00197 END SUBROUTINE READ_TEB_GREENROOF_n