SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
snow_t_wliq_to_heat.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 !
10 !
11 SUBROUTINE snow_t_wliq_to_heat_1d(PHEAT,PRHO,PT,PWLIQ)
12 REAL, DIMENSION(:), INTENT(OUT) :: pheat ! snow heat density (J/m3)
13 REAL, DIMENSION(:), INTENT(IN) :: prho ! snow density (kg/m3)
14 REAL, DIMENSION(:), INTENT(IN) :: pt ! snow temperature profile (K)
15 REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: pwliq ! liquid water profile (kg/m3)
16 END SUBROUTINE snow_t_wliq_to_heat_1d
17 !
18 SUBROUTINE snow_t_wliq_to_heat_2d(PHEAT,PRHO,PT,PWLIQ)
19 REAL, DIMENSION(:,:), INTENT(OUT) :: pheat ! snow heat density (J/m3)
20 REAL, DIMENSION(:,:), INTENT(IN) :: prho ! snow density (kg/m3)
21 REAL, DIMENSION(:,:), INTENT(IN) :: pt ! snow temperature profile (K)
22 REAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: pwliq ! liquid water profile (kg/m3)
23 END SUBROUTINE snow_t_wliq_to_heat_2d
24 !
25 SUBROUTINE snow_t_wliq_to_heat_3d(PHEAT,PRHO,PT,PWLIQ)
26 REAL, DIMENSION(:,:,:), INTENT(OUT) :: pheat ! snow heat density (J/m3)
27 REAL, DIMENSION(:,:,:), INTENT(IN) :: prho ! snow density (kg/m3)
28 REAL, DIMENSION(:,:,:), INTENT(IN) :: pt ! snow temperature profile (K)
29 REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: pwliq ! liquid water profile (kg/m3)
30 END SUBROUTINE snow_t_wliq_to_heat_3d
31 !
32 END INTERFACE snow_t_wliq_to_heat
33 !
34 END MODULE modi_snow_t_wliq_to_heat
35 !
36 ! ###########################################
37 SUBROUTINE snow_t_wliq_to_heat_1d(PHEAT,PRHO,PT,PWLIQ)
38 ! ###########################################
39 !
40 USE modd_surf_par, ONLY : xundef
41 USE modd_csts, ONLY : xtt, xlmtt
42 USE mode_snow3l
43 !
44 !
45 USE yomhook ,ONLY : lhook, dr_hook
46 USE parkind1 ,ONLY : jprb
47 !
48 IMPLICIT NONE
49 !
50 !
51 !
52 !* 0.1 declarations of arguments
53 !
54 REAL, DIMENSION(:), INTENT(OUT) :: pheat ! snow heat density (J/m3)
55 REAL, DIMENSION(:), INTENT(IN) :: prho ! snow density (kg/m3)
56 REAL, DIMENSION(:), INTENT(IN) :: pt ! snow temperature profile (K)
57 REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: pwliq ! liquid water profile (kg/m3)
58 REAL(KIND=JPRB) :: zhook_handle
59 !
60 !
61 !* 0.2 declarations of local variables
62 !
63 !---------------------------------------------------------------------------
64 !
65 IF (lhook) CALL dr_hook('MODI_SNOW_T_WLIQ_TO_HEAT:SNOW_T_WLIQ_TO_HEAT_1D',0,zhook_handle)
66 pheat = xundef
67 !
68 !* effect of temperature on heat
69 !
70 WHERE(prho/=xundef) pheat = (pt-xtt)*snow3lscap(prho) - xlmtt * prho
71 !
72 !* effect of liquid water
73 !
74 IF (present(pwliq)) THEN
75  WHERE(prho/=xundef) pheat = pheat + xlmtt * pwliq
76 END IF
77 IF (lhook) CALL dr_hook('MODI_SNOW_T_WLIQ_TO_HEAT:SNOW_T_WLIQ_TO_HEAT_1D',1,zhook_handle)
78 !
79 !---------------------------------------------------------------------------
80 !
81 END SUBROUTINE snow_t_wliq_to_heat_1d
82 !
83 ! ###########################################
84 SUBROUTINE snow_t_wliq_to_heat_2d(PHEAT,PRHO,PT,PWLIQ)
85 ! ###########################################
86 !
87 USE modd_surf_par, ONLY : xundef
88 USE modd_csts, ONLY : xtt, xlmtt
89 USE mode_snow3l
90 !
91 !
92 USE yomhook ,ONLY : lhook, dr_hook
93 USE parkind1 ,ONLY : jprb
94 !
95 IMPLICIT NONE
96 !
97 !
98 !
99 !* 0.1 declarations of arguments
100 !
101 REAL, DIMENSION(:,:), INTENT(OUT) :: pheat ! snow heat density (J/m3)
102 REAL, DIMENSION(:,:), INTENT(IN) :: prho ! snow density (kg/m3)
103 REAL, DIMENSION(:,:), INTENT(IN) :: pt ! snow temperature profile (K)
104 REAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: pwliq ! liquid water profile (kg/m3)
105 REAL(KIND=JPRB) :: zhook_handle
106 !
107 !
108 !* 0.2 declarations of local variables
109 !
110 !---------------------------------------------------------------------------
111 !
112 IF (lhook) CALL dr_hook('MODI_SNOW_T_WLIQ_TO_HEAT:SNOW_T_WLIQ_TO_HEAT_2D',0,zhook_handle)
113 pheat = xundef
114 !
115 !* effect of temperature on heat
116 !
117 WHERE(prho/=xundef) pheat = (pt-xtt)*snow3lscap(prho) - xlmtt * prho
118 !
119 !* effect of liquid water
120 !
121 IF (present(pwliq)) THEN
122  WHERE(prho/=xundef) pheat = pheat + xlmtt * pwliq
123 END IF
124 IF (lhook) CALL dr_hook('MODI_SNOW_T_WLIQ_TO_HEAT:SNOW_T_WLIQ_TO_HEAT_2D',1,zhook_handle)
125 !
126 !---------------------------------------------------------------------------
127 !
128 END SUBROUTINE snow_t_wliq_to_heat_2d
129 !
130 ! ###########################################
131 SUBROUTINE snow_t_wliq_to_heat_3d(PHEAT,PRHO,PT,PWLIQ)
132 ! ###########################################
133 !
134 USE modd_surf_par, ONLY : xundef
135 USE modd_csts, ONLY : xtt, xlmtt
136 USE mode_snow3l
137 !
138 !
139 USE yomhook ,ONLY : lhook, dr_hook
140 USE parkind1 ,ONLY : jprb
141 !
142 IMPLICIT NONE
143 !
144 !
145 !
146 !* 0.1 declarations of arguments
147 !
148 REAL, DIMENSION(:,:,:), INTENT(OUT) :: pheat ! snow heat density (J/m3)
149 REAL, DIMENSION(:,:,:), INTENT(IN) :: prho ! snow density (kg/m3)
150 REAL, DIMENSION(:,:,:), INTENT(IN) :: pt ! snow temperature profile (K)
151 REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: pwliq ! liquid water profile (kg/m3)
152 REAL(KIND=JPRB) :: zhook_handle
153 !
154 !
155 !* 0.2 declarations of local variables
156 !
157 !---------------------------------------------------------------------------
158 !
159 IF (lhook) CALL dr_hook('MODI_SNOW_T_WLIQ_TO_HEAT:SNOW_T_WLIQ_TO_HEAT_3D',0,zhook_handle)
160 pheat = xundef
161 !
162 !* effect of temperature on heat
163 !
164 WHERE(prho/=xundef) pheat = (pt-xtt)*snow3lscap(prho) - xlmtt * prho
165 !
166 !* effect of liquid water
167 !
168 IF (present(pwliq)) THEN
169  WHERE(prho/=xundef) pheat = pheat + xlmtt * pwliq
170 END IF
171 IF (lhook) CALL dr_hook('MODI_SNOW_T_WLIQ_TO_HEAT:SNOW_T_WLIQ_TO_HEAT_3D',1,zhook_handle)
172 !
173 !---------------------------------------------------------------------------
174 !
175 END SUBROUTINE snow_t_wliq_to_heat_3d
subroutine snow_t_wliq_to_heat_3d(PHEAT, PRHO, PT, PWLIQ)
subroutine snow_t_wliq_to_heat_2d(PHEAT, PRHO, PT, PWLIQ)
subroutine snow_t_wliq_to_heat_1d(PHEAT, PRHO, PT, PWLIQ)