58 TYPE(
trip_t),
INTENT(INOUT) :: TP
61 INTEGER,
INTENT(IN) :: KLON
62 INTEGER,
INTENT(IN) :: KLAT
64 REAL,
DIMENSION(:,:),
INTENT(IN ) :: PREAD
65 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PFOUT
71 REAL,
DIMENSION(1000) :: ZBAS_FNEG
72 REAL,
DIMENSION(1000) :: ZBAS_AREA
74 LOGICAL,
DIMENSION(KLON,KLAT) :: GMASK_NOGW
76 REAL,
DIMENSION(KLON,KLAT) :: ZFNEG
77 REAL,
DIMENSION(KLON,KLAT) :: ZRATIO
79 INTEGER,
DIMENSION(KLON,KLAT) :: INUM_AQUI
83 REAL :: ZAREA_TOT, ZTOT_STO
86 INTEGER :: JBAS, JLON, JLAT
88 REAL(KIND=JPRB) :: ZHOOK_HANDLE
98 WHERE(tpg%GMASK(:,:).AND.(.NOT.tpg%GMASK_GW(:,:)))
99 gmask_nogw(:,:)=.true.
101 gmask_nogw(:,:)=.false.
110 pfout(:,:) = pread(:,:)
114 IF(gmask_nogw(jlon,jlat).AND.pread(jlon,jlat)<0.0)
THEN 115 pfout(jlon,jlat) = 0.0
116 zfneg(jlon,jlat) = pread(jlon,jlat)
117 zbilan = zbilan + pread(jlon,jlat)
132 WHERE(tpg%GMASK(:,:))
133 inum_aqui(:,:)=int(tp%XNEAR_AQUI(:,:))
143 jbas=inum_aqui(jlon,jlat)
144 IF(tpg%GMASK_GW(jlon,jlat))
THEN 145 zbas_area(jbas)=zbas_area(jbas)+tpg%XAREA(jlon,jlat)
147 IF(gmask_nogw(jlon,jlat))
THEN 148 zbas_fneg(jbas)=zbas_fneg(jbas)+tpg%XAREA(jlon,jlat)*zfneg(jlon,jlat
155 jbas = inum_aqui(jlon,jlat)
156 IF(tpg%GMASK_GW(jlon,jlat))
THEN 157 pfout(jlon,jlat) = pfout(jlon,jlat) + zbas_fneg(jbas)/zbas_area
173 IF(tpg%GMASK(jlon,jlat))
THEN 174 zarea_tot = zarea_tot + tpg%XAREA(jlon,jlat)
175 zfluxe_in = zfluxe_in + tpg%XAREA(jlon,jlat) * pread(jlon,jlat
181 zbilan=(zfluxe_in-zfluxe_out)/zarea_tot
183 IF(abs(zbilan)>1.e-12)
THEN 184 WRITE(
nlisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 185 WRITE(
nlisting,*)
'Redistribution of negative recharge sources has a problem' 186 WRITE(
nlisting,*)
'BILAN = ', zbilan, zfluxe_in/zarea_tot, zfluxe_out/zarea_tot
187 WRITE(
nlisting,*)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' 188 CALL abort_trip(
'GW_REDISTRIB: Redistribution of negative recharge sources has a problem' subroutine gw_redistrib(TP, TPG, KLON, KLAT, PREAD, PFOUT)
subroutine abort_trip(YTEXT)