|
SURFEX v7.3
General documentation of Surfex
|
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
1.8.0