SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE INIT_FROM_DATA_GRDN_n(KDECADE, HPHOTO, & 00003 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 !! 00034 !! AUTHOR 00035 !! ------ 00036 !! 00037 !! V. Masson Meteo-France 00038 !! 00039 !! MODIFICATION 00040 !! ------------ 00041 !! 00042 !! Original 01/2004 00043 ! 00044 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan 00045 !---------------------------------------------------------------------------- 00046 ! 00047 !* 0. DECLARATION 00048 ! ----------- 00049 ! 00050 USE MODD_DATA_TEB_GARDEN_n, ONLY : XDATA_LAI, XDATA_H_TREE, XDATA_VEGTYPE, & 00051 XDATA_VEG, XDATA_Z0, XDATA_Z0_O_Z0H, & 00052 XDATA_EMIS, XDATA_GAMMA, XDATA_CV, & 00053 XDATA_RGL, XDATA_RSMIN, XDATA_DG, & 00054 XDATA_ALBNIR_VEG, XDATA_ALBVIS_VEG, & 00055 XDATA_ALBUV_VEG, XDATA_DICE, & 00056 XDATA_ALBNIR_SOIL, XDATA_ALBVIS_SOIL, & 00057 XDATA_ALBUV_SOIL, & 00058 XDATA_GMES, XDATA_BSLAI, XDATA_LAIMIN, & 00059 XDATA_SEFOLD, XDATA_GC, XDATA_WRMAX_CF, & 00060 XDATA_ROOTFRAC, LDATA_STRESS, & 00061 XDATA_DMAX, XDATA_F2I, XDATA_RE25, & 00062 XDATA_CE_NITRO, XDATA_CF_NITRO, & 00063 XDATA_CNA_NITRO 00064 00065 ! 00066 ! 00067 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00068 USE PARKIND1 ,ONLY : JPRB 00069 ! 00070 IMPLICIT NONE 00071 ! 00072 !* 0.1 Declaration of arguments 00073 ! ------------------------ 00074 ! 00075 INTEGER, INTENT(IN) :: KDECADE 00076 CHARACTER(LEN=*), INTENT(IN) :: HPHOTO ! type of photosynthesis 00077 ! 00078 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PVEG 00079 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PLAI 00080 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PRSMIN 00081 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PGAMMA 00082 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PWRMAX_CF 00083 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PRGL 00084 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PCV 00085 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PDG 00086 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PD_ICE 00087 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PROOTFRAC 00088 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PZ0 00089 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PZ0_O_Z0H 00090 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PALBNIR_VEG 00091 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PALBVIS_VEG 00092 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PALBUV_VEG 00093 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PEMIS 00094 ! 00095 REAL, DIMENSION(:,:), OPTIONAL, INTENT(OUT) :: PVEGTYPE 00096 ! 00097 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PGMES 00098 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PRE25 00099 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PBSLAI 00100 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PLAIMIN 00101 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PSEFOLD 00102 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PGC 00103 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PDMAX 00104 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PF2I 00105 LOGICAL, DIMENSION(:),OPTIONAL, INTENT(OUT) :: OSTRESS 00106 ! 00107 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PH_TREE 00108 ! 00109 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PCE_NITRO 00110 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PCF_NITRO 00111 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PCNA_NITRO 00112 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PALBNIR_SOIL 00113 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PALBVIS_SOIL 00114 REAL, DIMENSION(:), OPTIONAL, INTENT(OUT) :: PALBUV_SOIL 00115 ! 00116 !* 0.2 Declaration of local variables 00117 ! ------------------------------ 00118 ! 00119 INTEGER :: ITIME 00120 INTEGER :: ILUOUT 00121 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00122 !------------------------------------------------------------------------------- 00123 ! 00124 !* 1. TIME INITIALIZATION 00125 ! ------------------- 00126 ! 00127 ! data every month 00128 IF (LHOOK) CALL DR_HOOK('INIT_FROM_DATA_GRDN_N',0,ZHOOK_HANDLE) 00129 ITIME = (KDECADE+2)/3 00130 ! 00131 !* 2. SECONDARY VARIABLES 00132 ! ------------------- 00133 ! 00134 !* 2.1 fields on natural surfaces only, taking into account patches/ 00135 ! ------------------------------- 00136 ! 00137 ! 00138 IF (PRESENT(PH_TREE)) THEN 00139 IF (SIZE(PH_TREE)>0) PH_TREE = XDATA_H_TREE 00140 ENDIF 00141 ! 00142 IF (PRESENT(PVEGTYPE)) PVEGTYPE = XDATA_VEGTYPE 00143 ! 00144 ! vegetation fraction 00145 ! ------------------- 00146 ! 00147 IF (PRESENT(PVEG)) PVEG(:) = XDATA_VEG (:,ITIME) 00148 ! 00149 ! Leaf Aera Index 00150 ! --------------- 00151 ! 00152 IF (PRESENT(PLAI)) PLAI(:) = XDATA_LAI (:,ITIME) 00153 ! 00154 ! roughness length 00155 ! ---------------- 00156 ! 00157 IF (PRESENT(PZ0)) PZ0(:) = XDATA_Z0 (:,ITIME) 00158 ! 00159 IF (PRESENT(PZ0_O_Z0H)) PZ0_O_Z0H = XDATA_Z0_O_Z0H 00160 ! 00161 ! 00162 !emis-eco 00163 !-------- 00164 ! 00165 IF (PRESENT(PEMIS)) PEMIS(:) = XDATA_EMIS (:,ITIME) 00166 ! 00167 !--------------------------------------------------------------------------------- 00168 ! 00169 !* 1/Rsmin 00170 ! 00171 IF (PRESENT(PRSMIN)) THEN 00172 IF (SIZE(PRSMIN)>0) PRSMIN = XDATA_RSMIN 00173 END IF 00174 ! 00175 !* other vegetation parameters 00176 ! 00177 IF (PRESENT(PGAMMA)) PGAMMA = XDATA_GAMMA 00178 IF (PRESENT(PWRMAX_CF)) PWRMAX_CF = XDATA_WRMAX_CF 00179 ! 00180 ! 00181 IF (PRESENT(PRGL)) PRGL = XDATA_RGL 00182 IF (PRESENT(PCV)) PCV = XDATA_CV 00183 ! 00184 !--------------------------------------------------------------------------------- 00185 ! 00186 !* soil layers 00187 ! ----------- 00188 ! 00189 IF (PRESENT(PDG)) PDG = XDATA_DG 00190 ! 00191 !* cumulative root fraction 00192 ! 00193 IF (PRESENT(PROOTFRAC)) THEN 00194 IF (SIZE(PROOTFRAC)>0) PROOTFRAC = XDATA_ROOTFRAC 00195 ENDIF 00196 ! 00197 !* soil ice for runoff 00198 ! 00199 IF (PRESENT(PD_ICE)) PD_ICE = XDATA_DICE 00200 ! 00201 !--------------------------------------------------------------------------------- 00202 IF (PRESENT(PALBNIR_VEG)) PALBNIR_VEG = XDATA_ALBNIR_VEG 00203 IF (PRESENT(PALBVIS_VEG)) PALBVIS_VEG = XDATA_ALBVIS_VEG 00204 IF (PRESENT(PALBUV_VEG)) PALBUV_VEG = XDATA_ALBUV_VEG 00205 00206 IF (PRESENT(PALBNIR_SOIL)) PALBNIR_SOIL(:) = XDATA_ALBNIR_SOIL 00207 IF (PRESENT(PALBVIS_SOIL)) PALBVIS_SOIL(:) = XDATA_ALBVIS_SOIL 00208 IF (PRESENT(PALBUV_SOIL)) PALBUV_SOIL(:) = XDATA_ALBUV_SOIL 00209 00210 IF (PRESENT(PGMES)) THEN 00211 IF (SIZE(PGMES)>0) PGMES = XDATA_GMES 00212 END IF 00213 00214 IF (PRESENT(PBSLAI)) THEN 00215 IF (SIZE(PBSLAI)>0) PBSLAI = XDATA_BSLAI 00216 END IF 00217 00218 IF (PRESENT(PSEFOLD)) THEN 00219 IF (SIZE(PSEFOLD)>0) PSEFOLD = XDATA_SEFOLD 00220 END IF 00221 00222 IF (PRESENT(PGC)) THEN 00223 IF (SIZE(PGC)>0) PGC = XDATA_GC 00224 END IF 00225 00226 IF (PRESENT(PDMAX)) THEN 00227 IF (SIZE(PDMAX)>0) PDMAX = XDATA_DMAX 00228 END IF 00229 00230 IF (PRESENT(PRE25)) THEN 00231 IF (SIZE(PRE25)>0) PRE25 = XDATA_RE25 00232 END IF 00233 00234 IF (PRESENT(PLAIMIN)) THEN 00235 IF (SIZE(PLAIMIN)>0) PLAIMIN = XDATA_LAIMIN 00236 END IF 00237 00238 IF (PRESENT(PCE_NITRO)) THEN 00239 IF (SIZE(PCE_NITRO)>0) PCE_NITRO = XDATA_CE_NITRO 00240 END IF 00241 00242 IF (PRESENT(PCF_NITRO)) THEN 00243 IF (SIZE(PCF_NITRO)>0) PCF_NITRO = XDATA_CF_NITRO 00244 END IF 00245 00246 IF (PRESENT(PCNA_NITRO)) THEN 00247 IF (SIZE(PCNA_NITRO)>0) PCNA_NITRO = XDATA_CNA_NITRO 00248 END IF 00249 00250 IF (PRESENT(PF2I)) THEN 00251 IF (SIZE(PF2I)>0) PF2I = XDATA_F2I 00252 END IF 00253 ! 00254 IF (PRESENT(OSTRESS)) THEN 00255 IF (SIZE(OSTRESS)>0) OSTRESS = LDATA_STRESS 00256 END IF 00257 IF (LHOOK) CALL DR_HOOK('INIT_FROM_DATA_GRDN_N',1,ZHOOK_HANDLE) 00258 ! 00259 !------------------------------------------------------------------------------- 00260 ! 00261 END SUBROUTINE INIT_FROM_DATA_GRDN_n