[2089] | 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 |
---|