SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/update_data_fracn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE UPDATE_DATA_FRAC_n(PDATA_NATURE,PDATA_TOWN,PDATA_GARDEN,OGARDEN, &
00003                                     PDATA_BLD, PDATA_WALL_O_HOR                   )
00004 !     #########################
00005 !
00006 !!**** *INI_DATA_FRAC* takes into account gardens into natural vegetation
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!    METHOD
00012 !!    ------
00013 !!
00014 !!
00015 !!    EXTERNAL
00016 !!    --------
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!
00027 !!    V. Masson        Meteo-France
00028 !!
00029 !!    MODIFICATION
00030 !!    ------------
00031 !!
00032 !!    Original    09/2011
00033 !----------------------------------------------------------------------------
00034 !
00035 !*    0.     DECLARATION
00036 !            -----------
00037 !
00038 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
00039 USE MODD_DATA_COVER_n, ONLY : XDATA_NATURE, XDATA_TOWN, XDATA_GARDEN, &
00040                               XDATA_BLD, XDATA_WALL_O_HOR, LGARDEN
00041 !
00042 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00043 USE PARKIND1  ,ONLY : JPRB
00044 !
00045 IMPLICIT NONE
00046 !
00047 !*    0.1    Declaration of arguments
00048 !            ------------------------
00049 !
00050 REAL, DIMENSION(:), INTENT(IN)  :: PDATA_NATURE
00051 REAL, DIMENSION(:), INTENT(IN)  :: PDATA_TOWN
00052 REAL, DIMENSION(:), INTENT(IN)  :: PDATA_GARDEN
00053 LOGICAL,            INTENT(IN)  :: OGARDEN
00054 REAL, DIMENSION(:), INTENT(IN)  :: PDATA_BLD
00055 REAL, DIMENSION(:), INTENT(IN)  :: PDATA_WALL_O_HOR
00056 !
00057 !
00058 !*    0.2    Declaration of local variables
00059 !            ------------------------------
00060 !
00061 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00062 !
00063 !-------------------------------------------------------------------------------
00064 IF (LHOOK) CALL DR_HOOK('UPDATE_DATA_FRAC_n',0,ZHOOK_HANDLE)
00065 
00066 IF (ASSOCIATED(XDATA_NATURE)) THEN
00067   IF (LHOOK) CALL DR_HOOK('UPDATE_DATA_FRAC_n',1,ZHOOK_HANDLE)
00068   RETURN
00069 END IF
00070 !
00071 LGARDEN = OGARDEN
00072 ALLOCATE(XDATA_NATURE    (JPCOVER))
00073 ALLOCATE(XDATA_TOWN      (JPCOVER))
00074 ALLOCATE(XDATA_GARDEN    (JPCOVER))
00075 ALLOCATE(XDATA_BLD       (JPCOVER))
00076 ALLOCATE(XDATA_WALL_O_HOR(JPCOVER))
00077 !
00078 XDATA_NATURE     = PDATA_NATURE
00079 XDATA_TOWN       = PDATA_TOWN
00080 XDATA_GARDEN     = PDATA_GARDEN
00081 XDATA_BLD        = PDATA_BLD
00082 XDATA_WALL_O_HOR = PDATA_WALL_O_HOR
00083 !
00084 IF (.NOT. OGARDEN) THEN
00085   XDATA_NATURE     = PDATA_NATURE + PDATA_GARDEN * PDATA_TOWN
00086   XDATA_TOWN       = PDATA_TOWN   * ( 1. - PDATA_GARDEN)
00087   XDATA_GARDEN     = 0.
00088   XDATA_BLD        = PDATA_BLD / (1. - PDATA_GARDEN)
00089   XDATA_WALL_O_HOR = PDATA_WALL_O_HOR / (1. - PDATA_GARDEN)
00090 END IF
00091 
00092 
00093 IF (LHOOK) CALL DR_HOOK('UPDATE_DATA_FRAC_n',1,ZHOOK_HANDLE)
00094 !-------------------------------------------------------------------------------
00095 
00096 END SUBROUTINE UPDATE_DATA_FRAC_n