SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/pack_diag_patch_get_sizen.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE PACK_DIAG_PATCH_GET_SIZE_n
00003 !##############################################
00004 !
00005 !!****  *PACK_DIAG_PATCH_GET_SIZE_n* - packs ISBA diagnostics
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    REFERENCE
00014 !!    ---------
00015 !!      
00016 !!
00017 !!    AUTHOR
00018 !!    ------
00019 !!     V. Masson 
00020 !!
00021 !!    MODIFICATIONS
00022 !!    -------------
00023 !!      Original    01/2004
00024 !!      Modified    10/2004 by P. Le Moigne: Halstead coefficient
00025 !!      Modified    10/2005 by P. Le Moigne: Allocation (not EBA case)
00026 !!      Modified       2008 by B. Decharme : Allocation for the floodplains
00027 !!      Modified      04-09 by A.L. Gibelin : Add carbon diagnostics
00028 !!
00029 !!------------------------------------------------------------------
00030 !
00031 USE MODD_ISBA_n,            ONLY : TSNOW, CPHOTO, LTR_ML, LGLACIER
00032 USE MODD_DIAG_ISBA_n,       ONLY : N2M
00033 USE MODD_DIAG_MISC_ISBA_n,  ONLY : LSURF_MISC_BUDGET
00034 USE MODD_DIAG_EVAP_ISBA_n,  ONLY : LWATER_BUDGET
00035 !
00036 USE MODD_PACK_DIAG_ISBA,  ONLY : NSIZE_SIMPLE, NSIZE_GROUND, NSIZE_SNOW, NSIZE_KSW, &
00037                                  NSIZE_ABC, NSIZE_0, NSIZE_00
00038 !
00039 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00040 USE PARKIND1  ,ONLY : JPRB
00041 !
00042 IMPLICIT NONE
00043 !
00044 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00045 !
00046 !------------------------------------------------------------------------
00047 IF (LHOOK) CALL DR_HOOK('PACK_DIAG_PATCH_GET_SIZE_N',0,ZHOOK_HANDLE)
00048 !
00049 NSIZE_SIMPLE=57
00050 NSIZE_GROUND=0
00051 NSIZE_SNOW=0
00052 NSIZE_KSW=2
00053 NSIZE_ABC=0
00054 NSIZE_0=0
00055 NSIZE_00=0
00056 !
00057 IF (TSNOW%SCHEME=='3-L' .OR. TSNOW%SCHEME=='CRO') THEN
00058   NSIZE_SIMPLE=NSIZE_SIMPLE+22
00059   NSIZE_SNOW=NSIZE_SNOW+2
00060 ELSE
00061   NSIZE_0=NSIZE_0+22 
00062   NSIZE_00=NSIZE_00+2 
00063 ENDIF
00064 !
00065 IF(TSNOW%SCHEME/='EBA') THEN
00066   NSIZE_SNOW=NSIZE_SNOW+1 
00067 ELSE
00068   NSIZE_00=NSIZE_00+1 
00069 ENDIF
00070 !
00071 IF(TSNOW%SCHEME=='EBA') THEN
00072   NSIZE_SIMPLE=NSIZE_SIMPLE+2 
00073 ELSE
00074   NSIZE_0=NSIZE_0+2 
00075 ENDIF
00076 !
00077 IF (LTR_ML) THEN
00078   NSIZE_SIMPLE=NSIZE_SIMPLE+4
00079 ELSE
00080   NSIZE_0=NSIZE_0+4
00081 ENDIF
00082 !
00083 IF (CPHOTO/='NON') THEN
00084   NSIZE_ABC=NSIZE_ABC+1 
00085 ELSE
00086   NSIZE_00=NSIZE_00+1
00087 ENDIF
00088 !
00089 IF (N2M>=1) THEN
00090   NSIZE_SIMPLE=NSIZE_SIMPLE+5 
00091 ELSE
00092   NSIZE_0=NSIZE_0+5 
00093 ENDIF
00094 !
00095 IF (LSURF_MISC_BUDGET) THEN
00096   NSIZE_GROUND=NSIZE_GROUND+2 
00097   NSIZE_SIMPLE=NSIZE_SIMPLE+2 
00098 ELSE
00099   NSIZE_00=NSIZE_00+2 
00100   NSIZE_0=NSIZE_0+2 
00101 ENDIF
00102 !
00103 IF(LGLACIER)THEN
00104   NSIZE_SIMPLE=NSIZE_SIMPLE+1 
00105 ELSE
00106   NSIZE_0=NSIZE_0+1 
00107 ENDIF
00108 !
00109 IF(LWATER_BUDGET)THEN
00110   NSIZE_SIMPLE=NSIZE_SIMPLE+5 
00111 ELSE
00112   NSIZE_0=NSIZE_0+5 
00113 ENDIF
00114 !
00115 IF (LHOOK) CALL DR_HOOK('PACK_DIAG_PATCH_GET_SIZE_N',1,ZHOOK_HANDLE)
00116 !------------------------------------------------------------------------
00117 !
00118 END SUBROUTINE PACK_DIAG_PATCH_GET_SIZE_n