SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PACK_ISBA_PATCH_n(KMASK,KSIZE,KPATCH) 00003 !############################################## 00004 ! 00005 ! 00006 !!**** *PACK_ISBA_PATCH_n * - packs ISBA variables 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 ! 00011 !!** METHOD 00012 !! ------ 00013 !! 00014 !! REFERENCE 00015 !! --------- 00016 !! 00017 !! 00018 !! AUTHOR 00019 !! ------ 00020 !! V. Masson and A. boone 00021 !! 00022 !! MODIFICATIONS 00023 !! ------------- 00024 !! Original 01/2004 00025 !! B. Decharme 2008 floodplains 00026 !! B. Decharme 01/2009 Good dim for XP_TG 00027 !! A.L. Gibelin 04/2009 : BIOMASS and RESP_BIOMASS arrays 00028 !! A.L. Gibelin 04/2009 : TAU_WOOD for NCB option 00029 !! A.L. Gibelin 05/2009 : Add carbon spinup 00030 !! A.L. Gibelin 06/2009 : Soil carbon variables for CNT option 00031 !! A.L. Gibelin 07/2009 : Suppress RDK and transform GPP as a diagnostic 00032 !! A.L. Gibelin 07/2009 : Suppress PPST and PPSTF as outputs 00033 !! 00034 !!------------------------------------------------------------------ 00035 ! 00036 USE MODD_DATA_COVER_PAR, ONLY : NVEGTYPE 00037 USE MODD_ISBA_n, ONLY : NGROUND_LAYER, NNBIOMASS, NNLITTER, NNSOILCARB, & 00038 NNLITTLEVS, CISBA, CPHOTO, CSCOND, CRESPSL, & 00039 LGLACIER, XZ0_O_Z0H, XEMIS, XZ0, XWRMAX_CF, XGAMMA, & 00040 XCV, XRGL, XVEGTYPE_PATCH, XDG, XRUNOFFD, XRUNOFFB, & 00041 XWDRAIN, XTAUICE, XZ0REL, XGAMMAT, NWG_LAYER, & 00042 XC1SAT, XC2REF, XC3, XC4B, XC4REF, XACOEF, XPCOEF, & 00043 XWFC, XWWILT, XWSAT, XBCOEF, XWR, XTG, XWG, & 00044 XWGI, XLAI, XRESA, XVEG, XTDEEP, TSNOW, XROOTFRAC, & 00045 XCONDSAT, XMPOTSAT, XCGSAT, XHCAPSOIL, & 00046 XCONDDRY, XCONDSLD, XRSMIN, XBSLAI, XLAIMIN, & 00047 XSEFOLD, XH_TREE, XANMAX, XFZERO, XEPSO, & 00048 XGAMM, XQDGAMM, XGMES, XRE25, XQDGMES, XT1GMES, & 00049 XT2GMES, XTAU_WOOD, LTR_ML, & 00050 XAMAX, XQDAMAX, XT1AMAX, XT2AMAX, XAN, XANFM, & 00051 XLE, LSTRESS, XF2I, XGC, XAH, XBH, XDMAX, & 00052 XANDAY, XZ0EFFIP,XZ0EFFIM,XZ0EFFJP,XZ0EFFJM, & 00053 XAOSIP,XAOSIM,XAOSJP,XAOSJM, & 00054 XHO2IP,XHO2IM,XHO2JP,XHO2JM, XSSO_SLOPE, & 00055 XALBNIR, XALBVIS, XALBUV, XFAPARC, XFAPIRC, & 00056 XALBNIR_VEG, XALBVIS_VEG, XALBUV_VEG, XLAI_EFFC, & 00057 XALBNIR_DRY, XALBVIS_DRY, XALBUV_DRY, XMUS, & 00058 XALBNIR_WET, XALBVIS_WET, XALBUV_WET, & 00059 XALBNIR_SOIL, XALBVIS_SOIL, XALBUV_SOIL, & 00060 XCLAY, XSAND, NPATCH, XBIOMASS, XRESP_BIOMASS, & 00061 XLITTER, XSOILCARB, XLIGNIN_STRUC, & 00062 XCE_NITRO,XCF_NITRO,XCNA_NITRO,XBSLAI_NITRO, & 00063 XWATSUP,XIRRIG,TSEED,TREAP, & 00064 CRAIN, XMUF, XFSAT, XKSAT_ICE, & 00065 XD_ICE, LFLOOD, XFFLOOD, XPIFLOOD, XZ0_FLOOD, & 00066 XPCPS, XPLVTT, XPLSTT, XINCREASE, XTURNOVER, & 00067 XPSN, XPSNG, XPSNV, XPSNV_A, XFF, XFFG, XFFV, XALBF, & 00068 XEMISF, XDIR_ALB_WITH_SNOW, XSCA_ALB_WITH_SNOW, & 00069 XICE_STO, XFFROZEN, XDZG, XDZDIF, XSOILWGHT 00070 00071 USE MODD_AGRI, ONLY : LAGRIP 00072 USE MODD_AGRI_n, ONLY : LIRRIDAY, XTHRESHOLDSPT, LIRRIGATE 00073 00074 USE MODD_ISBA_GRID_n, ONLY : XLAT, XLON 00075 00076 USE MODD_PACK_ISBA, ONLY : NSIZE_LSIMPLE, NSIZE_L0, NSIZE_TSIMPLE, NSIZE_T0, NSIZE_SIMPLE, & 00077 NSIZE_GROUND, NSIZE_VEGTYPE, NSIZE_TG, NSIZE_SNOW, NSIZE_ALB, & 00078 NSIZE_2, NSIZE_BIOMASS, NSIZE_SOILCARB, NSIZE_LITTLEVS, & 00079 NSIZE_LITTER, NSIZE_0, NSIZE_00, NSIZE_000, NSIZE_01, & 00080 NSIZE_NSIMPLE, NSIZE_N0, & 00081 LBLOCK_SIMPLE, LBLOCK_0, TBLOCK_SIMPLE, TBLOCK_0, XBLOCK_SIMPLE, & 00082 XBLOCK_GROUND, XBLOCK_VEGTYPE, XBLOCK_TG, XBLOCK_SNOW, XBLOCK_ALB,& 00083 XBLOCK_2, XBLOCK_BIOMASS, XBLOCK_SOILCARB, XBLOCK_LITTLEVS, & 00084 XBLOCK_LITTER, XBLOCK_0, XBLOCK_00, XBLOCK_000, XBLOCK_01, & 00085 NBLOCK_SIMPLE, NBLOCK_0, & 00086 XP_Z0_O_Z0H, XP_EMIS, XP_Z0, XP_WRMAX_CF, XP_GAMMA, & 00087 XP_CV, XP_RGL, XP_VEGTYPE_PATCH, XP_DG, XP_RUNOFFD, XP_RUNOFFB, & 00088 XP_WDRAIN, XP_TAUICE, XP_Z0REL, XP_GAMMAT, NK_WG_LAYER, & 00089 XP_C1SAT, XP_C2REF, XP_C3, XP_C4B, XP_C4REF, XP_ACOEF, XP_PCOEF, & 00090 XP_WFC, XP_WWILT, XP_WSAT, XP_BCOEF, XP_WR, XP_TG, XP_WG, & 00091 XP_WGI, XP_LAI, XP_RESA, XP_VEG, XP_TDEEP, XP_ROOTFRAC, XP_DZG, & 00092 XP_DZDIF, XP_CONDSAT, XP_MPOTSAT, XP_CGSAT, XP_HCAPSOIL, & 00093 XP_CONDDRY, XP_CONDSLD, XP_RSMIN, XP_BSLAI, XP_LAIMIN, & 00094 XP_SEFOLD, XP_H_TREE, XP_ANF, XP_ANMAX, XP_FZERO, XP_EPSO, & 00095 XP_GAMM, XP_QDGAMM, XP_GMES, XP_RE25, XP_QDGMES, XP_T1GMES, & 00096 XP_T2GMES, XP_TAU_WOOD, & 00097 XP_AMAX, XP_QDAMAX, XP_T1AMAX, XP_T2AMAX, XP_AN, XP_ANFM, & 00098 LP_STRESS, XP_F2I, XP_GC, XP_AH, XP_BH, XP_DMAX, XP_ANDAY, & 00099 XP_Z0EFFIP,XP_Z0EFFIM,XP_Z0EFFJP,XP_Z0EFFJM, & 00100 XP_AOSIP,XP_AOSIM,XP_AOSJP,XP_AOSJM, & 00101 XP_HO2IP,XP_HO2IM,XP_HO2JP,XP_HO2JM, XP_SSO_SLOPE, & 00102 XP_SNOWSWE, XP_SNOWRHO, XP_SNOWALB, XP_SNOWHEAT, XP_SNOWEMIS, & 00103 XP_SNOWGRAN1, XP_SNOWGRAN2, XP_SNOWHIST, XP_SNOWAGE, & 00104 XP_LE, XP_ALBNIR, XP_ALBVIS, XP_ALBUV, XP_LAI_EFFC, XP_MUS, & 00105 XP_ALBNIR_VEG, XP_ALBUV_VEG, XP_ALBVIS_VEG, & 00106 XP_ALBNIR_DRY, XP_ALBVIS_DRY, XP_ALBUV_DRY, & 00107 XP_ALBNIR_WET, XP_ALBVIS_WET, XP_ALBUV_WET, & 00108 XP_ALBNIR_SOIL, XP_ALBVIS_SOIL, XP_ALBUV_SOIL, & 00109 XP_CLAY, XP_SAND, XP_LAT, XP_LON, XP_BIOMASS, XP_RESP_BIOMASS, & 00110 XP_LITTER, XP_SOILCARB, XP_LIGNIN_STRUC, XP_FAPARC, XP_FAPIRC, & 00111 XP_CE_NITRO, XP_CF_NITRO, XP_CNA_NITRO, XP_BSLAI_NITRO, & 00112 TP_SEED,TP_REAP,XP_IRRIG,XP_WATSUP,XP_LIRRIDAY,XP_THRESHOLD, & 00113 XP_LIRRIGATE, XP_MUF, XP_FSAT, XP_KSAT_ICE, XP_D_ICE, & 00114 XP_FFLOOD, XP_Z0FLOOD, XP_PIFLOOD, XP_INCREASE, XP_TURNOVER, & 00115 XP_PSN, XP_PSNG, XP_PSNV, XP_PSNV_A, XP_FF, XP_FFG, XP_FFV, & 00116 XP_CPS, XP_LVTT, XP_LSTT, XP_ALBF, XP_EMISF, XP_DIR_ALB_WITH_SNOW,& 00117 XP_SCA_ALB_WITH_SNOW, XP_ICE_STO, XP_FFROZEN, XP_SOILWGHT 00118 ! 00119 USE MODD_CSTS, ONLY : XLVTT, XLSTT, XCPD 00120 ! 00121 USE MODI_ABOR1_SFX 00122 ! 00123 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00124 USE PARKIND1 ,ONLY : JPRB 00125 ! 00126 IMPLICIT NONE 00127 ! 00128 INTEGER, INTENT(IN) :: KSIZE, KPATCH 00129 INTEGER, DIMENSION(:), INTENT(IN) :: KMASK 00130 ! 00131 INTEGER :: ISIZE_LSIMPLE, ISIZE_L0, ISIZE_TSIMPLE, ISIZE_T0, ISIZE_SIMPLE, 00132 ISIZE_GROUND, ISIZE_VEGTYPE, ISIZE_TG, ISIZE_SNOW, ISIZE_ALB, 00133 ISIZE_2, ISIZE_BIOMASS, ISIZE_SOILCARB, ISIZE_LITTLEVS, 00134 ISIZE_LITTER, ISIZE_0, ISIZE_00,ISIZE_000, ISIZE_01, 00135 ISIZE_NSIMPLE, ISIZE_N0 00136 ! 00137 INTEGER :: JJ, JI, JK, JL 00138 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00139 !------------------------------------------------------------------------ 00140 IF (LHOOK) CALL DR_HOOK('PACK_ISBA_PATCH_N',0,ZHOOK_HANDLE) 00141 ! 00142 ALLOCATE(LBLOCK_SIMPLE(KSIZE,NSIZE_LSIMPLE)) 00143 ALLOCATE(LBLOCK_0(0,NSIZE_L0)) 00144 ALLOCATE(NBLOCK_SIMPLE(KSIZE,NSIZE_NSIMPLE)) 00145 ALLOCATE(NBLOCK_0(0,NSIZE_N0)) 00146 ALLOCATE(TBLOCK_SIMPLE(KSIZE,NSIZE_TSIMPLE)) 00147 ALLOCATE(TBLOCK_0(0,NSIZE_T0)) 00148 ALLOCATE(XBLOCK_SIMPLE(KSIZE,NSIZE_SIMPLE)) 00149 ALLOCATE(XBLOCK_GROUND(KSIZE,NGROUND_LAYER,NSIZE_GROUND)) 00150 ALLOCATE(XBLOCK_VEGTYPE(KSIZE,NVEGTYPE,NSIZE_VEGTYPE)) 00151 ALLOCATE(XBLOCK_TG(KSIZE,SIZE(XTG,2),NSIZE_TG)) 00152 ALLOCATE(XBLOCK_SNOW(KSIZE,TSNOW%NLAYER,NSIZE_SNOW)) 00153 ALLOCATE(XBLOCK_ALB(KSIZE,SIZE(XDIR_ALB_WITH_SNOW,2),NSIZE_ALB)) 00154 ALLOCATE(XBLOCK_2(KSIZE,2,NSIZE_2)) 00155 ALLOCATE(XBLOCK_BIOMASS(KSIZE,NNBIOMASS,NSIZE_BIOMASS)) 00156 ALLOCATE(XBLOCK_SOILCARB(KSIZE,NNSOILCARB,NSIZE_SOILCARB)) 00157 ALLOCATE(XBLOCK_LITTLEVS(KSIZE,NNLITTLEVS,NSIZE_LITTLEVS)) 00158 ALLOCATE(XBLOCK_LITTER(KSIZE,NNLITTER,NNLITTLEVS,NSIZE_LITTER)) 00159 ALLOCATE(XBLOCK_0(0,NSIZE_0)) 00160 ALLOCATE(XBLOCK_00(0,0,NSIZE_00)) 00161 ALLOCATE(XBLOCK_000(0,0,0,NSIZE_000)) 00162 ALLOCATE(XBLOCK_01(0,1,NSIZE_01)) 00163 ! 00164 ISIZE_LSIMPLE=0 00165 ISIZE_L0=0 00166 ISIZE_NSIMPLE=0 00167 ISIZE_N0=0 00168 ISIZE_TSIMPLE=0 00169 ISIZE_T0=0 00170 ISIZE_SIMPLE=0 00171 ISIZE_GROUND=0 00172 ISIZE_VEGTYPE=0 00173 ISIZE_TG=0 00174 ISIZE_SNOW=0 00175 ISIZE_ALB=0 00176 ISIZE_2=0 00177 ISIZE_BIOMASS=0 00178 ISIZE_LITTER=0 00179 ISIZE_SOILCARB=0 00180 ISIZE_LITTLEVS=0 00181 ISIZE_0=0 00182 ISIZE_00=0 00183 ISIZE_000=0 00184 ISIZE_01=0 00185 ! 00186 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00187 XP_Z0_O_Z0H => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00188 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00189 XP_EMIS => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00190 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00191 XP_ALBNIR => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00192 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00193 XP_ALBVIS => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00194 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00195 XP_ALBUV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00196 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00197 XP_ALBNIR_VEG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00198 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00199 XP_ALBVIS_VEG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00200 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00201 XP_ALBUV_VEG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00202 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00203 XP_ALBNIR_SOIL => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00204 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00205 XP_ALBVIS_SOIL => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00206 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00207 XP_ALBUV_SOIL => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00208 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00209 XP_Z0 => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00210 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00211 XP_WRMAX_CF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00212 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00213 XP_GAMMA => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00214 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00215 XP_CV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00216 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00217 XP_RGL => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00218 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00219 XP_RUNOFFD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00220 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00221 XP_Z0EFFIP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00222 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00223 XP_Z0EFFIM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00224 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00225 XP_Z0EFFJP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00226 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00227 XP_Z0EFFJM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00228 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00229 XP_WR => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00230 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00231 XP_LAI => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00232 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00233 XP_RESA => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00234 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00235 XP_CPS => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00236 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00237 XP_LVTT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00238 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00239 XP_LSTT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00240 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00241 XP_VEG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00242 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00243 XP_SNOWALB => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00244 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00245 XP_LE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00246 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00247 XP_PSN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00248 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00249 XP_PSNG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00250 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00251 XP_PSNV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00252 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00253 XP_ALBNIR_DRY => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00254 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00255 XP_ALBVIS_DRY => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00256 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00257 XP_ALBUV_DRY => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00258 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00259 XP_ALBNIR_WET => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00260 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00261 XP_ALBVIS_WET => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00262 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00263 XP_ALBUV_WET => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00264 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00265 XP_RUNOFFB => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00266 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00267 XP_WDRAIN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00268 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00269 XP_TAUICE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00270 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00271 XP_Z0REL => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00272 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00273 XP_AOSIP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00274 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00275 XP_AOSIM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00276 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00277 XP_AOSJP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00278 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00279 XP_AOSJM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00280 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00281 XP_HO2IP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00282 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00283 XP_HO2IM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00284 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00285 XP_HO2JP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00286 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00287 XP_HO2JM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00288 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00289 XP_SSO_SLOPE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00290 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00291 XP_GAMMAT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00292 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00293 XP_TDEEP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00294 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00295 XP_LAT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00296 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00297 XP_LON => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00298 ! 00299 ISIZE_GROUND = ISIZE_GROUND + 1 00300 XP_CLAY => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00301 ISIZE_GROUND = ISIZE_GROUND + 1 00302 XP_SAND => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00303 ISIZE_GROUND = ISIZE_GROUND + 1 00304 XP_WFC => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00305 ISIZE_GROUND = ISIZE_GROUND + 1 00306 XP_WWILT => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00307 ISIZE_GROUND = ISIZE_GROUND + 1 00308 XP_WSAT => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00309 ISIZE_GROUND = ISIZE_GROUND + 1 00310 XP_CONDSAT => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00311 ISIZE_GROUND = ISIZE_GROUND + 1 00312 XP_DG => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00313 ISIZE_GROUND = ISIZE_GROUND + 1 00314 XP_WG => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00315 ISIZE_GROUND = ISIZE_GROUND + 1 00316 XP_WGI => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00317 ! 00318 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00319 XP_KSAT_ICE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00320 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00321 XP_D_ICE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00322 ! 00323 ISIZE_VEGTYPE = ISIZE_VEGTYPE + 1 00324 XP_VEGTYPE_PATCH => XBLOCK_VEGTYPE(:,:,ISIZE_VEGTYPE) 00325 ! 00326 ISIZE_TG = ISIZE_TG + 1 00327 XP_TG => XBLOCK_TG(:,:,ISIZE_TG) 00328 ! 00329 ISIZE_SNOW = ISIZE_SNOW + 1 00330 XP_SNOWSWE => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00331 ISIZE_SNOW = ISIZE_SNOW + 1 00332 XP_SNOWRHO => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00333 ! 00334 ISIZE_ALB = ISIZE_ALB + 1 00335 XP_DIR_ALB_WITH_SNOW=> XBLOCK_ALB(:,:,ISIZE_ALB) 00336 ISIZE_ALB = ISIZE_ALB + 1 00337 XP_SCA_ALB_WITH_SNOW=> XBLOCK_ALB(:,:,ISIZE_ALB) 00338 ! 00339 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00340 XP_FFLOOD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00341 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00342 XP_PIFLOOD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00343 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00344 XP_Z0FLOOD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00345 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00346 XP_FF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00347 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00348 XP_FFG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00349 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00350 XP_FFV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00351 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00352 XP_FFROZEN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00353 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00354 XP_ALBF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00355 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00356 XP_EMISF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00357 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00358 XP_FSAT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00359 ! 00360 IF(TSNOW%SCHEME=='EBA') THEN 00361 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00362 XP_PSNV_A => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00363 ELSE 00364 ISIZE_0 = ISIZE_0 + 1 00365 XP_PSNV_A => XBLOCK_0(:,ISIZE_0) 00366 ENDIF 00367 ! 00368 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 00369 ISIZE_SNOW = ISIZE_SNOW + 1 00370 XP_SNOWHEAT => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00371 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00372 XP_SNOWEMIS => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00373 ELSE 00374 ISIZE_00 = ISIZE_00 + 1 00375 XP_SNOWHEAT => XBLOCK_00(:,:,ISIZE_00) 00376 ISIZE_0 = ISIZE_0 + 1 00377 XP_SNOWEMIS => XBLOCK_0(:,ISIZE_0) 00378 END IF 00379 ! 00380 IF(TSNOW%SCHEME=='CRO') THEN 00381 ISIZE_SNOW = ISIZE_SNOW + 1 00382 XP_SNOWGRAN1 => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00383 ISIZE_SNOW = ISIZE_SNOW + 1 00384 XP_SNOWGRAN2 => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00385 ISIZE_SNOW = ISIZE_SNOW + 1 00386 XP_SNOWHIST => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00387 ISIZE_SNOW = ISIZE_SNOW + 1 00388 XP_SNOWAGE => XBLOCK_SNOW(:,:,ISIZE_SNOW) 00389 ELSE 00390 ISIZE_00 = ISIZE_00 + 1 00391 XP_SNOWGRAN1 => XBLOCK_00(:,:,ISIZE_00) 00392 ISIZE_00 = ISIZE_00 + 1 00393 XP_SNOWGRAN2 => XBLOCK_00(:,:,ISIZE_00) 00394 ISIZE_00 = ISIZE_00 + 1 00395 XP_SNOWHIST => XBLOCK_00(:,:,ISIZE_00) 00396 ISIZE_00 = ISIZE_00 + 1 00397 XP_SNOWAGE => XBLOCK_00(:,:,ISIZE_00) 00398 END IF 00399 ! 00400 IF(LGLACIER)THEN 00401 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00402 XP_ICE_STO=> XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00403 ELSE 00404 ISIZE_0 = ISIZE_0 + 1 00405 XP_ICE_STO=> XBLOCK_0(:,ISIZE_0) 00406 ENDIF 00407 ! 00408 IF (CSCOND=='PL98'.OR.CISBA=='DIF') THEN 00409 ISIZE_GROUND = ISIZE_GROUND + 1 00410 XP_HCAPSOIL => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00411 ELSE 00412 ISIZE_01 = ISIZE_01 + 1 00413 XP_HCAPSOIL => XBLOCK_01(:,:,ISIZE_01) 00414 END IF 00415 ! 00416 IF (CSCOND=='PL98') THEN 00417 ISIZE_GROUND = ISIZE_GROUND + 1 00418 XP_CONDDRY => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00419 ISIZE_GROUND = ISIZE_GROUND + 1 00420 XP_CONDSLD => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00421 ELSE 00422 ISIZE_01 = ISIZE_01 + 1 00423 XP_CONDDRY => XBLOCK_01(:,:,ISIZE_01) 00424 ISIZE_01 = ISIZE_01 + 1 00425 XP_CONDSLD => XBLOCK_01(:,:,ISIZE_01) 00426 END IF 00427 ! 00428 IF (CISBA=='2-L' .OR. CISBA=='3-L') THEN 00429 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00430 XP_C4B => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00431 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00432 XP_ACOEF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00433 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00434 XP_PCOEF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00435 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00436 XP_CGSAT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00437 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00438 XP_C1SAT => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00439 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00440 XP_C2REF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00441 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00442 XP_C4REF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00443 ISIZE_2 = ISIZE_2 + 1 00444 XP_C3 => XBLOCK_2(:,:,ISIZE_2) 00445 ELSE 00446 ISIZE_0 = ISIZE_0 + 1 00447 XP_C4B => XBLOCK_0(:,ISIZE_0) 00448 ISIZE_0 = ISIZE_0 + 1 00449 XP_ACOEF => XBLOCK_0(:,ISIZE_0) 00450 ISIZE_0 = ISIZE_0 + 1 00451 XP_PCOEF => XBLOCK_0(:,ISIZE_0) 00452 ISIZE_0 = ISIZE_0 + 1 00453 XP_CGSAT => XBLOCK_0(:,ISIZE_0) 00454 ISIZE_0 = ISIZE_0 + 1 00455 XP_C1SAT => XBLOCK_0(:,ISIZE_0) 00456 ISIZE_0 = ISIZE_0 + 1 00457 XP_C2REF => XBLOCK_0(:,ISIZE_0) 00458 ISIZE_0 = ISIZE_0 + 1 00459 XP_C4REF => XBLOCK_0(:,ISIZE_0) 00460 ISIZE_00 = ISIZE_00 + 1 00461 XP_C3 => XBLOCK_00(:,:,ISIZE_00) 00462 END IF 00463 ! 00464 ISIZE_GROUND = ISIZE_GROUND + 1 00465 XP_MPOTSAT => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00466 ISIZE_GROUND = ISIZE_GROUND + 1 00467 XP_BCOEF => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00468 ! 00469 IF (CISBA=='DIF') THEN 00470 ! 00471 ISIZE_GROUND = ISIZE_GROUND + 1 00472 XP_ROOTFRAC => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00473 ISIZE_GROUND = ISIZE_GROUND + 1 00474 XP_DZG => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00475 ISIZE_GROUND = ISIZE_GROUND + 1 00476 XP_DZDIF => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00477 ISIZE_GROUND = ISIZE_GROUND + 1 00478 XP_SOILWGHT => XBLOCK_GROUND(:,:,ISIZE_GROUND) 00479 ! 00480 ISIZE_NSIMPLE = ISIZE_NSIMPLE + 1 00481 NK_WG_LAYER => NBLOCK_SIMPLE(:,ISIZE_NSIMPLE) 00482 ! 00483 ELSE 00484 ! 00485 ISIZE_01 = ISIZE_01 + 1 00486 XP_ROOTFRAC => XBLOCK_01(:,:,ISIZE_01) 00487 ISIZE_01 = ISIZE_01 + 1 00488 XP_DZG => XBLOCK_01(:,:,ISIZE_01) 00489 ISIZE_01 = ISIZE_01 + 1 00490 XP_DZDIF => XBLOCK_01(:,:,ISIZE_01) 00491 ISIZE_01 = ISIZE_01 + 1 00492 XP_SOILWGHT => XBLOCK_01(:,:,ISIZE_01) 00493 ! 00494 ISIZE_N0 = ISIZE_N0 + 1 00495 NK_WG_LAYER => NBLOCK_0(:,ISIZE_N0) 00496 ! 00497 END IF 00498 ! 00499 IF (LTR_ML) THEN 00500 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00501 XP_FAPARC => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00502 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00503 XP_FAPIRC => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00504 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00505 XP_LAI_EFFC => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00506 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00507 XP_MUS => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00508 ELSE 00509 ISIZE_0 = ISIZE_0 + 1 00510 XP_FAPARC => XBLOCK_0(:,ISIZE_0) 00511 ISIZE_0 = ISIZE_0 + 1 00512 XP_FAPIRC => XBLOCK_0(:,ISIZE_0) 00513 ISIZE_0 = ISIZE_0 + 1 00514 XP_LAI_EFFC => XBLOCK_0(:,ISIZE_0) 00515 ISIZE_0 = ISIZE_0 + 1 00516 XP_MUS => XBLOCK_0(:,ISIZE_0) 00517 ENDIF 00518 ! 00519 IF (CPHOTO=='NON') THEN 00520 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00521 XP_RSMIN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00522 ELSE 00523 ISIZE_0 = ISIZE_0 + 1 00524 XP_RSMIN => XBLOCK_0(:,ISIZE_0) 00525 END IF 00526 ! 00527 ! 00528 IF (CPHOTO/='NON') THEN 00529 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00530 XP_BSLAI => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00531 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00532 XP_LAIMIN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00533 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00534 XP_SEFOLD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00535 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00536 XP_H_TREE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00537 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00538 XP_ANF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00539 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00540 XP_ANMAX => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00541 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00542 XP_FZERO => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00543 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00544 XP_EPSO => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00545 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00546 XP_GAMM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00547 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00548 XP_QDGAMM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00549 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00550 XP_GMES => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00551 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00552 XP_RE25 => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00553 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00554 XP_QDGMES => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00555 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00556 XP_T1GMES => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00557 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00558 XP_T2GMES => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00559 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00560 XP_AMAX => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00561 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00562 XP_QDAMAX => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00563 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00564 XP_T1AMAX => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00565 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00566 XP_T2AMAX => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00567 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00568 XP_AN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00569 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00570 XP_ANDAY => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00571 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00572 XP_ANFM => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00573 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00574 XP_GC => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00575 ISIZE_BIOMASS = ISIZE_BIOMASS + 1 00576 XP_BIOMASS => XBLOCK_BIOMASS(:,:,ISIZE_BIOMASS) 00577 ISIZE_BIOMASS = ISIZE_BIOMASS + 1 00578 XP_RESP_BIOMASS => XBLOCK_BIOMASS(:,:,ISIZE_BIOMASS) 00579 ELSE 00580 ISIZE_0 = ISIZE_0 + 1 00581 XP_BSLAI => XBLOCK_0(:,ISIZE_0) 00582 ISIZE_0 = ISIZE_0 + 1 00583 XP_LAIMIN => XBLOCK_0(:,ISIZE_0) 00584 ISIZE_0 = ISIZE_0 + 1 00585 XP_SEFOLD => XBLOCK_0(:,ISIZE_0) 00586 ISIZE_0 = ISIZE_0 + 1 00587 XP_H_TREE => XBLOCK_0(:,ISIZE_0) 00588 ISIZE_0 = ISIZE_0 + 1 00589 XP_ANF => XBLOCK_0(:,ISIZE_0) 00590 ISIZE_0 = ISIZE_0 + 1 00591 XP_ANMAX => XBLOCK_0(:,ISIZE_0) 00592 ISIZE_0 = ISIZE_0 + 1 00593 XP_FZERO => XBLOCK_0(:,ISIZE_0) 00594 ISIZE_0 = ISIZE_0 + 1 00595 XP_EPSO => XBLOCK_0(:,ISIZE_0) 00596 ISIZE_0 = ISIZE_0 + 1 00597 XP_GAMM => XBLOCK_0(:,ISIZE_0) 00598 ISIZE_0 = ISIZE_0 + 1 00599 XP_QDGAMM => XBLOCK_0(:,ISIZE_0) 00600 ISIZE_0 = ISIZE_0 + 1 00601 XP_GMES => XBLOCK_0(:,ISIZE_0) 00602 ISIZE_0 = ISIZE_0 + 1 00603 XP_RE25 => XBLOCK_0(:,ISIZE_0) 00604 ISIZE_0 = ISIZE_0 + 1 00605 XP_QDGMES => XBLOCK_0(:,ISIZE_0) 00606 ISIZE_0 = ISIZE_0 + 1 00607 XP_T1GMES => XBLOCK_0(:,ISIZE_0) 00608 ISIZE_0 = ISIZE_0 + 1 00609 XP_T2GMES => XBLOCK_0(:,ISIZE_0) 00610 ISIZE_0 = ISIZE_0 + 1 00611 XP_AMAX => XBLOCK_0(:,ISIZE_0) 00612 ISIZE_0 = ISIZE_0 + 1 00613 XP_QDAMAX => XBLOCK_0(:,ISIZE_0) 00614 ISIZE_0 = ISIZE_0 + 1 00615 XP_T1AMAX => XBLOCK_0(:,ISIZE_0) 00616 ISIZE_0 = ISIZE_0 + 1 00617 XP_T2AMAX => XBLOCK_0(:,ISIZE_0) 00618 ISIZE_0 = ISIZE_0 + 1 00619 XP_AN => XBLOCK_0(:,ISIZE_0) 00620 ISIZE_0 = ISIZE_0 + 1 00621 XP_ANDAY => XBLOCK_0(:,ISIZE_0) 00622 ISIZE_0 = ISIZE_0 + 1 00623 XP_ANFM => XBLOCK_0(:,ISIZE_0) 00624 ISIZE_0 = ISIZE_0 + 1 00625 XP_GC => XBLOCK_0(:,ISIZE_0) 00626 ISIZE_00 = ISIZE_00 + 1 00627 XP_BIOMASS => XBLOCK_00(:,:,ISIZE_00) 00628 ISIZE_00 = ISIZE_00 + 1 00629 XP_RESP_BIOMASS => XBLOCK_00(:,:,ISIZE_00) 00630 END IF 00631 ! 00632 IF (CPHOTO=='AST' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00633 ISIZE_LSIMPLE = ISIZE_LSIMPLE + 1 00634 LP_STRESS => LBLOCK_SIMPLE(:,ISIZE_LSIMPLE) 00635 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00636 XP_F2I => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00637 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00638 XP_AH => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00639 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00640 XP_BH => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00641 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00642 XP_DMAX => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00643 ELSE 00644 ISIZE_L0 = ISIZE_L0 + 1 00645 LP_STRESS => LBLOCK_0(:,ISIZE_L0) 00646 ISIZE_0 = ISIZE_0 + 1 00647 XP_F2I => XBLOCK_0(:,ISIZE_0) 00648 ISIZE_0 = ISIZE_0 + 1 00649 XP_AH => XBLOCK_0(:,ISIZE_0) 00650 ISIZE_0 = ISIZE_0 + 1 00651 XP_BH => XBLOCK_0(:,ISIZE_0) 00652 ISIZE_0 = ISIZE_0 + 1 00653 XP_DMAX => XBLOCK_0(:,ISIZE_0) 00654 END IF 00655 ! 00656 IF (CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00657 ISIZE_TSIMPLE = ISIZE_TSIMPLE + 1 00658 TP_SEED => TBLOCK_SIMPLE(:,ISIZE_TSIMPLE) 00659 ISIZE_TSIMPLE = ISIZE_TSIMPLE + 1 00660 TP_REAP => TBLOCK_SIMPLE(:,ISIZE_TSIMPLE) 00661 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00662 XP_IRRIG => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00663 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00664 XP_WATSUP => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00665 IF (LAGRIP) THEN 00666 ISIZE_LSIMPLE = ISIZE_LSIMPLE + 1 00667 XP_LIRRIDAY => LBLOCK_SIMPLE(:,ISIZE_LSIMPLE) 00668 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00669 XP_THRESHOLD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00670 ISIZE_LSIMPLE = ISIZE_LSIMPLE + 1 00671 XP_LIRRIGATE => LBLOCK_SIMPLE(:,ISIZE_LSIMPLE) 00672 ELSE 00673 ISIZE_L0 = ISIZE_L0 + 1 00674 XP_LIRRIDAY => LBLOCK_0(:,ISIZE_L0) 00675 ISIZE_0 = ISIZE_0 + 1 00676 XP_THRESHOLD => XBLOCK_0(:,ISIZE_0) 00677 ISIZE_L0 = ISIZE_L0 + 1 00678 XP_LIRRIGATE => LBLOCK_0(:,ISIZE_L0) 00679 ENDIF 00680 ELSE 00681 ISIZE_T0 = ISIZE_T0 + 1 00682 TP_SEED => TBLOCK_0(:,ISIZE_T0) 00683 ISIZE_T0 = ISIZE_T0 + 1 00684 TP_REAP => TBLOCK_0(:,ISIZE_T0) 00685 ISIZE_0 = ISIZE_0 + 1 00686 XP_IRRIG => XBLOCK_0(:,ISIZE_0) 00687 ISIZE_0 = ISIZE_0 + 1 00688 XP_WATSUP => XBLOCK_0(:,ISIZE_0) 00689 ISIZE_L0 = ISIZE_L0 + 1 00690 XP_LIRRIDAY => LBLOCK_0(:,ISIZE_L0) 00691 ISIZE_0 = ISIZE_0 + 1 00692 XP_THRESHOLD => XBLOCK_0(:,ISIZE_0) 00693 ISIZE_L0 = ISIZE_L0 + 1 00694 XP_LIRRIGATE => LBLOCK_0(:,ISIZE_L0) 00695 ENDIF 00696 ! 00697 IF(CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00698 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00699 XP_CE_NITRO => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00700 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00701 XP_CF_NITRO => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00702 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00703 XP_CNA_NITRO => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00704 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00705 XP_BSLAI_NITRO => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00706 ELSE 00707 ISIZE_0 = ISIZE_0 + 1 00708 XP_CE_NITRO => XBLOCK_0(:,ISIZE_0) 00709 ISIZE_0 = ISIZE_0 + 1 00710 XP_CF_NITRO => XBLOCK_0(:,ISIZE_0) 00711 ISIZE_0 = ISIZE_0 + 1 00712 XP_CNA_NITRO => XBLOCK_0(:,ISIZE_0) 00713 ISIZE_0 = ISIZE_0 + 1 00714 XP_BSLAI_NITRO => XBLOCK_0(:,ISIZE_0) 00715 END IF 00716 ! 00717 IF (CPHOTO=='NCB') THEN 00718 ISIZE_BIOMASS = ISIZE_BIOMASS + 1 00719 XP_INCREASE => XBLOCK_BIOMASS(:,:,ISIZE_BIOMASS) 00720 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00721 XP_TAU_WOOD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00722 ELSE 00723 ISIZE_00 = ISIZE_00 + 1 00724 XP_INCREASE => XBLOCK_00(:,:,ISIZE_00) 00725 ISIZE_0 = ISIZE_0 + 1 00726 XP_TAU_WOOD => XBLOCK_0(:,ISIZE_0) 00727 ENDIF 00728 ! 00729 IF (CRESPSL=='CNT') THEN 00730 ISIZE_LITTER = ISIZE_LITTER + 1 00731 XP_LITTER => XBLOCK_LITTER(:,:,:,ISIZE_LITTER) 00732 ISIZE_SOILCARB = ISIZE_SOILCARB + 1 00733 XP_SOILCARB => XBLOCK_SOILCARB(:,:,ISIZE_SOILCARB) 00734 ISIZE_LITTLEVS = ISIZE_LITTLEVS + 1 00735 XP_LIGNIN_STRUC => XBLOCK_LITTLEVS(:,:,ISIZE_LITTLEVS) 00736 ISIZE_BIOMASS = ISIZE_BIOMASS + 1 00737 XP_TURNOVER => XBLOCK_BIOMASS(:,:,ISIZE_BIOMASS) 00738 ELSE 00739 ISIZE_000 = ISIZE_000 + 1 00740 XP_LITTER => XBLOCK_000(:,:,:,ISIZE_000) 00741 ISIZE_00 = ISIZE_00 + 1 00742 XP_SOILCARB => XBLOCK_00(:,:,ISIZE_00) 00743 ISIZE_00 = ISIZE_00 + 1 00744 XP_LIGNIN_STRUC => XBLOCK_00(:,:,ISIZE_00) 00745 ISIZE_00 = ISIZE_00 + 1 00746 XP_TURNOVER => XBLOCK_00(:,:,ISIZE_00) 00747 END IF 00748 ! 00749 IF (CRAIN=='SGH')THEN 00750 ISIZE_SIMPLE = ISIZE_SIMPLE + 1 00751 XP_MUF=> XBLOCK_SIMPLE(:,ISIZE_SIMPLE) 00752 ELSE 00753 ISIZE_0 = ISIZE_0 + 1 00754 XP_MUF=> XBLOCK_0(:,ISIZE_0) 00755 ENDIF 00756 ! 00757 ! 00758 IF (ISIZE_SIMPLE.GT.NSIZE_SIMPLE) & 00759 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_SIMPLE / NUMBER OF FIELDS") 00760 IF (ISIZE_GROUND.GT.NSIZE_GROUND) & 00761 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_GROUND / NUMBER OF FIELDS") 00762 IF (ISIZE_VEGTYPE.GT.NSIZE_VEGTYPE) & 00763 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_VEGTYPE / NUMBER OF FIELDS") 00764 IF (ISIZE_TG.GT.NSIZE_TG) & 00765 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_TG / NUMBER OF FIELDS") 00766 IF (ISIZE_SNOW.GT.NSIZE_SNOW) & 00767 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_SNOW / NUMBER OF FIELDS") 00768 IF (ISIZE_ALB.GT.NSIZE_ALB) & 00769 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_ALB / NUMBER OF FIELDS") 00770 IF (ISIZE_0.GT.NSIZE_0) & 00771 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_0 / NUMBER OF FIELDS") 00772 IF (ISIZE_00.GT.NSIZE_00) & 00773 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_00 / NUMBER OF FIELDS") 00774 IF (ISIZE_01.GT.NSIZE_01) & 00775 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_01 / NUMBER OF FIELDS") 00776 IF (ISIZE_2.GT.NSIZE_2) & 00777 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_2 / NUMBER OF FIELDS") 00778 IF (ISIZE_BIOMASS.GT.NSIZE_BIOMASS) & 00779 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_BIOMASS / NUMBER OF FIELDS") 00780 IF (ISIZE_LITTER.GT.NSIZE_LITTER) & 00781 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_LITTER / NUMBER OF FIELDS") 00782 IF (ISIZE_SOILCARB.GT.NSIZE_SOILCARB) & 00783 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_SOILCARB / NUMBER OF FIELDS") 00784 IF (ISIZE_LITTLEVS.GT.NSIZE_LITTLEVS) & 00785 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_LITTLEVS / NUMBER OF FIELDS") 00786 IF (ISIZE_000.GT.NSIZE_000) & 00787 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_000 / NUMBER OF FIELDS") 00788 IF (ISIZE_TSIMPLE.GT.NSIZE_TSIMPLE) & 00789 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_TSIMPLE / NUMBER OF FIELDS") 00790 IF (ISIZE_T0.GT.NSIZE_T0) & 00791 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_T0 / NUMBER OF FIELDS") 00792 IF (ISIZE_LSIMPLE.GT.NSIZE_LSIMPLE) & 00793 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_LSIMPLE / NUMBER OF FIELDS") 00794 IF (ISIZE_L0.GT.NSIZE_L0) & 00795 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_L0 / NUMBER OF FIELDS") 00796 IF (ISIZE_N0.GT.NSIZE_N0) & 00797 CALL ABOR1_SFX("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_N0 / NUMBER OF FIELDS") 00798 ! 00799 !------------------------------------------------------------------------ 00800 ! 00801 IF (NPATCH==1) THEN 00802 ! 00803 XP_Z0_O_Z0H (:) = XZ0_O_Z0H (:, 1) 00804 XP_EMIS (:) = XEMIS (:, 1) 00805 XP_ALBNIR (:) = XALBNIR (:, 1) 00806 XP_ALBVIS (:) = XALBVIS (:, 1) 00807 XP_ALBUV (:) = XALBUV (:, 1) 00808 XP_ALBNIR_VEG (:) = XALBNIR_VEG (:, 1) 00809 XP_ALBVIS_VEG (:) = XALBVIS_VEG (:, 1) 00810 XP_ALBUV_VEG (:) = XALBUV_VEG (:, 1) 00811 XP_ALBNIR_SOIL (:) = XALBNIR_SOIL (:, 1) 00812 XP_ALBVIS_SOIL (:) = XALBVIS_SOIL (:, 1) 00813 XP_ALBUV_SOIL (:) = XALBUV_SOIL (:, 1) 00814 XP_Z0 (:) = XZ0 (:, 1) 00815 XP_WRMAX_CF (:) = XWRMAX_CF (:, 1) 00816 XP_GAMMA (:) = XGAMMA (:, 1) 00817 XP_CV (:) = XCV (:, 1) 00818 XP_RGL (:) = XRGL (:, 1) 00819 XP_RUNOFFD (:) = XRUNOFFD (:, 1) 00820 XP_Z0EFFIP (:) = XZ0EFFIP (:, 1) 00821 XP_Z0EFFIM (:) = XZ0EFFIM (:, 1) 00822 XP_Z0EFFJP (:) = XZ0EFFJP (:, 1) 00823 XP_Z0EFFJM (:) = XZ0EFFJM (:, 1) 00824 XP_WR (:) = XWR (:, 1) 00825 XP_LAI (:) = XLAI (:, 1) 00826 XP_RESA (:) = XRESA (:, 1) 00827 XP_CPS (:) = XPCPS (:, 1) 00828 XP_LVTT (:) = XPLVTT (:, 1) 00829 XP_LSTT (:) = XPLSTT (:, 1) 00830 XP_VEG (:) = XVEG (:, 1) 00831 XP_SNOWALB (:) = TSNOW%ALB (:, 1) 00832 XP_LE (:) = XLE (:, 1) 00833 XP_PSN (:) = XPSN (:, 1) 00834 XP_PSNG (:) = XPSNG (:, 1) 00835 XP_PSNV (:) = XPSNV (:, 1) 00836 XP_ALBNIR_DRY (:) = XALBNIR_DRY (:) 00837 XP_ALBVIS_DRY (:) = XALBVIS_DRY (:) 00838 XP_ALBUV_DRY (:) = XALBUV_DRY (:) 00839 XP_ALBNIR_WET (:) = XALBNIR_WET (:) 00840 XP_ALBVIS_WET (:) = XALBVIS_WET (:) 00841 XP_ALBUV_WET (:) = XALBUV_WET (:) 00842 XP_RUNOFFB (:) = XRUNOFFB (:) 00843 XP_WDRAIN (:) = XWDRAIN (:) 00844 XP_TAUICE (:) = XTAUICE (:) 00845 XP_Z0REL (:) = XZ0REL (:) 00846 XP_AOSIP (:) = XAOSIP (:) 00847 XP_AOSIM (:) = XAOSIM (:) 00848 XP_AOSJP (:) = XAOSJP (:) 00849 XP_AOSJM (:) = XAOSJM (:) 00850 XP_HO2IP (:) = XHO2IP (:) 00851 XP_HO2IM (:) = XHO2IM (:) 00852 XP_HO2JP (:) = XHO2JP (:) 00853 XP_HO2JM (:) = XHO2JM (:) 00854 XP_SSO_SLOPE (:) = XSSO_SLOPE (:) 00855 XP_GAMMAT (:) = XGAMMAT (:) 00856 XP_TDEEP (:) = XTDEEP (:) 00857 XP_LAT (:) = XLAT (:) 00858 XP_LON (:) = XLON (:) 00859 ! 00860 XP_CLAY (:,:) = XCLAY (:, :) 00861 XP_SAND (:,:) = XSAND (:, :) 00862 XP_WFC (:, :) = XWFC (:, :) 00863 XP_WWILT (:, :) = XWWILT (:, :) 00864 XP_WSAT (:, :) = XWSAT (:, :) 00865 XP_CONDSAT (:, :) = XCONDSAT (:, :, 1) 00866 XP_DG (:, :) = XDG (:, :, 1) 00867 XP_WG (:, :) = XWG (:, :, 1) 00868 XP_WGI (:, :) = XWGI (:, :, 1) 00869 XP_MPOTSAT (:, :) = XMPOTSAT (:, :) 00870 XP_BCOEF (:, :) = XBCOEF (:, :) 00871 ! 00872 XP_KSAT_ICE (:) = XKSAT_ICE (:, 1) 00873 XP_D_ICE (:) = XD_ICE (:, 1) 00874 ! 00875 XP_VEGTYPE_PATCH(:, :) = XVEGTYPE_PATCH(:, :, 1) 00876 ! 00877 XP_TG (:, :) = XTG (:, :, 1) 00878 ! 00879 XP_SNOWSWE (:, :) = TSNOW%WSNOW (:, :, 1) 00880 XP_SNOWRHO (:, :) = TSNOW%RHO (:, :, 1) 00881 ! 00882 XP_DIR_ALB_WITH_SNOW (:,:)= XDIR_ALB_WITH_SNOW(:, :, 1) 00883 XP_SCA_ALB_WITH_SNOW (:,:)= XSCA_ALB_WITH_SNOW(:, :, 1) 00884 ! 00885 XP_FSAT(:)=XFSAT(:) 00886 ! 00887 IF(LFLOOD)THEN 00888 XP_FFLOOD (:)=XFFLOOD (:) 00889 XP_PIFLOOD (:)=XPIFLOOD (:) 00890 XP_Z0FLOOD (:)=XZ0_FLOOD(:, 1) 00891 XP_FF (:)=XFF (:, 1) 00892 XP_FFG (:)=XFFG (:, 1) 00893 XP_FFV (:)=XFFV (:, 1) 00894 XP_FFROZEN (:)=XFFROZEN (:, 1) 00895 XP_ALBF (:)=XALBF (:, 1) 00896 XP_EMISF (:)=XEMISF (:, 1) 00897 ELSE 00898 XP_FFLOOD (:)= 0.0 00899 XP_PIFLOOD (:)= 0.0 00900 XP_FF (:)= 0.0 00901 XP_FFG (:)= 0.0 00902 XP_FFV (:)= 0.0 00903 XP_FFROZEN (:)= 0.0 00904 XP_ALBF (:)= 0.0 00905 XP_EMISF (:)= 0.0 00906 ENDIF 00907 ! 00908 IF(TSNOW%SCHEME=='EBA') THEN 00909 XP_PSNV_A (:) = XPSNV_A(:, 1) 00910 ENDIF 00911 ! 00912 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 00913 XP_SNOWHEAT (:, :) = TSNOW%HEAT (:, :, 1) 00914 END IF 00915 ! 00916 IF(TSNOW%SCHEME=='CRO') THEN 00917 XP_SNOWGRAN1 (:,:) = TSNOW%GRAN1 (:,:,1) 00918 XP_SNOWGRAN2 (:,:) = TSNOW%GRAN2 (:,:,1) 00919 XP_SNOWHIST (:,:) = TSNOW%HIST (:,:,1) 00920 XP_SNOWAGE (:,:) = TSNOW%AGE (:,:,1) 00921 END IF 00922 ! 00923 IF(LGLACIER)THEN 00924 XP_ICE_STO (:)= XICE_STO (:,1) 00925 ENDIF 00926 ! 00927 IF (CSCOND=='PL98'.OR.CISBA=='DIF') THEN 00928 XP_HCAPSOIL(:, :) = XHCAPSOIL (:, :) 00929 END IF 00930 ! 00931 IF (CSCOND=='PL98') THEN 00932 XP_CONDDRY (:, :) = XCONDDRY (:, :) 00933 XP_CONDSLD (:, :) = XCONDSLD (:, :) 00934 END IF 00935 ! 00936 IF (CISBA=='2-L' .OR. CISBA=='3-L') THEN 00937 XP_C4B (:) = XC4B (:) 00938 XP_ACOEF (:) = XACOEF (:) 00939 XP_PCOEF (:) = XPCOEF (:) 00940 XP_CGSAT (:) = XCGSAT (:) 00941 XP_C1SAT (:) = XC1SAT (:, 1) 00942 XP_C2REF (:) = XC2REF (:, 1) 00943 XP_C4REF (:) = XC4REF (:, 1) 00944 XP_C3 (:,:) = XC3 (:,:,1) 00945 END IF 00946 ! 00947 IF (CISBA=='DIF') THEN 00948 XP_ROOTFRAC (:, :) = XROOTFRAC (:, :, 1) 00949 XP_DZG (:, :) = XDZG (:, :, 1) 00950 XP_DZDIF (:, :) = XDZDIF (:, :, 1) 00951 XP_SOILWGHT (:, :) = XSOILWGHT (:, :, 1) 00952 NK_WG_LAYER (: ) = NWG_LAYER (:, 1) 00953 END IF 00954 ! 00955 IF (LTR_ML) THEN 00956 XP_FAPARC (:) = XFAPARC (:, 1) 00957 XP_FAPIRC (:) = XFAPIRC (:, 1) 00958 XP_LAI_EFFC (:) = XLAI_EFFC (:, 1) 00959 XP_MUS (:) = XMUS (:, 1) 00960 ENDIF 00961 ! 00962 IF (CPHOTO=='NON') THEN 00963 XP_RSMIN (:) = XRSMIN (:, 1) 00964 END IF 00965 ! 00966 IF (CPHOTO/='NON') THEN 00967 XP_BSLAI (:) = XBSLAI (:, 1) 00968 XP_LAIMIN (:) = XLAIMIN (:, 1) 00969 XP_SEFOLD (:) = XSEFOLD (:, 1) 00970 XP_H_TREE (:) = XH_TREE (:, 1) 00971 XP_ANMAX (:) = XANMAX (:, 1) 00972 XP_FZERO (:) = XFZERO (:, 1) 00973 XP_EPSO (:) = XEPSO (:, 1) 00974 XP_GAMM (:) = XGAMM (:, 1) 00975 XP_QDGAMM (:) = XQDGAMM (:, 1) 00976 XP_GMES (:) = XGMES (:, 1) 00977 XP_RE25 (:) = XRE25 (:, 1) 00978 XP_QDGMES (:) = XQDGMES (:, 1) 00979 XP_T1GMES (:) = XT1GMES (:, 1) 00980 XP_T2GMES (:) = XT2GMES (:, 1) 00981 XP_AMAX (:) = XAMAX (:, 1) 00982 XP_QDAMAX (:) = XQDAMAX (:, 1) 00983 XP_T1AMAX (:) = XT1AMAX (:, 1) 00984 XP_T2AMAX (:) = XT2AMAX (:, 1) 00985 XP_AN (:) = XAN (:, 1) 00986 XP_ANDAY (:) = XANDAY (:, 1) 00987 XP_ANFM (:) = XANFM (:, 1) 00988 XP_GC (:) = XGC (:, 1) 00989 XP_BIOMASS (:,:) = XBIOMASS (:,:,1) 00990 XP_RESP_BIOMASS (:,:) = XRESP_BIOMASS (:,:,1) 00991 END IF 00992 ! 00993 IF (CPHOTO=='AST' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00994 LP_STRESS (:) = LSTRESS (:, 1) 00995 XP_F2I (:) = XF2I (:, 1) 00996 XP_AH (:) = XAH (:, 1) 00997 XP_BH (:) = XBH (:, 1) 00998 XP_DMAX (:) = XDMAX (:, 1) 00999 END IF 01000 ! 01001 IF(CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 01002 TP_SEED (:) = TSEED (:,1) 01003 TP_REAP (:) = TREAP (:,1) 01004 XP_IRRIG (:) = XIRRIG (:,1) 01005 XP_WATSUP (:) = XWATSUP (:,1) 01006 IF (LAGRIP) THEN 01007 XP_LIRRIDAY (:) = LIRRIDAY (:,1) 01008 XP_THRESHOLD(:) = XTHRESHOLDSPT(:,1) 01009 XP_LIRRIGATE(:) = LIRRIGATE (:,1) 01010 END IF 01011 ENDIF 01012 ! 01013 IF(CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 01014 XP_CE_NITRO (:) = XCE_NITRO (:,1) 01015 XP_CF_NITRO (:) = XCF_NITRO (:,1) 01016 XP_CNA_NITRO (:) = XCNA_NITRO (:,1) 01017 XP_BSLAI_NITRO (:) = XBSLAI_NITRO (:,1) 01018 END IF 01019 ! 01020 IF (CPHOTO=='NCB') THEN 01021 XP_INCREASE (:,:) = XINCREASE (:,:,1) 01022 XP_TAU_WOOD (:) = XTAU_WOOD (:,1) 01023 END IF 01024 ! 01025 IF (CRESPSL=='CNT') THEN 01026 XP_LITTER (:,:,:) = XLITTER (:,:,:,1) 01027 XP_SOILCARB (:,:) = XSOILCARB (:,:,1) 01028 XP_LIGNIN_STRUC (:,:) = XLIGNIN_STRUC (:,:,1) 01029 XP_TURNOVER (:,:) = XTURNOVER (:,:,1) 01030 END IF 01031 ! 01032 IF (CRAIN=='SGH') THEN 01033 XP_MUF(:)=XMUF(:) 01034 ENDIF 01035 ! 01036 !------------------------------------------------------------------------ 01037 ELSE 01038 !------------------------------------------------------------------------ 01039 ! 01040 DO JJ=1,KSIZE 01041 JI = KMASK(JJ) 01042 XP_Z0_O_Z0H (JJ) = XZ0_O_Z0H (JI, KPATCH) 01043 XP_EMIS (JJ) = XEMIS (JI, KPATCH) 01044 XP_ALBNIR (JJ) = XALBNIR (JI, KPATCH) 01045 XP_ALBVIS (JJ) = XALBVIS (JI, KPATCH) 01046 XP_ALBUV (JJ) = XALBUV (JI, KPATCH) 01047 XP_ALBNIR_VEG (JJ) = XALBNIR_VEG (JI, KPATCH) 01048 XP_ALBVIS_VEG (JJ) = XALBVIS_VEG (JI, KPATCH) 01049 XP_ALBUV_VEG (JJ) = XALBUV_VEG (JI, KPATCH) 01050 XP_ALBNIR_SOIL (JJ) = XALBNIR_SOIL (JI, KPATCH) 01051 XP_ALBVIS_SOIL (JJ) = XALBVIS_SOIL (JI, KPATCH) 01052 XP_ALBUV_SOIL (JJ) = XALBUV_SOIL (JI, KPATCH) 01053 XP_Z0 (JJ) = XZ0 (JI, KPATCH) 01054 XP_WRMAX_CF (JJ) = XWRMAX_CF (JI, KPATCH) 01055 XP_GAMMA (JJ) = XGAMMA (JI, KPATCH) 01056 XP_CV (JJ) = XCV (JI, KPATCH) 01057 XP_RGL (JJ) = XRGL (JI, KPATCH) 01058 XP_RUNOFFD (JJ) = XRUNOFFD (JI, KPATCH) 01059 XP_Z0EFFIP (JJ) = XZ0EFFIP (JI, KPATCH) 01060 XP_Z0EFFIM (JJ) = XZ0EFFIM (JI, KPATCH) 01061 XP_Z0EFFJP (JJ) = XZ0EFFJP (JI, KPATCH) 01062 XP_Z0EFFJM (JJ) = XZ0EFFJM (JI, KPATCH) 01063 XP_WR (JJ) = XWR (JI, KPATCH) 01064 XP_LAI (JJ) = XLAI (JI, KPATCH) 01065 XP_RESA (JJ) = XRESA (JI, KPATCH) 01066 XP_CPS (JJ) = XPCPS (JI, KPATCH) 01067 XP_LVTT (JJ) = XPLVTT (JI, KPATCH) 01068 XP_LSTT (JJ) = XPLSTT (JI, KPATCH) 01069 XP_VEG (JJ) = XVEG (JI, KPATCH) 01070 XP_SNOWALB (JJ) = TSNOW%ALB (JI, KPATCH) 01071 XP_LE (JJ) = XLE (JI, KPATCH) 01072 XP_PSN (JJ) = XPSN (JI, KPATCH) 01073 XP_PSNG (JJ) = XPSNG (JI, KPATCH) 01074 XP_PSNV (JJ) = XPSNV (JI, KPATCH) 01075 XP_ALBNIR_DRY (JJ) = XALBNIR_DRY (JI) 01076 XP_ALBVIS_DRY (JJ) = XALBVIS_DRY (JI) 01077 XP_ALBUV_DRY (JJ) = XALBUV_DRY (JI) 01078 XP_ALBNIR_WET (JJ) = XALBNIR_WET (JI) 01079 XP_ALBVIS_WET (JJ) = XALBVIS_WET (JI) 01080 XP_ALBUV_WET (JJ) = XALBUV_WET (JI) 01081 XP_RUNOFFB (JJ) = XRUNOFFB (JI) 01082 XP_WDRAIN (JJ) = XWDRAIN (JI) 01083 XP_TAUICE (JJ) = XTAUICE (JI) 01084 XP_Z0REL (JJ) = XZ0REL (JI) 01085 XP_AOSIP (JJ) = XAOSIP (JI) 01086 XP_AOSIM (JJ) = XAOSIM (JI) 01087 XP_AOSJP (JJ) = XAOSJP (JI) 01088 XP_AOSJM (JJ) = XAOSJM (JI) 01089 XP_HO2IP (JJ) = XHO2IP (JI) 01090 XP_HO2IM (JJ) = XHO2IM (JI) 01091 XP_HO2JP (JJ) = XHO2JP (JI) 01092 XP_HO2JM (JJ) = XHO2JM (JI) 01093 XP_SSO_SLOPE (JJ) = XSSO_SLOPE (JI) 01094 XP_GAMMAT (JJ) = XGAMMAT (JI) 01095 XP_TDEEP (JJ) = XTDEEP (JI) 01096 XP_LAT (JJ) = XLAT (JI) 01097 XP_LON (JJ) = XLON (JI) 01098 XP_FSAT (JJ) = XFSAT (JI) 01099 ENDDO 01100 ! 01101 DO JK=1,NGROUND_LAYER 01102 DO JJ=1,KSIZE 01103 JI = KMASK(JJ) 01104 XP_CLAY (JJ,JK) = XCLAY (JI, JK) 01105 XP_SAND (JJ,JK) = XSAND (JI, JK) 01106 XP_WFC (JJ,JK) = XWFC (JI, JK) 01107 XP_WWILT (JJ,JK) = XWWILT (JI, JK) 01108 XP_WSAT (JJ,JK) = XWSAT (JI, JK) 01109 XP_CONDSAT (JJ,JK) = XCONDSAT (JI, JK, KPATCH) 01110 XP_DG (JJ,JK) = XDG (JI, JK, KPATCH) 01111 XP_WG (JJ,JK) = XWG (JI, JK, KPATCH) 01112 XP_WGI (JJ,JK) = XWGI (JI, JK, KPATCH) 01113 XP_MPOTSAT (JJ, JK) = XMPOTSAT (JI, JK) 01114 XP_BCOEF (JJ, JK) = XBCOEF (JI, JK) 01115 ENDDO 01116 ENDDO 01117 ! 01118 DO JJ=1,KSIZE 01119 JI = KMASK(JJ) 01120 XP_KSAT_ICE(JJ) = XKSAT_ICE(JI,KPATCH) 01121 XP_D_ICE (JJ) = XD_ICE (JI,KPATCH) 01122 END DO 01123 ! 01124 DO JK=1,NVEGTYPE 01125 DO JJ=1,KSIZE 01126 JI = KMASK(JJ) 01127 XP_VEGTYPE_PATCH(JJ,JK) = XVEGTYPE_PATCH(JI, JK, KPATCH) 01128 ENDDO 01129 ENDDO 01130 ! 01131 DO JK=1,SIZE(XTG,2) 01132 DO JJ=1,KSIZE 01133 JI = KMASK(JJ) 01134 XP_TG (JJ,JK) = XTG (JI, JK, KPATCH) 01135 ENDDO 01136 ENDDO 01137 ! 01138 DO JK=1,TSNOW%NLAYER 01139 DO JJ=1,KSIZE 01140 JI = KMASK(JJ) 01141 XP_SNOWSWE (JJ,JK) = TSNOW%WSNOW (JI, JK, KPATCH) 01142 XP_SNOWRHO (JJ,JK) = TSNOW%RHO (JI, JK, KPATCH) 01143 ENDDO 01144 ENDDO 01145 ! 01146 DO JK=1,SIZE(XP_DIR_ALB_WITH_SNOW,2) 01147 DO JJ=1,KSIZE 01148 JI = KMASK(JJ) 01149 XP_DIR_ALB_WITH_SNOW (JJ,JK)= XDIR_ALB_WITH_SNOW(JI,JK,KPATCH) 01150 XP_SCA_ALB_WITH_SNOW (JJ,JK)= XSCA_ALB_WITH_SNOW(JI,JK,KPATCH) 01151 ENDDO 01152 ENDDO 01153 ! 01154 IF (LFLOOD)THEN 01155 DO JJ=1,KSIZE 01156 JI = KMASK(JJ) 01157 XP_FFLOOD (JJ)=XFFLOOD (JI) 01158 XP_PIFLOOD (JJ)=XPIFLOOD (JI) 01159 XP_Z0FLOOD (JJ)=XZ0_FLOOD(JI,KPATCH) 01160 XP_FF (JJ)=XFF (JI,KPATCH) 01161 XP_FFG (JJ)=XFFG (JI,KPATCH) 01162 XP_FFV (JJ)=XFFV (JI,KPATCH) 01163 XP_FFROZEN (JJ)=XFFROZEN (JI,KPATCH) 01164 XP_ALBF (JJ)=XALBF (JI,KPATCH) 01165 XP_EMISF (JJ)=XEMISF (JI,KPATCH) 01166 END DO 01167 ELSE 01168 XP_FFLOOD (:) = 0.0 01169 XP_PIFLOOD (:) = 0.0 01170 XP_FF (:) = 0.0 01171 XP_FFG (:) = 0.0 01172 XP_FFROZEN (:) = 0.0 01173 XP_FFV (:) = 0.0 01174 XP_ALBF (:) = 0.0 01175 XP_EMISF (:) = 0.0 01176 ENDIF 01177 ! 01178 IF(TSNOW%SCHEME=='EBA') THEN 01179 DO JJ=1,KSIZE 01180 JI = KMASK(JJ) 01181 XP_PSNV_A (JJ) = XPSNV_A(JI, KPATCH) 01182 END DO 01183 END IF 01184 ! 01185 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 01186 DO JK=1,SIZE(XP_SNOWHEAT,2) 01187 DO JJ=1,KSIZE 01188 JI = KMASK(JJ) 01189 XP_SNOWHEAT (JJ, JK) = TSNOW%HEAT (JI, JK, KPATCH) 01190 ENDDO 01191 END DO 01192 END IF 01193 ! 01194 IF (TSNOW%SCHEME=='CRO') THEN 01195 DO JK=1,SIZE(XP_SNOWGRAN1,2) 01196 DO JJ=1,KSIZE 01197 JI = KMASK(JJ) 01198 XP_SNOWGRAN1 (JJ, JK) = TSNOW%GRAN1 (JI, JK, KPATCH) 01199 XP_SNOWGRAN2 (JJ, JK) = TSNOW%GRAN2 (JI, JK, KPATCH) 01200 XP_SNOWHIST (JJ, JK) = TSNOW%HIST (JI, JK, KPATCH) 01201 XP_SNOWAGE (JJ, JK) = TSNOW%AGE (JI, JK, KPATCH) 01202 ENDDO 01203 END DO 01204 END IF 01205 ! 01206 IF(LGLACIER)THEN 01207 DO JJ=1,KSIZE 01208 JI = KMASK(JJ) 01209 XP_ICE_STO(JJ) = XICE_STO (JI,KPATCH) 01210 ENDDO 01211 ENDIF 01212 ! 01213 IF (CSCOND=='PL98'.OR.CISBA=='DIF') THEN 01214 DO JK=1,SIZE(XHCAPSOIL,2) 01215 DO JJ=1,KSIZE 01216 JI = KMASK(JJ) 01217 XP_HCAPSOIL (JJ, JK) = XHCAPSOIL (JI, JK) 01218 ENDDO 01219 ENDDO 01220 END IF 01221 ! 01222 IF (CSCOND=='PL98') THEN 01223 DO JK=1,SIZE(XCONDDRY,2) 01224 DO JJ=1,KSIZE 01225 JI = KMASK(JJ) 01226 XP_CONDDRY (JJ, JK) = XCONDDRY (JI, JK) 01227 XP_CONDSLD (JJ, JK) = XCONDSLD (JI, JK) 01228 ENDDO 01229 ENDDO 01230 END IF 01231 ! 01232 IF (CISBA=='2-L' .OR. CISBA=='3-L') THEN 01233 DO JJ=1,KSIZE 01234 JI = KMASK(JJ) 01235 XP_C4B (JJ) = XC4B (JI) 01236 XP_ACOEF (JJ) = XACOEF (JI) 01237 XP_PCOEF (JJ) = XPCOEF (JI) 01238 XP_CGSAT (JJ) = XCGSAT (JI) 01239 XP_C1SAT (JJ) = XC1SAT (JI, KPATCH) 01240 XP_C2REF (JJ) = XC2REF (JI, KPATCH) 01241 XP_C4REF (JJ) = XC4REF (JI, KPATCH) 01242 ENDDO 01243 ! 01244 DO JK=1,SIZE(XC3,2) 01245 DO JJ=1,KSIZE 01246 JI = KMASK(JJ) 01247 XP_C3 (JJ,JK) = XC3 (JI, JK, KPATCH) 01248 ENDDO 01249 ENDDO 01250 END IF 01251 ! 01252 DO JK=1,SIZE(XBCOEF,2) 01253 DO JJ=1,KSIZE 01254 JI = KMASK(JJ) 01255 XP_MPOTSAT (JJ, JK) = XMPOTSAT (JI, JK) 01256 XP_BCOEF (JJ, JK) = XBCOEF (JI, JK) 01257 ENDDO 01258 ENDDO 01259 ! 01260 IF (CISBA=='DIF') THEN 01261 DO JK=1,SIZE(XROOTFRAC,2) 01262 DO JJ=1,KSIZE 01263 JI = KMASK(JJ) 01264 XP_ROOTFRAC (JJ, JK) = XROOTFRAC (JI, JK, KPATCH) 01265 XP_DZG (JJ, JK) = XDZG (JI, JK, KPATCH) 01266 XP_DZDIF (JJ, JK) = XDZDIF (JI, JK, KPATCH) 01267 XP_SOILWGHT (JJ, JK) = XSOILWGHT (JI, JK, KPATCH) 01268 ENDDO 01269 ENDDO 01270 DO JJ=1,KSIZE 01271 JI = KMASK(JJ) 01272 NK_WG_LAYER (JJ) = NWG_LAYER (JI,KPATCH) 01273 ENDDO 01274 ENDIF 01275 ! 01276 IF (LTR_ML) THEN 01277 DO JJ=1,KSIZE 01278 JI = KMASK(JJ) 01279 XP_FAPARC (JJ) = XFAPARC (JI, KPATCH) 01280 XP_FAPIRC (JJ) = XFAPIRC (JI, KPATCH) 01281 XP_LAI_EFFC (JJ) = XLAI_EFFC (JI, KPATCH) 01282 XP_MUS (JJ) = XMUS (JI, KPATCH) 01283 ENDDO 01284 ENDIF 01285 ! 01286 IF (CPHOTO=='NON') THEN 01287 DO JJ=1,KSIZE 01288 JI = KMASK(JJ) 01289 XP_RSMIN (JJ) = XRSMIN (JI, KPATCH) 01290 END DO 01291 END IF 01292 ! 01293 IF (CPHOTO/='NON') THEN 01294 DO JJ=1,KSIZE 01295 JI = KMASK(JJ) 01296 XP_BSLAI (JJ) = XBSLAI (JI, KPATCH) 01297 XP_LAIMIN (JJ) = XLAIMIN (JI, KPATCH) 01298 XP_SEFOLD (JJ) = XSEFOLD (JI, KPATCH) 01299 XP_H_TREE (JJ) = XH_TREE (JI, KPATCH) 01300 XP_ANMAX (JJ) = XANMAX (JI, KPATCH) 01301 XP_FZERO (JJ) = XFZERO (JI, KPATCH) 01302 XP_EPSO (JJ) = XEPSO (JI, KPATCH) 01303 XP_GAMM (JJ) = XGAMM (JI, KPATCH) 01304 XP_QDGAMM (JJ) = XQDGAMM (JI, KPATCH) 01305 XP_GMES (JJ) = XGMES (JI, KPATCH) 01306 XP_RE25 (JJ) = XRE25 (JI, KPATCH) 01307 XP_QDGMES (JJ) = XQDGMES (JI, KPATCH) 01308 XP_T1GMES (JJ) = XT1GMES (JI, KPATCH) 01309 XP_T2GMES (JJ) = XT2GMES (JI, KPATCH) 01310 XP_AMAX (JJ) = XAMAX (JI, KPATCH) 01311 XP_QDAMAX (JJ) = XQDAMAX (JI, KPATCH) 01312 XP_T1AMAX (JJ) = XT1AMAX (JI, KPATCH) 01313 XP_T2AMAX (JJ) = XT2AMAX (JI, KPATCH) 01314 XP_AN (JJ) = XAN (JI, KPATCH) 01315 XP_ANDAY (JJ) = XANDAY (JI, KPATCH) 01316 XP_ANFM (JJ) = XANFM (JI, KPATCH) 01317 XP_GC (JJ) = XGC (JI, KPATCH) 01318 ENDDO 01319 DO JK=1,SIZE(XBIOMASS,2) 01320 DO JJ=1,KSIZE 01321 JI = KMASK(JJ) 01322 XP_BIOMASS (JJ,JK) = XBIOMASS (JI,JK,KPATCH) 01323 XP_RESP_BIOMASS (JJ,JK) = XRESP_BIOMASS (JI,JK,KPATCH) 01324 ENDDO 01325 END DO 01326 END IF 01327 ! 01328 IF (CPHOTO=='AST' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 01329 DO JJ=1,KSIZE 01330 JI = KMASK(JJ) 01331 LP_STRESS (JJ) = LSTRESS (JI, KPATCH) 01332 XP_F2I (JJ) = XF2I (JI, KPATCH) 01333 XP_AH (JJ) = XAH (JI, KPATCH) 01334 XP_BH (JJ) = XBH (JI, KPATCH) 01335 XP_DMAX (JJ) = XDMAX (JI, KPATCH) 01336 END DO 01337 END IF 01338 ! 01339 IF(CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 01340 DO JJ=1,KSIZE 01341 JI = KMASK(JJ) 01342 TP_SEED (JJ) = TSEED (JI,KPATCH) 01343 TP_REAP (JJ) = TREAP (JI,KPATCH) 01344 XP_IRRIG (JJ) = XIRRIG (JI,KPATCH) 01345 XP_WATSUP (JJ) = XWATSUP (JI,KPATCH) 01346 ENDDO 01347 IF (LAGRIP) THEN 01348 DO JJ=1,KSIZE 01349 XP_LIRRIDAY (JJ) = LIRRIDAY (JI,KPATCH) 01350 XP_THRESHOLD(JJ) = XTHRESHOLDSPT(JI,KPATCH) 01351 XP_LIRRIGATE(JJ) = LIRRIGATE (JI,KPATCH) 01352 ENDDO 01353 ENDIF 01354 ENDIF 01355 ! 01356 IF(CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 01357 DO JJ=1,KSIZE 01358 JI = KMASK(JJ) 01359 XP_CE_NITRO (JJ) = XCE_NITRO (JI,KPATCH) 01360 XP_CF_NITRO (JJ) = XCF_NITRO (JI,KPATCH) 01361 XP_CNA_NITRO (JJ) = XCNA_NITRO (JI,KPATCH) 01362 XP_BSLAI_NITRO (JJ) = XBSLAI_NITRO (JI,KPATCH) 01363 END DO 01364 END IF 01365 ! 01366 IF (CPHOTO=='NCB') THEN 01367 DO JK=1,SIZE(XINCREASE,2) 01368 DO JJ=1,KSIZE 01369 JI = KMASK(JJ) 01370 XP_INCREASE (JJ,JK) = XINCREASE (JI,JK,KPATCH) 01371 ENDDO 01372 END DO 01373 DO JJ=1,KSIZE 01374 JI = KMASK(JJ) 01375 XP_TAU_WOOD (JJ) = XTAU_WOOD (JI,KPATCH) 01376 END DO 01377 END IF 01378 ! 01379 IF (CRESPSL=='CNT') THEN 01380 DO JL=1,SIZE(XP_LITTER,3) 01381 DO JK=1,SIZE(XP_LITTER,2) 01382 DO JJ=1,KSIZE 01383 JI = KMASK(JJ) 01384 XP_LITTER (JJ,JK,JL) = XLITTER (JI,JK,JL,KPATCH) 01385 ENDDO 01386 ENDDO 01387 ENDDO 01388 DO JK=1,SIZE(XP_SOILCARB,2) 01389 DO JJ=1,KSIZE 01390 JI = KMASK(JJ) 01391 XP_SOILCARB (JJ,JK) = XSOILCARB (JI,JK,KPATCH) 01392 ENDDO 01393 ENDDO 01394 DO JK=1,SIZE(XP_LIGNIN_STRUC,2) 01395 DO JJ=1,KSIZE 01396 JI = KMASK(JJ) 01397 XP_LIGNIN_STRUC (JJ,JK) = XLIGNIN_STRUC (JI,JK,KPATCH) 01398 ENDDO 01399 ENDDO 01400 DO JK=1,SIZE(XP_TURNOVER,2) 01401 DO JJ=1,KSIZE 01402 JI = KMASK(JJ) 01403 XP_TURNOVER (JJ,JK) = XTURNOVER (JI,JK,KPATCH) 01404 ENDDO 01405 ENDDO 01406 END IF 01407 ! 01408 IF (CRAIN=='SGH')THEN 01409 DO JJ=1,KSIZE 01410 JI = KMASK(JJ) 01411 XP_MUF(JJ) = XMUF(JI) 01412 END DO 01413 ENDIF 01414 ! 01415 !------------------------------------------------------------------------ 01416 END IF 01417 IF (LHOOK) CALL DR_HOOK('PACK_ISBA_PATCH_N',1,ZHOOK_HANDLE) 01418 !------------------------------------------------------------------------ 01419 END SUBROUTINE PACK_ISBA_PATCH_n