source: LMDZ6/branches/Ocean_skin/libf/phylmd/inlandsis/sisvat_ts2.F @ 5453

Last change on this file since 5453 was 3792, checked in by evignon, 4 years ago

Ajout de INLANDSIS, nouvelle interface entre LMDZ et la neige de SISVAT
Etienne, 04/01/2021

File size: 20.7 KB
Line 
1      subroutine SISVAT_TS2                                                     
2c #ES.                     (ETSo_0,ETSo_1,ETSo_d)                               
3                                                                               
4C +------------------------------------------------------------------------+   
5C | MAR          SISVAT_TS2                            Mon 16-08-2009  MAR |   
6C |   SubRoutine SISVAT_TS2 computes the Soil/Snow temperature and fluxes  |
7C |   using the same method as in LMDZ for consistency.                    |
8C |   The corresponding LMDZ routines are soil (soil.F90) and calcul_fluxs |
9C |   (calcul_fluxs_mod.F90).                                              |   
10C +------------------------------------------------------------------------+   
11C |                                                                        |   
12C |                                                                        |   
13C |   PARAMETERS:  klonv: Total Number of columns =                        |   
14C |   ^^^^^^^^^^        = Total Number of grid boxes of surface type       |   
15C |                       (land ice for now)                               |   
16C |                                                                        |   
17C |   INPUT:   isnoSV   = total Nb of Ice/Snow Layers                      |   
18C |   ^^^^^    sol_SV   : Downward Solar Radiation                  [W/m2] |   
19C |            IRd_SV   : Surface Downward  Longwave   Radiation    [W/m2] |       
20C |            VV__SV   : SBL Top    Wind Speed                      [m/s] |   
21C |            TaT_SV   : SBL Top    Temperature                       [K] |     
22C |            QaT_SV   : SBL Top    Specific  Humidity            [kg/kg] |     
23C |            dzsnSV   : Snow Layer Thickness                         [m] |       
24C |            dt__SV   : Time Step                                    [s] |   
25C |                                                                        |   
26C |            SoSosv   : Absorbed Solar Radiation by Surfac.(Normaliz)[-] |   
27C |            Eso_sv   : Soil+Snow       Emissivity                   [-] |   
28C |   ?        rah_sv   : Aerodynamic Resistance for Heat            [s/m] |   
29C |                                                                        |
30C |            dz1_SV    : "inverse" layer thickness (centered)      [1/m] |
31C |            dz2_SV    : layer thickness (layer above (?))           [m] |
32C |            AcoHSV    : coefficient for Enthalpy evolution, from atm.   |
33C |            AcoHSV    : coefficient for Enthalpy evolution, from atm.   |
34C |            AcoQSV    : coefficient for Humidity evolution, from atm.   |
35C |            BcoQSV    : coefficient for Humidity evolution, from atm.   |
36C |            ps__SV    : surface pressure                           [Pa] |
37C |            p1l_SV    : 1st atmospheric layer pressure             [Pa] |     
38C |            cdH_SV    : drag coeff Energy (?)                           |
39C |            rsolSV    : Radiation balance surface                [W/m2] |
40C |            lambSV    : Coefficient for soil layer geometry         [-] |
41C |                                                                        |   
42C |   INPUT /  TsisSV   : Soil/Ice Temperatures (layers -nsol,-nsol+1,..,0)|   
43C |   OUTPUT:           & Snow     Temperatures (layers  1,2,...,nsno) [K] |   
44C |   ^^^^^^   rsolSV   : Radiation balance surface                 [W/m2] |     
45C |                                                                        |   
46C |   OUTPUT:  IRs_SV   : Soil      IR Radiation                    [W/m2] |   
47C |   ^^^^^^   HSs_sv   : Sensible  Heat Flux                       [W/m2] |   
48C |            HLs_sv   : Latent    Heat Flux                       [W/m2] | 
49C |            TsfnSV   : new surface temperature                      [K] |
50C |            Evp_sv   : Evaporation                              [kg/m2] |
51C |            dSdTSV   : Sensible Heat Flux temp. derivative     [W/m2/K] |
52C |            dLdTSV   : Latent Heat Flux temp. derivative       [W/m2/K] |
53C |                                                                        |
54C |   ?        ETSo_0   : Snow/Soil Energy Power, before Forcing    [W/m2] |   
55C |   ?        ETSo_1   : Snow/Soil Energy Power, after  Forcing    [W/m2] |   
56C |   ?        ETSo_d   : Snow/Soil Energy Power         Forcing    [W/m2] |   
57C |                                                                        |
58C |________________________________________________________________________|
59
60      USE VAR_SV
61      USE VARdSV
62 
63      USE VARySV                     
64      USE VARtSV                     
65      USE VARxSV
66      USE VARphy
67      USE indice_sol_mod
68
69
70      IMPLICIT NONE                                                                   
71                                                                               
72                                                                               
73C +--Global Variables                                                           
74C +  ================                                                         
75
76      INCLUDE "YOMCST.h"
77      INCLUDE "YOETHF.h"
78      INCLUDE "FCTTRE.h"
79!      INCLUDE "indicesol.h"
80      INCLUDE "comsoil.h"
81!      include  "LMDZphy.inc"   
82                                                                       
83C +--OUTPUT for Stand Alone NetCDF File                                         
84C +  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                         
85c #NC      real*8        SOsoKL(klonv)             ! Absorbed Solar Radiation       
86c #NC      real*8        IRsoKL(klonv)             ! Absorbed IR    Radiation       
87c #NC      real*8        HSsoKL(klonv)             ! Absorbed Sensible Heat Flux     
88c #NC      real*8        HLsoKL(klonv)             ! Absorbed Latent   Heat Flux     
89c #NC      real*8        HLs_KL(klonv)             ! Evaporation                     
90c #NC      real*8        HLv_KL(klonv)             ! Transpiration                   
91c #NC      common/DumpNC/SOsoKL,IRsoKL                                               
92c #NC     .             ,HSsoKL,HLsoKL                                               
93c #NC     .             ,HLs_KL,HLv_KL         
94
95C +--Internal Variables                                                         
96C +  ==================   
97
98      integer ig,jk,isl
99      real mu     
100      real Tsrf(klonv)               ! surface temperature as extrapolated from soil
101      real mug(klonv)                 !hj coef top layers
102      real ztherm_i(klonv),zdz2(klonv,-nsol:nsno),z1s
103      real pfluxgrd(klonv), pcapcal(klonv), cal(klonv)
104      real beta(klonv), dif_grnd(klonv)
105      real C_coef(klonv,-nsol:nsno),D_coef(klonv,-nsol:nsno)
106
107      REAL, DIMENSION(klonv)   :: zx_mh, zx_nh, zx_oh
108      REAL, DIMENSION(klonv)   :: zx_mq, zx_nq, zx_oq
109      REAL, DIMENSION(klonv)   :: zx_pkh, zx_dq_s_dt, zx_qsat, zx_coef
110      REAL, DIMENSION(klonv)   :: zx_sl, zx_k1
111      REAL, DIMENSION(klonv)   :: d_ts
112      REAL                     :: zdelta, zcvm5, zx_qs, zcor, zx_dq_s_dh
113      REAL                     :: qsat_new, q1_new
114C      REAL, PARAMETER          :: t_grnd = 271.35, t_coup = 273.15
115C      REAL, PARAMETER          :: max_eau_sol = 150.0
116      REAL, DIMENSION(klonv)   :: IRs__D, dIRsdT
117
118
119      REAL t_grnd                      ! not used
120      parameter(t_grnd = 271.35)       !
121      REAL t_coup                      ! distinguish evap/sublimation
122      parameter(t_coup = 273.15)       !
123      REAL max_eau_sol
124      parameter(max_eau_sol = 150.0)
125
126
127!        write(*,*)'T check'
128!     
129!        DO  ig = 1,knonv 
130!            DO  jk = 1,isnoSV(ig) !nsno       
131!              IF (TsisSV(ig,jk) <= 1.) THEN          !hj check
132!                TsisSV(ig,jk) = TsisSV(ig,isnoSV(ig))
133!              ENDIF 
134!
135!              IF (TsisSV(ig,jk) <= 1.) THEN          !hj check
136!                TsisSV(ig,jk) = 273.15
137!              ENDIF   
138!            END DO
139!        END DO     
140
141C!=======================================================================
142C! I. First part: corresponds to soil.F90 in LMDZ
143C!=======================================================================
144
145      DO ig = 1,knonv     
146        DO jk =1,isnoSV(ig)
147          dz2_SV(ig,jk)=dzsnSV(ig,jk)
148C! use arithmetic center between layers to derive dz1 for snow layers for simplicity:
149          dz1_SV(ig,jk)=2./(dzsnSV(ig,jk)+dzsnSV(ig,jk-1))
150        ENDDO
151      ENDDO
152
153      DO ig = 1,knonv
154        ztherm_i(ig)   = inertie_lic
155        IF (isnoSV(ig) > 0) ztherm_i(ig)   = inertie_sno
156      ENDDO
157
158C!-----------------------------------------------------------------------
159C! 1)
160C! Calculation of Cgrf and Dgrd coefficients using soil temperature from
161C! previous time step.
162C!
163C! These variables are recalculated on the local compressed grid instead
164C! of saved in restart file.
165C!-----------------------------------------------------------------------
166      DO ig=1,knonv
167        DO jk=-nsol,nsno
168          zdz2(ig,jk)=dz2_SV(ig,jk)/dt__SV                                !ptimestep
169        ENDDO
170      ENDDO
171 
172      DO ig=1,knonv
173        z1s = zdz2(ig,-nsol)+dz1_SV(ig,-nsol+1)
174        C_coef(ig,-nsol+1)=zdz2(ig,-nsol)*TsisSV(ig,-nsol)/z1s
175        D_coef(ig,-nsol+1)=dz1_SV(ig,-nsol+1)/z1s
176      ENDDO
177
178      DO ig=1,knonv
179        DO jk=-nsol+1,isnoSV(ig)-1,1
180          z1s = 1./(zdz2(ig,jk)+dz1_SV(ig,jk+1)+dz1_SV(ig,jk)           &
181     &          *(1.-D_coef(ig,jk)))
182          C_coef(ig,jk+1)=                                              &
183     &          (TsisSV(ig,jk)*zdz2(ig,jk)                              &
184     &          +dz1_SV(ig,jk)*C_coef(ig,jk)) * z1s
185          D_coef(ig,jk+1)=dz1_SV(ig,jk+1)*z1s
186        ENDDO
187      ENDDO
188
189C!-----------------------------------------------------------------------
190C! 2)
191C! Computation of the soil temperatures using the Cgrd and Dgrd
192C! coefficient computed above
193C!
194C!-----------------------------------------------------------------------
195C! Extrapolate surface Temperature                   !hj check
196      mu=1./((2.**1.5-1.)/(2.**(0.5)-1.)-1.)
197
198!     IF (knonv>0) THEN
199!      DO ig=1,8
200!        write(*,*)ig,'sisvat: Tsis ',TsisSV(ig,isnoSV(ig))
201!        write(*,*)'max-1            ',TsisSV(ig,isnoSV(ig)-1)
202!        write(*,*)'max-2            ',TsisSV(ig,isnoSV(ig)-2)
203!        write(*,*)'0                ',TsisSV(ig,0)
204!!        write(*,*)min(max(isnoSV(ig),0),1),max(1-isnoSV(ig),0)
205!      ENDDO
206!     END IF
207
208      DO ig=1,knonv   
209        IF (isnoSV(ig).GT.0) THEN
210          IF (isnoSV(ig).GT.1) THEN
211           mug(ig)=1./(1.+dzsnSV(ig,isnoSV(ig)-1)/dzsnSV(ig,isnoSV(ig))) !mu
212          ELSE
213           mug(ig) = 1./(1.+dzsnSV(ig,isnoSV(ig)-1)/dz_dSV(0)) !mu
214          ENDIF
215        ELSE
216          mug(ig) = lambSV
217        ENDIF
218
219        IF (mug(ig)  .LE. 0.05) THEN
220         write(*,*)'Attention mu low', mug(ig)
221        ENDIF
222        IF (mug(ig)  .GE. 0.98) THEN
223         write(*,*)'Attention mu high', mug(ig)
224        ENDIF
225
226        Tsrf(ig)=(1.5*TsisSV(ig,isnoSV(ig))-0.5*TsisSV(ig,isnoSV(ig)-1))&
227     &           *min(max(isnoSV(ig),0),1)+                             &
228     &           ((mug(ig)+1)*TsisSV(ig,0)-mug(ig)*TsisSV(ig,-1))       &
229     &           *max(1-isnoSV(ig),0) 
230      ENDDO
231
232 
233
234C! Surface temperature
235      DO ig=1,knonv
236      TsisSV(ig,isnoSV(ig))=(mug(ig)*C_coef(ig,isnoSV(ig))+Tsf_SV(ig))/ &
237     &        (mug(ig)*(1.-D_coef(ig,isnoSV(ig)))+1.)
238      ENDDO
239 
240C! Other temperatures
241      DO ig=1,knonv
242        DO jk=isnoSV(ig),-nsol+1,-1
243          TsisSV(ig,jk-1)=C_coef(ig,jk)+D_coef(ig,jk)                   &
244     &          *TsisSV(ig,jk)
245        ENDDO
246      ENDDO
247C      write(*,*)ig,'Tsis',TsisSV(ig,0)
248
249C      IF (indice == is_sic) THEN
250C        DO ig = 1,knonv
251C          TsisSV(ig,-nsol) = RTT - 1.8
252C        END DO
253C      ENDIF
254
255CC      !hj new 11 03 2010
256        DO ig=1,knonv                                                         
257          isl         = isnoSV(ig)                                             
258C          dIRsdT(ig) = Eso_sv(ig)* SteBo   * 4.                        & ! - d(IR)/d(T)   
259C     &                             * Tsf_SV(ig)                         & !T TsisSV(ig,isl)           !               
260C     &                             * Tsf_SV(ig)                         & !TsisSV(ig,isl)           !               
261C     &                             * Tsf_SV(ig) !TsisSV(ig,isl)           !               
262C          IRs__D(ig) = dIRsdT(ig)* Tsf_SV(ig) * 0.75 !TsisSV(ig,isl) * 0.75    !:
263          dIRsdT(ig) = Eso_sv(ig)* StefBo   * 4.                        & ! - d(IR)/d(T)   
264     &                             * TsisSV(ig,isl)                     & !
265     &                             * TsisSV(ig,isl)                     & !
266     &                             * TsisSV(ig,isl)                     & !
267          IRs__D(ig) = dIRsdT(ig)* TsisSV(ig,isl) * 0.75                  !:
268         END DO
269       !hj
270C!-----------------------------------------------------------------------
271C! 3)
272C! Calculate the Cgrd and Dgrd coefficient corresponding to actual soil
273C! temperature
274C!-----------------------------------------------------------------------
275      DO ig=1,knonv
276        z1s = zdz2(ig,-nsol)+dz1_SV(ig,-nsol+1)
277        C_coef(ig,-nsol+1) = zdz2(ig,-nsol)*TsisSV(ig,-nsol)/z1s
278        D_coef(ig,-nsol+1) = dz1_SV(ig,-nsol+1)/z1s
279      ENDDO
280
281      DO ig=1,knonv 
282        DO jk=-nsol+1,isnoSV(ig)-1,1
283          z1s = 1./(zdz2(ig,jk)+dz1_SV(ig,jk+1)+dz1_SV(ig,jk)           &
284     &          *(1.-D_coef(ig,jk)))
285          C_coef(ig,jk+1) = (TsisSV(ig,jk)*zdz2(ig,jk)+                 &
286     &          dz1_SV(ig,jk)*C_coef(ig,jk)) * z1s
287          D_coef(ig,jk+1) = dz1_SV(ig,jk+1)*z1s
288        ENDDO
289      ENDDO
290
291C!-----------------------------------------------------------------------
292C! 4)
293C! Computation of the surface diffusive flux from ground and
294C! calorific capacity of the ground
295C!-----------------------------------------------------------------------
296      DO ig=1,knonv
297C! (pfluxgrd)
298        pfluxgrd(ig) = ztherm_i(ig)*dz1_SV(ig,isnoSV(ig))*              &
299     &      (C_coef(ig,isnoSV(ig))+(D_coef(ig,isnoSV(ig))-1.)           &
300     &      *TsisSV(ig,isnoSV(ig)))
301C! (pcapcal)
302        pcapcal(ig)  = ztherm_i(ig)*                                    &
303     &      (dz2_SV(ig,isnoSV(ig))+dt__SV*(1.-D_coef(ig,isnoSV(ig)))    &
304     &      *dz1_SV(ig,isnoSV(ig)))
305        z1s = mug(ig)*(1.-D_coef(ig,isnoSV(ig)))+1.
306        pcapcal(ig)  = pcapcal(ig)/z1s
307        pfluxgrd(ig) = ( pfluxgrd(ig)                                   &
308     &       + pcapcal(ig) * (TsisSV(ig,isnoSV(ig)) * z1s               &
309     &       - mug(ig)* C_coef(ig,isnoSV(ig))                           &
310     &       - Tsf_SV(ig))       /dt__SV )
311      ENDDO
312       
313     
314      cal(1:knonv) = RCPD / pcapcal(1:knonv)
315      rsolSV(1:knonv)  = rsolSV(1:knonv) + pfluxgrd(1:knonv)
316C!=======================================================================
317C! II. Second part: corresponds to calcul_fluxs_mod.F90 in LMDZ
318C!=======================================================================
319
320      Evp_sv = 0.
321c #NC HSsoKL=0.
322c #NC HLsoKL=0.
323      dSdTSV = 0.
324      dLdTSV = 0.
325       
326      beta(:) = 1.0
327      dif_grnd(:) = 0.0
328
329C! zx_qs = qsat en kg/kg
330C!**********************************************************************x***************
331
332      DO ig = 1,knonv
333        IF (ps__SV(ig).LT.1.) THEN
334!          write(*,*)'ig',ig,'ps',ps__SV(ig)
335          ps__SV(ig)=max(ps__SV(ig),1.e-8)
336        ENDIF
337        IF (p1l_SV(ig).LT.1.) THEN
338!          write(*,*)'ig',ig,'p1l',p1l_SV(ig)
339          p1l_SV(ig)=max(p1l_SV(ig),1.e-8)
340        ENDIF
341        IF (TaT_SV(ig).LT.180.) THEN
342!          write(*,*)'ig',ig,'TaT',TaT_SV(ig)
343          TaT_SV(ig)=max(TaT_SV(ig),180.)
344        ENDIF
345        IF (QaT_SV(ig).LT.1.e-8) THEN
346!          write(*,*)'ig',ig,'QaT',QaT_SV(ig)
347          QaT_SV(ig)=max(QaT_SV(ig),1.e-8)
348        ENDIF
349        IF (Tsf_SV(ig).LT.100.) THEN
350!          write(*,*)'ig',ig,'Tsf',Tsf_SV(ig)
351          Tsf_SV(ig)=max(Tsf_SV(ig),180.)
352        ENDIF
353        IF (Tsf_SV(ig).GT.500.) THEN
354!          write(*,*)'ig',ig,'Tsf',Tsf_SV(ig)
355          Tsf_SV(ig)=min(Tsf_SV(ig),400.)
356        ENDIF
357!         IF (Tsrf(ig).LT.1.) THEN
358!!          write(*,*)'ig',ig,'Tsrf',Tsrf(ig) 
359!           Tsrf(ig)=max(Tsrf(ig),TaT_SV(ig)-20.)
360!         ENDIF
361         IF (cdH_SV(ig).LT.1.e-10) THEN
362!           IF (ig.le.3)   write(*,*)'ig',ig,'cdH',cdH_SV(ig)
363           cdH_SV(ig)=.5
364         ENDIF
365      ENDDO 
366
367
368      DO ig = 1,knonv
369        zx_pkh(ig) = 1. ! (ps__SV(ig)/ps__SV(ig))**RKAPPA
370        IF (thermcep) THEN
371          zdelta=MAX(0.,SIGN(1.,rtt-Tsf_SV(ig)))
372          zcvm5 = R5LES*LhvH2O*(1.-zdelta) + R5IES*LhsH2O*zdelta
373          zcvm5 = zcvm5 / RCPD / (1.0+RVTMP2*QaT_SV(ig))
374          zx_qs= r2es * FOEEW(Tsf_SV(ig),zdelta)/ps__SV(ig)
375          zx_qs=MIN(0.5,zx_qs)
376          !write(*,*)'zcor',retv*zx_qs
377          zcor=1./(1.-retv*zx_qs)
378          zx_qs=zx_qs*zcor
379          zx_dq_s_dh = FOEDE(Tsf_SV(ig),zdelta,zcvm5,zx_qs,zcor)        &
380     &          /LhvH2O / zx_pkh(ig)
381        ELSE
382          IF (Tsf_SV(ig).LT.t_coup) THEN
383             zx_qs = qsats(Tsf_SV(ig)) / ps__SV(ig)
384             zx_dq_s_dh = dqsats(Tsf_SV(ig),zx_qs)/LhvH2O               &
385     &             / zx_pkh(ig)
386          ELSE
387             zx_qs = qsatl(Tsf_SV(ig)) / ps__SV(ig)
388             zx_dq_s_dh = dqsatl(Tsf_SV(ig),zx_qs)/LhvH2O               &
389     &             / zx_pkh(ig)
390          ENDIF
391        ENDIF
392        zx_dq_s_dt(ig) = RCPD * zx_pkh(ig) * zx_dq_s_dh
393        zx_qsat(ig) = zx_qs
394C        zx_coef(ig) = cdH_SV(ig) *                                     &
395C     &       (1.0+SQRT(u1lay(ig)**2+v1lay(ig)**2)) *                   &
396C     &       p1l_SV(ig)/(RD*t1lay(ig))
397        zx_coef(ig) = cdH_SV(ig) *                                      &
398     &       (1.0+VV__SV(ig)) *                                         &
399     &       p1l_SV(ig)/(RD*TaT_SV(ig))
400       
401      ENDDO
402
403
404C! === Calcul de la temperature de surface ===
405C! zx_sl = chaleur latente d'evaporation ou de sublimation
406C!****************************************************************************************
407
408      DO ig = 1,knonv
409        zx_sl(ig) = LhvH2O
410        IF (Tsf_SV(ig) .LT. RTT) zx_sl(ig) = LhsH2O
411        zx_k1(ig) = zx_coef(ig)
412      ENDDO
413   
414
415      DO ig = 1,knonv
416C! Q
417        zx_oq(ig) = 1. - (beta(ig) * zx_k1(ig) * BcoQSV(ig) * dt__SV)
418        zx_mq(ig) = beta(ig) * zx_k1(ig) *                              &
419     &       (AcoQSV(ig) - zx_qsat(ig) +                                &
420     &       zx_dq_s_dt(ig) * Tsf_SV(ig))                               &
421     &       / zx_oq(ig)
422        zx_nq(ig) = beta(ig) * zx_k1(ig) * (-1. * zx_dq_s_dt(ig))       &
423     &       / zx_oq(ig)
424       
425C! H
426        zx_oh(ig) = 1. - (zx_k1(ig) * BcoHSV(ig) * dt__SV)
427        zx_mh(ig) = zx_k1(ig) * AcoHSV(ig) / zx_oh(ig)
428        zx_nh(ig) = - (zx_k1(ig) * RCPD * zx_pkh(ig))/ zx_oh(ig)
429     
430C! surface temperature
431        TsfnSV(ig) = (Tsf_SV(ig) + cal(ig)/RCPD * zx_pkh(ig) * dt__SV * &
432     &       (rsolSV(ig) + zx_mh(ig) + zx_sl(ig) * zx_mq(ig))           &
433     &       + dif_grnd(ig) * t_grnd * dt__SV)/                         &
434     &       ( 1. - dt__SV * cal(ig)/(RCPD * zx_pkh(ig)) *              &
435     &       (zx_nh(ig) + zx_sl(ig) * zx_nq(ig))                        & 
436     &       + dt__SV * dif_grnd(ig))
437
438!hj rajoute 22 11 2010 tuning...
439        TsfnSV(ig) = min(RTT+0.02,TsfnSV(ig))
440       
441        d_ts(ig) = TsfnSV(ig) - Tsf_SV(ig)
442
443
444C!== flux_q est le flux de vapeur d'eau: kg/(m**2 s)  positive vers bas
445C!== flux_t est le flux de cpt (energie sensible): j/(m**2 s)
446        Evp_sv(ig) = - zx_mq(ig) - zx_nq(ig) * TsfnSV(ig)
447        HLs_sv(ig) = - Evp_sv(ig) * zx_sl(ig)
448        HSs_sv(ig) = zx_mh(ig) + zx_nh(ig) * TsfnSV(ig)
449       
450C! Derives des flux dF/dTs (W m-2 K-1):
451        dSdTSV(ig) = zx_nh(ig)
452        dLdTSV(ig) = zx_sl(ig) * zx_nq(ig)
453
454
455!hj  new 11 03 2010                                     
456        isl         = isnoSV(ig)
457!        TsisSV(ig,isl) = TsfnSV(ig)                                         
458        IRs_SV(ig) = IRs__D(ig)                                         &!     
459     &                - dIRsdT(ig) * TsfnSV(ig) !TsisSV(ig,isl)?      ! 
460
461! hj
462c #NC   SOsoKL(ig) = sol_SV(ig) * SoSosv(ig)              ! Absorbed Sol.   
463c #NC   IRsoKL(ig) =               IRs_SV(ig)                           & !Up Surf. IR
464c #NC&        +     tau_sv(ig)      *IRd_SV(ig)*Eso_sv(ig)              & !Down Atm IR
465c #NC&        -(1.0-tau_sv(ig)) *0.5*IRv_sv(ig)            ! Down Veg IR 
466c #NC   HLsoKL(ig) = HLs_sv(ig)
467c #NC   HSsoKL(ig) = HSs_sv(ig)
468c #NC   HLs_KL(ig) = Evp_sv(ig)
469
470C! Nouvelle valeure de l'humidite au dessus du sol
471        qsat_new=zx_qsat(ig) + zx_dq_s_dt(ig) * d_ts(ig)
472        q1_new = AcoQSV(ig) - BcoQSV(ig)* Evp_sv(ig)*dt__SV
473        QaT_SV(ig)=q1_new*(1.-beta(ig)) + beta(ig)*qsat_new
474
475      ENDDO
476
477      end ! subroutine SISVAT_TS2 
Note: See TracBrowser for help on using the repository browser.