3 KLISTING,KLON,KLAT,PTIMEC,PRUNOFF, &
4 PDRAIN,PCALVING,PSRC_FLOOD )
50 USE modi_flood_redistrib
65 TYPE(
trip_t),
INTENT(INOUT) :: TP
68 INTEGER,
INTENT(IN) :: KLISTING
69 INTEGER,
INTENT(IN) :: KLON
70 INTEGER,
INTENT(IN) :: KLAT
71 REAL,
INTENT(IN) :: PTIMEC
73 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PRUNOFF
74 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDRAIN
75 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PCALVING
76 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PSRC_FLOOD
82 REAL,
DIMENSION(KLON,KLAT) :: ZREAD
83 REAL,
DIMENSION(KLON,KLAT) :: ZSRC_FLOOD
84 REAL,
DIMENSION(KLON,KLAT) :: ZWORK
85 REAL,
DIMENSION(KLON,KLAT) :: ZRESIDU
87 CHARACTER(LEN=50) :: YCOMMENT
92 REAL(KIND=JPRB) :: ZHOOK_HANDLE
98 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_RECV',0,zhook_handle)
108 psrc_flood(:,:) = 0.0
120 ycomment=
'Surface runoff' 121 CALL oasis_get(
nrunoff_id,idate,zread(:,:),ierr)
128 ycomment=
'Deep drainage' 129 CALL oasis_get(
ndrain_id,idate,zread(:,:),ierr)
137 klon,klat,zread,zwork)
139 zwork(:,:) = zread(:,:)
148 ycomment=
'calving flux' 163 ycomment=
'floodplains freshwater flux (P-E-I)' 171 zread,zsrc_flood,zwork )
176 WHERE(tpg%GMASK_FLD(:,:))
177 prunoff(:,:)=prunoff(:,:)+zresidu(:,:)
184 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_RECV',1,zhook_handle)
196 INTEGER,
INTENT(IN ) :: KERR
197 CHARACTER(LEN=*),
INTENT(IN ) :: HCOMMENT
198 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PFIELD
199 LOGICAL,
DIMENSION(:,:),
INTENT(IN ) :: OMASK
201 REAL(KIND=JPRB) :: ZHOOK_HANDLE
203 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_RECV:CHECK_TRIP_RECV',0,zhook_handle)
207 IF (kerr/=oasis_ok.AND.kerr<oasis_recvd)
THEN 208 WRITE(klisting,
'(A,I4)')
'Return code from receiving '//
trim(hcomment)//
' : ',kerr
209 CALL abort_trip(
'TRIP_OASIS_RECV: problem receiving '//
trim(hcomment))
212 WHERE(.NOT.omask(:,:))
216 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_RECV:CHECK_TRIP_RECV',1,zhook_handle)
226 INTEGER,
INTENT(IN ) :: KERR
227 REAL,
DIMENSION(:,:),
INTENT(IN ) :: PIN
228 REAL,
DIMENSION(:,:),
INTENT(OUT) :: POUT
230 REAL(KIND=JPRB) :: ZHOOK_HANDLE
232 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_RECV:KGM2S_TO_KGS',0,zhook_handle)
236 IF(kerr>=oasis_recvd)
THEN 237 WHERE(tpg%GMASK(:,:))
238 pout(:,:) = pin(:,:) * tpg%XAREA(:,:)
246 IF (
lhook)
CALL dr_hook(
'TRIP_OASIS_RECV:KGM2S_TO_KGS',1,zhook_handle)
static const char * trim(const char *name, int *n)
subroutine gw_redistrib(TP, TPG, KLON, KLAT, PREAD, PFOUT)
subroutine check_trip_recv(KERR, HCOMMENT, PFIELD, OMASK)
subroutine flood_redistrib(TP, TPG,
subroutine abort_trip(YTEXT)
subroutine kgm2s_to_kgs(KERR, PIN, POUT)
subroutine trip_oasis_recv(TP, TPG, KLISTING, KLON, KLAT, PTIMEC, PRUNOFF, PDRAIN, PCALVING, PSRC_FLOOD)