SURFEX v8.1
General documentation of Surfex
modd_watfluxn.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ####################
7 ! ####################
8 !
9 !!**** *MODD_WATFLUX_n - declaration of surface parameters for an inland water surface
10 !!
11 !! PURPOSE
12 !! -------
13 ! Declaration of surface parameters
14 !
15 !!
16 !!** IMPLICIT ARGUMENTS
17 !! ------------------
18 !! None
19 !!
20 !! REFERENCE
21 !! ---------
22 !!
23 !! AUTHOR
24 !! ------
25 !! V. Masson *Meteo France*
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 01/2004
30 !
31 !* 0. DECLARATIONS
32 ! ------------
33 !
35 !
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 
43 !
44 ! General surface:
45 !
46  REAL, POINTER, DIMENSION(:) :: xzs ! orography (m)
47  REAL, POINTER, DIMENSION(:,:) :: xcover ! fraction of each ecosystem (-)
48  LOGICAL, POINTER, DIMENSION(:):: lcover ! GCOVER(i)=T --> ith cover field is not 0.
49  LOGICAL :: lsbl ! T: SBL scheme within the Surface Boundary Layer
50 ! ! F: no atmospheric layers below forcing level
51  CHARACTER(LEN=4) :: cwat_alb ! type of albedo
52 !
53  LOGICAL :: linterpol_ts ! Interpotalation of monthly TS
54  CHARACTER(LEN=6) :: cinterpol_ts ! Interpotalation of monthly TS
55 !
56 ! Inland water:
57 !
58  REAL, POINTER, DIMENSION(:) :: xts ! water surface temperature (K)
59  REAL, POINTER, DIMENSION(:) :: xtice ! water ice temperature
60  REAL, POINTER, DIMENSION(:) :: xz0 ! water surface roughness length (-)
61  REAL, POINTER, DIMENSION(:) :: xemis ! water surface emissivity (-)
62  REAL, POINTER, DIMENSION(:) :: xdir_alb ! water surface direct albedo (-)
63  REAL, POINTER, DIMENSION(:) :: xsca_alb ! water surface diffuse albedo (-)
64  REAL, POINTER, DIMENSION(:) :: xice_alb ! water ice albedo (for ESM coupling) (-)
65 !
66  REAL, POINTER, DIMENSION(:,:) :: xts_mth ! Monthly water surface temperature (K)
67 !
68  REAL, POINTER, DIMENSION(:) :: xcpl_water_wind ! 10m wind speed for ESM coupling
69  REAL, POINTER, DIMENSION(:) :: xcpl_water_fwsu ! zonal wind stress for ESM coupling
70  REAL, POINTER, DIMENSION(:) :: xcpl_water_fwsv ! meridian wind stress for ESM coupling
71  REAL, POINTER, DIMENSION(:) :: xcpl_water_snet ! Solar net heat flux
72  REAL, POINTER, DIMENSION(:) :: xcpl_water_heat ! Non solar net heat flux
73  REAL, POINTER, DIMENSION(:) :: xcpl_water_evap ! Evaporation for ESM coupling
74  REAL, POINTER, DIMENSION(:) :: xcpl_water_rain ! Rainfall for ESM coupling
75  REAL, POINTER, DIMENSION(:) :: xcpl_water_snow ! Snowfall for ESM coupling
76  REAL, POINTER, DIMENSION(:) :: xcpl_water_fwsm ! wind stress module for ESM coupling
77 !
78  REAL, POINTER, DIMENSION(:) :: xcpl_waterice_snet ! solar net heat flux
79  REAL, POINTER, DIMENSION(:) :: xcpl_waterice_heat ! Non solar net heat flux
80  REAL, POINTER, DIMENSION(:) :: xcpl_waterice_evap ! Sublimation for ESM coupling
81 !
82 ! Date:
83 !
84  type(date_time) :: ttime ! current date and time
85  type(date_time) :: tztime
86 !
87 ! Time-step:
88 !
89  REAL :: xtstep ! time step
90 !
91  REAL :: xout_tstep ! output writing time step
92 !
93 !
94 END TYPE watflux_t
95 
96 
97 
98 CONTAINS
99 
100 !
101 
102 
103 
104 
105 SUBROUTINE watflux_init(YWATFLUX)
106 TYPE(watflux_t), INTENT(INOUT) :: YWATFLUX
107 REAL(KIND=JPRB) :: ZHOOK_HANDLE
108 IF (lhook) CALL dr_hook("MODD_WATFLUX_N:WATFLUX_INIT",0,zhook_handle)
109  NULLIFY(ywatflux%XZS)
110  NULLIFY(ywatflux%XCOVER)
111  NULLIFY(ywatflux%LCOVER)
112  NULLIFY(ywatflux%XTS)
113  NULLIFY(ywatflux%XTICE)
114  NULLIFY(ywatflux%XZ0)
115  NULLIFY(ywatflux%XEMIS)
116  NULLIFY(ywatflux%XDIR_ALB)
117  NULLIFY(ywatflux%XSCA_ALB)
118  NULLIFY(ywatflux%XICE_ALB)
119  NULLIFY(ywatflux%XTS_MTH)
120  NULLIFY(ywatflux%XCPL_WATER_WIND)
121  NULLIFY(ywatflux%XCPL_WATER_FWSU)
122  NULLIFY(ywatflux%XCPL_WATER_FWSV)
123  NULLIFY(ywatflux%XCPL_WATER_SNET)
124  NULLIFY(ywatflux%XCPL_WATER_HEAT)
125  NULLIFY(ywatflux%XCPL_WATER_EVAP)
126  NULLIFY(ywatflux%XCPL_WATER_RAIN)
127  NULLIFY(ywatflux%XCPL_WATER_SNOW)
128  NULLIFY(ywatflux%XCPL_WATER_FWSM)
129  NULLIFY(ywatflux%XCPL_WATERICE_SNET)
130  NULLIFY(ywatflux%XCPL_WATERICE_HEAT)
131  NULLIFY(ywatflux%XCPL_WATERICE_EVAP)
132 ywatflux%LSBL=.false.
133 ywatflux%CWAT_ALB=' '
134 ywatflux%LINTERPOL_TS=.false.
135 ywatflux%CINTERPOL_TS=' '
136 ywatflux%XTSTEP=0.
137 ywatflux%XOUT_TSTEP=0.
138 IF (lhook) CALL dr_hook("MODD_WATFLUX_N:WATFLUX_INIT",1,zhook_handle)
139 END SUBROUTINE watflux_init
140 
141 
142 END MODULE modd_watflux_n
integer, parameter jprb
Definition: parkind1.F90:32
subroutine watflux_init(YWATFLUX)
logical lhook
Definition: yomhook.F90:15