1 | subroutine PHY_SISVAT_ALLOC |
---|
2 | |
---|
3 | !------------------------------------------------------------------------------+ |
---|
4 | ! Thu 27-Jun-2013 MAR | |
---|
5 | ! | |
---|
6 | ! subroutine PHY_SISVAT_ALLOC allocates prognostic variables of | |
---|
7 | ! Soil/Ice Snow Vegetation Atmosphere Transfer Scheme | |
---|
8 | ! | |
---|
9 | ! version 3.p.4.1 created by H. Gallee, Tue 26-Feb-2013 | |
---|
10 | ! Last Modification by H. Gallee, Thu 27-Jun-2013 | |
---|
11 | ! | |
---|
12 | !------------------------------------------------------------------------------+ |
---|
13 | |
---|
14 | |
---|
15 | use Mod_Real |
---|
16 | use Mod_PHY____grd |
---|
17 | use Mod_SISVAT_dim |
---|
18 | use Mod_SISVAT_grd |
---|
19 | use Mod_SISVAT_kkl |
---|
20 | use Mod_SISVAT_loc |
---|
21 | use Mod_SISVAT_dzS |
---|
22 | use Mod_SISVAT_cdf |
---|
23 | use Mod_SISVAT_gpt |
---|
24 | |
---|
25 | use Mod_SISVAT_flx |
---|
26 | ! #AW use Mod_SISVAT_xAW |
---|
27 | ! #AH use Mod_SISVAT_xAH |
---|
28 | ! #ZM use Mod_SISVAT_xZM |
---|
29 | ! #WL use Mod_SISVAT_xWL |
---|
30 | |
---|
31 | |
---|
32 | IMPLICIT NONE |
---|
33 | |
---|
34 | |
---|
35 | integer :: ikl ,i ,j ,n ! |
---|
36 | |
---|
37 | |
---|
38 | |
---|
39 | |
---|
40 | ! ================================ |
---|
41 | ! Initialization of Mod_SISVAT_grd |
---|
42 | ! ================================ |
---|
43 | |
---|
44 | n2 = min(2,mwp) ! |
---|
45 | kcolv =(mxpp-ixp1+1)*(mypp-jyp1+1)*mwp ! |
---|
46 | |
---|
47 | nvege = nvgt ! Nb of Vegetation Types |
---|
48 | nsnow = nsno ! MAX Nb of Snow Layers |
---|
49 | nsoil = nsol ! Nb of Soil Layers |
---|
50 | nbPts = nb_Pts ! |
---|
51 | nbwri = nb_wri ! |
---|
52 | ntave = ntaver ! Nb of Time Steps used in V & dT(a-s) Time Moving Average |
---|
53 | ntavz = ntavez ! Nb of Time Steps used in z0, r0, ... Time Moving Average |
---|
54 | nLimi = nLimit ! Nb of Time Steps used in Water Vapor Flux Limit. Average |
---|
55 | |
---|
56 | |
---|
57 | |
---|
58 | ! VERIFICATION: a BAD SET-UP WILL LEAD to an EMERGENCY STOP |
---|
59 | ! --------------------------------------------------------- |
---|
60 | |
---|
61 | IF (nbwri.gt.mzp) THEN |
---|
62 | write(6,600) nbwri,mzp |
---|
63 | 600 format(/,'### MAR_SISVAT CRASH, nbwri =',i6, & |
---|
64 | & ' .GT. mzp =',i3,' ',2x,' ###',& |
---|
65 | & /,' ?!&~@|@[#@#]=!!!',23x,'EMERGENCY STOP') |
---|
66 | stop |
---|
67 | END IF |
---|
68 | |
---|
69 | IF (nbwri.gt.mwp*NbPts) THEN |
---|
70 | write(6,601) nb_wri,mwp,Nb_Pts |
---|
71 | 601 format(/,'### MAR_SISVAT CRASH, nbwri =',i6, & |
---|
72 | & ' .GT. mwp*NbPts =',i3,'*',i2,' ###',& |
---|
73 | & /,' ?!&~@|@[#@#]=!!!',23x,'EMERGENCY STOP') |
---|
74 | stop |
---|
75 | END IF |
---|
76 | |
---|
77 | |
---|
78 | |
---|
79 | |
---|
80 | |
---|
81 | ! ================================= |
---|
82 | ! ALLOCATION Mod_SISVAT_kkl - BEGIN |
---|
83 | ! ================================= |
---|
84 | |
---|
85 | ! SISVAT INPUT Variables |
---|
86 | ! ----------------------------- |
---|
87 | |
---|
88 | allocate ( LSmask(kcolp,mwp) ) ! Land-Sea Mask |
---|
89 | allocate ( isotSV(kcolp,mwp) ) ! Soil Type |
---|
90 | allocate ( iWaFSV(kcolp,mwp) ) ! Soil Drainage:(1,0)=(y,n) |
---|
91 | allocate ( ivgtSV(kcolp,mwp) ) ! Vegetation Type |
---|
92 | |
---|
93 | allocate ( FracSV(kcolp,mwp) ) ! Grid Cell Fraction (Mosaic) [-] |
---|
94 | |
---|
95 | allocate ( coszSV(kcolp,mwp) ) ! Cosine of Sun zenithal Angle |
---|
96 | allocate ( sol_SV(kcolp,mwp) ) ! Downward Solar Radiation |
---|
97 | allocate ( IRd_SV(kcolp,mwp) ) ! Downward Longwave Radiation |
---|
98 | |
---|
99 | allocate ( drr_SV(kcolp,mwp) ) ! Rain Intensity [kg/m2/s] |
---|
100 | allocate ( dsn_SV(kcolp,mwp) ) ! Snow Intensity [kg/m2/s] |
---|
101 | allocate ( dsnbSV(kcolp,mwp) ) ! Idem, fraction, from Drift [-] |
---|
102 | allocate ( esnbSV(kcolp,mwp) ) ! Idem, fraction, from Drift [-] |
---|
103 | allocate ( dbs_SV(kcolp,mwp) ) ! Drift Amount [kg/m2] |
---|
104 | allocate ( BrosSV(kcolp,mwp) ) ! Buffer Snow Layer Density |
---|
105 | allocate ( BG1sSV(kcolp,mwp) ) ! Buffer Snow Layer Dendr/Sphe [-] |
---|
106 | allocate ( BG2sSV(kcolp,mwp) ) ! Buffer Snow Layer Spher/Size [-] [0.0001 m] |
---|
107 | allocate ( dz0_SV(kcolp,mwp) ) ! dz0(Sastrugi dh) [m] |
---|
108 | |
---|
109 | allocate ( cld_SV(kcolp,mwp) ) ! Cloudiness (seen from SBL) |
---|
110 | allocate ( za__SV(kcolp,mwp) ) ! SBL Height |
---|
111 | allocate ( VV__SV(kcolp,mwp) ) !(SBL Top) Wind Velocity |
---|
112 | allocate ( Ua__SV(kcolp,mwp) ) !(SBL Top) Wind Velocity, x-Direction, t [m/s] |
---|
113 | allocate ( Ua0_SV(kcolp,mwp) ) !(SBL Top) Wind Velocity, x-Direction, t -dt [m/s] |
---|
114 | allocate ( Va__SV(kcolp,mwp) ) !(SBL Top) Wind Velocity, y-Direction, t [m/s] |
---|
115 | allocate ( Va0_SV(kcolp,mwp) ) !(SBL Top) Wind Velocity, y-Direction, t -dt [m/s] |
---|
116 | allocate ( VV10SV(kcolp,mwp) ) ! 10-m Wind Velocity |
---|
117 | allocate ( VVs_SV(kcolp,mwp) ) !(Sastr,V) Relevance |
---|
118 | allocate ( RRsxSV(kcolp,mwp) ) !(Sastr,V) Counter |
---|
119 | allocate ( DDsxSV(kcolp,mwp) ) !(Sastr,V) Angle |
---|
120 | allocate ( DDs_SV(kcolp,mwp) ) !(Sastr,V) Angle |
---|
121 | allocate ( rhT_SV(kcolp,mwp) ) ! SBL Top Air Density |
---|
122 | allocate ( TaT_SV(kcolp,mwp) ) ! SBL Top Temperature [K] |
---|
123 | allocate ( Ts__SV(kcolp,mwp) ) ! Surface Air Temperature (Mosaic) [K] |
---|
124 | allocate ( pkPaSV(kcolp,mwp) ) ! Surface Pressure [kPa] |
---|
125 | allocate ( WindSV(kcolp,mwp,mzp) ) ! Wind Speed [m/s] |
---|
126 | allocate ( zza_SV(kcolp,mwp,mzp) ) ! Atmospheric Levels HEIGHTS [m] |
---|
127 | allocate ( roa_SV(kcolp,mwp,mzp) ) ! Air Volumic Mass [T/m3] |
---|
128 | allocate ( Kz__SV(kcolp,mwp,mzp) ) ! Turbulent Diffusion Coefficients [m2/s] |
---|
129 | allocate ( pktaSV(kcolp,mwp,mzp) ) ! Temperature / Exner Potential (Current Value in (PHY_)SISVAT) |
---|
130 | allocate ( pkt0SV(kcolp,mwp,mzp) ) ! Temperature / Exner Potential (INPUT Value of (PHY_)SISVAT) |
---|
131 | allocate ( ExnrSV(kcolp,mwp) ) ! Surface Exner Potential |
---|
132 | allocate ( qv__SV(kcolp,mwp,mzp) ) ! Atmosph. Specific Humidity [kg/kg] |
---|
133 | allocate ( QaT_SV(kcolp,mwp) ) ! SBL Top Specific Humidity [kg/kg] |
---|
134 | allocate ( dQa_SV(kcolp,mwp) ) ! SBL Flux Limitation of Qa |
---|
135 | allocate ( SHumSV(kcolp,mwp) ) ! Surface Specific Humidity [kg/kg] |
---|
136 | allocate ( dSdTSV(kcolp,mwp) ) ! Sensible Heat Flux T Derivat. |
---|
137 | allocate ( dLdTSV(kcolp,mwp) ) ! Latent Heat Flux T Derivat. |
---|
138 | allocate ( qsnoSV(kcolp,mwp) ) ! SBL Mean Snow Content [kg/kg] |
---|
139 | |
---|
140 | allocate ( LAI0SV(kcolp,mwp) ) ! Nominal Leaf Area Index |
---|
141 | allocate ( glf0SV(kcolp,mwp) ) ! Green Leaf Fraction |
---|
142 | |
---|
143 | allocate ( alb0SV(kcolp,mwp) ) ! Soil Albedo |
---|
144 | allocate ( slopSV(kcolp,mwp) ) ! Snow/Ice/Soil-Water Surf. Slope [-] |
---|
145 | allocate ( slorSV(kcolp,mwp) ) ! Snow/Ice/Soil-Water Surf. Slope [radian] |
---|
146 | allocate ( z0__SV(kcolp,mwp) ) ! Roughness Length Momentum (Mosaic) [m] |
---|
147 | allocate ( ROF_SV(kcolp,mwp) ) ! Cumulative Run-Off (Mosaic) [mm w.e.] |
---|
148 | |
---|
149 | |
---|
150 | ! SISVAT INPUT/OUTPUT Variables |
---|
151 | ! ----------------------------- |
---|
152 | |
---|
153 | allocate ( isnoSV(kcolp,mwp) ) ! Nb of Ice/Snow Layers |
---|
154 | allocate ( ispiSV(kcolp,mwp) ) ! Uppermost superimposed ice |
---|
155 | allocate ( iiceSV(kcolp,mwp) ) ! Nb of Ice Layers |
---|
156 | allocate ( istoSV(kcolp,mwp, 0:nsnow) ) ! Snow Layer History |
---|
157 | |
---|
158 | allocate ( albcSV(kcolp,mwp) ) ! Coupl. Surface Albedo (Surface-Canopy / Ocean) |
---|
159 | allocate ( alb_SV(kcolp,mwp) ) ! Surface-Canopy Albedo |
---|
160 | allocate ( emi_SV(kcolp,mwp) ) ! Surface-Canopy Emissivity |
---|
161 | allocate ( IRs_SV(kcolp,mwp) ) ! Soil IR Flux |
---|
162 | allocate ( LMO_SV(kcolp,mwp) ) ! Monin-Obukhov Scale |
---|
163 | allocate ( us__SV(kcolp,mwp) ) ! Friction Velocity |
---|
164 | allocate ( uts_SV(kcolp,mwp) ) ! Temperature Turbulent Scale |
---|
165 | allocate ( cutsSV(kcolp,mwp) ) ! Temperature Turbulent Scale C. |
---|
166 | allocate ( uqs_SV(kcolp,mwp) ) ! Spec.Humid. Turbulent Scale |
---|
167 | allocate ( ussbSV(kcolp,mwp) ) ! Blowing Snow Eroded Buffer [mm w.e.] |
---|
168 | allocate ( uss_SV(kcolp,mwp) ) ! Blowing Snow Turbulent Scale |
---|
169 | ! #BS allocate ( ussxSV(kcolp,mwp) ) ! Blowing Snow Turbulent Scale (modified) |
---|
170 | ! #BD allocate ( uds_SV(kcolp,mwp) ) ! Blowing Dust Flux Turbulent Scale [kg/kg m/s] |
---|
171 | allocate ( usthSV(kcolp,mwp) ) ! Blowing Snow Erosion Thresh. |
---|
172 | allocate ( rCDmSV(kcolp,mwp) ) ! Square Root Contribut. Drag_m |
---|
173 | allocate ( rCDhSV(kcolp,mwp) ) ! Square Root Contribut. Drag_h |
---|
174 | allocate ( Z0m_SV(kcolp,mwp) ) ! Momentum Roughness Length |
---|
175 | allocate ( Z0mmSV(kcolp,mwp) ) ! z0(Momentum, Time Mean) [m] |
---|
176 | allocate ( Z0mnSV(kcolp,mwp) ) ! z0(Momentum, instanta.) [m] |
---|
177 | allocate ( Z0roSV(kcolp,mwp) ) ! Subgrid Topo Roughness Length |
---|
178 | allocate ( Z0SaSV(kcolp,mwp) ) ! z0(Sastrugi h) [m] |
---|
179 | allocate ( Z0e_SV(kcolp,mwp) ) ! z0(Snow eroded) [m] |
---|
180 | allocate ( Z0emSV(kcolp,mwp) ) ! z0(Snow eroded, Time Mean) [m] |
---|
181 | allocate ( Z0enSV(kcolp,mwp) ) ! z0(Snow eroded, instanta.) [m] |
---|
182 | allocate ( Z0h_SV(kcolp,mwp) ) ! Heat Roughness Length |
---|
183 | allocate ( Z0hmSV(kcolp,mwp) ) ! z0(Heat, Time Mean) [m] |
---|
184 | allocate ( Z0hnSV(kcolp,mwp) ) ! z0(Heat, instanta.) [m] |
---|
185 | |
---|
186 | allocate ( snCaSV(kcolp,mwp) ) ! Canopy Snow Thickness |
---|
187 | allocate ( rrCaSV(kcolp,mwp) ) ! Canopy Water Content |
---|
188 | allocate ( psivSV(kcolp,mwp) ) ! Leaf Water Potential |
---|
189 | allocate ( TvegSV(kcolp,mwp) ) ! Vegetation Temperature |
---|
190 | |
---|
191 | allocate ( TsisSV(kcolp,mwp,-nsoil:nsnow) ) ! Snow/Ice/Soil-Water Temperature |
---|
192 | allocate ( ro__SV(kcolp,mwp,-nsoil:nsnow) ) ! Snow/Ice/Soil-Water VolumicMass |
---|
193 | allocate ( eta_SV(kcolp,mwp,-nsoil:nsnow) ) ! Snow/Ice/Soil Water Content |
---|
194 | allocate ( G1snSV(kcolp,mwp, 0:nsnow) ) ! Snow Dendricity/Sphericity |
---|
195 | allocate ( G2snSV(kcolp,mwp, 0:nsnow) ) ! Snow Sphericity/Size |
---|
196 | allocate ( dzsnSV(kcolp,mwp, 0:nsnow) ) ! Snow Layer Thickness |
---|
197 | allocate ( agsnSV(kcolp,mwp, 0:nsnow) ) ! Snow Age |
---|
198 | allocate ( BufsSV(kcolp,mwp) ) ! Snow Buffer Layer |
---|
199 | allocate ( rusnSV(kcolp,mwp) ) ! Surficial Water |
---|
200 | allocate ( SWf_SV(kcolp,mwp) ) ! Normalized Decay |
---|
201 | allocate ( SWS_SV(kcolp,mwp) ) ! Surficial Water Status |
---|
202 | allocate ( HFraSV(kcolp,mwp) ) ! Frazil Thickness |
---|
203 | |
---|
204 | allocate ( zWE_SV(kcolp,mwp) ) ! Current Snow Thickness [mm w.e.] |
---|
205 | allocate ( zWEcSV(kcolp,mwp) ) ! Compacted Snow Thickness [mm w.e.] |
---|
206 | allocate ( dwemSV(kcolp,mwp) ) ! Only Melting over dt__SV (Mosaic) [mm w.e.] |
---|
207 | allocate ( dwerSV(kcolp,mwp) ) ! Refreezing over dt__SV (Mosaic) [mm w.e.] |
---|
208 | allocate ( dwesSV(kcolp,mwp) ) ! Sublimation over dt__SV (Mosaic) [mm w.e.] |
---|
209 | allocate ( wem0SV(kcolp,mwp) ) ! Only Melting Budget (Mosaic) [mm w.e.] |
---|
210 | allocate ( wem_SV(kcolp,mwp) ) ! Only Melting Budget (Mosaic) [mm w.e.] |
---|
211 | allocate ( wer0SV(kcolp,mwp) ) ! Refreezing Budget (Mosaic) [mm w.e.] |
---|
212 | allocate ( wer_SV(kcolp,mwp) ) ! Refreezing Budget (Mosaic) [mm w.e.] |
---|
213 | allocate ( wes0SV(kcolp,mwp) ) ! Sublimation Budget (Mosaic) [mm w.e.] |
---|
214 | allocate ( wes_SV(kcolp,mwp) ) ! Sublimation Budget (Mosaic) [mm w.e.] |
---|
215 | allocate ( wee_SV(kcolp,mwp) ) ! Evapotranspiration Budget (Mosaic) [mm w.e.] |
---|
216 | |
---|
217 | |
---|
218 | ! SISVAT OUTPUT Variables |
---|
219 | ! ----------------------------- |
---|
220 | |
---|
221 | allocate ( no__SV(nbwri) ) ! OUTPUT file Unit Number |
---|
222 | allocate ( IOi_SV(NbPts) ) ! OUTPUT point i Coordinate (independant txt file) |
---|
223 | allocate ( IOj_SV(NbPts) ) ! OUTPUT point j Coordinate (independant txt file) |
---|
224 | allocate ( i___SV(nbwri) ) ! OUTPUT point i Coordinate |
---|
225 | allocate ( j___SV(nbwri) ) ! OUTPUT point j Coordinate |
---|
226 | allocate ( n___SV(nbwri) ) ! OUTPUT point n Coordinate |
---|
227 | allocate ( lwriSV(kcolp,mwp) ) ! OUTPUT point vec Index |
---|
228 | |
---|
229 | allocate ( IRu_SV(kcolp,mwp) ) ! UPward IR Flux (effective) |
---|
230 | allocate ( hSalSV(kcolp,mwp) ) ! Saltating Layer Height |
---|
231 | allocate ( qSalSV(kcolp,mwp) ) ! Saltating Snow Concentration |
---|
232 | allocate ( RnofSV(kcolp,mwp) ) ! RunOFF Intensity |
---|
233 | |
---|
234 | ! ================================= |
---|
235 | ! ALLOCATION Mod_SISVAT_kkl - END |
---|
236 | ! ================================= |
---|
237 | |
---|
238 | |
---|
239 | |
---|
240 | ! ================================= |
---|
241 | ! ALLOCATION Mod_SISVAT_grd - BEGIN |
---|
242 | ! ================================= |
---|
243 | |
---|
244 | allocate ( ii__SV(kcolv) ) ! Mosaic point i Coordinate |
---|
245 | allocate ( jj__SV(kcolv) ) ! Mosaic point j Coordinate |
---|
246 | allocate ( nn__SV(kcolv) ) ! Mosaic point n Coordinate |
---|
247 | allocate ( ikp_SV(kcolv) ) ! Grid Cell Column Index of a SISVAT Column |
---|
248 | allocate ( ikl_SV(mxp,myp,mwp) ) ! SISVAT Column Index |
---|
249 | |
---|
250 | ! ================================= |
---|
251 | ! ALLOCATION Mod_SISVAT_grd - END |
---|
252 | ! ================================= |
---|
253 | |
---|
254 | |
---|
255 | |
---|
256 | ! ================================= |
---|
257 | ! ALLOCATION Mod_SISVAT_loc - BEGIN |
---|
258 | ! ================================= |
---|
259 | |
---|
260 | |
---|
261 | allocate ( NLaysv(kcolp,mwp) ) ! New Snow Layer Switch |
---|
262 | allocate ( i_thin(kcolp,mwp) ) ! Index of the thinest Layer |
---|
263 | allocate ( LIndsv(kcolp,mwp) ) ! Contiguous Layer relative Index |
---|
264 | |
---|
265 | allocate ( albisv(kcolp,mwp) ) ! Integrated Surface Albedo |
---|
266 | allocate ( albssv(kcolp,mwp) ) ! Soil Albedo [-] |
---|
267 | allocate ( SoCasv(kcolp,mwp) ) ! Canopy Absorbed Solar Radiat. |
---|
268 | allocate ( SoSosv(kcolp,mwp) ) ! Surface Absorbed Solar Radiat. |
---|
269 | allocate ( IRv_sv(kcolp,mwp) ) ! Vegetation IR Flux [W/m2] |
---|
270 | allocate ( Evg_sv(kcolp,mwp) ) ! Emissivity of Vegetation+Snow |
---|
271 | allocate ( Eso_sv(kcolp,mwp) ) ! Emissivity of Soil+Snow |
---|
272 | allocate ( tau_sv(kcolp,mwp) ) ! Transmited Radiation Fraction |
---|
273 | allocate ( rrMxsv(kcolp,mwp) ) ! Canopy Maximum Intercepted Rain |
---|
274 | allocate ( LAIesv(kcolp,mwp) ) ! effective LAI for transpirati. |
---|
275 | allocate ( LAI_sv(kcolp,mwp) ) ! corrected LAI in case of snow |
---|
276 | allocate ( glf_sv(kcolp,mwp) ) ! Green Leaf Fraction |
---|
277 | allocate ( Sigmsv(kcolp,mwp) ) ! Canopy Ventilation Factor |
---|
278 | allocate ( HSv_sv(kcolp,mwp) ) ! Sensible Heat Flux [W/m2] |
---|
279 | allocate ( HLv_sv(kcolp,mwp) ) ! Latent Heat Flux [W/m2] |
---|
280 | allocate ( HSs_sv(kcolp,mwp) ) ! Sensible Heat Flux (t) |
---|
281 | allocate ( HLs_sv(kcolp,mwp) ) ! Latent Heat Flux (t) |
---|
282 | allocate ( sqrCm0(kcolp,mwp) ) ! in Neutral Drag Coef.Moment. |
---|
283 | allocate ( sqrCh0(kcolp,mwp) ) ! in Neutral Drag Coef.Heat |
---|
284 | allocate ( Lx_H2O(kcolp,mwp) ) ! Latent Heat of Vaporiz./Sublim. |
---|
285 | allocate ( ram_sv(kcolp,mwp) ) ! Aerodyn.Resistance (Moment.) |
---|
286 | allocate ( rah_sv(kcolp,mwp) ) ! Aerodyn.Resistance (Heat) |
---|
287 | allocate ( Fh__sv(kcolp,mwp) ) ! Stability Function |
---|
288 | allocate ( dFh_sv(kcolp,mwp) ) ! Stability Function (Deriv.) |
---|
289 | allocate ( Evp_sv(kcolp,mwp) ) ! Evaporation [kg/m2] |
---|
290 | allocate ( EvT_sv(kcolp,mwp) ) ! Evapotranspiration [kg/m2] |
---|
291 | allocate ( LSdzsv(kcolp,mwp) ) ! Land/Sea Vert. Discretiz. Fact. |
---|
292 | allocate ( Tsrfsv(kcolp,mwp) ) ! Surface Temperature |
---|
293 | allocate ( sEX_sv(kcolp,mwp,-nsoil:nsnow+1) )! Verticaly Integr.Extinct.Coef. |
---|
294 | allocate ( zzsnsv(kcolp,mwp, 0:nsnow) )! Snow Pack Thickness [m] |
---|
295 | allocate ( psi_sv(kcolp,mwp,-nsoil:0 ) ) ! Soil Water Potential |
---|
296 | allocate ( Khydsv(kcolp,mwp,-nsoil:0 ) ) ! Soil Hydraulic Conductiv. |
---|
297 | allocate ( Rootsv(kcolp,mwp,-nsoil:0) ) ! Root Water Pump [kg/m2/s] |
---|
298 | allocate ( EExcsv(kcolp,mwp) ) ! Energy in Excess, current |
---|
299 | |
---|
300 | |
---|
301 | ! ================================= |
---|
302 | ! ALLOCATION Mod_SISVAT_loc - END |
---|
303 | ! ================================= |
---|
304 | |
---|
305 | |
---|
306 | |
---|
307 | ! ================================= |
---|
308 | ! ALLOCATION Mod_SISVAT_dzS - BEGIN |
---|
309 | ! ================================= |
---|
310 | |
---|
311 | |
---|
312 | allocate ( islpSV( -nsoil:0) ) ! |
---|
313 | allocate ( isnpSV( nsnow) ) ! |
---|
314 | allocate ( islmSV( -nsoil:0) ) ! |
---|
315 | |
---|
316 | allocate ( dzmiSV( -nsoil:0) ) ! dz_(i-1/2) |
---|
317 | allocate ( dzi_SV( -nsoil:0) ) ! dz_(i-1)/(dz_(i)+dz_(i-1)) |
---|
318 | allocate ( dziiSV( -nsoil:0) ) ! dz_(i) /(dz_(i)+dz_(i-1)) |
---|
319 | allocate ( dtz_SV( -nsoil:0) ) ! dt / dz |
---|
320 | allocate ( dz78SV( -nsoil:0) ) ! 7/8 (dz) |
---|
321 | allocate ( dz34SV( -nsoil:0) ) ! 3/4 (dz) |
---|
322 | allocate ( dz_8SV( -nsoil:0) ) ! 1/8 (dz) |
---|
323 | allocate ( dzAvSV( -nsoil:0) ) ! 1/8dz_(-1)+3/4dz+1/8dz_(+1) |
---|
324 | allocate ( RF__SV( 0:nvege,-nsoil:0) ) ! Root Fraction |
---|
325 | |
---|
326 | |
---|
327 | ! ================================= |
---|
328 | ! ALLOCATION Mod_SISVAT_dzS - END |
---|
329 | ! ================================= |
---|
330 | |
---|
331 | |
---|
332 | |
---|
333 | ! ================================= |
---|
334 | ! ALLOCATION Mod_SISVAT_gpt - BEGIN |
---|
335 | ! ================================= |
---|
336 | |
---|
337 | allocate ( sst_SB (kcolp) ) ! Ocean FORCING (SST) [K] |
---|
338 | allocate ( sif_SB (kcolp) ) ! Ocean FORCING (Sea-Ice Fraction) [-] |
---|
339 | allocate ( MaskSV_gpt(kcolp) ) ! Land(1)-Sea(0) Mask (Cell value) [-] |
---|
340 | allocate ( Alb_SV_gpt(kcolp) ) ! Surface Albedo (Cell average) [-] |
---|
341 | allocate ( EmisSV_gpt(kcolp) ) ! Surface LongWave Emissivity(Cell average) [-] |
---|
342 | allocate ( Tas_SV_gpt(kcolp) ) ! Surface Air Temperature (Cell average) [K] |
---|
343 | allocate ( HSenSV_gpt(kcolp) ) ! Sensible Heat Flux (+ => Upward) [W/m2] |
---|
344 | allocate ( HLatSV_gpt(kcolp) ) ! Latent Heat Flux (+ => Upward) [W/m2] |
---|
345 | allocate ( LMO_SV_gpt(kcolp) ) ! Obukhov Length (Cell average) [m] |
---|
346 | allocate ( us__SV_gpt(kcolp) ) ! Friction Velocity [m/s] |
---|
347 | allocate ( uts_SV_gpt(kcolp) ) ! Sensible Heat Flux Turbulent Scale [K m/s] |
---|
348 | allocate ( uqs_SV_gpt(kcolp) ) ! Latent Heat Flux Turbulent Scale [kg/kg m/s] |
---|
349 | allocate ( WE2aSV_gpt(kcolp) ) ! Cumulative H2O Flux from the Surface [mm w.e.] |
---|
350 | allocate ( hFraSV_gpt(kcolp) ) ! Frazil Thickness [m] |
---|
351 | allocate ( dpktSV_gpt(kcolp,mzp) ) ! Reduced Potential Temperature Tendency [KX/s] |
---|
352 | |
---|
353 | |
---|
354 | ! ================================= |
---|
355 | ! ALLOCATION Mod_SISVAT_gpt - END |
---|
356 | ! ================================= |
---|
357 | |
---|
358 | |
---|
359 | |
---|
360 | ! ================================= |
---|
361 | ! ALLOCATION Mod_SISVAT_flx - BEGIN |
---|
362 | ! ================================= |
---|
363 | |
---|
364 | ! OUTPUT for Stand Alone NetCDF File |
---|
365 | ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
366 | allocate ( SOsoKL(kcolp,mwp) ) ! Absorbed Solar Radiation [W/m2] |
---|
367 | allocate ( IRsoKL(kcolp,mwp) ) ! Absorbed IR Radiation [W/m2] |
---|
368 | allocate ( HSsoKL(kcolp,mwp) ) ! Absorbed Sensible Heat Flux [W/m2] |
---|
369 | allocate ( HLsoKL(kcolp,mwp) ) ! Absorbed Latent Heat Flux [W/m2] |
---|
370 | allocate ( HLs_KL(kcolp,mwp) ) ! Evaporation [mm w.e./s] |
---|
371 | allocate ( HLv_KL(kcolp,mwp) ) ! Transpiration [W/m2] |
---|
372 | |
---|
373 | |
---|
374 | ! ================================= |
---|
375 | ! ALLOCATION Mod_SISVAT_flx - END |
---|
376 | ! ================================= |
---|
377 | |
---|
378 | |
---|
379 | |
---|
380 | ! ================================= |
---|
381 | ! ALLOCATION Mod_SISVAT_cdf - BEGIN |
---|
382 | ! ================================= |
---|
383 | |
---|
384 | ! OUTPUT for Stand Alone NetCDF File |
---|
385 | ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
386 | allocate ( SOsoNC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Absorbed Solar Radiation [W/m2] |
---|
387 | allocate ( IRsoNC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Absorbed IR Radiation [W/m2] |
---|
388 | allocate ( HSsoNC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Absorbed Sensible Heat Flux [W/m2] |
---|
389 | allocate ( HLsoNC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Absorbed Latent Heat Flux [W/m2] |
---|
390 | allocate ( HLs_NC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Evaporation [mm w.e./s] |
---|
391 | allocate ( HLv_NC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Transpiration [W/m2] |
---|
392 | allocate ( eta_NC_xyn(ixp1:mxpp,jyp1:mypp,mwp) ) ! Soil Humidity [kg/kg] |
---|
393 | |
---|
394 | |
---|
395 | ! ================================= |
---|
396 | ! ALLOCATION Mod_SISVAT_cdf - END |
---|
397 | ! ================================= |
---|
398 | |
---|
399 | |
---|
400 | |
---|
401 | ! ================================= |
---|
402 | ! ALLOCATION Mod_SISVAT_xAW - BEGIN |
---|
403 | ! ================================= |
---|
404 | |
---|
405 | ! #AW allocate ( V__mem(kcolp,mwp,ntave) ) ! V Time Steps |
---|
406 | ! #AW allocate ( VVmmem(kcolp,mwp ) ) ! V Time Moving Averages |
---|
407 | |
---|
408 | |
---|
409 | ! ================================= |
---|
410 | ! ALLOCATION Mod_SISVAT_xAW - END |
---|
411 | ! ================================= |
---|
412 | |
---|
413 | |
---|
414 | |
---|
415 | ! ================================= |
---|
416 | ! ALLOCATION Mod_SISVAT_xAH - BEGIN |
---|
417 | ! ================================= |
---|
418 | |
---|
419 | ! #AH allocate ( T__mem(kcolp,mwp,ntave) ) ! dT(a-s) Time Steps |
---|
420 | ! #AH allocate ( dTmmem(kcolp,mwp ) ) ! dT(a-s) Time Moving Averages |
---|
421 | |
---|
422 | |
---|
423 | ! ================================= |
---|
424 | ! ALLOCATION Mod_SISVAT_xAH - END |
---|
425 | ! ================================= |
---|
426 | |
---|
427 | |
---|
428 | |
---|
429 | ! ================================= |
---|
430 | ! ALLOCATION Mod_SISVAT_xZM - BEGIN |
---|
431 | ! ================================= |
---|
432 | |
---|
433 | ! #ZM allocate ( z0_mem(kcolp,mwp,ntavz) ) ! z0 Time Steps |
---|
434 | ! #ZM allocate ( r0_mem(kcolp,mwp,ntavz) ) ! r0 Time Steps |
---|
435 | ! #ZM allocate ( b0_mem(kcolp,mwp,ntavz) ) ! b0 Time Steps |
---|
436 | |
---|
437 | |
---|
438 | ! ================================= |
---|
439 | ! ALLOCATION Mod_SISVAT_xZM - END |
---|
440 | ! ================================= |
---|
441 | |
---|
442 | |
---|
443 | |
---|
444 | ! ================================= |
---|
445 | ! ALLOCATION Mod_SISVAT_xWL - BEGIN |
---|
446 | ! ================================= |
---|
447 | |
---|
448 | ! #WL allocate ( WL_mem(kcolp,mwp,nLimi) ) ! WVLimit Time Steps |
---|
449 | ! #WL allocate ( WLmmem(kcolp,mwp) ) ! WVLimit Time moving Averages |
---|
450 | |
---|
451 | |
---|
452 | ! ================================= |
---|
453 | ! ALLOCATION Mod_SISVAT_xWL - END |
---|
454 | ! ================================= |
---|
455 | |
---|
456 | |
---|
457 | |
---|
458 | ! ============================================================================================ |
---|
459 | ! Initialization of the Correspondance between 1-D Hor.SISVAT Grid and the 3-D Horizontal Grid |
---|
460 | ! ============================================================================================ |
---|
461 | |
---|
462 | DO i=ixp1,mxpp |
---|
463 | DO j=jyp1,mypp |
---|
464 | DO n=1,mwp |
---|
465 | |
---|
466 | ikl = ((n-1)*(mypp-jyp1+1)+j-jyp1) *(mxpp-ixp1+1) + i -ixp1+1 |
---|
467 | ii__SV(ikl) = i |
---|
468 | jj__SV(ikl) = j |
---|
469 | nn__SV(ikl) = n |
---|
470 | ikl_SV(i,j,n) = ikl |
---|
471 | |
---|
472 | |
---|
473 | |
---|
474 | ! ============================================================================================ |
---|
475 | ! Initialization of the Correspondance between 1-D Hor.SISVAT Grid and the 1-D Hor.AtmPHY Grid |
---|
476 | ! ============================================================================================ |
---|
477 | |
---|
478 | ikp_SV(ikl) = ikl_AP(i,j) |
---|
479 | |
---|
480 | ENDDO |
---|
481 | ENDDO |
---|
482 | ENDDO |
---|
483 | |
---|
484 | return |
---|
485 | end subroutine PHY_SISVAT_ALLOC |
---|