SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
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
subroutine watflux_init(YWATFLUX)