SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modi_glt_blowsn_r.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 !GLT_LIC The GELATO model is a seaice model used in stand-alone or embedded mode.
6 !GLT_LIC It has been developed by Meteo-France. The holder of GELATO is Meteo-France.
7 !GLT_LIC
8 !GLT_LIC This software is governed by the CeCILL-C license under French law and biding
9 !GLT_LIC by the rules of distribution of free software. See the CeCILL-C_V1-en.txt
10 !GLT_LIC (English) and CeCILL-C_V1-fr.txt (French) for details. The CeCILL is a free
11 !GLT_LIC software license, explicitly compatible with the GNU GPL
12 !GLT_LIC (see http://www.gnu.org/licenses/license-list.en.html#CeCILL)
13 !GLT_LIC
14 !GLT_LIC The CeCILL-C licence agreement grants users the right to modify and re-use the
15 !GLT_LIC software governed by this free software license. The exercising of this right
16 !GLT_LIC is conditional upon the obligation to make available to the community the
17 !GLT_LIC modifications made to the source code of the software so as to contribute to
18 !GLT_LIC its evolution.
19 !GLT_LIC
20 !GLT_LIC In consideration of access to the source code and the rights to copy, modify
21 !GLT_LIC and redistribute granted by the license, users are provided only with a limited
22 !GLT_LIC warranty and the software's author, the holder of the economic rights, and the
23 !GLT_LIC successive licensors only have limited liability. In this respect, the risks
24 !GLT_LIC associated with loading, using, modifying and/or developing or reproducing the
25 !GLT_LIC software by the user are brought to the user's attention, given its Free
26 !GLT_LIC Software status, which may make it complicated to use, with the result that its
27 !GLT_LIC use is reserved for developers and experienced professionals having in-depth
28 !GLT_LIC computer knowledge. Users are therefore encouraged to load and test the
29 !GLT_LIC suitability of the software as regards their requirements in conditions enabling
30 !GLT_LIC the security of their systems and/or data to be ensured and, more generally, to
31 !GLT_LIC use and operate it in the same conditions of security.
32 !GLT_LIC
33 !GLT_LIC The GELATO sofware is cureently distibuted with the SURFEX software, available at
34 !GLT_LIC http://www.cnrm.meteo.fr/surfex. The fact that you download the software deemed that
35 !GLT_LIC you had knowledge of the CeCILL-C license and that you accept its terms.
36 !GLT_LIC Attempts to use this software in a way not complying with CeCILL-C license
37 !GLT_LIC may lead to prosecution.
38 !GLT_LIC
39 ! =======================================================================
40 ! ======================== MODULE modi_glt_blowsn_r =========================
41 ! =======================================================================
42 !
43 ! Goal:
44 ! -----
45 ! When the thickness of the snow cover exceeds an arbitrary value
46 ! (here 1 m), it is assumed that all the snow over 1 m is blown to
47 ! the leads. It should be noted this value is quite rarely met under
48 ! "realistic" forcing.
49 !
50 ! Method:
51 ! -------
52 ! A threshold is applied on snow thickness. Energy is perfectly
53 ! conserved, as the gltools_enthalpy, latent heat and water quantities
54 ! represented by the removed part of snow is delivered to the ocean.
55 !
56 ! Created : 1998 (D. Salas y Melia)
57 ! part of thermo_ice
58 ! Modified: 2001/07 (D. Salas y Melia)
59 ! taken out of thermo_ice
60 ! Modified: 2002/10 (D. Salas y Melia)
61 ! energy conservation is now computed by glt_updtfl routine
62 ! Modified: 2009/06 (D. Salas y Melia)
63 ! reduced grid
64 ! Modified: 2011/12 (A. Voldoire)
65 ! new ice/water fluxes interface CALL
66 !
67 ! -------------------- BEGIN MODULE modi_glt_blowsn_r -----------------------
68 !
69 !THXS_SFX!MODULE modi_glt_blowsn_r
70 !THXS_SFX!INTERFACE
71 !THXS_SFX!!
72 !THXS_SFX!SUBROUTINE glt_blowsn_r( tpmxl,tpsil,tptfl,tpsit )
73 !THXS_SFX! USE modd_types_glt
74 !THXS_SFX! USE modd_glt_param
75 !THXS_SFX! TYPE(t_mxl), DIMENSION(np), INTENT(in) :: &
76 !THXS_SFX! tpmxl
77 !THXS_SFX! TYPE(t_vtp), DIMENSION(nl,nt,np), INTENT(in) :: &
78 !THXS_SFX! tpsil
79 !THXS_SFX! TYPE(t_tfl), DIMENSION(np), INTENT(inout) :: &
80 !THXS_SFX! tptfl
81 !THXS_SFX! TYPE(t_sit), DIMENSION(nt,np), INTENT(inout) :: &
82 !THXS_SFX! tpsit
83 !THXS_SFX!END SUBROUTINE glt_blowsn_r
84 !THXS_SFX!!
85 !THXS_SFX!END INTERFACE
86 !THXS_SFX!END MODULE modi_glt_blowsn_r
87 !
88 ! --------------------- END MODULE modi_glt_blowsn_r ------------------------
89 !
90 !
91 !
92 ! -----------------------------------------------------------------------
93 ! ------------------------ SUBROUTINE glt_blowsn_r --------------------------
94 !
95 SUBROUTINE glt_blowsn_r( tpmxl,tpsil,tptfl,tpsit )
96 !
98  USE modd_types_glt
99  USE modd_glt_param
100  USE modi_glt_updtfl_r
101 !
102  IMPLICIT NONE
103 !
104  TYPE(t_mxl), DIMENSION(np), INTENT(in) :: &
105  tpmxl
106  TYPE(t_vtp), DIMENSION(nl,nt,np), INTENT(in) :: &
107  tpsil
108  TYPE(t_tfl), DIMENSION(np), INTENT(inout) :: &
109  tptfl
110  TYPE(t_sit), DIMENSION(nt,np), INTENT(inout) :: &
111  tpsit
112 !
113  REAL :: &
114  zhsnm
115  REAL, DIMENSION(nt,np) :: &
116  zdmsn,zent
117 !
118 !
119 !
120 ! 1. Initializations
121 ! ========================
122 !
123 ! .. Critical snow thickness
124 !
125  zhsnm = 1.
126 !
127 ! .. Snow mass variation
128 !
129  zdmsn(:,:) = 0.
130 !
131 !
132 !
133 ! 2. Remove in excess snow
134 ! ========================
135 !
136 ! .. Compute snow mass variation (kg.m-2) and update snow thickness
137 !
138  WHERE ( tpsit(:,:)%hsn>=zhsnm )
139  zdmsn(:,:) = tpsit(:,:)%rsn * &
140  tpsit(:,:)%fsi * ( zhsnm-tpsit(:,:)%hsn )
141  tpsit(:,:)%hsn = zhsnm
142  ENDWHERE
143 !
144 !
145 !
146 ! 3. Energy conservation
147 ! ======================
148 !
149 ! Note that the glt_updtfl_r routine will be invoked without salinity
150 ! argument - it will then be assumed that the medium that has melted
151 ! is without salt (snow)
152 !
153 !
154 ! 3.1. Massic gltools_enthalpy of removed snow
155 ! -------------------------------------
156 !
157  zent(:,:) = &
158  sum( tpsil(nilay+1:nl,:,:)%ent, dim=1 )/float(nslay)
159 !
160 !
161 ! 3.2. Update water, heat and salt fluxes affecting the ocean
162 ! ------------------------------------------------------------
163 !
164 ! .. Water, heat and salt flux due to the inclusion of the water mass
165 ! generated by the melting of snow
166 !
167  CALL glt_updtfl_r( 'FW2O',tpmxl,tptfl,zdmsn,pent=zent )
168 !
169 END SUBROUTINE glt_blowsn_r
170 !
171 ! ---------------------- END SUBROUTINE glt_blowsn_r ------------------------
172 ! -----------------------------------------------------------------------
subroutine glt_blowsn_r(tpmxl, tpsil, tptfl, tpsit)
subroutine glt_updtfl_r(hflag, tpmxl, tptfl, pdmass, pent, psalt)