SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/arrange_cover.F90
Go to the documentation of this file.
00001 !     #########################
00002       SUBROUTINE ARRANGE_COVER
00003 !     #########################
00004 !
00005 !!**** *ARRANGE_COVER*
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!    change water and intertidal (not lake) to nature and/or town to rock : arrange cover properly
00011 !!
00012 !!    METHOD
00013 !!    ------
00014 !!
00015 !!
00016 !!    EXTERNAL
00017 !!    --------
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------
00021 !!
00022 !!    REFERENCE
00023 !!    ---------
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!
00028 !!    B. Decharme        Meteo-France
00029 !!
00030 !!    MODIFICATION
00031 !!    ------------
00032 !!
00033 !!    Original    03/2009
00034 !----------------------------------------------------------------------------
00035 !
00036 !*    0.     DECLARATION
00037 !            -----------
00038 !
00039 USE MODD_SURF_PAR,       ONLY : XUNDEF
00040 !
00041 USE MODD_SURF_ATM_n,     ONLY : LWATER_TO_NATURE, LTOWN_TO_ROCK
00042 !
00043 USE MODD_DATA_COVER,     ONLY : XDATA_TOWN, XDATA_NATURE, XDATA_WATER, XDATA_SEA, &
00044                                 XDATA_ROOT_DEPTH, XDATA_GROUND_DEPTH, XDATA_DICE, &
00045                                 XDATA_VEGTYPE, XDATA_LAI, XDATA_LAI_ALL_YEARS,    &
00046                                 XDATA_GARDEN, XDATA_ALB_VEG_NIR, XDATA_ALB_VEG_VIS, &
00047                                 XDATA_ALB_SOIL_NIR, XDATA_ALB_SOIL_VIS   
00048 !
00049 USE MODD_DATA_COVER_PAR, ONLY : NVEGTYPE, JPCOVER, NROCK, NWATER, NVT_ROCK
00050 !
00051 !
00052 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00053 USE PARKIND1  ,ONLY : JPRB
00054 !
00055 IMPLICIT NONE
00056 !
00057 !*    0.1    Declaration of arguments
00058 !            ------------------------
00059 !
00060 !*    0.2    Declaration of local variables
00061 !            ------------------------------
00062 !
00063 REAL     :: ZWORK
00064 !
00065 INTEGER  :: JCOVER, JVEGTYPE, JL
00066 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00067 !
00068 !-------------------------------------------------------------------------------
00069 ! Change water (not lake) to nature
00070 !-------------------------------------------------------------------------------
00071 !
00072 IF (LHOOK) CALL DR_HOOK('ARRANGE_COVER',0,ZHOOK_HANDLE)
00073 IF(LWATER_TO_NATURE)THEN
00074   DO JCOVER=1,JPCOVER
00075      IF(JCOVER/=NWATER(1).AND.JCOVER/=NWATER(2).AND.JCOVER/=NWATER(3).AND.XDATA_WATER(JCOVER)>0.0)THEN
00076        XDATA_NATURE(JCOVER)=XDATA_NATURE(JCOVER)+XDATA_WATER(JCOVER)
00077        XDATA_WATER (JCOVER)=0.0
00078      ENDIF
00079      !Only cover 242
00080      IF(XDATA_SEA(JCOVER)>0.0.AND.XDATA_SEA(JCOVER)<1.0)THEN
00081            XDATA_NATURE(JCOVER)=XDATA_NATURE(JCOVER)+XDATA_SEA(JCOVER)
00082            XDATA_SEA(JCOVER)=0.0
00083      ENDIF
00084   ENDDO
00085 ENDIF
00086 !
00087 !-------------------------------------------------------------------------------
00088 ! Change town to rock but keep other natural fraction
00089 !-------------------------------------------------------------------------------
00090 !
00091 IF(LTOWN_TO_ROCK)THEN
00092 !        
00093   DO JCOVER=1,JPCOVER
00094      IF(XDATA_TOWN(JCOVER)>0.0.OR.XDATA_GARDEN(JCOVER)>0.0)THEN
00095 !
00096        XDATA_NATURE(JCOVER) = XDATA_NATURE(JCOVER) + XDATA_GARDEN(JCOVER) * XDATA_TOWN(JCOVER)
00097        XDATA_TOWN  (JCOVER) = XDATA_TOWN  (JCOVER) * ( 1. - XDATA_GARDEN(JCOVER))
00098        XDATA_GARDEN(JCOVER) = 0.0
00099 !
00100        ZWORK=XDATA_NATURE(JCOVER)+XDATA_TOWN(JCOVER)
00101 !       
00102        DO JVEGTYPE=1,NVEGTYPE
00103              XDATA_VEGTYPE(JCOVER,JVEGTYPE)=XDATA_VEGTYPE(JCOVER,JVEGTYPE)*XDATA_NATURE(JCOVER)/ZWORK
00104        ENDDO
00105 !      
00106        XDATA_VEGTYPE(JCOVER,NVT_ROCK) = XDATA_VEGTYPE(JCOVER,NVT_ROCK)+XDATA_TOWN(JCOVER)/ZWORK
00107 !
00108        XDATA_NATURE(JCOVER)=XDATA_NATURE(JCOVER)+XDATA_TOWN(JCOVER)
00109 !       
00110        XDATA_TOWN  (JCOVER)=0.0
00111 !
00112 !      Initialise some variables
00113        XDATA_LAI          (JCOVER,:,NVT_ROCK) = 0.0
00114        XDATA_LAI_ALL_YEARS(JCOVER,:,NVT_ROCK) = 0.0
00115        XDATA_ROOT_DEPTH   (JCOVER,  NVT_ROCK) = 0.2
00116        XDATA_GROUND_DEPTH (JCOVER,  NVT_ROCK) = 0.2
00117        XDATA_DICE         (JCOVER,  NVT_ROCK) = 0.2
00118        XDATA_ALB_VEG_NIR  (JCOVER,:,NVT_ROCK) = 0.3
00119        XDATA_ALB_VEG_VIS  (JCOVER,:,NVT_ROCK) = 0.1
00120        XDATA_ALB_SOIL_NIR (JCOVER,:,NVT_ROCK) = 0.3
00121        XDATA_ALB_SOIL_VIS (JCOVER,:,NVT_ROCK) = 0.1
00122 !
00123      ENDIF
00124   ENDDO
00125 !
00126 ENDIF        
00127 IF (LHOOK) CALL DR_HOOK('ARRANGE_COVER',1,ZHOOK_HANDLE)
00128 !
00129 !-------------------------------------------------------------------------------
00130 !
00131 END SUBROUTINE ARRANGE_COVER