39 USE modi_gwf_cpl_update
49 TYPE(
trip_t),
INTENT(INOUT) :: TP
52 INTEGER,
INTENT(IN) :: KLON
53 INTEGER,
INTENT(IN) :: KLAT
57 REAL,
DIMENSION(KLON,KLAT) :: ZHG_OLD
58 REAL,
DIMENSION(KLON,KLAT) :: ZWTD
59 REAL,
DIMENSION(KLON,KLAT) :: ZFWTD
61 INTEGER,
DIMENSION(KLON*KLAT) :: ICODE
62 REAL,
DIMENSION(KLON*KLAT) :: ZNEAR
63 REAL,
DIMENSION(KLON*KLAT) :: ZX
64 REAL,
DIMENSION(KLON*KLAT) :: ZY
65 REAL,
DIMENSION(KLON) :: ZLON
66 REAL,
DIMENSION(KLAT) :: ZLAT
68 INTEGER :: IWORK, JLON, JLAT
70 REAL(KIND=JPRB) :: ZHOOK_HANDLE
74 IF (
lhook)
CALL dr_hook(
'INIT_TRIP_CPL_ESM',0,zhook_handle)
85 ALLOCATE(tp%XCPL_RIVDIS(klon,klat))
86 tp%XCPL_RIVDIS(:,:) =
xundef 88 ALLOCATE(tp%XCPL_RIVDIS(0,0))
92 ALLOCATE(tp%XCPL_CALVGRE(klon,klat))
93 ALLOCATE(tp%XCPL_CALVANT(klon,klat))
94 tp%XCPL_CALVGRE(:,:) =
xundef 95 tp%XCPL_CALVANT(:,:) =
xundef 97 ALLOCATE(tp%XCPL_CALVGRE(0,0))
98 ALLOCATE(tp%XCPL_CALVANT(0,0))
103 ALLOCATE(tp%XCPL_FWTD (klon,klat))
104 ALLOCATE(tp%XCPL_WTD (klon,klat))
105 ALLOCATE(tp%XNEAR_AQUI(klon,klat))
106 tp%XCPL_FWTD (:,:) =
xundef 107 tp%XCPL_WTD (:,:) =
xundef 108 tp%XNEAR_AQUI(:,:) =
xundef 110 ALLOCATE(tp%XCPL_FWTD (0,0))
111 ALLOCATE(tp%XCPL_WTD (0,0))
112 ALLOCATE(tp%XNEAR_AQUI(0,0))
115 ALLOCATE(tp%XCPL_FFLOOD (klon,klat))
116 ALLOCATE(tp%XCPL_PIFLOOD(klon,klat))
117 tp%XCPL_FFLOOD (:,:) =
xundef 118 tp%XCPL_PIFLOOD(:,:) =
xundef 120 ALLOCATE(tp%XCPL_FFLOOD (0,0))
121 ALLOCATE(tp%XCPL_PIFLOOD(0,0))
124 ALLOCATE(tp%XCPL_FFLOOD (0,0))
125 ALLOCATE(tp%XCPL_PIFLOOD(0,0))
126 ALLOCATE(tp%XCPL_FWTD (0,0))
127 ALLOCATE(tp%XCPL_WTD (0,0))
128 ALLOCATE(tp%XNEAR_AQUI (0,0))
136 WHERE(tpg%NGRCN(:,:)==9.OR.tpg%NGRCN(:,:)==12)
137 tp%XCPL_RIVDIS(:,:) = 0.0
142 WHERE(tpg%GMASK_GRE(:,:))
143 tp%XCPL_CALVGRE(:,:) = 0.0
145 WHERE(tpg%GMASK_ANT(:,:))
146 tp%XCPL_CALVANT(:,:) = 0.0
157 tp%XTOPO_RIV,tp%XHC_BED,tp%XHGROUND, &
160 WHERE(tpg%GMASK_GW(:,:))
161 tp%XCPL_WTD (:,:) = zwtd(:,:)
162 tp%XCPL_FWTD(:,:) = zfwtd(:,:)
163 ELSEWHERE(tpg%GMASK(:,:))
164 tp%XCPL_WTD (:,:) =
xundef 165 tp%XCPL_FWTD(:,:) = 0.0
178 IF(tpg%GMASK(jlon,jlat))
THEN 183 znear(iwork)=tp%XNUM_AQUI(jlon,jlat)
184 IF(tpg%GMASK_GW(jlon,jlat))icode(iwork)=1
189 CALL trip_nearest(iwork,icode(1:iwork),zx(1:iwork),zy(1:iwork),znear(1:iwork))
194 IF(tpg%GMASK(jlon,jlat))
THEN 196 tp%XNEAR_AQUI(jlon,jlat)=znear(iwork)
207 tp%XCPL_FFLOOD (:,:) = tp%XFFLOOD (:,:)
208 tp%XCPL_PIFLOOD(:,:) = tp%XFLOOD_STO (:,:) / tpg%XAREA(:,:)
213 IF (
lhook)
CALL dr_hook(
'INIT_TRIP_CPL_ESM',1,zhook_handle)
subroutine trip_nearest(KNI, KCODE, PLON, PLAT, PFIELD)
subroutine init_trip_cpl_esm(TP, TPG, KLON, KLAT)
subroutine gwf_cpl_update(PTABGW_H, PTABGW_F, OMASK_GW, PTOPO_RIV, PHC_BED, PHGROUND, PHG_OLD, PWTD, PFWTD)
subroutine get_trip_grid(PTRIP_GRID, PLONMIN, PLONMAX, PLATMIN, PLATMAX, PRES, KLON, KLAT, PLON, PLAT)