40 USE yomhook
,ONLY : lhook, dr_hook
41 USE parkind1
,ONLY : jprb
45 CHARACTER(LEN=4) :: CC1DRY
46 CHARACTER(LEN=4) :: CSCOND
47 CHARACTER(LEN=3) :: CSOILFRZ
48 CHARACTER(LEN=4) :: CDIFSFCOND
49 CHARACTER(LEN=3) :: CSNOWRES
50 CHARACTER(LEN=4) :: CALBEDO
51 CHARACTER(LEN=4) :: CROUGH
52 CHARACTER(LEN=3) :: CCPSURF
53 CHARACTER(LEN=4) :: CRUNOFF
54 CHARACTER(LEN=3) :: CKSAT
56 CHARACTER(LEN=3) :: CRAIN
57 CHARACTER(LEN=3) :: CHORT
66 INTEGER :: NNBYEARSPINS
67 INTEGER :: NNBYEARSPINW
69 LOGICAL :: LSURF_EVAP_BUDGET
70 LOGICAL :: LSURF_BUDGET
71 LOGICAL :: LRAD_BUDGET
72 LOGICAL :: LSURF_BUDGETC
73 LOGICAL :: LRESET_BUDGETC
74 LOGICAL :: LPATCH_BUDGET
75 LOGICAL :: LSURF_MISC_BUDGET
76 LOGICAL :: LSURF_DIAG_ALBEDO
77 LOGICAL :: LSURF_MISC_DIF
78 LOGICAL :: LWATER_BUDGET
80 REAL :: XALBICE1, XALBICE2,XALBICE3
81 REAL :: XRHOTHRESHOLD_ICE
83 REAL :: XVAGING_NOGLACIER,XVAGING_GLACIER
84 REAL :: XPERCENTAGEPORE
89 LOGICAL :: LCH_BIO_FLUX
90 LOGICAL :: LCH_NO_FLUX
93 LOGICAL :: LNITRO_DILU
94 LOGICAL :: LSPINUPCARBS
95 LOGICAL :: LSPINUPCARBW
96 LOGICAL :: LCANOPY_DRAG
99 LOGICAL :: LSNOWDRIFT_SUBLIM
100 LOGICAL :: LSNOW_ABS_ZENITH
101 CHARACTER(3) :: CSNOWMETAMO
102 CHARACTER(3) :: CSNOWRAD
103 CHARACTER(LEN=6) :: CCH_DRY_DEP
104 CHARACTER(LEN=28) :: CCHEM_SURF_FILE
106 namelist/nam_isban/cc1dry,cscond,csoilfrz,cdifsfcond,csnowres,calbedo,crough,ccpsurf, &
107 xtstep,xcgmax,xcdrag,lglacier,lcanopy_drag,lvegupd,lpertsurf
108 namelist/nam_isba_agsn/lnitro_dilu
109 namelist/nam_sgh_isban/crunoff,cksat,lsoc,crain,chort
110 namelist/nam_diag_isban/lpgd,lsurf_evap_budget,lsurf_misc_budget,lsurf_diag_albedo,lpatch_budget, &
111 lsurf_misc_dif, lwater_budget
112 namelist/nam_diag_surfn/n2m,l2m_min_zs,lsurf_budget,lrad_budget, &
113 lsurf_budgetc,lreset_budgetc,lcoef,lsurf_vars
114 namelist/nam_ch_controln/cchem_surf_file
115 namelist/nam_ch_isban/lch_bio_flux,cch_dry_dep,lch_no_flux
116 namelist/nam_spinup_carbn/lspinupcarbs,lspinupcarbw,xspinmaxs,xspinmaxw,nnbyearspins,&
117 nnbyearspinw, xco2_start, xco2_end
118 namelist/nam_isba_snown/lsnowdrift,lsnowdrift_sublim, lsnow_abs_zenith, csnowmetamo, csnowrad
129 TYPE(isba_t
),
INTENT(INOUT) :: i
130 REAL(KIND=JPRB) :: zhook_handle
132 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBAN',0,zhook_handle)
135 csoilfrz = i%CSOILFRZ
136 cdifsfcond = i%CDIFSFCOND
137 csnowres = i%CSNOWRES
142 xout_tstep = i%XOUT_TSTEP
145 lglacier = i%LGLACIER
147 lcanopy_drag = i%LCANOPY_DRAG
148 lpertsurf = i%LPERTSURF
149 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBAN',1,zhook_handle)
159 TYPE(isba_t
),
INTENT(INOUT) :: i
160 REAL(KIND=JPRB) :: zhook_handle
162 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBA_AGSN',0,zhook_handle)
163 lnitro_dilu = i%LNITRO_DILU
164 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBA_AGSN',1,zhook_handle)
174 TYPE(isba_t
),
INTENT(INOUT) :: i
175 REAL(KIND=JPRB) :: zhook_handle
177 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_SGH_ISBAN',0,zhook_handle)
183 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_SGH_ISBAN',1,zhook_handle)
193 TYPE(isba_t
),
INTENT(INOUT) :: i
194 REAL(KIND=JPRB) :: zhook_handle
196 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_ISBAN',0,zhook_handle)
199 i%CSOILFRZ = csoilfrz
200 i%CDIFSFCOND = cdifsfcond
201 i%CSNOWRES = csnowres
206 i%XOUT_TSTEP = xout_tstep
209 i%LGLACIER = lglacier
211 i%LCANOPY_DRAG = lcanopy_drag
212 i%LPERTSURF = lpertsurf
213 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_ISBAN',1,zhook_handle)
223 TYPE(isba_t
),
INTENT(INOUT) :: i
224 REAL(KIND=JPRB) :: zhook_handle
226 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_ISBA_AGSN',0,zhook_handle)
227 i%LNITRO_DILU = lnitro_dilu
228 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_ISBA_AGSN',1,zhook_handle)
238 TYPE(isba_t
),
INTENT(INOUT) :: i
239 REAL(KIND=JPRB) :: zhook_handle
241 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_SGH_ISBAN',0,zhook_handle)
247 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_SGH_ISBAN',1,zhook_handle)
262 REAL(KIND=JPRB) :: zhook_handle
264 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_DIAG_ISBAN',0,zhook_handle)
266 lsurf_evap_budget = dgei%LSURF_EVAP_BUDGET
267 lwater_budget = dgei%LWATER_BUDGET
268 lsurf_misc_budget = dgmi%LSURF_MISC_BUDGET
269 lsurf_diag_albedo = dgmi%LSURF_DIAG_ALBEDO
270 lsurf_misc_dif = dgmi%LSURF_MISC_DIF
271 lpatch_budget = dgi%LPATCH_BUDGET
272 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_DIAG_ISBAN',1,zhook_handle)
287 REAL(KIND=JPRB) :: zhook_handle
289 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_DIAG_ISBAN',0,zhook_handle)
291 dgei%LSURF_EVAP_BUDGET = lsurf_evap_budget
292 dgei%LWATER_BUDGET = lwater_budget
293 dgmi%LSURF_MISC_BUDGET = lsurf_misc_budget
294 dgmi%LSURF_DIAG_ALBEDO = lsurf_diag_albedo
295 dgmi%LSURF_MISC_DIF = lsurf_misc_dif
296 dgi%LPATCH_BUDGET = lpatch_budget
297 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_DIAG_ISBAN',1,zhook_handle)
310 REAL(KIND=JPRB) :: zhook_handle
312 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_DIAG_SURFN',0,zhook_handle)
313 xdiag_tstep = dgi%XDIAG_TSTEP
315 l2m_min_zs = dgi%L2M_MIN_ZS
316 lsurf_budget = dgi%LSURF_BUDGET
317 lrad_budget = dgi%LRAD_BUDGET
318 lsurf_budgetc = dgei%LSURF_BUDGETC
319 lreset_budgetc = dgei%LRESET_BUDGETC
321 lsurf_vars = dgi%LSURF_VARS
322 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_DIAG_SURFN',1,zhook_handle)
335 REAL(KIND=JPRB) :: zhook_handle
337 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_DIAG_SURFN',0,zhook_handle)
338 dgi%XDIAG_TSTEP = xdiag_tstep
340 dgi%L2M_MIN_ZS = l2m_min_zs
341 dgi%LSURF_BUDGET = lsurf_budget
342 dgi%LRAD_BUDGET = lrad_budget
343 dgei%LSURF_BUDGETC = lsurf_budgetc
344 dgei%LRESET_BUDGETC = lreset_budgetc
346 dgi%LSURF_VARS = lsurf_vars
347 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_DIAG_SURFN',1,zhook_handle)
358 REAL(KIND=JPRB) :: zhook_handle
360 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_CH_CONTROLN',0,zhook_handle)
361 cchem_surf_file = chi%CCHEM_SURF_FILE
362 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_CH_CONTROLN',1,zhook_handle)
373 REAL(KIND=JPRB) :: zhook_handle
375 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_CH_CONTROLN',0,zhook_handle)
376 chi%CCHEM_SURF_FILE = cchem_surf_file
377 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_CH_CONTROLN',1,zhook_handle)
388 REAL(KIND=JPRB) :: zhook_handle
390 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_CH_ISBAN',0,zhook_handle)
391 lch_bio_flux = chi%LCH_BIO_FLUX
392 lch_no_flux = chi%LCH_NO_FLUX
393 cch_dry_dep = chi%CCH_DRY_DEP
394 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_CH_ISBAN',1,zhook_handle)
405 REAL(KIND=JPRB) :: zhook_handle
407 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_CH_ISBAN',0,zhook_handle)
408 chi%LCH_BIO_FLUX = lch_bio_flux
409 chi%LCH_NO_FLUX = lch_no_flux
410 chi%CCH_DRY_DEP = cch_dry_dep
411 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_CH_ISBAN',1,zhook_handle)
421 TYPE(isba_t
),
INTENT(INOUT) :: i
422 REAL(KIND=JPRB) :: zhook_handle
424 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_SPINUP_CARB_ISBAN',0,zhook_handle)
425 lspinupcarbs = i%LSPINUPCARBS
426 lspinupcarbw = i%LSPINUPCARBW
427 xspinmaxs = i%XSPINMAXS
428 xspinmaxw = i%XSPINMAXW
429 nnbyearspins = i%NNBYEARSPINS
430 nnbyearspinw = i%NNBYEARSPINW
431 xco2_start = i%XCO2_START
432 xco2_end = i%XCO2_END
433 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_SPINUP_CARB_ISBAN',1,zhook_handle)
443 TYPE(isba_t
),
INTENT(INOUT) :: i
444 REAL(KIND=JPRB) :: zhook_handle
446 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_SPINUP_CARB_ISBAN',0,zhook_handle)
447 i%LSPINUPCARBS = lspinupcarbs
448 i%LSPINUPCARBW = lspinupcarbw
449 i%XSPINMAXS = xspinmaxs
450 i%XSPINMAXW = xspinmaxw
451 i%NNBYEARSPINS = nnbyearspins
452 i%NNBYEARSPINW = nnbyearspinw
453 i%XCO2_START = xco2_start
454 i%XCO2_END = xco2_end
455 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:UPDATE_NAM_SPINUP_CARB_ISBAN',1,zhook_handle)
465 TYPE(isba_t
),
INTENT(INOUT) :: i
466 REAL(KIND=JPRB) :: zhook_handle
468 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBA_SNOWn',0,zhook_handle)
469 lsnowdrift = i%LSNOWDRIFT
470 lsnowdrift_sublim = i%LSNOWDRIFT_SUBLIM
471 lsnow_abs_zenith = i%LSNOW_ABS_ZENITH
472 csnowmetamo = i%CSNOWMETAMO
473 csnowrad = i%CSNOWRAD
474 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBA_SNOWn',1,zhook_handle)
485 TYPE(isba_t
),
INTENT(INOUT) :: i
486 REAL(KIND=JPRB) :: zhook_handle
488 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBA_SNOWn',0,zhook_handle)
489 i%LSNOWDRIFT = lsnowdrift
490 i%LSNOWDRIFT_SUBLIM = lsnowdrift_sublim
491 i%LSNOW_ABS_ZENITH = lsnow_abs_zenith
492 i%CSNOWMETAMO = csnowmetamo
494 IF (lhook) CALL dr_hook(
'MODN_ISBA_N:INIT_NAM_ISBA_SNOWn',1,zhook_handle)
subroutine update_nam_ch_controln(CHI)
subroutine init_nam_isba_agsn(I)
subroutine init_nam_isba_snown(I)
subroutine init_nam_sgh_isban(I)
subroutine update_nam_isba_snown(I)
subroutine init_nam_ch_controln(CHI)
subroutine init_nam_diag_surfn(DGF)
subroutine update_nam_sgh_isban(I)
subroutine update_nam_spinup_carb_isban(I)
subroutine update_nam_ch_isban(CHI)
subroutine update_nam_diag_surfn(DGF)
subroutine update_nam_isban(I)
subroutine init_nam_ch_isban(CHI)
subroutine init_nam_isban(I)
subroutine init_nam_spinup_carb_isban(I)
subroutine init_nam_diag_isban(DGEI, DGI, DGMI)
subroutine update_nam_isba_agsn(I)
subroutine update_nam_diag_isban(DGEI, DGI, DGMI)