source: LMDZ6/trunk/libf/phylmd/inlandsis/sisvat_ts2.f90 @ 5270

Last change on this file since 5270 was 5259, checked in by abarral, 3 days ago

Wrap uses of cpp key CPP_INLANDSIS
Symlink inlandsis in iso

File size: 18.4 KB
Line 
1subroutine SISVAT_TS2
2  ! #ES.                     (ETSo_0,ETSo_1,ETSo_d)
3
4  ! +------------------------------------------------------------------------+
5  ! | MAR          SISVAT_TS2                            Mon 16-08-2009  MAR |
6  ! |   SubRoutine SISVAT_TS2 computes the Soil/Snow temperature and fluxes  |
7  ! |   using the same method as in LMDZ for consistency.                    |
8  ! |   The corresponding LMDZ routines are soil (soil.F90) and calcul_fluxs |
9  ! |   (calcul_fluxs_mod.F90).                                              |
10  ! +------------------------------------------------------------------------+
11  ! |                                                                        |
12  ! |                                                                        |
13  ! |   PARAMETERS:  klonv: Total Number of columns =                        |
14  ! |   ^^^^^^^^^^        = Total Number of grid boxes of surface type       |
15  ! |                       (land ice for now)                               |
16  ! |                                                                        |
17  ! |   INPUT:   isnoSV   = total Nb of Ice/Snow Layers                      |
18  ! |   ^^^^^    sol_SV   : Downward Solar Radiation                  [W/m2] |
19  ! |            IRd_SV   : Surface Downward  Longwave   Radiation    [W/m2] |
20  ! |            VV__SV   : SBL Top    Wind Speed                      [m/s] |
21  ! |            TaT_SV   : SBL Top    Temperature                       [K] |
22  ! |            QaT_SV   : SBL Top    Specific  Humidity            [kg/kg] |
23  ! |            dzsnSV   : Snow Layer Thickness                         [m] |
24  ! |            dt__SV   : Time Step                                    [s] |
25  ! |                                                                        |
26  ! |            SoSosv   : Absorbed Solar Radiation by Surfac.(Normaliz)[-] |
27  ! |            Eso_sv   : Soil+Snow       Emissivity                   [-] |
28  ! |   ?        rah_sv   : Aerodynamic Resistance for Heat            [s/m] |
29  ! |                                                                        |
30  ! |            dz1_SV    : "inverse" layer thickness (centered)      [1/m] |
31  ! |            dz2_SV    : layer thickness (layer above (?))           [m] |
32  ! |            AcoHSV    : coefficient for Enthalpy evolution, from atm.   |
33  ! |            AcoHSV    : coefficient for Enthalpy evolution, from atm.   |
34  ! |            AcoQSV    : coefficient for Humidity evolution, from atm.   |
35  ! |            BcoQSV    : coefficient for Humidity evolution, from atm.   |
36  ! |            ps__SV    : surface pressure                           [Pa] |
37  ! |            p1l_SV    : 1st atmospheric layer pressure             [Pa] |
38  ! |            cdH_SV    : drag coeff Energy (?)                           |
39  ! |            rsolSV    : Radiation balance surface                [W/m2] |
40  ! |            lambSV    : Coefficient for soil layer geometry         [-] |
41  ! |                                                                        |
42  ! |   INPUT /  TsisSV   : Soil/Ice Temperatures (layers -nsol,-nsol+1,..,0)|
43  ! |   OUTPUT:           & Snow     Temperatures (layers  1,2,...,nsno) [K] |
44  ! |   ^^^^^^   rsolSV   : Radiation balance surface                 [W/m2] |
45  ! |                                                                        |
46  ! |   OUTPUT:  IRs_SV   : Soil      IR Radiation                    [W/m2] |
47  ! |   ^^^^^^   HSs_sv   : Sensible  Heat Flux                       [W/m2] |
48  ! |            HLs_sv   : Latent    Heat Flux                       [W/m2] |
49  ! |            TsfnSV   : new surface temperature                      [K] |
50  ! |            Evp_sv   : Evaporation                              [kg/m2] |
51  ! |            dSdTSV   : Sensible Heat Flux temp. derivative     [W/m2/K] |
52  ! |            dLdTSV   : Latent Heat Flux temp. derivative       [W/m2/K] |
53  ! |                                                                        |
54  ! |   ?        ETSo_0   : Snow/Soil Energy Power, before Forcing    [W/m2] |
55  ! |   ?        ETSo_1   : Snow/Soil Energy Power, after  Forcing    [W/m2] |
56  ! |   ?        ETSo_d   : Snow/Soil Energy Power         Forcing    [W/m2] |
57  ! |                                                                        |
58  ! |________________________________________________________________________|
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
73  ! +--Global Variables
74  ! +  ================
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
83  ! +--OUTPUT for Stand Alone NetCDF File
84  ! +  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85  ! #NC      real*8        SOsoKL(klonv)             ! Absorbed Solar Radiation
86  ! #NC      real*8        IRsoKL(klonv)             ! Absorbed IR    Radiation
87  ! #NC      real*8        HSsoKL(klonv)             ! Absorbed Sensible Heat Flux
88  ! #NC      real*8        HLsoKL(klonv)             ! Absorbed Latent   Heat Flux
89  ! #NC      real*8        HLs_KL(klonv)             ! Evaporation
90  ! #NC      real*8        HLv_KL(klonv)             ! Transpiration
91  ! #NC      common/DumpNC/SOsoKL,IRsoKL
92  ! #NC     .             ,HSsoKL,HLsoKL
93  ! #NC     .             ,HLs_KL,HLv_KL
94
95  ! +--Internal Variables
96  ! +  ==================
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
114   ! REAL, PARAMETER          :: t_grnd = 271.35, t_coup = 273.15
115   ! 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
141  !!=======================================================================
142  !! I. First part: corresponds to soil.F90 in LMDZ
143  !!=======================================================================
144
145  DO ig = 1,knonv
146    DO jk =1,isnoSV(ig)
147      dz2_SV(ig,jk)=dzsnSV(ig,jk)
148  !! 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
158  !!-----------------------------------------------------------------------
159  !! 1)
160  !! Calculation of Cgrf and Dgrd coefficients using soil temperature from
161  !! previous time step.
162  !!
163  !! These variables are recalculated on the local compressed grid instead
164  !! of saved in restart file.
165  !!-----------------------------------------------------------------------
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
189  !!-----------------------------------------------------------------------
190  !! 2)
191  !! Computation of the soil temperatures using the Cgrd and Dgrd
192  !! coefficient computed above
193  !!
194  !!-----------------------------------------------------------------------
195  !! 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
234  !! 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
240  !! 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
247   ! write(*,*)ig,'Tsis',TsisSV(ig,0)
248
249   ! IF (indice == is_sic) THEN
250   !   DO ig = 1,knonv
251   !     TsisSV(ig,-nsol) = RTT - 1.8
252   !   END DO
253   ! ENDIF
254
255  !C      !hj new 11 03 2010
256    DO ig=1,knonv
257      isl         = isnoSV(ig)
258       ! dIRsdT(ig) = Eso_sv(ig)* SteBo   * 4.                        & ! - d(IR)/d(T)
259  ! &                             * Tsf_SV(ig)                         & !T TsisSV(ig,isl)           !
260  ! &                             * Tsf_SV(ig)                         & !TsisSV(ig,isl)           !
261  ! &                             * Tsf_SV(ig) !TsisSV(ig,isl)           !
262  !      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
270  !!-----------------------------------------------------------------------
271  !! 3)
272  !! Calculate the Cgrd and Dgrd coefficient corresponding to actual soil
273  !! temperature
274  !!-----------------------------------------------------------------------
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
291  !!-----------------------------------------------------------------------
292  !! 4)
293  !! Computation of the surface diffusive flux from ground and
294  !! calorific capacity of the ground
295  !!-----------------------------------------------------------------------
296  DO ig=1,knonv
297  !! (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)))
301  !! (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)
316  !!=======================================================================
317  !! II. Second part: corresponds to calcul_fluxs_mod.F90 in LMDZ
318  !!=======================================================================
319
320  Evp_sv = 0.
321  ! #NC HSsoKL=0.
322  ! #NC HLsoKL=0.
323  dSdTSV = 0.
324  dLdTSV = 0.
325
326  beta(:) = 1.0
327  dif_grnd(:) = 0.0
328
329  !! zx_qs = qsat en kg/kg
330  !!**********************************************************************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
394     ! zx_coef(ig) = cdH_SV(ig) *                                     &
395  ! &       (1.0+SQRT(u1lay(ig)**2+v1lay(ig)**2)) *                   &
396  ! &       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
404  !! === Calcul de la temperature de surface ===
405  !! zx_sl = chaleur latente d'evaporation ou de sublimation
406  !!****************************************************************************
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
416  !! 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
425  !! 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
430  !! 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
444  !!== flux_q est le flux de vapeur d'eau: kg/(m**2 s)  positive vers bas
445  !!== 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
450  !! 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
462  ! #NC   SOsoKL(ig) = sol_SV(ig) * SoSosv(ig)              ! Absorbed Sol.
463  ! #NC   IRsoKL(ig) =               IRs_SV(ig)                           & !Up Surf. IR
464  ! #NC&        +     tau_sv(ig)      *IRd_SV(ig)*Eso_sv(ig)              & !Down Atm IR
465  ! #NC&        -(1.0-tau_sv(ig)) *0.5*IRv_sv(ig)            ! Down Veg IR
466  ! #NC   HLsoKL(ig) = HLs_sv(ig)
467  ! #NC   HSsoKL(ig) = HSs_sv(ig)
468  ! #NC   HLs_KL(ig) = Evp_sv(ig)
469
470  !! 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
477end subroutine sisvat_ts2
Note: See TracBrowser for help on using the repository browser.