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

Last change on this file since 5354 was 5298, checked in by abarral, 6 weeks ago

Turn planete.h comsoil.h into module
Remove obsolete message related to /scratch/ common

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