7 SUBROUTINE coupl_topd (DEC, DC, DMI, PMESH_SIZE, IO, S, K, NK, NP, NPE, &
8 UG, U, HPROGRAM, HSTEP, KI, KSTEP)
84 USE modd_isba_par
, ONLY : xwgmin
92 USE modi_recharge_surf_topd
94 USE modi_sat_area_frac
96 USE modi_diag_isba_to_rout
97 USE modi_isba_to_topdsat
100 USE modi_write_file_isbamap
103 USE modi_avg_patch_wg
106 USE modi_init_budget_coupl_rout
107 USE modi_control_water_budget_topd
118 TYPE(
diag_t),
INTENT(INOUT) :: DC
120 REAL,
DIMENSION(:),
INTENT(IN) :: PMESH_SIZE
132 INTEGER,
INTENT(IN) :: KI
133 INTEGER,
INTENT(IN) :: KSTEP
137 REAL,
DIMENSION(NNCAT,NMESHT) :: ZRT
138 REAL,
DIMENSION(NNCAT,NMESHT) :: ZDEFT
139 REAL,
DIMENSION(NNCAT,NMESHT) :: ZRI_WGIT
140 REAL,
DIMENSION(NNCAT,NMESHT) :: ZRUNOFF_TOPD
141 REAL,
DIMENSION(NNCAT,NMESHT) :: ZDRAIN_TOPD
142 REAL,
DIMENSION(NNCAT,NMESHT) :: ZKAPPA
143 REAL,
DIMENSION(NNCAT) :: ZKAPPAC
144 REAL,
DIMENSION(KI) :: ZRI
145 REAL,
DIMENSION(KI) :: ZRI_WGI
146 REAL,
DIMENSION(KI) :: ZWM,ZWIM
147 REAL,
DIMENSION(KI) :: Z_WSTOPI, Z_WFCTOPI
148 REAL,
DIMENSION(KI) :: ZRUNOFFC_FULL
149 REAL,
DIMENSION(KI) :: ZRUNOFFC_FULLM
150 REAL,
DIMENSION(KI) :: ZRUNOFF_ISBA
151 REAL,
DIMENSION(KI) :: ZDRAINC_FULL
152 REAL,
DIMENSION(KI) :: ZDRAINC_FULLM
153 REAL,
DIMENSION(KI) :: ZDRAIN_ISBA
154 REAL,
DIMENSION(KI) :: ZDG_FULL
155 REAL,
DIMENSION(KI) :: ZWG2_FULL, ZWG3_FULL, ZDG2_FULL, ZDG3_FULL
156 REAL,
DIMENSION(KI) :: ZWGI_FULL
157 REAL,
DIMENSION(KI) :: ZAS
158 REAL,
DIMENSION(NNCAT) :: Z_DW1,Z_DW2
159 REAL :: ZAVG_MESH_SIZE, ZWSATMAX
160 LOGICAL,
DIMENSION(NNCAT) :: GTOPD
161 INTEGER :: JJ, JI, JL, JP
163 INTEGER :: IACT_GROUND_LAYER, IDEPTH, IMASK, ISUM
165 REAL,
DIMENSION(U%NSIZE_NATURE,3) :: ZWG_3L,ZWGI_3L,ZDG_3L
166 REAL,
DIMENSION(U%NSIZE_NATURE) :: ZMESH_SIZE, ZWSAT
167 REAL,
DIMENSION(U%NSIZE_NATURE,IO%NGROUND_LAYER,IO%NPATCH) :: ZWG_TMP
168 REAL,
DIMENSION(U%NSIZE_NATURE,IO%NPATCH) :: ZWG, ZDG
169 REAL,
DIMENSION(KI) :: ZF_PARAM_FULL
170 REAL,
DIMENSION(NNCAT,NMESHT) :: ZF_PARAMT
173 INTEGER,
DIMENSION(U%NSIZE_NATURE) :: INB_ACTIVE_PATCH
174 REAL,
DIMENSION(U%NSIZE_NATURE):: ZSUMFRD2, ZSUMFRD3
175 REAL,
DIMENSION(U%NSIZE_NATURE,3) :: ZWG_CTL
177 REAL(KIND=JPRB) :: ZHOOK_HANDLE
190 DO jj = 1,np%AL(jp)%NSIZE_P
191 imask = np%AL(jp)%NR_P(jj)
192 npe%AL(jp)%XWG(jj,:) = max(npe%AL(jp)%XWG(jj,:),xwgmin)
193 zwg_tmp(imask,:,jp) = npe%AL(jp)%XWG(jj,:)
199 DO jj=1,u%NSIZE_NATURE
200 inb_active_patch(jj) =
count(s%XPATCH(jj,:)/=0.)
203 IF (io%CISBA==
'DIF')
THEN 205 zwg_3l(:,2) = dmi%XFRD2_TWG (:)
206 zwg_3l(:,3) = dmi%XFRD3_TWG (:)
207 zwgi_3l(:,2) = dmi%XFRD2_TWGI(:)
208 zwgi_3l(:,3) = dmi%XFRD3_TWGI(:)
210 ELSEIF (io%CISBA==
'3-L')
THEN 225 WHERE ( zdg2_full/=
xundef )
234 WHERE ( zdg_full/=
xundef .AND. zdg_full/=0. )
294 IF( io%CKSAT==
'EXP' .OR. io%CKSAT==
'SGH' )
THEN 376 IF (io%CISBA==
'DIF')
THEN 378 ELSEIF (io%CISBA==
'3-L')
THEN 379 CALL dispatch_wg(s, np, npe, zwg_3l, zwgi_3l, zdg_3l)
383 WHERE(npe%AL(jp)%XWG(:,:)>zwsatmax.AND.npe%AL(jp)%XWG(:,:)/=
xundef)
384 npe%AL(jp)%XWG(:,:)=zwsatmax
386 WHERE(npe%AL(jp)%XWG(:,:)<xwgmin)
387 npe%AL(jp)%XWG(:,:)=xwgmin
393 IF (io%CISBA==
'DIF')
THEN 395 DO jl=2,io%NGROUND_LAYER
398 IF (all(npe%AL(jp)%XWG(:,jl)==
xundef)) isum = isum + 1
400 IF (isum==io%NPATCH)
THEN 401 iact_ground_layer=jl-1
414 DO jj = 1,np%AL(jp)%NSIZE_P
415 imask = np%AL(jp)%NR_P(jj)
416 zwg(imask,jp) = npe%AL(jp)%XWG(jj,2)
417 zdg(imask,jp) = np%AL(jp)%XDG(jj,2)
421 zmesh_size,zavg_mesh_size,zwsat(:))
423 DO jj = 1,np%AL(jp)%NSIZE_P
424 imask = np%AL(jp)%NR_P(jj)
425 npe%AL(jp)%XWG(jj,2) = zwg(imask,jp)
428 DO jl = 3,iact_ground_layer
432 DO jj = 1,np%AL(jp)%NSIZE_P
433 imask = np%AL(jp)%NR_P(jj)
434 zwg(imask,jp) = npe%AL(jp)%XWG(jj,jl)
435 zdg(imask,jp) = np%AL(jp)%XDG(jj,jl)-np%AL(jp)%XDG(jj,jl-1)
439 zmesh_size,zavg_mesh_size,zwsat(:))
441 DO jj = 1,np%AL(jp)%NSIZE_P
442 imask = np%AL(jp)%NR_P(jj)
443 npe%AL(jp)%XWG(jj,jl) = zwg(imask,jp)
450 WHERE(npe%AL(jp)%XWG(:,:)>zwsatmax.AND.npe%AL(jp)%XWG(:,:)/=
xundef)
451 npe%AL(jp)%XWG(:,:)=zwsatmax
453 WHERE(npe%AL(jp)%XWG(:,:)<xwgmin)
454 npe%AL(jp)%XWG(:,:)=xwgmin
472 WHERE (zrunoff_isba==
xundef) zrunoff_isba = 0.
474 zrunoff_topd(:,:) = 0
487 WHERE (zdrain_isba==
xundef) zdrain_isba=0.
491 zdrain_topd(:,:) = 0.0
498 zdrain_topd(jj,ji) = zdrain_topd(jj,ji) /
nnpix(
nmaskt(jj,ji))
513 CALL open_file(
'ASCII ',
nunit,hfile=
'carte_surfcont'//hstep,hform=
'FORMATTED''WRITE' real, dimension(:), allocatable xf_param
subroutine coupl_topd(DEC, DC, DMI, PMESH_SIZE, IO, S, K, NK, NP,
real, dimension(:,:), allocatable xwtopt
subroutine open_file(HPROGRAM, KUNIT, HFILE, HFORM, HACTION, HACCESS, KR
real, dimension(:), allocatable xfrac_d2
real, dimension(:), allocatable xmpara
real, dimension(:), allocatable xkac_pre
real, dimension(:,:), allocatable xdmaxt
integer, dimension(:), allocatable nnpix
subroutine write_file_isbamap(UG, KUNIT, PVAR, KI)
real, dimension(:,:), allocatable xdmaxfc
real, dimension(:), allocatable xrunoff_top
subroutine init_budget_coupl_rout(DEC, DC, DMI, PMESH_SIZE, IO, N
real, dimension(:,:), allocatable xdtopt
real, dimension(:), allocatable xwsupsat
subroutine dg_dfto3l(IO, NP, PDG)
real, dimension(:), allocatable xc_depth_ratio
real, dimension(:), allocatable xwg_full
real, dimension(:), allocatable xas_nature
integer, parameter nundef
subroutine close_file(HPROGRAM, KUNIT)
real, dimension(:,:), allocatable xka_pre
real, dimension(:), allocatable xdtopi
real, dimension(:), allocatable xavg_draincm
real, dimension(:), allocatable xfrac_d3
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
real, dimension(:), allocatable xwfctopi
real, dimension(:,:), allocatable xwfctopt
real, dimension(:), allocatable xavg_runoffcm
real, dimension(:,:), allocatable xwstopt
real, dimension(:), allocatable xatop
real, dimension(:), allocatable xwgi_full
subroutine dispatch_wg(S, NP, NPE, PWG, PWGI, PDG)
subroutine control_water_budget_topd(IO, S, U, PWGM, PWG, PDG, PM
subroutine isba_to_topd(PVARI, PVART)
subroutine avg_patch_wg(IO, NP, NPE, PWG, PWGI, PDG)
subroutine topd_to_df(IO, NK, NP, NPE, PWG)
integer, dimension(:,:), allocatable nmaskt
integer, dimension(:), allocatable nnmc
real, dimension(:), allocatable xwstopi