SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_diag_flaken.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_FLAKE - declaration of diagnostics for FLake model
10 !!
11 !! PURPOSE
12 !! -------
13 !
14 !!
15 !!** IMPLICIT ARGUMENTS
16 !! ------------------
17 !! None
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !! AUTHOR
23 !! ------
24 !! V. Masson *Meteo France*
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !! Modified 01/2006 : sea flux parameterization.
30 !! V.Masson 10/2013 Adds min and max 2m parameters
31 !
32 !* 0. DECLARATIONS
33 ! ------------
34 !
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 
43 !------------------------------------------------------------------------------
44 !
45  REAL :: XDIAG_TSTEP ! time step for diagnostics writing
46 !
47  INTEGER :: N2M ! flag for 2 meters (and 10 meters) quantities
48  LOGICAL :: L2M_MIN_ZS ! flag for 2 meters quantities evaluated on
49 ! ! the minimum orographyy of the grid
50  LOGICAL :: LSURF_BUDGET ! flag for surface energy budget
51  LOGICAL :: LRAD_BUDGET ! flag for radiative energy budget
52  LOGICAL :: LCOEF ! flag for transfer coefficients
53  LOGICAL :: LSURF_VARS ! flag for surface variables
54  LOGICAL :: LSURF_BUDGETC ! flag for surface cumulated energy budget
55  LOGICAL :: LRESET_BUDGETC ! flag for surface cumulated energy budget
56 !
57 !* averaged variables
58 !
59  REAL, POINTER, DIMENSION(:) :: XRI ! Bulk-Richardson number (-)
60  REAL, POINTER, DIMENSION(:) :: XCD ! drag coefficient for wind (W/s2)
61  REAL, POINTER, DIMENSION(:) :: XCH ! drag coefficient for heat (W/s)
62  REAL, POINTER, DIMENSION(:) :: XCE ! drag coefficient for vapor (W/s/K)
63  REAL, POINTER, DIMENSION(:) :: XZ0 ! roughness length for momentum (m)
64  REAL, POINTER, DIMENSION(:) :: XZ0H ! roughness length for heat (m)
65  REAL, POINTER, DIMENSION(:) :: XRN ! net radiation at surface (W/m2)
66  REAL, POINTER, DIMENSION(:) :: XH ! sensible heat flux (W/m2)
67  REAL, POINTER, DIMENSION(:) :: XLE ! total latent heat flux (W/m2)
68  REAL, POINTER, DIMENSION(:) :: XLEI ! sublimation latent heat flux (W/m2)
69  REAL, POINTER, DIMENSION(:) :: XGFLUX ! net soil-vegetation flux (W/m2)
70  REAL, POINTER, DIMENSION(:) :: XEVAP ! total evaporation (kg/m2/s)
71  REAL, POINTER, DIMENSION(:) :: XSUBL ! sublimation (kg/m2/s)
72  REAL, POINTER, DIMENSION(:) :: XT2M ! air temperature at 2 meters (K)
73  REAL, POINTER, DIMENSION(:) :: XT2M_MIN ! Minimum air temperature at 2 meters (K)
74  REAL, POINTER, DIMENSION(:) :: XT2M_MAX ! Maximum air temperature at 2 meters (K)
75  REAL, POINTER, DIMENSION(:) :: XQ2M ! air humidity at 2 meters (kg/kg)
76  REAL, POINTER, DIMENSION(:) :: XHU2M ! air relative humidity at 2 meters(-)
77  REAL, POINTER, DIMENSION(:) :: XHU2M_MIN! Minimum relative humidity at 2 meters (-)
78  REAL, POINTER, DIMENSION(:) :: XHU2M_MAX! Maximum relative humidity at 2 meters (-)
79  REAL, POINTER, DIMENSION(:) :: XQS ! air humidity at surface (kg/kg)
80  REAL, POINTER, DIMENSION(:) :: XZON10M ! zonal wind at 10 meters (m/s)
81  REAL, POINTER, DIMENSION(:) :: XMER10M ! meridian wind at 10 meters (m/s)
82  REAL, POINTER, DIMENSION(:) :: XWIND10M ! wind at 10 meters (m/s)
83  REAL, POINTER, DIMENSION(:) :: XWIND10M_MAX! Maximum wind at 10 meters (m/s)
84  REAL, POINTER, DIMENSION(:) :: XLWD ! downward long wave radiation (W/m2)
85  REAL, POINTER, DIMENSION(:) :: XLWU ! upward long wave radiation (W/m2)
86  REAL, POINTER, DIMENSION(:) :: XSWD ! downward short wave radiation (W/m2)
87  REAL, POINTER, DIMENSION(:) :: XSWU ! upward short wave radiation (W/m2)
88  REAL, POINTER, DIMENSION(:,:) :: XSWBD ! downward short wave radiation by spectral band (W/m2)
89  REAL, POINTER, DIMENSION(:,:) :: XSWBU ! upward short wave radiation by spectral band (W/m2)
90  REAL, POINTER, DIMENSION(:) :: XFMU ! horizontal momentum flux zonal (kg/ms2)
91  REAL, POINTER, DIMENSION(:) :: XFMV ! horizontal momentum flux meridian (kg/ms2)
92  REAL, POINTER, DIMENSION(:) :: XDIAG_TS ! water surface temperature (K)
93  REAL, POINTER, DIMENSION(:) :: XALBT ! Total Albedo
94  REAL, POINTER, DIMENSION(:) :: XSWE ! snow water equivalent (kg/m2)
95 !
96 !* cumulated averaged variables
97 !
98  REAL, POINTER, DIMENSION(:) :: XRNC ! net radiation at surface (J/m2)
99  REAL, POINTER, DIMENSION(:) :: XHC ! sensible heat flux (J/m2)
100  REAL, POINTER, DIMENSION(:) :: XLEC ! total latent heat flux (J/m2)
101  REAL, POINTER, DIMENSION(:) :: XLEIC ! sublimation latent heat flux (J/m2)
102  REAL, POINTER, DIMENSION(:) :: XGFLUXC ! net soil-vegetation flux (J/m2)
103  REAL, POINTER, DIMENSION(:) :: XEVAPC ! total evaporation (kg/m2)
104  REAL, POINTER, DIMENSION(:) :: XSUBLC ! sublimation (kg/m2)
105  REAL, POINTER, DIMENSION(:) :: XLWDC ! downward long wave radiation (J/m2)
106  REAL, POINTER, DIMENSION(:) :: XLWUC ! upward long wave radiation (J/m2)
107  REAL, POINTER, DIMENSION(:) :: XSWDC ! downward short wave radiation (J/m2)
108  REAL, POINTER, DIMENSION(:) :: XSWUC ! upward short wave radiation (J/m2)
109  REAL, POINTER, DIMENSION(:) :: XFMUC ! horizontal momentum flux zonal (kg/ms)
110  REAL, POINTER, DIMENSION(:) :: XFMVC ! horizontal momentum flux meridian (kg/ms)
111 !
112 !------------------------------------------------------------------------------
113 !
114 
115 END TYPE diag_flake_t
116 
117 
118 
119  CONTAINS
120 
121 !
122 
123 
124 
125 
126 SUBROUTINE diag_flake_init(YDIAG_FLAKE)
127 TYPE(diag_flake_t), INTENT(INOUT) :: ydiag_flake
128 REAL(KIND=JPRB) :: zhook_handle
129 IF (lhook) CALL dr_hook("MODD_DIAG_FLAKE_N:DIAG_FLAKE_INIT",0,zhook_handle)
130  nullify(ydiag_flake%XRI)
131  nullify(ydiag_flake%XCD)
132  nullify(ydiag_flake%XCH)
133  nullify(ydiag_flake%XCE)
134  nullify(ydiag_flake%XZ0)
135  nullify(ydiag_flake%XZ0H)
136  nullify(ydiag_flake%XRN)
137  nullify(ydiag_flake%XH)
138  nullify(ydiag_flake%XLE)
139  nullify(ydiag_flake%XLEI)
140  nullify(ydiag_flake%XGFLUX)
141  nullify(ydiag_flake%XEVAP)
142  nullify(ydiag_flake%XSUBL)
143  nullify(ydiag_flake%XT2M)
144  nullify(ydiag_flake%XT2M_MIN)
145  nullify(ydiag_flake%XT2M_MAX)
146  nullify(ydiag_flake%XQ2M)
147  nullify(ydiag_flake%XHU2M)
148  nullify(ydiag_flake%XHU2M_MIN)
149  nullify(ydiag_flake%XHU2M_MAX)
150  nullify(ydiag_flake%XQS)
151  nullify(ydiag_flake%XZON10M)
152  nullify(ydiag_flake%XMER10M)
153  nullify(ydiag_flake%XWIND10M)
154  nullify(ydiag_flake%XWIND10M_MAX)
155  nullify(ydiag_flake%XLWD)
156  nullify(ydiag_flake%XLWU)
157  nullify(ydiag_flake%XSWD)
158  nullify(ydiag_flake%XSWU)
159  nullify(ydiag_flake%XSWBD)
160  nullify(ydiag_flake%XSWBU)
161  nullify(ydiag_flake%XFMU)
162  nullify(ydiag_flake%XFMV)
163  nullify(ydiag_flake%XDIAG_TS)
164  nullify(ydiag_flake%XALBT)
165  nullify(ydiag_flake%XSWE)
166  nullify(ydiag_flake%XRNC)
167  nullify(ydiag_flake%XHC)
168  nullify(ydiag_flake%XLEC)
169  nullify(ydiag_flake%XLEIC)
170  nullify(ydiag_flake%XGFLUXC)
171  nullify(ydiag_flake%XEVAPC)
172  nullify(ydiag_flake%XSUBLC)
173  nullify(ydiag_flake%XLWDC)
174  nullify(ydiag_flake%XLWUC)
175  nullify(ydiag_flake%XSWDC)
176  nullify(ydiag_flake%XSWUC)
177  nullify(ydiag_flake%XFMUC)
178  nullify(ydiag_flake%XFMVC)
179 ydiag_flake%XDIAG_TSTEP=0.
180 ydiag_flake%N2M=0
181 ydiag_flake%L2M_MIN_ZS=.false.
182 ydiag_flake%LSURF_BUDGET=.false.
183 ydiag_flake%LRAD_BUDGET=.false.
184 ydiag_flake%LCOEF=.false.
185 ydiag_flake%LSURF_VARS=.false.
186 ydiag_flake%LSURF_BUDGETC=.false.
187 ydiag_flake%LRESET_BUDGETC=.false.
188 IF (lhook) CALL dr_hook("MODD_DIAG_FLAKE_N:DIAG_FLAKE_INIT",1,zhook_handle)
189 END SUBROUTINE diag_flake_init
190 
191 
192 END MODULE modd_diag_flake_n
subroutine diag_flake_init(YDIAG_FLAKE)