SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modn_teb_vegn.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 !!**** *MODN_TEB_VEG_n* - declaration of namelist NAM_TEB_VEG_n
10 !!
11 !! PURPOSE
12 !! -------
13 ! The purpose of this module is to specify the namelist NAM_TEB_VEG_n
14 ! which concern the surface configuration of one nested model.
15 !
16 !!
17 !!** IMPLICIT ARGUMENTS
18 !! ------------------
19 !!
20 !! REFERENCE
21 !! ---------
22 !!
23 !!
24 !! AUTHOR
25 !! ------
26 !! V. Masson *Meteo France*
27 !!
28 !! MODIFICATIONS
29 !! -------------
30 !! Original 01/2004
31 !-------------------------------------------------------------------------------
32 !
33 !* 0. DECLARATIONS
34 ! ------------
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 !
42 LOGICAL :: LPERTSURF
43 !
44 LOGICAL :: LCH_BIO_FLUX
45 LOGICAL :: LCH_NO_FLUX
46 LOGICAL :: LGLACIER
47 LOGICAL :: LVEGUPD
48 LOGICAL :: LNITRO_DILU
49 LOGICAL :: LCANOPY_DRAG
50 !
51  CHARACTER(LEN=4) :: CC1DRY
52  CHARACTER(LEN=4) :: CSCOND
53  CHARACTER(LEN=3) :: CSOILFRZ
54  CHARACTER(LEN=4) :: CDIFSFCOND
55  CHARACTER(LEN=3) :: CSNOWRES
56  CHARACTER(LEN=4) :: CALBEDO
57  CHARACTER(LEN=4) :: CROUGH
58  CHARACTER(LEN=3) :: CCPSURF
59  CHARACTER(LEN=4) :: CRUNOFF
60  CHARACTER(LEN=3) :: CKSAT
61 LOGICAL :: LSOC
62  CHARACTER(LEN=3) :: CRAIN
63  CHARACTER(LEN=3) :: CHORT
64  CHARACTER(LEN=28) :: CCHEM_SURF_FILE
65  CHARACTER(LEN=6) :: CCH_DRY_DEP
66 !
67 REAL :: XCGMAX
68 REAL :: XTSTEP
69 REAL :: XCDRAG
70 !
71 namelist/nam_isban/cc1dry,cscond,csoilfrz,cdifsfcond,csnowres,calbedo,crough,ccpsurf, &
72  xtstep,xcgmax,xcdrag,lglacier, lcanopy_drag, lvegupd, lpertsurf
73 namelist/nam_isba_agsn/lnitro_dilu
74 namelist/nam_sgh_isban/crunoff,cksat,lsoc,crain,chort
75 namelist/nam_ch_controln/cchem_surf_file
76 namelist/nam_ch_isban/lch_bio_flux,cch_dry_dep,lch_no_flux
77 !
78  CONTAINS
79 !
80 SUBROUTINE init_nam_teb_vegn (TVG)
81 !
83 !
84  IMPLICIT NONE
85 
86 !
87  TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
88  REAL(KIND=JPRB) :: zhook_handle
89 
90  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEGN',0,zhook_handle)
91  cc1dry = tvg%CC1DRY
92  cscond = tvg%CSCOND
93  csoilfrz = tvg%CSOILFRZ
94  cdifsfcond = tvg%CDIFSFCOND
95  csnowres = tvg%CSNOWRES
96  calbedo = tvg%CALBEDO
97  crough = tvg%CROUGH
98  ccpsurf = tvg%CCPSURF
99  xtstep = tvg%XTSTEP
100  xcgmax = tvg%XCGMAX
101  xcdrag = tvg%XCDRAG
102  lvegupd = tvg%LVEGUPD
103  lcanopy_drag = tvg%LCANOPY_DRAG
104 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEGN',1,zhook_handle)
105 END SUBROUTINE init_nam_teb_vegn
106 
107 SUBROUTINE init_nam_teb_veg_agsn (TVG)
108 !
110 !
111  IMPLICIT NONE
112 
113 !
114  TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
115  REAL(KIND=JPRB) :: zhook_handle
116 
117  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEG_AGSN',0,zhook_handle)
118  lnitro_dilu = tvg%LNITRO_DILU
119 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEG_AGSN',1,zhook_handle)
120 END SUBROUTINE init_nam_teb_veg_agsn
121 
122 SUBROUTINE update_nam_teb_vegn (TVG)
123 !
125 !
126  IMPLICIT NONE
127 
128 !
129  TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
130  REAL(KIND=JPRB) :: zhook_handle
131 
132  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEGN',0,zhook_handle)
133  tvg%CC1DRY = cc1dry
134  tvg%CSCOND = cscond
135  tvg%CSOILFRZ = csoilfrz
136  tvg%CDIFSFCOND = cdifsfcond
137  tvg%CSNOWRES = csnowres
138  tvg%CALBEDO = calbedo
139  tvg%CROUGH = crough
140  tvg%CCPSURF = ccpsurf
141  tvg%XTSTEP = xtstep
142  tvg%XCGMAX = xcgmax
143  tvg%XCDRAG = xcdrag
144  tvg%LVEGUPD = lvegupd
145  tvg%LCANOPY_DRAG = lcanopy_drag
146 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEGN',1,zhook_handle)
147 END SUBROUTINE update_nam_teb_vegn
148 
149 SUBROUTINE update_nam_teb_veg_agsn (TVG)
150 !
152 !
153  IMPLICIT NONE
154 
155 !
156  TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
157  REAL(KIND=JPRB) :: zhook_handle
158 
159  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEG_AGSN',0,zhook_handle)
160  tvg%LNITRO_DILU = lnitro_dilu
161 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEG_AGSN',1,zhook_handle)
162 END SUBROUTINE update_nam_teb_veg_agsn
163 
164 
165 SUBROUTINE init_nam_sgh_teb_vegn (TVG)
166 !
168 !
169  IMPLICIT NONE
170 
171 !
172  TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
173  REAL(KIND=JPRB) :: zhook_handle
174 
175  IF (lhook) CALL dr_hook('MODN_TEB_TEB_VEG_N:INIT_NAM_SGH_TEB_VEGN',0,zhook_handle)
176  crunoff = tvg%CRUNOFF
177  cksat = tvg%CKSAT
178  lsoc = tvg%LSOC
179  crain = tvg%CRAIN
180  chort = tvg%CHORT
181 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_SGH_TEB_VEGN',1,zhook_handle)
182 END SUBROUTINE init_nam_sgh_teb_vegn
183 
184 SUBROUTINE update_nam_sgh_teb_vegn (TVG)
185 !
187 !
188  IMPLICIT NONE
189 
190 !
191  TYPE(teb_veg_options_t), INTENT(INOUT) :: tvg
192  REAL(KIND=JPRB) :: zhook_handle
193 
194  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_SGH_TEB_VEGN',0,zhook_handle)
195  tvg%CRUNOFF = crunoff
196  tvg%CKSAT = cksat
197  tvg%LSOC = lsoc
198  tvg%CRAIN = crain
199  tvg%CHORT = chort
200 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_SGH_TEB_VEGN',1,zhook_handle)
201 END SUBROUTINE update_nam_sgh_teb_vegn
202 
203 SUBROUTINE init_nam_ch_controln (CHT)
204 !
205  USE modd_ch_teb_n, ONLY : ch_teb_t
206 !
207  IMPLICIT NONE
208 
209 !
210  TYPE(ch_teb_t), INTENT(INOUT) :: cht
211  REAL(KIND=JPRB) :: zhook_handle
212 
213  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_CONTROLN',0,zhook_handle)
214  cchem_surf_file = cht%CCHEM_SURF_FILE
215 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_CONTROLN',1,zhook_handle)
216 END SUBROUTINE init_nam_ch_controln
217 
218 SUBROUTINE update_nam_ch_controln (CHT)
219 !
220  USE modd_ch_teb_n, ONLY : ch_teb_t
221 !
222  IMPLICIT NONE
223 
224 !
225  TYPE(ch_teb_t), INTENT(INOUT) :: cht
226  REAL(KIND=JPRB) :: zhook_handle
227 
228  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_CONTROLN',0,zhook_handle)
229  cht%CCHEM_SURF_FILE = cchem_surf_file
230 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_CONTROLN',1,zhook_handle)
231 END SUBROUTINE update_nam_ch_controln
232 
233 SUBROUTINE init_nam_ch_teb_vegn (CHT)
234 !
235  USE modd_ch_teb_n, ONLY : ch_teb_t
236 !
237  IMPLICIT NONE
238 
239 !
240  TYPE(ch_teb_t), INTENT(INOUT) :: cht
241  REAL(KIND=JPRB) :: zhook_handle
242 
243  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_TEB_VEGN',0,zhook_handle)
244  lch_bio_flux = cht%LCH_BIO_FLUX
245  lch_no_flux = cht%LCH_NO_FLUX
246 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_TEB_VEGN',1,zhook_handle)
247 END SUBROUTINE init_nam_ch_teb_vegn
248 
249 SUBROUTINE update_nam_ch_teb_vegn (CHT)
250 !
251  USE modd_ch_teb_n, ONLY : ch_teb_t
252 !
253  IMPLICIT NONE
254 
255 !
256  TYPE(ch_teb_t), INTENT(INOUT) :: cht
257  REAL(KIND=JPRB) :: zhook_handle
258 
259  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_TEB_VEGN',0,zhook_handle)
260  cht%LCH_BIO_FLUX = lch_bio_flux
261  cht%LCH_NO_FLUX = lch_no_flux
262  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_TEB_VEGN',1,zhook_handle)
263 END SUBROUTINE update_nam_ch_teb_vegn
264 
265 END MODULE modn_teb_veg_n
subroutine update_nam_ch_controln(CHI)
Definition: modn_isban.F90:365
subroutine init_nam_teb_veg_agsn(TVG)
subroutine update_nam_ch_teb_vegn(CHT)
subroutine update_nam_sgh_teb_vegn(TVG)
subroutine init_nam_teb_vegn(TVG)
subroutine init_nam_ch_teb_vegn(CHT)
subroutine init_nam_ch_controln(CHI)
Definition: modn_isban.F90:350
subroutine update_nam_teb_vegn(TVG)
subroutine update_nam_teb_veg_agsn(TVG)
subroutine init_nam_sgh_teb_vegn(TVG)