SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_diag_tebn.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_TEB - declaration of diagnostics for TEB scheme
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 !
31 !* 0. DECLARATIONS
32 ! ------------
33 !
34 !
35 !
36 USE yomhook ,ONLY : lhook, dr_hook
37 USE parkind1 ,ONLY : jprb
38 !
39 IMPLICIT NONE
40 
42 !------------------------------------------------------------------------------
43 !
44  REAL :: XDIAG_TSTEP ! time step for diagnostics writing
45 !
46  INTEGER :: N2M ! flag for 2 meters (and 10 meters) quantities
47  LOGICAL :: L2M_MIN_ZS ! flag for 2 meters quantities evaluated on
48 ! ! the minimum orographyy of the grid
49  LOGICAL :: LSURF_BUDGET ! flag for surface energy budget
50  LOGICAL :: LRAD_BUDGET ! flag for radiative energy budget
51  LOGICAL :: LCOEF ! flag for transfer coefficients
52  LOGICAL :: LSURF_VARS ! flag for surface variables
53 !
54  LOGICAL :: LPGD ! flag for writing of PGD files
55  LOGICAL :: LPGD_FIX ! flag for writing of PGD files for time
56 ! invariant field
57 !
58 !* averaged variables
59 !
60  REAL, POINTER, DIMENSION(:) :: XRI ! Bulk-Richardson number (-)
61  REAL, POINTER, DIMENSION(:) :: XCD ! drag coefficient for wind (W/s2)
62  REAL, POINTER, DIMENSION(:) :: XCH ! drag coefficient for heat (W/s)
63  REAL, POINTER, DIMENSION(:) :: XCE ! drag coefficient for vapor (W/s/K)
64  REAL, POINTER, DIMENSION(:) :: XZ0 ! roughness length for momentum (m)
65  REAL, POINTER, DIMENSION(:) :: XZ0H ! roughness length for heat (m)
66  REAL, POINTER, DIMENSION(:) :: XRN ! net radiation at surface (W/m2)
67  REAL, POINTER, DIMENSION(:) :: XH ! sensible heat flux (W/m2)
68  REAL, POINTER, DIMENSION(:) :: XLE ! latent heat flux (W/m2)
69  REAL, POINTER, DIMENSION(:) :: XGFLUX ! net soil-vegetation flux (W/m2)
70  REAL, POINTER, DIMENSION(:) :: XT2M ! air temperature at 2 meters (K)
71  REAL, POINTER, DIMENSION(:) :: XT2M_MIN ! Minimum air temperature at 2 meters (K)
72  REAL, POINTER, DIMENSION(:) :: XT2M_MAX ! Maximum air temperature at 2 meters (K)
73  REAL, POINTER, DIMENSION(:) :: XQ2M ! air humidity at 2 meters (kg/kg)
74  REAL, POINTER, DIMENSION(:) :: XHU2M ! air relative humidity at 2 meters(-)
75  REAL, POINTER, DIMENSION(:) :: XHU2M_MIN! Minimum relative humidity at 2 meters (-)
76  REAL, POINTER, DIMENSION(:) :: XHU2M_MAX! Maximum relative humidity at 2 meters (-)
77  REAL, POINTER, DIMENSION(:) :: XQS ! air humidity at surface (kg/kg)
78  REAL, POINTER, DIMENSION(:) :: XZON10M ! zonal wind at 10 meters (m/s)
79  REAL, POINTER, DIMENSION(:) :: XMER10M ! meridian wind at 10 meters (m/s)
80  REAL, POINTER, DIMENSION(:) :: XWIND10M ! wind at 10 meters (m/s)
81  REAL, POINTER, DIMENSION(:) :: XWIND10M_MAX! Maximum wind at 10 meters (m/s)
82  REAL, POINTER, DIMENSION(:) :: XSFCO2 ! CO2 flux (m/s*kg_CO2/kg_air)
83  REAL, POINTER, DIMENSION(:) :: XLWD ! downward long wave radiation (W/m2)
84  REAL, POINTER, DIMENSION(:) :: XLWU ! upward long wave radiation (W/m2)
85  REAL, POINTER, DIMENSION(:) :: XSWD ! downward short wave radiation (W/m2)
86  REAL, POINTER, DIMENSION(:) :: XSWU ! upward short wave radiation (W/m2)
87  REAL, POINTER, DIMENSION(:,:) :: XSWBD ! downward short wave radiation by spectral band (W/m2)
88  REAL, POINTER, DIMENSION(:,:) :: XSWBU ! upward short wave radiation by spectral band (W/m2)
89  REAL, POINTER, DIMENSION(:) :: XFMU ! horizontal momentum flux zonal (m2/s2)
90  REAL, POINTER, DIMENSION(:) :: XFMV ! horizontal momentum flux meridian (m2/s2)
91  REAL, POINTER, DIMENSION(:) :: XDIAG_TS ! arithmetic mean of surface temperature (K)
92 !------------------------------------------------------------------------------
93 !
94 
95 END TYPE diag_teb_t
96 
97 
98 
99  CONTAINS
100 
101 !
102 
103 
104 
105 
106 SUBROUTINE diag_teb_init(YDIAG_TEB)
107 TYPE(diag_teb_t), INTENT(INOUT) :: ydiag_teb
108 REAL(KIND=JPRB) :: zhook_handle
109 IF (lhook) CALL dr_hook("MODD_DIAG_TEB_N:DIAG_TEB_INIT",0,zhook_handle)
110  nullify(ydiag_teb%XRI)
111  nullify(ydiag_teb%XCD)
112  nullify(ydiag_teb%XCH)
113  nullify(ydiag_teb%XCE)
114  nullify(ydiag_teb%XZ0)
115  nullify(ydiag_teb%XZ0H)
116  nullify(ydiag_teb%XRN)
117  nullify(ydiag_teb%XH)
118  nullify(ydiag_teb%XLE)
119  nullify(ydiag_teb%XGFLUX)
120  nullify(ydiag_teb%XT2M)
121  nullify(ydiag_teb%XT2M_MIN)
122  nullify(ydiag_teb%XT2M_MAX)
123  nullify(ydiag_teb%XQ2M)
124  nullify(ydiag_teb%XHU2M)
125  nullify(ydiag_teb%XHU2M_MIN)
126  nullify(ydiag_teb%XHU2M_MAX)
127  nullify(ydiag_teb%XQS)
128  nullify(ydiag_teb%XZON10M)
129  nullify(ydiag_teb%XMER10M)
130  nullify(ydiag_teb%XWIND10M)
131  nullify(ydiag_teb%XWIND10M_MAX)
132  nullify(ydiag_teb%XSFCO2)
133  nullify(ydiag_teb%XLWD)
134  nullify(ydiag_teb%XLWU)
135  nullify(ydiag_teb%XSWD)
136  nullify(ydiag_teb%XSWU)
137  nullify(ydiag_teb%XSWBD)
138  nullify(ydiag_teb%XSWBU)
139  nullify(ydiag_teb%XFMU)
140  nullify(ydiag_teb%XFMV)
141  nullify(ydiag_teb%XDIAG_TS)
142 ydiag_teb%XDIAG_TSTEP=0.
143 ydiag_teb%N2M=0
144 ydiag_teb%L2M_MIN_ZS=.false.
145 ydiag_teb%LSURF_BUDGET=.false.
146 ydiag_teb%LRAD_BUDGET=.false.
147 ydiag_teb%LCOEF=.false.
148 ydiag_teb%LSURF_VARS=.false.
149 ydiag_teb%LPGD=.false.
150 ydiag_teb%LPGD_FIX=.false.
151 IF (lhook) CALL dr_hook("MODD_DIAG_TEB_N:DIAG_TEB_INIT",1,zhook_handle)
152 END SUBROUTINE diag_teb_init
153 
154 
155 END MODULE modd_diag_teb_n
subroutine diag_teb_init(YDIAG_TEB)