SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/init_from_data_greenroofn.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE INIT_FROM_DATA_GREENROOF_n(KDECADE, HPHOTO,                              &
00003                                             POM_GR, PSAND_GR, PCLAY_GR, PVEG,             &
00004                                             PLAI,PRSMIN,PGAMMA,PWRMAX_CF,                 &
00005                                             PRGL,PCV,PDG,PD_ICE,PZ0,PZ0_O_Z0H,            &
00006                                             PALBNIR_VEG,PALBVIS_VEG,PALBUV_VEG,           &
00007                                             PEMIS,                                        &
00008                                             PVEGTYPE,PROOTFRAC,                           &
00009                                             PGMES,PBSLAI,PLAIMIN,PSEFOLD,PGC,             &
00010                                             PDMAX, PF2I, OSTRESS,                         &
00011                                             PH_TREE, PRE25,                               &
00012                                             PCE_NITRO, PCF_NITRO, PCNA_NITRO,             &
00013                                             PALBNIR_SOIL,PALBVIS_SOIL,PALBUV_SOIL         )  
00014 !     ##############################################################
00015 !
00016 !!**** *CONVERT_COVER* convert surface cover classes into secondary 
00017 !!                     physiographic variables for ISBA
00018 !!
00019 !!    PURPOSE
00020 !!    -------
00021 !!
00022 !!    METHOD
00023 !!    ------
00024 !!   
00025 !!    EXTERNAL
00026 !!    --------
00027 !!
00028 !!    IMPLICIT ARGUMENTS
00029 !!    ------------------
00030 !!
00031 !!    REFERENCE
00032 !!    ---------
00033 !!    Based on init_from_data_grdnn
00034 !!    
00035 !!    AUTHOR
00036 !!    ------
00037 !!
00038 !!    C. de Munck & A. Lemonsu        Meteo-France
00039 !!
00040 !!    MODIFICATION
00041 !!    ------------
00042 !!
00043 !!    Original   08/2011
00044 !----------------------------------------------------------------------------
00045 !
00046 !*    0.     DECLARATION
00047 !            -----------
00048 !
00049 USE MODD_TEB_GREENROOF_n,      ONLY :NTIME_GR
00050 USE MODD_DATA_TEB_GREENROOF_n, ONLY :XPAR_OM_GR,                          &
00051                                      XPAR_SAND_GR, XPAR_CLAY_GR,          &
00052                                      XPAR_LAI, XPAR_H_TREE, XPAR_VEGTYPE, &
00053                                      XPAR_VEG, XPAR_Z0, XPAR_Z0_O_Z0H,    &
00054                                      XPAR_EMIS, XPAR_GAMMA, XPAR_CV,      &
00055                                      XPAR_RGL, XPAR_RSMIN, XPAR_DG,       &
00056                                      XPAR_ALBNIR_VEG, XPAR_ALBVIS_VEG,    &
00057                                      XPAR_ALBUV_VEG, XPAR_DICE,           &
00058                                      XPAR_ALBNIR_SOIL, XPAR_ALBVIS_SOIL,  &
00059                                      XPAR_ALBUV_SOIL,                     &
00060                                      XPAR_GMES, XPAR_BSLAI, XPAR_LAIMIN,  &
00061                                      XPAR_SEFOLD, XPAR_GC, XPAR_WRMAX_CF, &
00062                                      XPAR_ROOTFRAC, LDATA_STRESS,         &
00063                                      XPAR_DMAX, XPAR_F2I, XPAR_RE25,      &
00064                                      XPAR_CE_NITRO, XPAR_CF_NITRO,        &
00065                                      XPAR_CNA_NITRO  
00066 
00067 !
00068 !
00069 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00070 USE PARKIND1  ,ONLY : JPRB
00071 !
00072 IMPLICIT NONE
00073 !
00074 !*    0.1    Declaration of arguments
00075 !            ------------------------
00076 !
00077 INTEGER,                INTENT(IN)    :: KDECADE
00078  CHARACTER(LEN=*),       INTENT(IN)    :: HPHOTO  ! type of photosynthesis
00079 !
00080 REAL, DIMENSION(:,:),   OPTIONAL, INTENT(OUT)   :: PSAND_GR
00081 REAL, DIMENSION(:,:),   OPTIONAL, INTENT(OUT)   :: PCLAY_GR
00082 REAL, DIMENSION(:,:),   OPTIONAL, INTENT(OUT)   :: POM_GR
00083 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PVEG
00084 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PLAI
00085 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PRSMIN
00086 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PGAMMA
00087 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PWRMAX_CF
00088 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PRGL
00089 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PCV
00090 REAL, DIMENSION(:,:),   OPTIONAL, INTENT(OUT)   :: PDG
00091 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PD_ICE
00092 REAL, DIMENSION(:,:),   OPTIONAL, INTENT(OUT)   :: PROOTFRAC
00093 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PZ0
00094 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PZ0_O_Z0H
00095 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PALBNIR_VEG
00096 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PALBVIS_VEG
00097 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PALBUV_VEG
00098 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PEMIS
00099 !
00100 REAL, DIMENSION(:,:),   OPTIONAL, INTENT(OUT)   :: PVEGTYPE
00101 !
00102 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PGMES
00103 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PRE25
00104 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PBSLAI
00105 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PLAIMIN
00106 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PSEFOLD
00107 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PGC
00108 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PDMAX
00109 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PF2I
00110 LOGICAL, DIMENSION(:),  OPTIONAL, INTENT(OUT)   :: OSTRESS
00111 !
00112 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PH_TREE
00113 !
00114 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PCE_NITRO
00115 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PCF_NITRO
00116 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PCNA_NITRO
00117 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PALBNIR_SOIL
00118 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PALBVIS_SOIL
00119 REAL, DIMENSION(:),     OPTIONAL, INTENT(OUT)   :: PALBUV_SOIL
00120 !
00121 !*    0.2    Declaration of local variables
00122 !            ------------------------------
00123 !
00124 INTEGER :: ITIME
00125 INTEGER :: ILUOUT
00126 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00127 !
00128 !-------------------------------------------------------------------------------
00129 !
00130 !*    1.      TIME INITIALIZATION
00131 !             -------------------
00132 !
00133 ! data every month
00134 IF (LHOOK) CALL DR_HOOK('INIT_FROM_DATA_GREENROOF_N',0,ZHOOK_HANDLE)
00135 !ITIME = (KDECADE+2)/3      
00136 ITIME = NTIME_GR
00137 !
00138 !*    2.      SECONDARY VARIABLES
00139 !             -------------------
00140 !
00141 !*    2.0     fields for greenroofs
00142 !             ---------------------
00143 !
00144 IF (PRESENT(POM_GR))   POM_GR(:,:)   = XPAR_OM_GR(:,:)
00145 !
00146 IF (PRESENT(PSAND_GR)) PSAND_GR(:,:) = XPAR_SAND_GR(:,:)
00147 !
00148 IF (PRESENT(PCLAY_GR)) PCLAY_GR(:,:) = XPAR_CLAY_GR(:,:)
00149 !
00150 !
00151 !*    2.1     fields on natural surfaces only, taking into account patches/ 
00152 !             -------------------------------
00153 !
00154 IF (PRESENT(PVEGTYPE)) PVEGTYPE = XPAR_VEGTYPE
00155 !
00156 ! vegetation fraction
00157 ! -------------------
00158 !
00159 IF (PRESENT(PVEG)) PVEG(:) =  XPAR_VEG (:,ITIME)
00160 !
00161 ! Leaf Area Index
00162 ! ---------------
00163 !
00164 IF (PRESENT(PLAI)) PLAI(:) = XPAR_LAI (:,ITIME)
00165 !
00166 ! roughness length
00167 ! ----------------
00168 !
00169 IF (PRESENT(PZ0)) PZ0(:) =  XPAR_Z0 (:,ITIME)
00170 !
00171 IF (PRESENT(PZ0_O_Z0H)) PZ0_O_Z0H = XPAR_Z0_O_Z0H
00172 !
00173 !
00174 !emis-eco
00175 !--------
00176 !
00177 IF (PRESENT(PEMIS)) PEMIS(:) =  XPAR_EMIS (:,ITIME)
00178 ! 
00179 !---------------------------------------------------------------------------------
00180 ! 
00181 !* 1/Rsmin
00182 !
00183 IF (PRESENT(PRSMIN)) THEN
00184   IF (SIZE(PRSMIN)>0) PRSMIN = XPAR_RSMIN
00185 END IF
00186 !
00187 !* other vegetation parameters
00188 !
00189 IF (PRESENT(PGAMMA)) PGAMMA = XPAR_GAMMA
00190 IF (PRESENT(PWRMAX_CF)) PWRMAX_CF = XPAR_WRMAX_CF
00191 !
00192 !
00193 IF (PRESENT(PRGL)) PRGL = XPAR_RGL
00194 IF (PRESENT(PCV)) PCV = XPAR_CV
00195 !
00196 !---------------------------------------------------------------------------------
00197 !
00198 !* soil layers
00199 !  -----------
00200 !
00201 IF (PRESENT(PDG)) PDG = XPAR_DG
00202 !
00203 !* cumulative root fraction
00204 !
00205 IF (PRESENT(PROOTFRAC)) PROOTFRAC = XPAR_ROOTFRAC
00206 !
00207 !* soil ice for runoff
00208 !
00209 IF (PRESENT(PD_ICE)) PD_ICE = XPAR_DICE
00210 !
00211 !---------------------------------------------------------------------------------
00212 IF (PRESENT(PALBNIR_VEG))   PALBNIR_VEG = XPAR_ALBNIR_VEG
00213 IF (PRESENT(PALBVIS_VEG))   PALBVIS_VEG = XPAR_ALBVIS_VEG
00214 IF (PRESENT(PALBUV_VEG))    PALBUV_VEG  = XPAR_ALBUV_VEG
00215 
00216 IF (PRESENT(PALBNIR_SOIL))  PALBNIR_SOIL(:) = XPAR_ALBNIR_SOIL
00217 IF (PRESENT(PALBVIS_SOIL))  PALBVIS_SOIL(:) = XPAR_ALBVIS_SOIL
00218 IF (PRESENT(PALBUV_SOIL))   PALBUV_SOIL (:) = XPAR_ALBUV_SOIL
00219 
00220 IF (PRESENT(PGMES)) THEN
00221   IF (SIZE(PGMES)>0) PGMES = XPAR_GMES
00222 END IF
00223 
00224 IF (PRESENT(PBSLAI)) THEN
00225   IF (SIZE(PBSLAI)>0) PBSLAI = XPAR_BSLAI
00226 END IF
00227 
00228 IF (PRESENT(PSEFOLD)) THEN
00229   IF (SIZE(PSEFOLD)>0) PSEFOLD = XPAR_SEFOLD
00230 END IF
00231 
00232 IF (PRESENT(PGC)) THEN
00233   IF (SIZE(PGC)>0) PGC = XPAR_GC
00234 END IF
00235 
00236 IF (PRESENT(PDMAX)) THEN
00237   IF (SIZE(PDMAX)>0) PDMAX = XPAR_DMAX
00238 END IF
00239 
00240 IF (PRESENT(PRE25)) THEN
00241   IF (SIZE(PRE25)>0) PRE25 = XPAR_RE25
00242 END IF
00243 
00244 IF (PRESENT(PLAIMIN)) THEN
00245   IF (SIZE(PLAIMIN)>0) PLAIMIN = XPAR_LAIMIN
00246 END IF
00247 
00248 IF (PRESENT(PCE_NITRO)) THEN
00249   IF (SIZE(PCE_NITRO)>0) PCE_NITRO = XPAR_CE_NITRO
00250 END IF
00251 
00252 IF (PRESENT(PCF_NITRO)) THEN
00253   IF (SIZE(PCF_NITRO)>0) PCF_NITRO = XPAR_CF_NITRO
00254 END IF
00255 
00256 IF (PRESENT(PCNA_NITRO)) THEN
00257   IF (SIZE(PCNA_NITRO)>0) PCNA_NITRO = XPAR_CNA_NITRO
00258 END IF
00259 
00260 IF (PRESENT(PF2I)) THEN
00261   IF (SIZE(PF2I)>0) PF2I = XPAR_F2I
00262 END IF
00263 !
00264 IF (PRESENT(OSTRESS)) THEN
00265   IF (SIZE(OSTRESS)>0) OSTRESS = LDATA_STRESS
00266 END IF
00267 IF (LHOOK) CALL DR_HOOK('INIT_FROM_DATA_GREENROOF_N',1,ZHOOK_HANDLE)
00268 !
00269 !-------------------------------------------------------------------------------
00270 !
00271 END SUBROUTINE INIT_FROM_DATA_GREENROOF_n