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