SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modn_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 ! ##################
6  MODULE modn_teb_n
7 ! ##################
8 !
9 !!**** *MODN_TEB_n* - declaration of namelist NAM_TEBn
10 !!
11 !! PURPOSE
12 !! -------
13 ! The purpose of this module is to specify the namelist NAM_TEBn
14 !
15 !!
16 !!** IMPLICIT ARGUMENTS
17 !! ------------------
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !!
23 !! AUTHOR
24 !! ------
25 !! V. Masson *Meteo France*
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 01/2004
30 !! Modified 10/2004 by P. Le Moigne: miscellaneous switch
31 !! Modified 07/2007 by P. Le Moigne: minimum wind speed and/or shear
32 !! Modified 08/2009 by B. Decharme : LSURF_BUDGETC for all tiles
33 !! Modified 08/2012 by G. Pigeon : CH_BEM for conv. coef option
34 !-------------------------------------------------------------------------------
35 !
36 !* 0. DECLARATIONS
37 ! ------------
38 !
39 !
40 !
41 USE yomhook ,ONLY : lhook, dr_hook
42 USE parkind1 ,ONLY : jprb
43 !
44 IMPLICIT NONE
45 !
46 LOGICAL :: LPGD
47 LOGICAL :: LPGD_FIX
48 LOGICAL :: L2M_MIN_ZS
49 LOGICAL :: LSURF_BUDGET
50 LOGICAL :: LRAD_BUDGET
51 LOGICAL :: LCOEF
52 LOGICAL :: LSURF_VARS
53 LOGICAL :: LSURF_MISC_BUDGET
54 LOGICAL :: LSURF_DIAG_ALBEDO
55 LOGICAL :: LUTCI
56 LOGICAL :: LSURF_BUDGETC
57 LOGICAL :: LRESET_BUDGETC
58 !
59  CHARACTER(LEN=6) :: CCH_DRY_DEP
60  CHARACTER(LEN=6) :: CZ0H
61  CHARACTER(LEN=5) :: CCH_BEM
62 REAL :: XDT_RES
63 REAL :: XDT_OFF
64 !
65 REAL :: XTSTEP
66 REAL :: XOUT_TSTEP
67 REAL :: XDIAG_TSTEP
68 !
69 INTEGER :: N2M
70 !
71 namelist/nam_diag_surfn/n2m,l2m_min_zs,lsurf_budget,lrad_budget, &
72  lcoef,lsurf_vars, lsurf_budgetc, lreset_budgetc
73 !
74 namelist/nam_ch_tebn/cch_dry_dep
75 namelist/nam_diag_tebn/lpgd,lpgd_fix,lsurf_misc_budget,lsurf_diag_albedo,lutci
76 namelist/nam_tebn/cz0h,cch_bem,xdt_res,xdt_off
77 !
78  CONTAINS
79 !
80 SUBROUTINE init_nam_diag_surfn (DGT, TOP)
81 !
82  USE modd_diag_teb_n, ONLY : diag_teb_t
84 !
85  IMPLICIT NONE
86 
87 !
88  TYPE(diag_teb_t), INTENT(INOUT) :: dgt
89  TYPE(teb_options_t), INTENT(INOUT) :: top
90  REAL(KIND=JPRB) :: zhook_handle
91 
92  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_SURFN',0,zhook_handle)
93  xtstep = top%XTSTEP
94  xout_tstep = top%XOUT_TSTEP
95  xdiag_tstep = dgt%XDIAG_TSTEP
96  n2m = dgt%N2M
97  l2m_min_zs = dgt%L2M_MIN_ZS
98  lsurf_budget = dgt%LSURF_BUDGET
99  lrad_budget = dgt%LRAD_BUDGET
100  lcoef = dgt%LCOEF
101  lsurf_vars = dgt%LSURF_VARS
102 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_SURFN',1,zhook_handle)
103 END SUBROUTINE init_nam_diag_surfn
104 
105 SUBROUTINE update_nam_diag_surfn (DGT)
106 !
107  USE modd_diag_teb_n, ONLY : diag_teb_t
108 !
109  IMPLICIT NONE
110 
111 !
112  TYPE(diag_teb_t), INTENT(INOUT) :: dgt
113  REAL(KIND=JPRB) :: zhook_handle
114 
115  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_SURFN',0,zhook_handle)
116  dgt%XDIAG_TSTEP = xdiag_tstep
117  dgt%N2M = n2m
118  dgt%L2M_MIN_ZS = l2m_min_zs
119  dgt%LSURF_BUDGET = lsurf_budget
120  dgt%LRAD_BUDGET = lrad_budget
121  dgt%LCOEF = lcoef
122  dgt%LSURF_VARS = lsurf_vars
123 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_SURFN',1,zhook_handle)
124 END SUBROUTINE update_nam_diag_surfn
125 !
126 SUBROUTINE init_nam_tebn (T, TOP)
127 !
128  USE modd_teb_n, ONLY : teb_t
129  USE modd_teb_option_n, ONLY : teb_options_t
130 !
131  IMPLICIT NONE
132 
133 !
134  TYPE(teb_t), INTENT(INOUT) :: t
135  TYPE(teb_options_t), INTENT(INOUT) :: top
136  REAL(KIND=JPRB) :: zhook_handle
137 
138  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_TEBN',0,zhook_handle)
139  cz0h = top%CZ0H
140  cch_bem = top%CCH_BEM
141  xdt_res = t%CUR%XDT_RES
142  xdt_off = t%CUR%XDT_OFF
143 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_TEBN',1,zhook_handle)
144 END SUBROUTINE init_nam_tebn
145 
146 SUBROUTINE update_nam_tebn (T, TOP)
147 !
148  USE modd_teb_n, ONLY : teb_t
149  USE modd_teb_option_n, ONLY : teb_options_t
150 !
151  IMPLICIT NONE
152 
153 !
154  TYPE(teb_t), INTENT(INOUT) :: t
155  TYPE(teb_options_t), INTENT(INOUT) :: top
156  REAL(KIND=JPRB) :: zhook_handle
157 
158  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_TEBN',0,zhook_handle)
159  top%XTSTEP = xtstep
160  top%XOUT_TSTEP = xout_tstep
161  top%CZ0H = cz0h
162  top%CCH_BEM = cch_bem
163  t%CUR%XDT_RES = xdt_res
164  t%CUR%XDT_OFF = xdt_off
165 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_TEBN',1,zhook_handle)
166 END SUBROUTINE update_nam_tebn
167 
168 SUBROUTINE init_nam_ch_tebn (CHT)
169 !
170  USE modd_ch_teb_n, ONLY : ch_teb_t
171 !
172  IMPLICIT NONE
173 
174 !
175  TYPE(ch_teb_t), INTENT(INOUT) :: cht
176  REAL(KIND=JPRB) :: zhook_handle
177 
178  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_CH_TEBN',0,zhook_handle)
179  cch_dry_dep = cht%CCH_DRY_DEP
180 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_CH_TEBN',1,zhook_handle)
181 END SUBROUTINE init_nam_ch_tebn
182 
183 SUBROUTINE update_nam_ch_tebn (CHT)
184 !
185  USE modd_ch_teb_n, ONLY : ch_teb_t
186 !
187  IMPLICIT NONE
188 
189 !
190  TYPE(ch_teb_t), INTENT(INOUT) :: cht
191  REAL(KIND=JPRB) :: zhook_handle
192 
193  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_CH_TEBN',0,zhook_handle)
194  cht%CCH_DRY_DEP = cch_dry_dep
195 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_CH_TEBN',1,zhook_handle)
196 END SUBROUTINE update_nam_ch_tebn
197 
198 SUBROUTINE init_nam_diag_tebn (DGMTO, DGT, DGUT)
199 !
201  USE modd_diag_teb_n, ONLY : diag_teb_t
203 !
204  IMPLICIT NONE
205 
206 !
207  TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: dgmto
208  TYPE(diag_teb_t), INTENT(INOUT) :: dgt
209  TYPE(diag_utci_teb_t), INTENT(INOUT) :: dgut
210  REAL(KIND=JPRB) :: zhook_handle
211 
212  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_TEBN',0,zhook_handle)
213  lpgd = dgt%LPGD
214  lpgd_fix = dgt%LPGD_FIX
215  lsurf_misc_budget = dgmto%LSURF_MISC_BUDGET
216  lsurf_diag_albedo = dgmto%LSURF_DIAG_ALBEDO
217  lutci = dgut%LUTCI
218 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_TEBN',1,zhook_handle)
219 END SUBROUTINE init_nam_diag_tebn
220 
221 SUBROUTINE update_nam_diag_tebn (DGMTO, DGT, DGUT)
222 !
224  USE modd_diag_teb_n, ONLY : diag_teb_t
226 !
227  IMPLICIT NONE
228 
229 !
230  TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: dgmto
231  TYPE(diag_teb_t), INTENT(INOUT) :: dgt
232  TYPE(diag_utci_teb_t), INTENT(INOUT) :: dgut
233  REAL(KIND=JPRB) :: zhook_handle
234 
235  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_TEBN',0,zhook_handle)
236  dgt%LPGD = lpgd
237  dgt%LPGD_FIX = lpgd_fix
238  dgmto%LSURF_MISC_BUDGET = lsurf_misc_budget
239  dgmto%LSURF_DIAG_ALBEDO = lsurf_diag_albedo
240  dgut%LUTCI = lutci
241 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_TEBN',1,zhook_handle)
242 END SUBROUTINE update_nam_diag_tebn
243 
244 END MODULE modn_teb_n
subroutine init_nam_diag_surfn(DGF)
subroutine update_nam_tebn(T, TOP)
Definition: modn_tebn.F90:146
subroutine update_nam_ch_tebn(CHT)
Definition: modn_tebn.F90:183
subroutine update_nam_diag_surfn(DGF)
subroutine init_nam_diag_tebn(DGMTO, DGT, DGUT)
Definition: modn_tebn.F90:198
subroutine init_nam_ch_tebn(CHT)
Definition: modn_tebn.F90:168
subroutine init_nam_tebn(T, TOP)
Definition: modn_tebn.F90:126
subroutine update_nam_diag_tebn(DGMTO, DGT, DGUT)
Definition: modn_tebn.F90:221