SURFEX v8.1
General documentation of Surfex
modd_trip.F90
Go to the documentation of this file.
1 !###############
2 MODULE modd_trip
3 !###############
4 !
5 !!**** *MODD_TRIP - declaration of surface variable for TRIP RRM
6 !!
7 !! PURPOSE
8 !! -------
9 !
10 !!
11 !!** IMPLICIT ARGUMENTS
12 !! ------------------
13 !! None
14 !!
15 !! REFERENCE
16 !! ---------
17 !!
18 !! AUTHOR
19 !! ------
20 !! B. Decharme *Meteo France*
21 !!
22 !! MODIFICATIONS
23 !! -------------
24 !! Original 21/05/08
25 !! B. Decharme 10/2016 bug surface/groundwater coupling
26 !
27 !* 0. DECLARATIONS
28 ! ------------
29 !
30 USE yomhook ,ONLY : lhook, dr_hook
31 USE parkind1 ,ONLY : jprb
32 !
33 IMPLICIT NONE
34 
35 TYPE trip_t
36 !
37 !-------------------------------------------------------------------------------
38 !
39 ! Input river geometry Parameters :
40 !
41 REAL, POINTER, DIMENSION(:,:) :: xtaug ! ground water transfer time [s]
42 REAL, POINTER, DIMENSION(:,:) :: xslopebed ! river bed slopes [m/m]
43 REAL, POINTER, DIMENSION(:,:) :: xwidth ! river widths [m]
44 REAL, POINTER, DIMENSION(:,:) :: xn ! Manning roughness coeficient [-] (0.03 to 0.065)
45 REAL, POINTER, DIMENSION(:,:) :: xn_flood ! Manning coeficient over floodplains [-] (currently 0.1)
46 REAL, POINTER, DIMENSION(:,:) :: xhc_bed ! River bed depth [m]
47 REAL, POINTER, DIMENSION(:,:) :: xweff ! Porosité efficace
48 REAL, POINTER, DIMENSION(:,:) :: xtrans ! Transmissivité
49 REAL, POINTER, DIMENSION(:,:) :: xnum_aqui ! Numéro aquifère
50 REAL, POINTER, DIMENSION(:,:) :: xnear_aqui ! Nearest aquifer
51 REAL, POINTER, DIMENSION(:,:) :: xtopo_riv ! River elevation [m]
52 !
53 !-------------------------------------------------------------------------------
54 !
55 ! Time varing variables :
56 !
57 REAL, POINTER, DIMENSION(:,:) :: xsurf_sto ! river channel storage [kg]
58 REAL, POINTER, DIMENSION(:,:) :: xground_sto ! groundwater storage [kg]
59 REAL, POINTER, DIMENSION(:,:) :: xflood_sto ! Floodplain water storage [kg]
60 REAL, POINTER, DIMENSION(:,:) :: xhground ! Groudwater height [m]
61 REAL, POINTER, DIMENSION(:,:) :: xhflood ! Floodplain water depth [m]
62 REAL, POINTER, DIMENSION(:,:) :: xfflood ! Floodplain grid-cell fraction [-]
63 REAL, POINTER, DIMENSION(:,:) :: xwflood ! Floodplain width [m]
64 REAL, POINTER, DIMENSION(:,:) :: xflood_len ! Floodplain lenght [m]
65 !
66 !-------------------------------------------------------------------------------
67 !
68 ! Floodplain fonctions :
69 !
70 REAL, POINTER, DIMENSION(:,:,:) :: xtab_f ! Flood fraction array
71 REAL, POINTER, DIMENSION(:,:,:) :: xtab_h ! Topo height array
72 REAL, POINTER, DIMENSION(:,:,:) :: xtab_vf ! Flood volume array
73 !
74 !-------------------------------------------------------------------------------
75 !
76 ! Groundwater fonctions :
77 !
78 REAL, POINTER, DIMENSION(:,:,:) :: xtabgw_f ! Groundwater fraction array
79 REAL, POINTER, DIMENSION(:,:,:) :: xtabgw_h ! Topo height array
80 !
81 !-------------------------------------------------------------------------------
82 !
83 ! Coupling variable with other models :
84 !
85 REAL, POINTER, DIMENSION(:,:) :: xcpl_fwtd ! grid-cell fraction of water table to rise
86 REAL, POINTER, DIMENSION(:,:) :: xcpl_wtd ! Water table depth [m]
87 !
88 REAL, POINTER, DIMENSION(:,:) :: xcpl_fflood ! Flood fraction [-]
89 REAL, POINTER, DIMENSION(:,:) :: xcpl_piflood ! Floodplains potential infiltration [kg/m2]
90 !
91 REAL, POINTER, DIMENSION(:,:) :: xcpl_rivdis ! River discharges [kg/m2]
92 REAL, POINTER, DIMENSION(:,:) :: xcpl_calvgre ! Calving flux over greenland [kg/m2]
93 REAL, POINTER, DIMENSION(:,:) :: xcpl_calvant ! Calving flux over antarctica [kg/m2]
94 !
95 !-------------------------------------------------------------------------------
96 !-------------------------------------------------------------------------------
97 !
98 END TYPE trip_t
99 !
100  CONTAINS
101 !
102 SUBROUTINE trip_init(YTRIP)
103 TYPE(trip_t), INTENT(INOUT) :: YTRIP
104 REAL(KIND=JPRB) :: ZHOOK_HANDLE
105 IF (lhook) CALL dr_hook("MODD_TRIP:TRIP_INIT",0,zhook_handle)
106 !
107  NULLIFY(ytrip%XTAUG)
108  NULLIFY(ytrip%XSLOPEBED)
109  NULLIFY(ytrip%XWIDTH)
110  NULLIFY(ytrip%XN)
111  NULLIFY(ytrip%XN_FLOOD)
112  NULLIFY(ytrip%XHC_BED)
113  NULLIFY(ytrip%XSURF_STO)
114  NULLIFY(ytrip%XGROUND_STO)
115  NULLIFY(ytrip%XFLOOD_STO)
116  NULLIFY(ytrip%XHFLOOD)
117  NULLIFY(ytrip%XFFLOOD)
118  NULLIFY(ytrip%XWFLOOD)
119  NULLIFY(ytrip%XFLOOD_LEN)
120  NULLIFY(ytrip%XWEFF)
121  NULLIFY(ytrip%XTRANS)
122  NULLIFY(ytrip%XNUM_AQUI)
123  NULLIFY(ytrip%XNEAR_AQUI)
124  NULLIFY(ytrip%XTOPO_RIV)
125  NULLIFY(ytrip%XTABGW_H)
126  NULLIFY(ytrip%XHGROUND)
127  NULLIFY(ytrip%XTAB_F)
128  NULLIFY(ytrip%XTAB_H)
129  NULLIFY(ytrip%XTAB_VF)
130  NULLIFY(ytrip%XTABGW_F)
131  NULLIFY(ytrip%XTABGW_H)
132 !
133  NULLIFY(ytrip%XCPL_WTD)
134  NULLIFY(ytrip%XCPL_FWTD)
135  NULLIFY(ytrip%XCPL_RIVDIS)
136  NULLIFY(ytrip%XCPL_FFLOOD)
137  NULLIFY(ytrip%XCPL_PIFLOOD)
138  NULLIFY(ytrip%XCPL_CALVGRE)
139  NULLIFY(ytrip%XCPL_CALVANT)
140 !
141 IF (lhook) CALL dr_hook("MODD_TRIP:TRIP_INIT",1,zhook_handle)
142 END SUBROUTINE trip_init
143 
144 !
145 END MODULE modd_trip
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine trip_init(YTRIP)
Definition: modd_trip.F90:103