SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_diag_misc_isban.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 ! ############################
7 ! ############################
8 !
9 !!**** *MODD_DIAG_MISC_ISBA - declaration of packed surface parameters for ISBA scheme
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 !!
15 !!** IMPLICIT ARGUMENTS
16 !! ------------------
17 !! None
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !! AUTHOR
23 !! ------
24 !! P. Le Moigne *Meteo France*
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 07/10/04
29 !! A.L. Gibelin 04/2009 : Add respiration diagnostics
30 !! A.L. Gibelin 05/2009 : Add carbon spinup
31 !! A.L. Gibelin 07/2009 : Suppress RDK and transform GPP as a diagnostic
32 !! B. Decharme 05/2012 : Carbon fluxes in diag_evap
33 !! B. Decharme 07/2012 : New diag for DIF under LSURF_MISC_DIF key
34 !! F2 stress
35 !! Root zone swi, wg and wgi
36 !! swi, wg and wgi comparable to ISBA-FR-DG2 and DG3 layers
37 !! B. Decharme 10/2012 : New diag for DIF
38 !! active layer thickness over permafrost area
39 !! frozen layer thickness over non-permafrost area
40 !!
41 !-------------------------------------------------------------------------------
42 !
43 !* 0. DECLARATIONS
44 ! ------------
45 !
46 !
47 !
48 USE yomhook ,ONLY : lhook, dr_hook
49 USE parkind1 ,ONLY : jprb
50 !
51 IMPLICIT NONE
52 
54 !------------------------------------------------------------------------------
55 !
56  LOGICAL :: LSURF_MISC_BUDGET ! flag for miscellaneous terms of isba scheme
57  LOGICAL :: LSURF_DIAG_ALBEDO ! flag to write out diagnostic albedo
58  LOGICAL :: LSURF_MISC_DIF ! flag for miscellaneous terms of isba-dif scheme
59 !
60 !* variables for each patch
61 !
62  REAL, POINTER, DIMENSION(:,:) :: XHV ! Halstead coefficient
63 !
64  REAL, POINTER, DIMENSION(:,:,:) :: XSWI ! Soil wetness index
65  REAL, POINTER, DIMENSION(:,:,:) :: XTSWI ! Total soil wetness index
66 !
67  REAL, POINTER, DIMENSION(:,:) :: XALT ! Active layer thickness in permafrost area
68  REAL, POINTER, DIMENSION(:,:) :: XFLT ! Frozen layer thickness in non-permmafrost area
69 !
70  REAL, POINTER, DIMENSION(:,:,:) :: XSNOWLIQ ! snow liquid water profile (ISBA-ES:3-L)
71  REAL, POINTER, DIMENSION(:,:,:) :: XSNOWTEMP ! snow temperature profile (ISBA-ES:3-L)
72 !
73  REAL, POINTER, DIMENSION(:,:) :: XTWSNOW ! Total snow reservoir
74  REAL, POINTER, DIMENSION(:,:) :: XTDSNOW ! Total snow height
75  REAL, POINTER, DIMENSION(:,:) :: XTTSNOW ! Total snow temperature
76 !
77  REAL, POINTER, DIMENSION(:,:) :: XDPSNG ! Snow fraction over ground, diag at time t
78  REAL, POINTER, DIMENSION(:,:) :: XDPSNV ! Snow fraction over vegetation, diag at time t
79  REAL, POINTER, DIMENSION(:,:) :: XDPSN ! Total Snow fraction, diag at time t
80  REAL, POINTER, DIMENSION(:,:) :: XALBT ! Total Albedo
81 !
82  REAL, POINTER, DIMENSION(:,:) :: XDFSAT ! Topmodel/dt92 saturated fraction
83 !
84  REAL, POINTER, DIMENSION(:,:) :: XDFFG ! Flood fraction over ground, diag at time t
85  REAL, POINTER, DIMENSION(:,:) :: XDFFV ! Flood fraction over vegetation, diag at time t
86  REAL, POINTER, DIMENSION(:,:) :: XDFF ! Total Flood fraction, diag at time t
87 !
88  REAL, POINTER, DIMENSION(:,:) :: XSEUIL ! Irrigation threshold
89 !
90  REAL, POINTER, DIMENSION(:,:) :: XFAPAR ! Fapar of vegetation
91  REAL, POINTER, DIMENSION(:,:) :: XFAPIR ! Fapir of vegetation
92  REAL, POINTER, DIMENSION(:,:) :: XDFAPARC ! Fapar of vegetation (cumul)
93  REAL, POINTER, DIMENSION(:,:) :: XDFAPIRC ! Fapir of vegetation (cumul)
94  REAL, POINTER, DIMENSION(:,:) :: XFAPAR_BS ! Fapar of bare soil
95  REAL, POINTER, DIMENSION(:,:) :: XFAPIR_BS ! Fapir of bare soil
96  REAL, POINTER, DIMENSION(:,:) :: XDLAI_EFFC ! Effective LAI (cumul)
97 !
98 !* average variables
99 !
100  REAL, POINTER, DIMENSION(:) :: XAVG_HV ! Halstead coefficient
101  REAL, POINTER, DIMENSION(:) :: XAVG_LAI ! leaf average index
102 !
103  REAL, POINTER, DIMENSION(:,:) :: XAVG_SWI ! Liquid Soil wetness index by layer
104  REAL, POINTER, DIMENSION(:,:) :: XAVG_TSWI ! Total soil wetness index by layer
105  REAL, POINTER, DIMENSION(:) :: XSOIL_SWI ! Soil wetness index
106  REAL, POINTER, DIMENSION(:) :: XSOIL_TSWI ! Total Soil wetness index
107  REAL, POINTER, DIMENSION(:) :: XSOIL_TWG ! Soil water content (liquid+ice) (kg.m-2)
108  REAL, POINTER, DIMENSION(:) :: XSOIL_TWGI ! Soil ice content (kg.m-2)
109  REAL, POINTER, DIMENSION(:) :: XSOIL_WG ! Soil water content (liquid+ice) (m3.m-3)
110  REAL, POINTER, DIMENSION(:) :: XSOIL_WGI ! Soil ice content (m3.m-3)
111 !
112  REAL, POINTER, DIMENSION(:) :: XAVG_ALT ! Active layer thickness in permafrost area
113  REAL, POINTER, DIMENSION(:) :: XAVG_FLT ! Frozen layer thickness in non-permmafrost area
114 !
115  REAL, POINTER, DIMENSION(:) :: XAVG_TWSNOW ! Snow total reservoir
116  REAL, POINTER, DIMENSION(:) :: XAVG_TDSNOW ! Snow total height
117  REAL, POINTER, DIMENSION(:) :: XAVG_TTSNOW ! Snow total temperature
118 !
119  REAL, POINTER, DIMENSION(:) :: XAVG_PSNG ! Snow fraction over ground
120  REAL, POINTER, DIMENSION(:) :: XAVG_PSNV ! Snow fraction over vegetation
121  REAL, POINTER, DIMENSION(:) :: XAVG_PSN ! Total Snow fraction
122  REAL, POINTER, DIMENSION(:) :: XAVG_ALBT ! Total Albedo
123 !
124  REAL, POINTER, DIMENSION(:) :: XAVG_FSAT ! Topmodel/dt92 saturated fraction
125 !
126  REAL, POINTER, DIMENSION(:) :: XAVG_FFG ! Flood fraction over ground
127  REAL, POINTER, DIMENSION(:) :: XAVG_FFV ! Flood fraction over vegetation
128  REAL, POINTER, DIMENSION(:) :: XAVG_FF ! Total Flood fraction
129 !
130  REAL, POINTER, DIMENSION(:) :: XFRD2_TSWI ! ISBA-FR-DG2 comparable soil wetness index (DIF option)
131  REAL, POINTER, DIMENSION(:) :: XFRD2_TWG ! ISBA-FR-DG2 comparable soil water content (liquid+ice) (DIF option)
132  REAL, POINTER, DIMENSION(:) :: XFRD2_TWGI ! ISBA-FR-DG2 comparable soil ice content (DIF option)
133  REAL, POINTER, DIMENSION(:) :: XFRD3_TSWI ! ISBA-FR-Deep comparable soil wetness index (DIF option)
134  REAL, POINTER, DIMENSION(:) :: XFRD3_TWG ! ISBA-FR-Deep comparable soil water content (liquid+ice) (DIF option)
135  REAL, POINTER, DIMENSION(:) :: XFRD3_TWGI ! ISBA-FR-Deep comparable soil ice content (DIF option)
136 !
137 !------------------------------------------------------------------------------
138 !
139 
140 END TYPE diag_misc_isba_t
141 
142 
143 
144  CONTAINS
145 
146 !
147 !
148 
149 
150 !
151 
152 
153 SUBROUTINE diag_misc_isba_init(YDIAG_MISC_ISBA)
154 TYPE(diag_misc_isba_t), INTENT(INOUT) :: ydiag_misc_isba
155 REAL(KIND=JPRB) :: zhook_handle
156 IF (lhook) CALL dr_hook("MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_INIT",0,zhook_handle)
157  nullify(ydiag_misc_isba%XHV)
158  nullify(ydiag_misc_isba%XSWI)
159  nullify(ydiag_misc_isba%XTSWI)
160  nullify(ydiag_misc_isba%XALT)
161  nullify(ydiag_misc_isba%XFLT)
162  nullify(ydiag_misc_isba%XSNOWLIQ)
163  nullify(ydiag_misc_isba%XSNOWTEMP)
164  nullify(ydiag_misc_isba%XTWSNOW)
165  nullify(ydiag_misc_isba%XTDSNOW)
166  nullify(ydiag_misc_isba%XTTSNOW)
167  nullify(ydiag_misc_isba%XDPSNG)
168  nullify(ydiag_misc_isba%XDPSNV)
169  nullify(ydiag_misc_isba%XDPSN)
170  nullify(ydiag_misc_isba%XALBT)
171  nullify(ydiag_misc_isba%XDFFG)
172  nullify(ydiag_misc_isba%XDFFV)
173  nullify(ydiag_misc_isba%XDFF)
174  nullify(ydiag_misc_isba%XSEUIL)
175  nullify(ydiag_misc_isba%XFAPAR)
176  nullify(ydiag_misc_isba%XFAPIR)
177  nullify(ydiag_misc_isba%XDFAPARC)
178  nullify(ydiag_misc_isba%XDFAPIRC)
179  nullify(ydiag_misc_isba%XFAPAR_BS)
180  nullify(ydiag_misc_isba%XFAPIR_BS)
181  nullify(ydiag_misc_isba%XDLAI_EFFC)
182  nullify(ydiag_misc_isba%XAVG_HV)
183  nullify(ydiag_misc_isba%XAVG_LAI)
184  nullify(ydiag_misc_isba%XAVG_SWI)
185  nullify(ydiag_misc_isba%XAVG_TSWI)
186  nullify(ydiag_misc_isba%XSOIL_SWI)
187  nullify(ydiag_misc_isba%XSOIL_TSWI)
188  nullify(ydiag_misc_isba%XSOIL_TWG)
189  nullify(ydiag_misc_isba%XSOIL_TWGI)
190  nullify(ydiag_misc_isba%XSOIL_WG)
191  nullify(ydiag_misc_isba%XSOIL_WGI)
192  nullify(ydiag_misc_isba%XAVG_ALT)
193  nullify(ydiag_misc_isba%XAVG_FLT)
194  nullify(ydiag_misc_isba%XAVG_TWSNOW)
195  nullify(ydiag_misc_isba%XAVG_TDSNOW)
196  nullify(ydiag_misc_isba%XAVG_TTSNOW)
197  nullify(ydiag_misc_isba%XAVG_PSNG)
198  nullify(ydiag_misc_isba%XAVG_PSNV)
199  nullify(ydiag_misc_isba%XAVG_PSN)
200  nullify(ydiag_misc_isba%XAVG_ALBT)
201  nullify(ydiag_misc_isba%XAVG_FFG)
202  nullify(ydiag_misc_isba%XAVG_FFV)
203  nullify(ydiag_misc_isba%XAVG_FF)
204  nullify(ydiag_misc_isba%XFRD2_TSWI)
205  nullify(ydiag_misc_isba%XFRD2_TWG)
206  nullify(ydiag_misc_isba%XFRD2_TWGI)
207  nullify(ydiag_misc_isba%XFRD3_TSWI)
208  nullify(ydiag_misc_isba%XFRD3_TWG)
209  nullify(ydiag_misc_isba%XFRD3_TWGI)
210 ydiag_misc_isba%LSURF_MISC_BUDGET=.false.
211 ydiag_misc_isba%LSURF_DIAG_ALBEDO=.false.
212 ydiag_misc_isba%LSURF_MISC_DIF=.false.
213 IF (lhook) CALL dr_hook("MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_INIT",1,zhook_handle)
214 END SUBROUTINE diag_misc_isba_init
215 
216 
217 END MODULE modd_diag_misc_isba_n
subroutine diag_misc_isba_init(YDIAG_MISC_ISBA)