SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
pack_diag_patch_get_sizen.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6 SUBROUTINE pack_diag_patch_get_size_n (DGEI, DGI, DGMI, I, PKDI, &
7  kpatch)
8 !##############################################
9 !
10 !!**** *PACK_DIAG_PATCH_GET_SIZE_n* - packs ISBA diagnostics
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! V. Masson
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !! Modified 10/2004 by P. Le Moigne: Halstead coefficient
30 !! Modified 10/2005 by P. Le Moigne: Allocation (not EBA case)
31 !! Modified 2008 by B. Decharme : Allocation for the floodplains
32 !! Modified 04-09 by A.L. Gibelin : Add carbon diagnostics
33 !! Modified 10-14 by P. Samuelsson: MEB
34 !!
35 !!------------------------------------------------------------------
36 !
37 !
38 !
39 !
41 USE modd_diag_isba_n, ONLY : diag_isba_t
43 USE modd_isba_n, ONLY : isba_t
45 !
46 USE yomhook ,ONLY : lhook, dr_hook
47 USE parkind1 ,ONLY : jprb
48 !
49 IMPLICIT NONE
50 !
51 !
52 TYPE(diag_evap_isba_t), INTENT(INOUT) :: dgei
53 TYPE(diag_isba_t), INTENT(INOUT) :: dgi
54 TYPE(diag_misc_isba_t), INTENT(INOUT) :: dgmi
55 TYPE(isba_t), INTENT(INOUT) :: i
56 TYPE(pack_diag_isba_t), INTENT(INOUT) :: pkdi
57 !
58 REAL(KIND=JPRB) :: zhook_handle
59 !
60 INTEGER, INTENT(IN) :: kpatch
61 !------------------------------------------------------------------------
62 IF (lhook) CALL dr_hook('PACK_DIAG_PATCH_GET_SIZE_N',0,zhook_handle)
63 !
64 pkdi%NSIZE_SIMPLE=59
65 pkdi%NSIZE_GROUND=0
66 pkdi%NSIZE_SNOW=0
67 pkdi%NSIZE_KSW=2
68 pkdi%NSIZE_ABC=0
69 pkdi%NSIZE_0=0
70 pkdi%NSIZE_00=0
71 !
72 IF (i%TSNOW%SCHEME=='3-L' .OR. i%TSNOW%SCHEME=='CRO') THEN
73  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+25
74  pkdi%NSIZE_SNOW=pkdi%NSIZE_SNOW+2
75 ELSE
76  pkdi%NSIZE_0=pkdi%NSIZE_0+25
77  pkdi%NSIZE_00=pkdi%NSIZE_00+2
78 ENDIF
79 !
80 IF(i%TSNOW%SCHEME/='EBA') THEN
81  pkdi%NSIZE_SNOW=pkdi%NSIZE_SNOW+1
82 ELSE
83  pkdi%NSIZE_00=pkdi%NSIZE_00+1
84 ENDIF
85 !
86 IF(i%TSNOW%SCHEME=='EBA') THEN
87  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+2
88 ELSE
89  pkdi%NSIZE_0=pkdi%NSIZE_0+2
90 ENDIF
91 !
92 IF (i%LTR_ML) THEN
93  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+4
94 ELSE
95  pkdi%NSIZE_0=pkdi%NSIZE_0+4
96 ENDIF
97 !
98 IF (i%CPHOTO/='NON') THEN
99  pkdi%NSIZE_ABC=pkdi%NSIZE_ABC+1
100 ELSE
101  pkdi%NSIZE_00=pkdi%NSIZE_00+1
102 ENDIF
103 !
104 IF (dgi%N2M>=1) THEN
105  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+5
106 ELSE
107  pkdi%NSIZE_0=pkdi%NSIZE_0+5
108 ENDIF
109 !
110 IF (dgmi%LSURF_MISC_BUDGET) THEN
111  pkdi%NSIZE_GROUND=pkdi%NSIZE_GROUND+2
112  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+2
113 ELSE
114  pkdi%NSIZE_00=pkdi%NSIZE_00+2
115  pkdi%NSIZE_0=pkdi%NSIZE_0+2
116 ENDIF
117 !
118 IF(i%LGLACIER)THEN
119  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+1
120 ELSE
121  pkdi%NSIZE_0=pkdi%NSIZE_0+1
122 ENDIF
123 !
124 ! MEB STUFF START
125 IF (i%LMEB_PATCH(kpatch))THEN
126 ! NSIZE_SIMPLE=NSIZE_SIMPLE+27
127  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+29
128 ELSE
129 ! NSIZE_0=NSIZE_0+27
130  pkdi%NSIZE_0=pkdi%NSIZE_0+29
131 ENDIF
132 pkdi%NSIZE_0=pkdi%NSIZE_0+2
133 ! MEB STUFF END
134 !
135 IF(dgei%LWATER_BUDGET)THEN
136  pkdi%NSIZE_SIMPLE=pkdi%NSIZE_SIMPLE+5
137 ELSE
138  pkdi%NSIZE_0=pkdi%NSIZE_0+5
139 ENDIF
140 !
141 IF (lhook) CALL dr_hook('PACK_DIAG_PATCH_GET_SIZE_N',1,zhook_handle)
142 !------------------------------------------------------------------------
143 !
144 END SUBROUTINE pack_diag_patch_get_size_n
subroutine pack_diag_patch_get_size_n(DGEI, DGI, DGMI, I, PKDI, KPATCH)