SURFEX v8.1
General documentation of Surfex
trip_diag_run.F90
Go to the documentation of this file.
1 ! #########
2  SUBROUTINE trip_diag_run (TPDG, TPG, &
3  KLISTING,KLON,KLAT,PRUNTIME)
4 ! #####################################################
5 !
6 !!**** *TRIP_DIAG_RUN*
7 !!
8 !! PURPOSE
9 !! -------
10 !
11 ! TRIP river routing run mean outputs.
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_diag, ONLY : trip_diag_t
28 USE modd_trip_grid, ONLY : trip_grid_t
29 !
30 USE modn_trip, ONLY : cgroundw, cvit, lflood
31 USE modn_trip_run, ONLY : ldiag_misc
32 USE modd_trip_oasis, ONLY : lcpl_land
33 !
34 !
35 USE mode_rw_trip
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 !
42 !* 0.1 declarations of arguments
43 !
44 !
45 TYPE(trip_diag_t), INTENT(INOUT) :: TPDG
46 TYPE(trip_grid_t), INTENT(INOUT) :: TPG
47 !
48 INTEGER, INTENT(IN) :: KLISTING
49 INTEGER, INTENT(IN) :: KLON
50 INTEGER, INTENT(IN) :: KLAT
51 !
52 REAL, INTENT(IN) :: PRUNTIME
53 !
54 !* 0.2 declarations of local variables
55 !
56  CHARACTER(LEN=18), PARAMETER :: YRUN ='TRIP_DIAG_RUN.nc'
57  CHARACTER(LEN=50) :: YFILE
58  CHARACTER(LEN=10) :: YVNAME
59 !
60 REAL, DIMENSION(KLON,KLAT) :: ZWRITE
61 LOGICAL,DIMENSION(KLON,KLAT) :: LMASK
62 LOGICAL,DIMENSION(KLON,KLAT) :: LMASK_GW
63 !
64 INTEGER :: ITNUM, ITVAL
65 REAL(KIND=JPRB) :: ZHOOK_HANDLE
66 !
67 !-------------------------------------------------------------------------------
68 !
69 IF (lhook) CALL dr_hook('TRIP_DIAG_RUN',0,zhook_handle)
70 !
71 ! * Trip mask
72 !
73 lmask(:,:) = tpg%GMASK(:,:)
74 !
75 ! * Groundwater specific mask
76 !
77 IF(cgroundw/='DEF')THEN
78  lmask_gw(:,:) = tpg%GMASK_GW(:,:)
79 ENDIF
80 !
81 ! * Recup diag file
82 !
83 itnum = 1
84 itval = 0
85 yfile =yrun
86 !
87 ! * Store output in diag file
88 !
89 yvname = 'SURF_STO'
90 zwrite = tpdg%TDIAG_RUN%XSURF_STO / pruntime
91  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
92 !
93 yvname = 'QDIS'
94 zwrite = tpdg%TDIAG_RUN%XQDIS / pruntime
95  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
96 !
97 IF(ldiag_misc)THEN
98  yvname = 'QSIN'
99  zwrite = tpdg%TDIAG_RUN%XQIN / pruntime
100  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
101 ENDIF
102 !
103 IF(lcpl_land.AND.ldiag_misc)THEN
104  yvname = 'RUNOFF'
105  zwrite = tpdg%TDIAG_RUN%XRUNOFF !mm of water
106  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
107  yvname = 'DRAIN'
108  zwrite = tpdg%TDIAG_RUN%XDRAIN !mm of water
109  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
110 ENDIF
111 !
112 IF(cgroundw/='DEF')THEN
113 !
114  yvname = 'QGF'
115  zwrite = tpdg%TDIAG_RUN%XQGF / pruntime
116  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
117 !
118  yvname = 'GROUND_STO'
119  zwrite = tpdg%TDIAG_RUN%XGROUND_STO / pruntime
120  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
121 !
122 ENDIF
123 !
124 IF(cgroundw=='DIF')THEN
125 !
126  yvname = 'HGROUND'
127  zwrite = tpdg%TDIAG_RUN%XHGROUND / pruntime
128  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
129 !
130  yvname = 'FWTD'
131  zwrite = tpdg%TDIAG_RUN%XFWTD / pruntime
132  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
133 !
134  yvname = 'WTD'
135  zwrite = tpdg%TDIAG_RUN%XWTD / pruntime
136  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
137 !
138  IF(ldiag_misc)THEN
139 !
140  yvname = 'QGCELL'
141  zwrite = tpdg%TDIAG_RUN%XQGCELL / pruntime
142  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
143 !
144  yvname = 'HGHRIV'
145  zwrite = tpdg%TDIAG_RUN%XHGHS / pruntime
146  CALL write_trip(klisting,yfile,yvname,lmask_gw,zwrite,itnum,itval)
147 !
148  ENDIF
149 !
150 ENDIF
151 !
152 IF(cvit=='VAR')THEN
153 !
154  yvname = 'VEL'
155  zwrite = tpdg%TDIAG_RUN%XVEL / pruntime
156  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
157 !
158  yvname = 'HSTREAM'
159  zwrite = tpdg%TDIAG_RUN%XHS / pruntime
160  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
161 !
162 ENDIF
163 !
164 IF(lflood)THEN
165 !
166  yvname = 'FFLOOD'
167  zwrite = tpdg%TDIAG_RUN%XFF / pruntime
168  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
169 !
170  yvname = 'FLOOD_STO'
171  zwrite = tpdg%TDIAG_RUN%XFLOOD_STO / pruntime
172  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
173 !
174  yvname = 'HFLOOD'
175  zwrite = tpdg%TDIAG_RUN%XHF / pruntime
176  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
177 !
178  IF(ldiag_misc)THEN
179 !
180  yvname = 'FSOURCE'
181  zwrite = tpdg%TDIAG_RUN%XSOURCE !mm of water
182  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
183 !
184  yvname = 'QFR'
185  zwrite = tpdg%TDIAG_RUN%XQFR / pruntime
186  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
187 !
188  yvname = 'QRF'
189  zwrite = tpdg%TDIAG_RUN%XQRF / pruntime
190  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
191 !
192  yvname = 'VFIN'
193  zwrite = tpdg%TDIAG_RUN%XVFIN / pruntime
194  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
195 !
196  yvname = 'VFOUT'
197  zwrite = tpdg%TDIAG_RUN%XVFOUT / pruntime
198  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
199 !
200  yvname = 'HSF'
201  zwrite = tpdg%TDIAG_RUN%XHSF / pruntime
202  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
203 !
204  yvname = 'WF'
205  zwrite = tpdg%TDIAG_RUN%XWF / pruntime
206  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
207 !
208  yvname = 'LF'
209  zwrite = tpdg%TDIAG_RUN%XLF / pruntime
210  CALL write_trip(klisting,yfile,yvname,lmask,zwrite,itnum,itval)
211 !
212  ENDIF
213 !
214 ENDIF
215 !
216 IF (lhook) CALL dr_hook('TRIP_DIAG_RUN',1,zhook_handle)
217 !
218 !-------------------------------------------------------------------------------
219 END SUBROUTINE trip_diag_run
logical lflood
Definition: modn_trip.F90:62
integer, parameter jprb
Definition: parkind1.F90:32
subroutine trip_diag_run(TPDG, TPG, KLISTING, KLON, KLAT, PRUNTIME)
character(len=3) cvit
Definition: modn_trip.F90:41
character(len=3) cgroundw
Definition: modn_trip.F90:49
logical lhook
Definition: yomhook.F90:15
logical ldiag_misc