SURFEX v7.3
General documentation of Surfex
|
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