SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/pack_isba_patch_get_sizen.F90
Go to the documentation of this file.
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