SURFEX v8.1
General documentation of Surfex
modn_watfluxn.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_WATFLUX_n* - declaration of namelist NAM_WATFLUXn
10 !!
11 !! PURPOSE
12 !! -------
13 ! The purpose of this module is to specify the namelist NAM_WATFLUXn
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 08/2009 by B. Decharme : LSURF_BUDGETC for all tiles
31 !-------------------------------------------------------------------------------
32 !
33 !* 0. DECLARATIONS
34 ! ------------
35 !
36 !
37 
38 !
39 !
40 USE yomhook ,ONLY : lhook, dr_hook
41 USE parkind1 ,ONLY : jprb
42 !
43 IMPLICIT NONE
44 !
45  CHARACTER(LEN=4) :: cwat_alb
46 REAL :: xtstep
47 REAL :: xout_tstep
48 REAL :: xdiag_tstep
49 INTEGER :: n2m
50 LOGICAL :: l2m_min_zs
51 LOGICAL :: lsurf_budget
52 LOGICAL :: lrad_budget
53 LOGICAL :: lsurf_budgetc
54 LOGICAL :: lreset_budgetc
55 LOGICAL :: lcoef
56 LOGICAL :: lsurf_vars
57  CHARACTER(LEN=6) :: cch_dry_dep
58  CHARACTER(LEN=6) :: cinterpol_ts
59 !
60 NAMELIST/nam_watfluxn/cwat_alb,cinterpol_ts
61 NAMELIST/nam_diag_surfn/n2m,l2m_min_zs,lsurf_budget,lrad_budget, &
63 NAMELIST/nam_ch_watfluxn/cch_dry_dep
64 !
65 CONTAINS
66 !
67 SUBROUTINE init_nam_watfluxn (W)
68 !
69  USE modd_watflux_n, ONLY : watflux_t
70 !
71  IMPLICIT NONE
72 
73 !
74  TYPE(watflux_t), INTENT(INOUT) :: W
75  REAL(KIND=JPRB) :: ZHOOK_HANDLE
76 
77  IF (lhook) CALL dr_hook('MODN_WATFLUX_N:INIT_NAM_WATFLUXN',0,zhook_handle)
78  xtstep = w%XTSTEP
79  xout_tstep = w%XOUT_TSTEP
80  cwat_alb = w%CWAT_ALB
81  cinterpol_ts = w%CINTERPOL_TS
82 IF (lhook) CALL dr_hook('MODN_WATFLUX_N:INIT_NAM_WATFLUXN',1,zhook_handle)
83 END SUBROUTINE init_nam_watfluxn
84 !
85 SUBROUTINE update_nam_watfluxn (W)
86 !
87  USE modd_watflux_n, ONLY : watflux_t
88 !
89  IMPLICIT NONE
90 
91 !
92  TYPE(watflux_t), INTENT(INOUT) :: W
93  REAL(KIND=JPRB) :: ZHOOK_HANDLE
94 
95  IF (lhook) CALL dr_hook('MODN_WATFLUX_N:UPDATE_NAM_WATFLUXN',0,zhook_handle)
96  w%XTSTEP = xtstep
97  w%XOUT_TSTEP = xout_tstep
98  w%CWAT_ALB = cwat_alb
99  w%CINTERPOL_TS = cinterpol_ts
100 IF (lhook) CALL dr_hook('MODN_WATFLUX_N:UPDATE_NAM_WATFLUXN',1,zhook_handle)
101 END SUBROUTINE update_nam_watfluxn
102 !
103 SUBROUTINE init_nam_diag_surfn (DGO)
104 !
105  USE modd_diag_n, ONLY : diag_options_t
106 !
107  IMPLICIT NONE
108 
109 !
110  TYPE(diag_options_t), INTENT(INOUT) :: DGO
111  REAL(KIND=JPRB) :: ZHOOK_HANDLE
112 
113  IF (lhook) CALL dr_hook('MODN_WATFLUX_N:INIT_NAM_DIAG_SURFN',0,zhook_handle)
114  xdiag_tstep = dgo%XDIAG_TSTEP
115  n2m = dgo%N2M
116  l2m_min_zs = dgo%L2M_MIN_ZS
117  lsurf_budget = dgo%LSURF_BUDGET
118  lrad_budget = dgo%LRAD_BUDGET
119  lsurf_budgetc = dgo%LSURF_BUDGETC
120  lreset_budgetc = dgo%LRESET_BUDGETC
121  lcoef = dgo%LCOEF
122  lsurf_vars = dgo%LSURF_VARS
123 IF (lhook) CALL dr_hook('MODN_WATFLUX_N:INIT_NAM_DIAG_SURFN',1,zhook_handle)
124 END SUBROUTINE init_nam_diag_surfn
125 
126 SUBROUTINE update_nam_diag_surfn (DGO)
127 !
128  USE modd_diag_n, ONLY : diag_options_t
129 !
130  IMPLICIT NONE
131 
132 !
133  TYPE(diag_options_t), INTENT(INOUT) :: DGO
134  REAL(KIND=JPRB) :: ZHOOK_HANDLE
135 
136  IF (lhook) CALL dr_hook('MODN_WATFLUX_N:UPDATE_NAM_DIAG_SURFN',0,zhook_handle)
137  dgo%XDIAG_TSTEP = xdiag_tstep
138  dgo%N2M = n2m
139  dgo%L2M_MIN_ZS = l2m_min_zs
140  dgo%LSURF_BUDGET = lsurf_budget
141  dgo%LRAD_BUDGET = lrad_budget
142  dgo%LSURF_BUDGETC = lsurf_budgetc
143  dgo%LRESET_BUDGETC = lreset_budgetc
144  dgo%LCOEF = lcoef
145  dgo%LSURF_VARS = lsurf_vars
146 IF (lhook) CALL dr_hook('MODN_WATFLUX_N:UPDATE_NAM_DIAG_SURFN',1,zhook_handle)
147 END SUBROUTINE update_nam_diag_surfn
148 
149 SUBROUTINE init_nam_ch_watfluxn (CHW)
150 !
151  USE modd_ch_watflux_n, ONLY : ch_watflux_t
152 !
153  IMPLICIT NONE
154 
155 !
156  TYPE(ch_watflux_t), INTENT(INOUT) :: CHW
157  REAL(KIND=JPRB) :: ZHOOK_HANDLE
158 
159  IF (lhook) CALL dr_hook('MODN_WATFLUX_N:INIT_NAM_CH_WATFLUXN',0,zhook_handle)
160  cch_dry_dep = chw%CCH_DRY_DEP
161 IF (lhook) CALL dr_hook('MODN_WATFLUX_N:INIT_NAM_CH_WATFLUXN',1,zhook_handle)
162 END SUBROUTINE init_nam_ch_watfluxn
163 
164 SUBROUTINE update_nam_ch_watfluxn (CHW)
165 !
166  USE modd_ch_watflux_n, ONLY : ch_watflux_t
167 !
168  IMPLICIT NONE
169 
170 !
171  TYPE(ch_watflux_t), INTENT(INOUT) :: CHW
172  REAL(KIND=JPRB) :: ZHOOK_HANDLE
173 
174  IF (lhook) CALL dr_hook('MODN_WATFLUX_N:UPDATE_NAM_CH_WATFLUXN',0,zhook_handle)
175  chw%CCH_DRY_DEP = cch_dry_dep
176 IF (lhook) CALL dr_hook('MODN_WATFLUX_N:UPDATE_NAM_CH_WATFLUXN',1,zhook_handle)
177 END SUBROUTINE update_nam_ch_watfluxn
178 
179 
180 END MODULE modn_watflux_n
subroutine init_nam_diag_surfn(DGO)
logical lsurf_budget
character(len=4) cwat_alb
logical lreset_budgetc
subroutine init_nam_watfluxn(W)
subroutine update_nam_ch_watfluxn(CHW)
character(len=6) cinterpol_ts
integer, parameter jprb
Definition: parkind1.F90:32
subroutine init_nam_ch_watfluxn(CHW)
logical lhook
Definition: yomhook.F90:15
subroutine update_nam_watfluxn(W)
subroutine update_nam_diag_surfn(DGO)
logical lsurf_budgetc
character(len=6) cch_dry_dep