SURFEX v8.1
General documentation of Surfex
trip_restart.F90
Go to the documentation of this file.
1 !#########
2 SUBROUTINE trip_restart (TP, TPG, &
3  KLISTING,KYEAR,KMONTH,KDAY,PTIME,KLON,KLAT)
4 !############################################
5 !
6 !!**** *TRIP_RESTART*
7 !!
8 !! PURPOSE
9 !! -------
10 !
11 ! TRIP river routing restart.
12 !
13 !!
14 !! AUTHOR
15 !! ------
16 !! B. Decharme
17 !!
18 !! MODIFICATIONS
19 !! -------------
20 !! Original 28/05/05
21 !-------------------------------------------------------------------------------
22 !
23 !* 0. DECLARATIONS
24 ! ------------
25 !
26 !
27 USE modd_trip, ONLY : trip_t
28 USE modd_trip_grid, ONLY : trip_grid_t
29 !
30 USE mode_rw_trip
31 !
32 USE modn_trip, ONLY : cgroundw, lflood
33 !
34 !
35 !
36 USE yomhook ,ONLY : lhook, dr_hook
37 USE parkind1 ,ONLY : jprb
38 !
39 IMPLICIT NONE
40 !
41 !* 0.1 declarations of arguments
42 !
43 !
44 TYPE(trip_t), INTENT(INOUT) :: TP
45 TYPE(trip_grid_t), INTENT(INOUT) :: TPG
46 !
47 INTEGER, INTENT(IN) :: KLISTING
48 INTEGER, INTENT(IN) :: KYEAR
49 INTEGER, INTENT(IN) :: KMONTH
50 INTEGER, INTENT(IN) :: KDAY
51 REAL, INTENT(IN) :: PTIME
52 INTEGER, INTENT(IN) :: KLON
53 INTEGER, INTENT(IN) :: KLAT
54 !
55 !* 0.2 declarations of local variables
56 !
57 LOGICAL, PARAMETER :: LDOUBLE=.true.
58 !
59  CHARACTER(LEN=15), PARAMETER :: YFILE ='TRIP_RESTART.nc'
60  CHARACTER(LEN=20) :: YVNAME
61 !
62 LOGICAL,DIMENSION(KLON,KLAT) :: LMASK
63 LOGICAL,DIMENSION(KLON,KLAT) :: LMASK_GW
64 !
65 REAL(KIND=JPRB) :: ZHOOK_HANDLE
66 !
67 !-------------------------------------------------------------------------------
68 !
69 ! * Store output in diag file
70 !
71 IF (lhook) CALL dr_hook('TRIP_RESTART',0,zhook_handle)
72 !
73 ! * Current date
74 !
75  CALL write_trip_date(klisting,yfile,kyear,kmonth,kday,ptime)
76 !
77 ! * Trip mask
78 !
79 lmask(:,:) = tpg%GMASK(:,:)
80 !
81 ! * Groundwater specific mask
82 !
83 IF(cgroundw/='DEF')THEN
84  lmask_gw(:,:) = tpg%GMASK_GW(:,:)
85 ENDIF
86 !
87 ! * Write variables
88 !
89 yvname = 'SURF_STO'
90  CALL write_trip(klisting,yfile,yvname,lmask,tp%XSURF_STO,odouble=ldouble)
91 !
92 IF(cgroundw=='CST')THEN
93  yvname = 'GROUND_STO'
94  CALL write_trip(klisting,yfile,yvname,lmask_gw,tp%XGROUND_STO,odouble=ldouble)
95  ELSEIF(cgroundw=='DIF')THEN
96  yvname = 'HGROUND'
97  CALL write_trip(klisting,yfile,yvname,lmask_gw,tp%XHGROUND,odouble=ldouble)
98 ENDIF
99 !
100 IF(lflood)THEN
101  yvname = 'FLOOD_STO'
102  CALL write_trip(klisting,yfile,yvname,lmask,tp%XFLOOD_STO,odouble=ldouble)
103  yvname = 'FFLOOD'
104  CALL write_trip(klisting,yfile,yvname,lmask,tp%XFFLOOD,odouble=ldouble)
105  yvname = 'HFLOOD'
106  CALL write_trip(klisting,yfile,yvname,lmask,tp%XHFLOOD,odouble=ldouble)
107 ENDIF
108 !
109 IF (lhook) CALL dr_hook('TRIP_RESTART',1,zhook_handle)
110 !
111 !-------------------------------------------------------------------------------
112 END SUBROUTINE trip_restart
logical lflood
Definition: modn_trip.F90:62
integer, parameter jprb
Definition: parkind1.F90:32
character(len=3) cgroundw
Definition: modn_trip.F90:49
subroutine write_trip_date(KLISTING, HFILE, KYEAR, KMONTH, KDAY, PTIME)
logical lhook
Definition: yomhook.F90:15
subroutine trip_restart(TP, TPG, KLISTING, KYEAR, KMONTH, KDAY, PTIME, KLON, KLAT)
Definition: trip_restart.F90:4