83 USE modi_read_file_masktopd
87 USE modi_restart_coupl_topd
109 CHARACTER(LEN=*),
INTENT(IN) :: HPROGRAM
114 REAL,
DIMENSION(:),
ALLOCATABLE :: ZSAND_FULL, ZCLAY_FULL, ZDG_FULL
115 REAL,
DIMENSION(:),
ALLOCATABLE :: ZFRAC
116 REAL,
DIMENSION(:),
ALLOCATABLE :: ZDMAXAV
117 REAL,
DIMENSION(:),
ALLOCATABLE :: ZSANDTOPI, ZCLAYTOPI
120 REAL,
DIMENSION(:),
ALLOCATABLE :: ZKSAT, ZKSAT_NAT
121 REAL,
DIMENSION(:),
ALLOCATABLE :: ZDG2_FULL, ZDG3_FULL, ZWG2_FULL, ZWG3_FULL
122 REAL,
DIMENSION(:),
ALLOCATABLE :: ZWGI_FULL, Z_WFCTOPI, Z_WSTOPI
127 INTEGER :: JCAT,JMESH
130 REAL,
DIMENSION(U%NDIM_NATURE,3) :: ZWG_3L, ZWGI_3L, ZDG_3L
132 REAL(KIND=JPRB) :: ZHOOK_HANDLE
134 IF (
lhook)
CALL dr_hook(
'INIT_COUPL_TOPD',0,zhook_handle)
138 WRITE(iluout,*)
'INITIALISATION INIT_COUPL_TOPD' 152 IF (io%CISBA==
'DIF')
THEN 154 ELSEIF (io%CISBA==
'3-L')
THEN 193 xbv_in_mesh(jj,ji) =
REAL(NNBV_IN_MESH(JJ,JI)) * XDXT(ji)**2
206 ALLOCATE(zfrac(u%NDIM_FULL))
207 zfrac(:) = ( ug%G%XMESH_SIZE(:)-
xtotbv_in_mesh(:) ) / ug%G%XMESH_SIZE(:)
208 zfrac(:) = min(max(zfrac(:),0.),1.)
210 ALLOCATE(
xatop(u%NDIM_NATURE))
214 IF (hprogram==
'POST ')
GOTO 10
221 ALLOCATE(zsand_full(u%NDIM_FULL))
222 ALLOCATE(zclay_full(u%NDIM_FULL))
227 ALLOCATE(zdg2_full(u%NDIM_FULL))
228 ALLOCATE(zdg3_full(u%NDIM_FULL))
233 ALLOCATE(zrtop_d2(u%NDIM_FULL))
236 DO jmesh=1,u%NDIM_FULL
237 IF ( zdg2_full(jmesh)/=
xundef .AND. zfrac(jmesh)<1. )
THEN 240 !moyenne ponderee pour cas ou plusieurs bv sur maille
241 zrtop_d2(jmesh) = zrtop_d2(jmesh) + &
247 WHERE( zdg2_full/=
xundef .AND. zrtop_d2*zdg2_full>zdg3_full ) &
248 zrtop_d2(:) = zdg3_full(:)/zdg2_full(:)
257 IF (io%CISBA==
'3-L')
THEN 258 WHERE( zdg2_full/=
xundef )
261 WHERE( zdg2_full/=
xundef .AND. zrtop_d2*zdg2_full>zdg2_full )
262 xfrac_d3(:) = (zrtop_d2(:)*zdg2_full(:)-zdg2_full(:)) / (zdg3_full(:)-zdg2_full
267 ALLOCATE(zdg_full(u%NDIM_FULL))
274 ALLOCATE(zsandtopi(u%NDIM_FULL))
275 ALLOCATE(zclaytopi(u%NDIM_FULL))
278 ALLOCATE(
xdtopi(u%NDIM_FULL))
280 WHERE ( zdg_full/=
xundef .AND. zdg_full/=0. )
282 zsandtopi = zsandtopi + zsand_full * zdg_full
283 zclaytopi = zclaytopi + zclay_full * zdg_full
284 zsandtopi = zsandtopi /
xdtopi 285 zclaytopi = zclaytopi /
xdtopi 291 DEALLOCATE(zsand_full)
292 DEALLOCATE(zclay_full)
309 IF (io%CISBA==
'2-L' .OR. io%CISBA==
'3-L')
THEN 312 ELSE IF (io%CISBA==
'DIF')
THEN 318 WRITE(iluout,*)
'CKSAT==',io%CKSAT
322 IF( io%CKSAT==
'SGH' .OR. io%CKSAT==
'EXP' )
THEN 324 ALLOCATE(zksat_nat(u%NDIM_NATURE))
326 ALLOCATE(zksat(u%NDIM_FULL))
338 DEALLOCATE(zksat, zksat_nat)
350 DEALLOCATE(zsandtopi)
351 DEALLOCATE(zclaytopi)
375 ALLOCATE(zwg2_full(u%NDIM_FULL))
376 ALLOCATE(zwg3_full(u%NDIM_FULL))
381 WHERE ( zdg_full/=
xundef .AND. zdg_full/=0. )
383 xfrac_d3*((zdg3_full-zdg2_full)/zdg_full)*zwg3_full
419 IF (hprogram==
'POST ')
GOTO 20
426 DEALLOCATE(zdg2_full)
427 DEALLOCATE(zdg3_full)
428 DEALLOCATE(zwg2_full)
429 DEALLOCATE(zwg3_full)
433 IF (
lhook)
CALL dr_hook(
'INIT_COUPL_TOPD',1,zhook_handle)
real, dimension(:), allocatable xf_param
real function, dimension(size(pclay)) w33_func_1d(PCLAY, PSAND, HPEDOTF)
subroutine restart_coupl_topd(UG, KR_NATURE, HPROGRAM, KI)
real, dimension(:,:), allocatable xbv_in_mesh
real, dimension(:,:), allocatable xwtopt
real, dimension(:), allocatable xcstopi
real, dimension(:), allocatable xfrac_d2
real, dimension(:), allocatable xmpara
subroutine read_file_masktopd(KI)
real, dimension(:), allocatable xkac_pre
real, dimension(:,:), allocatable xdmaxt
integer, dimension(:), allocatable nnpix
real, dimension(:,:), allocatable xdmaxfc
real, dimension(:), allocatable xrunoff_top
real, dimension(:,:), allocatable xcstopt
real, dimension(:), allocatable xtotbv_in_mesh
real, dimension(:,:), allocatable xdtopt
subroutine dg_dfto3l(IO, NP, PDG)
real, dimension(:), allocatable xdxt
integer, dimension(:), allocatable nmaskt_patch
real, dimension(:), allocatable xc_depth_ratio
real, dimension(:), allocatable xwg_full
real, dimension(:), allocatable xas_nature
integer, parameter nundef
real, dimension(:,:), allocatable xka_pre
real, dimension(:), allocatable xdtopi
real, dimension(:), allocatable xavg_draincm
subroutine get_luout(HPROGRAM, KLUOUT)
real, dimension(:), allocatable xfrac_d3
real, dimension(:), allocatable xwfctopi
real, dimension(:,:), allocatable xdr_torout
real, dimension(:,:), allocatable xwfctopt
real, dimension(:), allocatable xavg_runoffcm
real, dimension(:,:), allocatable xwstopt
real, dimension(:), allocatable xatop
real, dimension(:), allocatable xwgi_full
subroutine init_coupl_topd(DEC, IO, S, K, NP, NPE, UG, U, HPROGRA
integer, dimension(:,:,:), allocatable nmaski
real function, dimension(size(pclay)) wfc_func_1d(PCLAY, PSAND, HPEDOTF)
subroutine isba_to_topd(PVARI, PVART)
real function, dimension(size(psand)) wsat_func_1d(PCLAY, PSAND, HPEDOTF)
subroutine avg_patch_wg(IO, NP, NPE, PWG, PWGI, PDG)
real, dimension(:,:), allocatable xrun_torout
integer, dimension(:,:), allocatable nnbv_in_mesh
integer, dimension(:,:), allocatable nmaskt
integer, dimension(:), allocatable nnmc
real, dimension(:), allocatable xwstopi
real, dimension(jpcat) xrtop_d2