SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE VEGETATION_UPDATE_GARDEN(TPTIME,PTSTEP,KLU) 00003 ! ########################################################################## 00004 ! 00005 !!**** *GARDEN* 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 ! 00011 !!** METHOD 00012 ! ------ 00013 ! 00014 ! 00015 !! EXTERNAL 00016 !! -------- 00017 !! 00018 !! 00019 !! IMPLICIT ARGUMENTS 00020 !! ------------------ 00021 !! 00022 !! 00023 !! REFERENCE 00024 !! --------- 00025 !! 00026 !! 00027 !! AUTHOR 00028 !! ------ 00029 !! 00030 !! A. Lemonsu * Meteo-France * 00031 !! 00032 !! MODIFICATIONS 00033 !! ------------- 00034 !! Original 05/2009 00035 !------------------------------------------------------------------------------- 00036 ! 00037 !* 0. DECLARATIONS 00038 ! ------------ 00039 ! 00040 USE MODD_TYPE_DATE_SURF, ONLY: DATE_TIME 00041 USE MODD_TEB_n, ONLY: XCOVER 00042 USE MODD_TEB_VEG_n, ONLY: CISBA, CPHOTO, CALBEDO 00043 USE MODD_TEB_GARDEN_n, ONLY: LPAR_GARDEN, LSTRESS, & 00044 XEMIS, XVEG, XLAI, XWRMAX_CF, XRSMIN, & 00045 XGAMMA, XCV, XRGL, & 00046 XZ0, & 00047 XGMES, & 00048 XBSLAI, XLAIMIN, XSEFOLD, & 00049 XF2I, XGC, & 00050 XCE_NITRO, XCF_NITRO, XCNA_NITRO, & 00051 XRE25, & 00052 XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG, & 00053 XALBNIR_SOIL, XALBVIS_SOIL, XALBUV_SOIL, & 00054 XALBNIR, XALBVIS, XALBUV, XDMAX 00055 00056 00057 00058 ! 00059 USE MODI_VEGETATION_UPDATE 00060 ! 00061 ! 00062 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00063 USE PARKIND1 ,ONLY : JPRB 00064 ! 00065 IMPLICIT NONE 00066 ! 00067 !* 0.1 Declarations of arguments 00068 ! 00069 TYPE(DATE_TIME) , INTENT(IN) :: TPTIME ! current date and time from teb 00070 REAL , INTENT(IN) :: PTSTEP ! time step 00071 INTEGER, INTENT(IN) :: KLU ! number of points 00072 ! 00073 ! 00074 !* 0.2 Declarations of local variables 00075 ! 00076 REAL, DIMENSION(KLU,1) :: ZZ0EFFIP 00077 REAL, DIMENSION(KLU,1) :: ZZ0EFFIM 00078 REAL, DIMENSION(KLU,1) :: ZZ0EFFJP 00079 REAL, DIMENSION(KLU,1) :: ZZ0EFFJM 00080 REAL, DIMENSION(KLU) :: ZAOSIP 00081 REAL, DIMENSION(KLU) :: ZAOSIM 00082 REAL, DIMENSION(KLU) :: ZAOSJP 00083 REAL, DIMENSION(KLU) :: ZAOSJM 00084 REAL, DIMENSION(KLU) :: ZHO2IP 00085 REAL, DIMENSION(KLU) :: ZHO2IM 00086 REAL, DIMENSION(KLU) :: ZHO2JP 00087 REAL, DIMENSION(KLU) :: ZHO2JM 00088 REAL, DIMENSION(KLU,1) :: ZLAI 00089 REAL, DIMENSION(KLU,1) :: ZVEG 00090 REAL, DIMENSION(KLU,1) :: ZZ0 00091 REAL, DIMENSION(KLU,1) :: ZALBNIR 00092 REAL, DIMENSION(KLU,1) :: ZALBVIS 00093 REAL, DIMENSION(KLU,1) :: ZALBUV 00094 REAL, DIMENSION(KLU,1) :: ZEMIS 00095 REAL, DIMENSION(KLU,1) :: ZRSMIN 00096 REAL, DIMENSION(KLU,1) :: ZGAMMA 00097 REAL, DIMENSION(KLU,1) :: ZWRMAX_CF 00098 REAL, DIMENSION(KLU,1) :: ZRGL 00099 REAL, DIMENSION(KLU,1) :: ZCV 00100 REAL, DIMENSION(KLU,1) :: ZGMES 00101 REAL, DIMENSION(KLU,1) :: ZBSLAI 00102 REAL, DIMENSION(KLU,1) :: ZLAIMIN 00103 REAL, DIMENSION(KLU,1) :: ZSEFOLD 00104 REAL, DIMENSION(KLU,1) :: ZGC 00105 REAL, DIMENSION(KLU,1) :: ZDMAX 00106 REAL, DIMENSION(KLU,1) :: ZF2I 00107 LOGICAL, DIMENSION(KLU,1) :: GSTRESS 00108 REAL, DIMENSION(KLU,1) :: ZALBNIR_VEG 00109 REAL, DIMENSION(KLU,1) :: ZALBVIS_VEG 00110 REAL, DIMENSION(KLU,1) :: ZALBUV_VEG 00111 REAL, DIMENSION(KLU,1) :: ZALBNIR_SOIL 00112 REAL, DIMENSION(KLU,1) :: ZALBVIS_SOIL 00113 REAL, DIMENSION(KLU,1) :: ZALBUV_SOIL 00114 REAL, DIMENSION(KLU,1) :: ZCE_NITRO 00115 REAL, DIMENSION(KLU,1) :: ZCF_NITRO 00116 REAL, DIMENSION(KLU,1) :: ZCNA_NITRO 00117 TYPE (DATE_TIME), DIMENSION(KLU,1) :: TZSEED 00118 TYPE (DATE_TIME), DIMENSION(KLU,1) :: TZREAP 00119 REAL, DIMENSION(KLU,1) :: ZWATSUP 00120 REAL, DIMENSION(KLU,1) :: ZIRRIG 00121 ! 00122 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00123 ! 00124 !------------------------------------------------------------------------------- 00125 ! 00126 !* 1. various initialisations 00127 ! ----------------------- 00128 ! 00129 IF (LHOOK) CALL DR_HOOK('VEGETATION_UPDATE_GARDEN',0,ZHOOK_HANDLE) 00130 ! 00131 !* orographic roughness not used 00132 ! 00133 ZAOSIP = 0. 00134 ZAOSIM = 0. 00135 ZAOSJP = 0. 00136 ZAOSJM = 0. 00137 ZHO2IP = 0. 00138 ZHO2IM = 0. 00139 ZHO2JP = 0. 00140 ZHO2JM = 0. 00141 ! 00142 !* vegetation parameters to update 00143 ! 00144 ZVEG(:,1) = XVEG 00145 ZZ0(:,1) = XZ0 00146 ZALBNIR(:,1) = XALBNIR 00147 ZALBVIS(:,1) = XALBVIS 00148 ZALBUV(:,1) = XALBUV 00149 ZEMIS(:,1) = XEMIS 00150 ZRSMIN(:,1) = XRSMIN 00151 ZGAMMA(:,1) = XGAMMA 00152 ZWRMAX_CF(:,1) = XWRMAX_CF 00153 ZRGL(:,1) = XRGL 00154 ZCV(:,1) = XCV 00155 ZGMES(:,1) = XGMES 00156 ZBSLAI(:,1) = XBSLAI 00157 ZLAIMIN(:,1) = XLAIMIN 00158 ZSEFOLD(:,1) = XSEFOLD 00159 ZGC(:,1) = XGC 00160 ZDMAX(:,1) = XDMAX 00161 ZF2I(:,1) = XF2I 00162 GSTRESS(:,1) = LSTRESS 00163 ZALBNIR_VEG(:,1) = XALBNIR_VEG 00164 ZALBVIS_VEG(:,1) = XALBVIS_VEG 00165 ZALBUV_VEG(:,1) = XALBUV_VEG 00166 ZALBNIR_SOIL(:,1) = XALBNIR_SOIL 00167 ZALBVIS_SOIL(:,1) = XALBVIS_SOIL 00168 ZALBUV_SOIL(:,1) = XALBUV_SOIL 00169 ZCE_NITRO(:,1) = XCE_NITRO 00170 ZCF_NITRO(:,1) = XCF_NITRO 00171 ZCNA_NITRO(:,1) = XCNA_NITRO 00172 ! -------------------------------------------------------------------------------------- 00173 ! Vegetation update (in case of non-interactive vegetation): 00174 ! -------------------------------------------------------------------------------------- 00175 ! 00176 IF (CPHOTO=='NON' .OR. CPHOTO=='AGS' .OR. CPHOTO=='AST') THEN 00177 CALL VEGETATION_UPDATE(PTSTEP,TPTIME,XCOVER, & 00178 CISBA,(.NOT. LPAR_GARDEN), CPHOTO, .FALSE.,'GRD', & 00179 ZLAI,ZVEG,ZZ0, & 00180 ZALBNIR,ZALBVIS,ZALBUV,ZEMIS, & 00181 ZRSMIN,ZGAMMA,ZWRMAX_CF, & 00182 ZRGL,ZCV, & 00183 ZGMES,ZBSLAI,ZLAIMIN,ZSEFOLD,ZGC,ZDMAX, & 00184 ZF2I, GSTRESS, & 00185 ZAOSIP,ZAOSIM,ZAOSJP,ZAOSJM, & 00186 ZHO2IP,ZHO2IM,ZHO2JP,ZHO2JM, & 00187 ZZ0EFFIP,ZZ0EFFIM,ZZ0EFFJP,ZZ0EFFJM, & 00188 CALBEDO, ZALBNIR_VEG, ZALBVIS_VEG, ZALBUV_VEG, & 00189 ZALBNIR_SOIL, ZALBVIS_SOIL, ZALBUV_SOIL, & 00190 ZCE_NITRO, ZCF_NITRO, ZCNA_NITRO, & 00191 TZSEED, TZREAP, ZWATSUP, ZIRRIG ) 00192 END IF 00193 ! 00194 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00195 XVEG = ZVEG(:,1) 00196 XZ0 = ZZ0(:,1) 00197 XALBNIR = ZALBNIR(:,1) 00198 XALBVIS = ZALBVIS(:,1) 00199 XALBUV = ZALBUV(:,1) 00200 XEMIS = ZEMIS(:,1) 00201 XRSMIN = ZRSMIN(:,1) 00202 XGAMMA = ZGAMMA(:,1) 00203 XWRMAX_CF = ZWRMAX_CF(:,1) 00204 XRGL = ZRGL(:,1) 00205 XCV = ZCV(:,1) 00206 XGMES = ZGMES(:,1) 00207 XBSLAI = ZBSLAI(:,1) 00208 XLAIMIN = ZLAIMIN(:,1) 00209 XSEFOLD = ZSEFOLD(:,1) 00210 XGC = ZGC(:,1) 00211 XDMAX = ZDMAX(:,1) 00212 XF2I = ZF2I(:,1) 00213 LSTRESS = GSTRESS(:,1) 00214 XALBNIR_VEG = ZALBNIR_VEG(:,1) 00215 XALBVIS_VEG = ZALBVIS_VEG(:,1) 00216 XALBUV_VEG = ZALBUV_VEG(:,1) 00217 XALBNIR_SOIL = ZALBNIR_SOIL(:,1) 00218 XALBVIS_SOIL = ZALBVIS_SOIL(:,1) 00219 XALBUV_SOIL = ZALBUV_SOIL(:,1) 00220 XCE_NITRO = ZCE_NITRO(:,1) 00221 XCF_NITRO = ZCF_NITRO(:,1) 00222 XCNA_NITRO = ZCNA_NITRO(:,1) 00223 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00224 ! 00225 IF (LHOOK) CALL DR_HOOK('VEGETATION_UPDATE_GARDEN',1,ZHOOK_HANDLE) 00226 ! 00227 !------------------------------------------------------------------------------- 00228 ! 00229 ! 00230 END SUBROUTINE VEGETATION_UPDATE_GARDEN