7 OFRAC, ODIAG_GRID, K2M, OSURF_BUDGET, ORAD_BUDGET, OCOEF, &
8 OSURF_VARS, KBEQ, KDSTEQ, ODIAG_OCEAN, ODIAG_MISC_SEAICE, &
9 OWATER_PROFILE, OSURF_EVAP_BUDGET, OFLOOD, OPGD_ISBA, &
10 OCH_NO_FLUX_ISBA, OSURF_MISC_BUDGET_ISBA, OPGD_TEB, &
11 OSURF_MISC_BUDGET_TEB )
71 TYPE(
sv_t),
INTENT(INOUT) :: SV
73 LOGICAL,
INTENT(IN) :: OFRAC
74 LOGICAL,
INTENT(IN) :: ODIAG_GRID
75 INTEGER,
INTENT(IN) :: K2M
76 LOGICAL,
INTENT(IN) :: OSURF_BUDGET
77 LOGICAL,
INTENT(IN) :: ORAD_BUDGET
78 LOGICAL,
INTENT(IN) :: OCOEF
79 LOGICAL,
INTENT(IN) :: OSURF_VARS
81 INTEGER,
INTENT(IN) :: KBEQ
82 INTEGER,
INTENT(IN) :: KDSTEQ
84 LOGICAL,
INTENT(IN) :: ODIAG_OCEAN
85 LOGICAL,
INTENT(IN) :: ODIAG_MISC_SEAICE
86 LOGICAL,
INTENT(IN) :: OWATER_PROFILE
87 LOGICAL,
INTENT(IN) :: OSURF_EVAP_BUDGET
88 LOGICAL,
INTENT(IN) :: OFLOOD
89 LOGICAL,
INTENT(IN) :: OSURF_MISC_BUDGET_ISBA
90 LOGICAL,
INTENT(IN) :: OCH_NO_FLUX_ISBA
91 LOGICAL,
INTENT(IN) :: OPGD_ISBA
92 LOGICAL,
INTENT(IN) :: OSURF_MISC_BUDGET_TEB
93 LOGICAL,
INTENT(IN) :: OPGD_TEB
98 REAL(KIND=JPRB) :: ZHOOK_HANDLE
100 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE',0,zhook_handle)
103 dgo%LDIAG_GRID = odiag_grid
105 dgo%LSURF_BUDGET = osurf_budget
106 dgo%LRAD_BUDGET = orad_budget
108 dgo%LSURF_VARS = osurf_vars
112 dgo%LSURF_BUDGETC = .false.
113 IF (.NOT.dgo%LRESET_BUDGETC) dgo%LSURF_BUDGETC = .true.
115 IF (u%CSEA ==
'SEAFLX')
CALL flag_sea_update(kbeq, odiag_ocean, odiag_misc_seaice, &
116 dgo%LSURF_BUDGETC, dgo%LRAD_BUDGET, k2m)
117 IF (u%CWATER ==
'FLAKE ')
CALL flag_flake_update(kbeq, owater_profile, dgo%LSURF_BUDGETC, dgo%LRAD_BUDGET, k2m)
118 IF (u%CWATER ==
'WATFLX')
CALL flag_water_update(kbeq, dgo%LSURF_BUDGETC, dgo%LRAD_BUDGET, k2m)
119 IF (u%CNATURE==
'ISBA ')
CALL flag_isba_update(kbeq, kdsteq, osurf_evap_budget, oflood, &
120 opgd_isba, och_no_flux_isba, osurf_misc_budget_isba,&
121 dgo%LSURF_BUDGETC, dgo%LRAD_BUDGET, k2m)
122 IF (u%CTOWN ==
'TEB ')
CALL flag_teb_update(kbeq, opgd_teb, osurf_misc_budget_teb, dgo%LRAD_BUDGET, k2m)
124 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE',1,zhook_handle)
128 SUBROUTINE flag_sea_update(KBEQ, ODIAG_OCEAN, ODIAG_MISC_SEAICE, OSURF_BUDGETC, ORAD_BUDGET, K2M)
132 INTEGER,
INTENT(IN) :: KBEQ
133 LOGICAL,
INTENT(IN) :: ODIAG_OCEAN
134 LOGICAL,
INTENT(IN) :: ODIAG_MISC_SEAICE
135 LOGICAL,
INTENT(IN) :: OSURF_BUDGETC
136 LOGICAL,
INTENT(IN) :: ORAD_BUDGET
137 INTEGER,
INTENT(IN) :: K2M
139 REAL(KIND=JPRB) :: ZHOOK_HANDLE
141 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_SEA_UPDATE',0,zhook_handle)
142 sm%CHS%SVS%NBEQ = kbeq
143 sm%SD%GO%LDIAG_OCEAN = odiag_ocean
144 sm%SD%DMI%LDIAG_MISC_SEAICE = odiag_misc_seaice
145 sm%SD%O%LSURF_BUDGETC = osurf_budgetc
146 sm%SD%O%LRAD_BUDGET = orad_budget
148 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_SEA_UPDATE',1,zhook_handle)
157 INTEGER,
INTENT(IN) :: KBEQ
158 LOGICAL,
INTENT(IN) :: OSURF_BUDGETC
159 LOGICAL,
INTENT(IN) :: ORAD_BUDGET
160 INTEGER,
INTENT(IN) :: K2M
162 REAL(KIND=JPRB) :: ZHOOK_HANDLE
164 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_WATER_UPDATE',0,zhook_handle)
165 wm%CHW%SVW%NBEQ = kbeq
166 wm%DWO%LSURF_BUDGETC = osurf_budgetc
167 wm%DWO%LRAD_BUDGET = orad_budget
169 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_WATER_UPDATE',1,zhook_handle)
173 SUBROUTINE flag_flake_update(KBEQ, OWATER_PROFILE, OSURF_BUDGETC, ORAD_BUDGET, K2M)
178 INTEGER,
INTENT(IN) :: KBEQ
179 LOGICAL,
INTENT(IN) :: OWATER_PROFILE
180 LOGICAL,
INTENT(IN) :: OSURF_BUDGETC
181 LOGICAL,
INTENT(IN) :: ORAD_BUDGET
182 INTEGER,
INTENT(IN) :: K2M
184 REAL(KIND=JPRB) :: ZHOOK_HANDLE
186 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_FLAKE_UPDATE',0,zhook_handle)
187 fm%CHF%SVF%NBEQ = kbeq
188 fm%DMF%LWATER_PROFILE = owater_profile
189 fm%DFO%LSURF_BUDGETC = osurf_budgetc
190 fm%DFO%LRAD_BUDGET = orad_budget
192 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_FLAKE_UPDATE',1,zhook_handle)
198 OPGD, OCH_NO_FLUX, OSURF_MISC_BUDGET, &
199 OSURF_BUDGETC, ORAD_BUDGET, K2M)
204 INTEGER,
INTENT(IN) :: KBEQ
205 INTEGER,
INTENT(IN) :: KDSTEQ
206 LOGICAL,
INTENT(IN) :: OSURF_EVAP_BUDGET
207 LOGICAL,
INTENT(IN) :: OFLOOD
208 LOGICAL,
INTENT(IN) :: OPGD
209 LOGICAL,
INTENT(IN) :: OCH_NO_FLUX
210 LOGICAL,
INTENT(IN) :: OSURF_MISC_BUDGET
211 LOGICAL,
INTENT(IN) :: OSURF_BUDGETC
212 LOGICAL,
INTENT(IN) :: ORAD_BUDGET
213 INTEGER,
INTENT(IN) :: K2M
215 REAL(KIND=JPRB) :: ZHOOK_HANDLE
217 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_ISBA_UPDATE',0,zhook_handle)
218 im%CHI%SVI%NBEQ = kbeq
219 im%CHI%SVI%NDSTEQ = kdsteq
220 im%ID%DE%LSURF_EVAP_BUDGET = osurf_evap_budget
223 im%CHI%LCH_NO_FLUX = och_no_flux
224 im%ID%DM%LSURF_MISC_BUDGET = osurf_misc_budget
225 im%ID%O%LSURF_BUDGETC = osurf_budgetc
226 im%ID%O%LPATCH_BUDGET = osurf_budgetc
227 im%ID%O%LRAD_BUDGET = orad_budget
229 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_ISBA_UPDATE',1,zhook_handle)
233 SUBROUTINE flag_teb_update(KBEQ, OPGD, OSURF_MISC_BUDGET, ORAD_BUDGET, K2M)
238 INTEGER,
INTENT(IN) :: KBEQ
239 LOGICAL,
INTENT(IN) :: OPGD
240 LOGICAL,
INTENT(IN) :: OSURF_MISC_BUDGET
241 LOGICAL,
INTENT(IN) :: ORAD_BUDGET
242 INTEGER,
INTENT(IN) :: K2M
244 REAL(KIND=JPRB) :: ZHOOK_HANDLE
246 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_TEB_UPDATE',0,zhook_handle)
247 tm%CHT%SVT%NBEQ = kbeq
249 tm%TD%MTO%LSURF_MISC_BUDGET = osurf_misc_budget
250 tm%TD%O%LRAD_BUDGET = orad_budget
252 IF (
lhook)
CALL dr_hook(
'FLAG_DIAG_UPDATE:FLAG_TEB_UPDATE',1,zhook_handle)
subroutine flag_isba_update(KBEQ, KDSTEQ, OSURF_EVAP_BUDGET, OFLOOD, OPGD, OCH_NO_FLUX, OSURF_MISC_BUDGET, OSURF_BUDGETC, ORAD_BUDGET, K2M)
subroutine flag_diag_update(FM, IM, SM, TM, WM, DGO, U, SV, OFRAC, ODIAG_GRID, K2M, OSURF_BUDGET, ORAD_BUDGET, OCOEF, OSURF_VARS, KBEQ, KDSTEQ, ODIAG_OCEAN, ODIAG_MISC_SEAICE, OWATER_PROFILE, OSURF_EVAP_BUDGET, OFLOOD, OPGD_ISBA, OCH_NO_FLUX_ISBA, OSURF_MISC_BUDGET_ISBA, OPGD_TEB, OSURF_MISC_BUDGET_TEB)
subroutine flag_sea_update(KBEQ, ODIAG_OCEAN, ODIAG_MISC_SEAICE, OSURF_BUDGETC, ORAD_BUDGET, K2M)
subroutine flag_flake_update(KBEQ, OWATER_PROFILE, OSURF_BUDGETC, ORAD_BUDGET, K2M)
subroutine flag_teb_update(KBEQ, OPGD, OSURF_MISC_BUDGET, ORAD_BUDGET, K2M)
subroutine flag_water_update(KBEQ, OSURF_BUDGETC, ORAD_BUDGET, K2M)