source: LMDZ5/trunk/libf/phymar/PHY_SISVAT_ALLOC.f90 @ 2930

Last change on this file since 2930 was 2089, checked in by Laurent Fairhead, 10 years ago

Inclusion de la physique de MAR


Integration of MAR physics

File size: 27.8 KB
Line 
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
Note: See TracBrowser for help on using the repository browser.