SURFEX v8.1
General documentation of Surfex
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 :: l2m_min_zs
48 LOGICAL :: lsurf_budget
49 LOGICAL :: lrad_budget
50 LOGICAL :: lcoef
51 LOGICAL :: lsurf_vars
54 LOGICAL :: lutci
55 LOGICAL :: lsurf_budgetc
56 LOGICAL :: lreset_budgetc
57 !
58  CHARACTER(LEN=6) :: cch_dry_dep
59  CHARACTER(LEN=6) :: cz0h
60  CHARACTER(LEN=5) :: cch_bem
61 REAL :: xdt_res
62 REAL :: xdt_off
63 !
64 REAL :: xtstep
65 REAL :: xout_tstep
66 REAL :: xdiag_tstep
67 !
68 INTEGER :: n2m
69 !
70 NAMELIST/nam_diag_surfn/n2m,l2m_min_zs,lsurf_budget,lrad_budget, &
72 !
73 NAMELIST/nam_ch_tebn/cch_dry_dep
74 NAMELIST/nam_diag_tebn/lpgd,lsurf_misc_budget,lsurf_diag_albedo,lutci
75 NAMELIST/nam_tebn/cz0h,cch_bem,xdt_res,xdt_off
76 !
77 CONTAINS
78 !
79 SUBROUTINE init_nam_diag_surfn (DGO, TOP)
80 !
81  USE modd_diag_n, ONLY : diag_options_t
83 !
84  IMPLICIT NONE
85 
86 !
87  TYPE(diag_options_t), INTENT(INOUT) :: DGO
88  TYPE(teb_options_t), INTENT(INOUT) :: TOP
89  REAL(KIND=JPRB) :: ZHOOK_HANDLE
90 
91  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_SURFN',0,zhook_handle)
92  xtstep = top%XTSTEP
93  xout_tstep = top%XOUT_TSTEP
94  xdiag_tstep = dgo%XDIAG_TSTEP
95  n2m = dgo%N2M
96  l2m_min_zs = dgo%L2M_MIN_ZS
97  lsurf_budget = dgo%LSURF_BUDGET
98  lrad_budget = dgo%LRAD_BUDGET
99  lcoef = dgo%LCOEF
100  lsurf_vars = dgo%LSURF_VARS
101 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_SURFN',1,zhook_handle)
102 END SUBROUTINE init_nam_diag_surfn
103 
104 SUBROUTINE update_nam_diag_surfn (DGO)
105 !
106  USE modd_diag_n, ONLY : diag_options_t
107 !
108  IMPLICIT NONE
109 
110 !
111  TYPE(diag_options_t), INTENT(INOUT) :: DGO
112  REAL(KIND=JPRB) :: ZHOOK_HANDLE
113 
114  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_SURFN',0,zhook_handle)
115  dgo%XDIAG_TSTEP = xdiag_tstep
116  dgo%N2M = n2m
117  dgo%L2M_MIN_ZS = l2m_min_zs
118  dgo%LSURF_BUDGET = lsurf_budget
119  dgo%LRAD_BUDGET = lrad_budget
120  dgo%LCOEF = lcoef
121  dgo%LSURF_VARS = lsurf_vars
122 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_SURFN',1,zhook_handle)
123 END SUBROUTINE update_nam_diag_surfn
124 !
125 SUBROUTINE init_nam_tebn (T, TOP)
126 !
127  USE modd_teb_n, ONLY : teb_t
128  USE modd_teb_option_n, ONLY : teb_options_t
129 !
130  IMPLICIT NONE
131 
132 !
133  TYPE(teb_t), INTENT(INOUT) :: T
134  TYPE(teb_options_t), INTENT(INOUT) :: TOP
135  REAL(KIND=JPRB) :: ZHOOK_HANDLE
136 
137  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_TEBN',0,zhook_handle)
138  cz0h = top%CZ0H
139  cch_bem = top%CCH_BEM
140  xdt_res = t%XDT_RES
141  xdt_off = t%XDT_OFF
142 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_TEBN',1,zhook_handle)
143 END SUBROUTINE init_nam_tebn
144 
145 SUBROUTINE update_nam_tebn (T, TOP)
146 !
147  USE modd_teb_n, ONLY : teb_t
148  USE modd_teb_option_n, ONLY : teb_options_t
149 !
150  IMPLICIT NONE
151 
152 !
153  TYPE(teb_t), INTENT(INOUT) :: T
154  TYPE(teb_options_t), INTENT(INOUT) :: TOP
155  REAL(KIND=JPRB) :: ZHOOK_HANDLE
156 
157  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_TEBN',0,zhook_handle)
158  top%XTSTEP = xtstep
159  top%XOUT_TSTEP = xout_tstep
160  top%CZ0H = cz0h
161  top%CCH_BEM = cch_bem
162  t%XDT_RES = xdt_res
163  t%XDT_OFF = xdt_off
164 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_TEBN',1,zhook_handle)
165 END SUBROUTINE update_nam_tebn
166 
167 SUBROUTINE init_nam_ch_tebn (CHT)
168 !
169  USE modd_ch_teb_n, ONLY : ch_teb_t
170 !
171  IMPLICIT NONE
172 
173 !
174  TYPE(ch_teb_t), INTENT(INOUT) :: CHT
175  REAL(KIND=JPRB) :: ZHOOK_HANDLE
176 
177  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_CH_TEBN',0,zhook_handle)
178  cch_dry_dep = cht%CCH_DRY_DEP
179 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_CH_TEBN',1,zhook_handle)
180 END SUBROUTINE init_nam_ch_tebn
181 
182 SUBROUTINE update_nam_ch_tebn (CHT)
183 !
184  USE modd_ch_teb_n, ONLY : ch_teb_t
185 !
186  IMPLICIT NONE
187 
188 !
189  TYPE(ch_teb_t), INTENT(INOUT) :: CHT
190  REAL(KIND=JPRB) :: ZHOOK_HANDLE
191 
192  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_CH_TEBN',0,zhook_handle)
193  cht%CCH_DRY_DEP = cch_dry_dep
194 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_CH_TEBN',1,zhook_handle)
195 END SUBROUTINE update_nam_ch_tebn
196 
197 SUBROUTINE init_nam_diag_tebn (DMTO, DGO, DUT)
198 !
200  USE modd_diag_n, ONLY : diag_options_t
202 !
203  IMPLICIT NONE
204 
205 !
206  TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: DMTO
207  TYPE(diag_options_t), INTENT(INOUT) :: DGO
208  TYPE(diag_utci_teb_t), INTENT(INOUT) :: DUT
209  REAL(KIND=JPRB) :: ZHOOK_HANDLE
210 
211  IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_TEBN',0,zhook_handle)
212  lpgd = dgo%LPGD
213  lsurf_misc_budget = dmto%LSURF_MISC_BUDGET
214  lsurf_diag_albedo = dmto%LSURF_DIAG_ALBEDO
215  lutci = dut%LUTCI
216 IF (lhook) CALL dr_hook('MODN_TEB_N:INIT_NAM_DIAG_TEBN',1,zhook_handle)
217 END SUBROUTINE init_nam_diag_tebn
218 
219 SUBROUTINE update_nam_diag_tebn (DMTO, DGO, DUT)
220 !
222  USE modd_diag_n, ONLY : diag_options_t
224 !
225  IMPLICIT NONE
226 
227 !
228  TYPE(diag_misc_teb_options_t), INTENT(INOUT) :: DMTO
229  TYPE(diag_options_t), INTENT(INOUT) :: DGO
230  TYPE(diag_utci_teb_t), INTENT(INOUT) :: DUT
231  REAL(KIND=JPRB) :: ZHOOK_HANDLE
232 
233  IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_TEBN',0,zhook_handle)
234  dgo%LPGD = lpgd
235  dmto%LSURF_MISC_BUDGET = lsurf_misc_budget
236  dmto%LSURF_DIAG_ALBEDO = lsurf_diag_albedo
237  dut%LUTCI = lutci
238 IF (lhook) CALL dr_hook('MODN_TEB_N:UPDATE_NAM_DIAG_TEBN',1,zhook_handle)
239 END SUBROUTINE update_nam_diag_tebn
240 
241 END MODULE modn_teb_n
subroutine update_nam_diag_surfn(DGO)
Definition: modn_tebn.F90:105
logical l2m_min_zs
Definition: modn_tebn.F90:47
logical lsurf_vars
Definition: modn_tebn.F90:51
logical lsurf_budgetc
Definition: modn_tebn.F90:55
subroutine update_nam_tebn(T, TOP)
Definition: modn_tebn.F90:146
real xtstep
Definition: modn_tebn.F90:64
logical lpgd
Definition: modn_tebn.F90:46
character(len=6) cz0h
Definition: modn_tebn.F90:59
character(len=5) cch_bem
Definition: modn_tebn.F90:60
integer n2m
Definition: modn_tebn.F90:68
logical lsurf_budget
Definition: modn_tebn.F90:48
subroutine init_nam_tebn(T, TOP)
Definition: modn_tebn.F90:126
subroutine init_nam_diag_tebn(DMTO, DGO, DUT)
Definition: modn_tebn.F90:198
logical lsurf_misc_budget
Definition: modn_tebn.F90:52
subroutine init_nam_diag_surfn(DGO, TOP)
Definition: modn_tebn.F90:80
logical lutci
Definition: modn_tebn.F90:54
integer, parameter jprb
Definition: parkind1.F90:32
logical lrad_budget
Definition: modn_tebn.F90:49
subroutine update_nam_ch_tebn(CHT)
Definition: modn_tebn.F90:183
subroutine update_nam_diag_tebn(DMTO, DGO, DUT)
Definition: modn_tebn.F90:220
logical lhook
Definition: yomhook.F90:15
real xdt_off
Definition: modn_tebn.F90:62
character(len=6) cch_dry_dep
Definition: modn_tebn.F90:58
real xdt_res
Definition: modn_tebn.F90:61
logical lreset_budgetc
Definition: modn_tebn.F90:56
real xdiag_tstep
Definition: modn_tebn.F90:66
real xout_tstep
Definition: modn_tebn.F90:65
subroutine init_nam_ch_tebn(CHT)
Definition: modn_tebn.F90:168
logical lcoef
Definition: modn_tebn.F90:50
logical lsurf_diag_albedo
Definition: modn_tebn.F90:53