SURFEX v8.1
General documentation of Surfex
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=3) :: ccpsurf
57  CHARACTER(LEN=4) :: crunoff
58  CHARACTER(LEN=3) :: cksat
59 LOGICAL :: lsoc
60  CHARACTER(LEN=3) :: crain
61  CHARACTER(LEN=3) :: chort
62  CHARACTER(LEN=28) :: cchem_surf_file
63  CHARACTER(LEN=6) :: cch_dry_dep
64 !
65 REAL :: xcgmax
66 REAL :: xtstep
67 REAL :: xcdrag
68 !
69 NAMELIST/nam_isban/cc1dry,cscond,csoilfrz,cdifsfcond,csnowres,ccpsurf, &
71 NAMELIST/nam_isba_agsn/lnitro_dilu
72 NAMELIST/nam_sgh_isban/crunoff,cksat,lsoc,crain,chort
73 NAMELIST/nam_ch_controln/cchem_surf_file
74 NAMELIST/nam_ch_isban/lch_bio_flux,cch_dry_dep,lch_no_flux
75 !
76 CONTAINS
77 !
78 SUBROUTINE init_nam_teb_vegn (TGDO)
79 !
81 !
82  IMPLICIT NONE
83 
84 !
85  TYPE(isba_options_t), INTENT(INOUT) :: TGDO
86  REAL(KIND=JPRB) :: ZHOOK_HANDLE
87 
88  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEGN',0,zhook_handle)
89  cc1dry = tgdo%CC1DRY
90  cscond = tgdo%CSCOND
91  csoilfrz = tgdo%CSOILFRZ
92  cdifsfcond = tgdo%CDIFSFCOND
93  csnowres = tgdo%CSNOWRES
94  ccpsurf = tgdo%CCPSURF
95  xtstep = tgdo%XTSTEP
96  xcgmax = tgdo%XCGMAX
97  xcdrag = tgdo%XCDRAG
98  lvegupd = tgdo%LVEGUPD
99  lcanopy_drag = tgdo%LCANOPY_DRAG
100 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEGN',1,zhook_handle)
101 END SUBROUTINE init_nam_teb_vegn
102 
103 SUBROUTINE init_nam_teb_veg_agsn (TGDO)
104 !
106 !
107  IMPLICIT NONE
108 
109 !
110  TYPE(isba_options_t), INTENT(INOUT) :: TGDO
111  REAL(KIND=JPRB) :: ZHOOK_HANDLE
112 
113  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEG_AGSN',0,zhook_handle)
114  lnitro_dilu = tgdo%LNITRO_DILU
115 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_TEB_VEG_AGSN',1,zhook_handle)
116 END SUBROUTINE init_nam_teb_veg_agsn
117 
118 SUBROUTINE update_nam_teb_vegn (TGDO)
119 !
121 !
122  IMPLICIT NONE
123 
124 !
125  TYPE(isba_options_t), INTENT(INOUT) :: TGDO
126  REAL(KIND=JPRB) :: ZHOOK_HANDLE
127 
128  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEGN',0,zhook_handle)
129  tgdo%CC1DRY = cc1dry
130  tgdo%CSCOND = cscond
131  tgdo%CSOILFRZ = csoilfrz
132  tgdo%CDIFSFCOND = cdifsfcond
133  tgdo%CSNOWRES = csnowres
134  tgdo%CCPSURF = ccpsurf
135  tgdo%XTSTEP = xtstep
136  tgdo%XCGMAX = xcgmax
137  tgdo%XCDRAG = xcdrag
138  tgdo%LVEGUPD = lvegupd
139  tgdo%LCANOPY_DRAG = lcanopy_drag
140 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEGN',1,zhook_handle)
141 END SUBROUTINE update_nam_teb_vegn
142 
143 SUBROUTINE update_nam_teb_veg_agsn (TGDO)
144 !
146 !
147  IMPLICIT NONE
148 
149 !
150  TYPE(isba_options_t), INTENT(INOUT) :: TGDO
151  REAL(KIND=JPRB) :: ZHOOK_HANDLE
152 
153  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEG_AGSN',0,zhook_handle)
154  tgdo%LNITRO_DILU = lnitro_dilu
155 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_TEB_VEG_AGSN',1,zhook_handle)
156 END SUBROUTINE update_nam_teb_veg_agsn
157 
158 
159 SUBROUTINE init_nam_sgh_teb_vegn (TGDO)
160 !
162 !
163  IMPLICIT NONE
164 
165 !
166  TYPE(isba_options_t), INTENT(INOUT) :: TGDO
167  REAL(KIND=JPRB) :: ZHOOK_HANDLE
168 
169  IF (lhook) CALL dr_hook('MODN_TEB_TEB_VEG_N:INIT_NAM_SGH_TEB_VEGN',0,zhook_handle)
170  crunoff = tgdo%CRUNOFF
171  cksat = tgdo%CKSAT
172  lsoc = tgdo%LSOC
173  crain = tgdo%CRAIN
174  chort = tgdo%CHORT
175 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_SGH_TEB_VEGN',1,zhook_handle)
176 END SUBROUTINE init_nam_sgh_teb_vegn
177 
178 SUBROUTINE update_nam_sgh_teb_vegn (TGDO)
179 !
181 !
182  IMPLICIT NONE
183 
184 !
185  TYPE(isba_options_t), INTENT(INOUT) :: TGDO
186  REAL(KIND=JPRB) :: ZHOOK_HANDLE
187 
188  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_SGH_TEB_VEGN',0,zhook_handle)
189  tgdo%CRUNOFF = crunoff
190  tgdo%CKSAT = cksat
191  tgdo%LSOC = lsoc
192  tgdo%CRAIN = crain
193  tgdo%CHORT = chort
194 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_SGH_TEB_VEGN',1,zhook_handle)
195 END SUBROUTINE update_nam_sgh_teb_vegn
196 
197 SUBROUTINE init_nam_ch_controln (CHT)
198 !
199  USE modd_ch_teb_n, ONLY : ch_teb_t
200 !
201  IMPLICIT NONE
202 
203 !
204  TYPE(ch_teb_t), INTENT(INOUT) :: CHT
205  REAL(KIND=JPRB) :: ZHOOK_HANDLE
206 
207  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_CONTROLN',0,zhook_handle)
208  cchem_surf_file = cht%CCHEM_SURF_FILE
209 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_CONTROLN',1,zhook_handle)
210 END SUBROUTINE init_nam_ch_controln
211 
212 SUBROUTINE update_nam_ch_controln (CHT)
213 !
214  USE modd_ch_teb_n, ONLY : ch_teb_t
215 !
216  IMPLICIT NONE
217 
218 !
219  TYPE(ch_teb_t), INTENT(INOUT) :: CHT
220  REAL(KIND=JPRB) :: ZHOOK_HANDLE
221 
222  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_CONTROLN',0,zhook_handle)
223  cht%CCHEM_SURF_FILE = cchem_surf_file
224 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_CONTROLN',1,zhook_handle)
225 END SUBROUTINE update_nam_ch_controln
226 
227 SUBROUTINE init_nam_ch_teb_vegn (CHT)
228 !
229  USE modd_ch_teb_n, ONLY : ch_teb_t
230 !
231  IMPLICIT NONE
232 
233 !
234  TYPE(ch_teb_t), INTENT(INOUT) :: CHT
235  REAL(KIND=JPRB) :: ZHOOK_HANDLE
236 
237  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_TEB_VEGN',0,zhook_handle)
238  lch_bio_flux = cht%LCH_BIO_FLUX
239  lch_no_flux = cht%LCH_NO_FLUX
240 IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:INIT_NAM_CH_TEB_VEGN',1,zhook_handle)
241 END SUBROUTINE init_nam_ch_teb_vegn
242 
243 SUBROUTINE update_nam_ch_teb_vegn (CHT)
244 !
245  USE modd_ch_teb_n, ONLY : ch_teb_t
246 !
247  IMPLICIT NONE
248 
249 !
250  TYPE(ch_teb_t), INTENT(INOUT) :: CHT
251  REAL(KIND=JPRB) :: ZHOOK_HANDLE
252 
253  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_TEB_VEGN',0,zhook_handle)
254  cht%LCH_BIO_FLUX = lch_bio_flux
255  cht%LCH_NO_FLUX = lch_no_flux
256  IF (lhook) CALL dr_hook('MODN_TEB_VEG_N:UPDATE_NAM_CH_TEB_VEGN',1,zhook_handle)
257 END SUBROUTINE update_nam_ch_teb_vegn
258 
259 END MODULE modn_teb_veg_n
subroutine init_nam_sgh_teb_vegn(TGDO)
character(len=4) crunoff
character(len=3) cksat
character(len=6) cch_dry_dep
character(len=4) cc1dry
integer, parameter jprb
Definition: parkind1.F90:32
subroutine init_nam_teb_veg_agsn(TGDO)
character(len=28) cchem_surf_file
character(len=3) csnowres
subroutine update_nam_teb_veg_agsn(TGDO)
character(len=3) crain
character(len=3) ccpsurf
subroutine init_nam_teb_vegn(TGDO)
logical lhook
Definition: yomhook.F90:15
subroutine init_nam_ch_controln(CHT)
character(len=4) cscond
subroutine update_nam_sgh_teb_vegn(TGDO)
logical lch_bio_flux
logical lcanopy_drag
character(len=3) csoilfrz
subroutine update_nam_teb_vegn(TGDO)
character(len=3) chort
subroutine update_nam_ch_teb_vegn(CHT)
subroutine update_nam_ch_controln(CHT)
subroutine init_nam_ch_teb_vegn(CHT)
character(len=4) cdifsfcond