SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PACK_ISBA_PATCH_GET_SIZE_n 00003 !############################################## 00004 ! 00005 ! 00006 !!**** *PACK_ISBA_PATCH_GET_SIZE_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 ! 00038 USE MODD_ISBA_n, ONLY : TSNOW, LGLACIER, CSCOND, CISBA, CPHOTO, CRESPSL, CRAIN, LTR_ML 00039 USE MODD_AGRI, ONLY : LAGRIP 00040 ! 00041 USE MODD_PACK_ISBA, ONLY : NSIZE_LSIMPLE, NSIZE_L0, NSIZE_TSIMPLE, NSIZE_T0, NSIZE_SIMPLE, & 00042 NSIZE_GROUND, NSIZE_VEGTYPE, NSIZE_TG, NSIZE_SNOW, NSIZE_ALB, & 00043 NSIZE_2, NSIZE_BIOMASS, NSIZE_SOILCARB, NSIZE_LITTLEVS, & 00044 NSIZE_LITTER, NSIZE_0, NSIZE_00, NSIZE_000, NSIZE_01, & 00045 NSIZE_NSIMPLE, NSIZE_N0 00046 ! 00047 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00048 USE PARKIND1 ,ONLY : JPRB 00049 ! 00050 IMPLICIT NONE 00051 ! 00052 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00053 !------------------------------------------------------------------------ 00054 IF (LHOOK) CALL DR_HOOK('PACK_ISBA_PATCH_GET_SIZE_N',0,ZHOOK_HANDLE) 00055 ! 00056 NSIZE_LSIMPLE=0 00057 NSIZE_L0=0 00058 ! 00059 NSIZE_NSIMPLE=0 00060 NSIZE_N0=0 00061 ! 00062 NSIZE_TSIMPLE=0 00063 NSIZE_T0=0 00064 ! 00065 NSIZE_SIMPLE=68 00066 NSIZE_GROUND=11 00067 NSIZE_VEGTYPE=1 00068 NSIZE_TG=1 00069 NSIZE_SNOW=2 00070 NSIZE_ALB=2 00071 NSIZE_2=0 00072 NSIZE_BIOMASS=0 00073 NSIZE_LITTER=0 00074 NSIZE_SOILCARB=0 00075 NSIZE_LITTLEVS=0 00076 ! 00077 NSIZE_0=0 00078 NSIZE_00=0 00079 NSIZE_000=0 00080 NSIZE_01=0 00081 ! 00082 IF (TSNOW%SCHEME=='EBA') THEN 00083 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00084 ELSE 00085 NSIZE_0=NSIZE_0+1 00086 ENDIF 00087 ! 00088 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN 00089 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00090 NSIZE_SNOW=NSIZE_SNOW+1 00091 ELSE 00092 NSIZE_00=NSIZE_00+1 00093 NSIZE_0=NSIZE_0+1 00094 ENDIF 00095 ! 00096 IF(TSNOW%SCHEME=='CRO') THEN 00097 NSIZE_SNOW=NSIZE_SNOW+4 00098 ELSE 00099 NSIZE_00=NSIZE_00+4 00100 ENDIF 00101 ! 00102 IF(LGLACIER) THEN 00103 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00104 ELSE 00105 NSIZE_0=NSIZE_0+1 00106 ENDIF 00107 ! 00108 IF (CSCOND=='PL98'.OR.CISBA=='DIF') THEN 00109 NSIZE_GROUND=NSIZE_GROUND+1 00110 ELSE 00111 NSIZE_01=NSIZE_01+1 00112 ENDIF 00113 ! 00114 IF (CSCOND=='PL98') THEN 00115 NSIZE_GROUND=NSIZE_GROUND+2 00116 ELSE 00117 NSIZE_01=NSIZE_01+2 00118 ENDIF 00119 ! 00120 IF (CISBA=='2-L' .OR. CISBA=='3-L') THEN 00121 NSIZE_SIMPLE=NSIZE_SIMPLE+7 00122 NSIZE_2=NSIZE_2+1 00123 ELSE 00124 NSIZE_0=NSIZE_0+7 00125 NSIZE_00=NSIZE_00+1 00126 ENDIF 00127 ! 00128 IF (CISBA=='DIF') THEN 00129 NSIZE_GROUND=NSIZE_GROUND+4 00130 NSIZE_NSIMPLE=NSIZE_NSIMPLE+1 00131 ELSE 00132 NSIZE_01=NSIZE_01+4 00133 NSIZE_N0=NSIZE_N0+1 00134 ENDIF 00135 ! 00136 IF (LTR_ML) THEN 00137 NSIZE_SIMPLE = NSIZE_SIMPLE+4 00138 ELSE 00139 NSIZE_0 = NSIZE_0+4 00140 ENDIF 00141 ! 00142 IF (CPHOTO=='NON') THEN 00143 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00144 ELSE 00145 NSIZE_0 = NSIZE_0+1 00146 ENDIF 00147 ! 00148 IF (CPHOTO/='NON') THEN 00149 NSIZE_SIMPLE=NSIZE_SIMPLE+23 00150 NSIZE_BIOMASS=NSIZE_BIOMASS+2 00151 ELSE 00152 NSIZE_0=NSIZE_0+23 00153 NSIZE_00=NSIZE_00+2 00154 ENDIF 00155 ! 00156 IF (CPHOTO=='AST' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00157 NSIZE_LSIMPLE=NSIZE_LSIMPLE+1 00158 NSIZE_SIMPLE=NSIZE_SIMPLE+4 00159 ELSE 00160 NSIZE_L0=NSIZE_L0+1 00161 NSIZE_0=NSIZE_0+4 00162 ENDIF 00163 ! 00164 IF (CPHOTO=='LAI' .OR. CPHOTO=='LST' .OR. CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00165 NSIZE_SIMPLE=NSIZE_SIMPLE+2 00166 NSIZE_TSIMPLE=NSIZE_TSIMPLE+2 00167 IF (LAGRIP) THEN 00168 NSIZE_LSIMPLE=NSIZE_LSIMPLE+2 00169 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00170 ELSE 00171 NSIZE_L0=NSIZE_L0+2 00172 NSIZE_0=NSIZE_0+1 00173 ENDIF 00174 ELSE 00175 NSIZE_L0=NSIZE_L0+2 00176 NSIZE_0=NSIZE_0+3 00177 NSIZE_T0=NSIZE_T0+2 00178 ENDIF 00179 ! 00180 IF(CPHOTO=='NIT' .OR. CPHOTO=='NCB') THEN 00181 NSIZE_SIMPLE=NSIZE_SIMPLE+4 00182 ELSE 00183 NSIZE_0=NSIZE_0+4 00184 ENDIF 00185 ! 00186 IF (CPHOTO=='NCB') THEN 00187 NSIZE_BIOMASS=NSIZE_BIOMASS+1 00188 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00189 ELSE 00190 NSIZE_00=NSIZE_00+1 00191 NSIZE_0=NSIZE_0+1 00192 ENDIF 00193 ! 00194 IF (CRESPSL=='CNT') THEN 00195 NSIZE_LITTER=NSIZE_LITTER+1 00196 NSIZE_SOILCARB=NSIZE_SOILCARB+1 00197 NSIZE_LITTLEVS=NSIZE_LITTLEVS+1 00198 NSIZE_BIOMASS=NSIZE_BIOMASS+1 00199 ELSE 00200 NSIZE_000=NSIZE_000+1 00201 NSIZE_00=NSIZE_00+3 00202 ENDIF 00203 ! 00204 IF (CRAIN=='SGH') THEN 00205 NSIZE_SIMPLE=NSIZE_SIMPLE+1 00206 ELSE 00207 NSIZE_0=NSIZE_0+1 00208 ENDIF 00209 ! 00210 IF (LHOOK) CALL DR_HOOK('PACK_ISBA_PATCH_GET_SIZE_N',1,ZHOOK_HANDLE) 00211 !------------------------------------------------------------------------ 00212 END SUBROUTINE PACK_ISBA_PATCH_GET_SIZE_n