/[lmdze]/trunk/phylmd/Interface_surf/fonte_neige.f
ViewVC logotype

Diff of /trunk/phylmd/Interface_surf/fonte_neige.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 216 by guez, Tue Mar 28 15:36:53 2017 UTC revision 217 by guez, Thu Mar 30 14:25:18 2017 UTC
# Line 14  contains Line 14  contains
14    
15      USE fcttre, ONLY: foeew, qsatl, qsats      USE fcttre, ONLY: foeew, qsatl, qsats
16      USE indicesol, ONLY: epsfra, is_lic, is_sic, is_ter      USE indicesol, ONLY: epsfra, is_lic, is_sic, is_ter
17      USE interface_surf, ONLY: run_off_lic, tau_calv      USE interface_surf, ONLY: tau_calv
18      use nr_util, only: assert_eq      use nr_util, only: assert_eq
19      USE suphec_m, ONLY: rday, rlmlt, rtt      USE suphec_m, ONLY: rday, rlmlt, rtt
20    
# Line 61  contains Line 61  contains
61      REAL, parameter:: chaice = 3.334E5 / (2.3867E6 * 0.15)      REAL, parameter:: chaice = 3.334E5 / (2.3867E6 * 0.15)
62      real, parameter:: max_eau_sol = 150. ! in kg m-2      real, parameter:: max_eau_sol = 150. ! in kg m-2
63      real coeff_rel      real coeff_rel
64        REAL, ALLOCATABLE, SAVE:: run_off_lic(:) ! ruissellement total
65    
66      !--------------------------------------------------------------------      !--------------------------------------------------------------------
67    
# Line 91  contains Line 92  contains
92            snow(i) = max(0., snow(i) - fq_fonte)            snow(i) = max(0., snow(i) - fq_fonte)
93            bil_eau_s(i) = bil_eau_s(i) + fq_fonte            bil_eau_s(i) = bil_eau_s(i) + fq_fonte
94            tsurf_new(i) = tsurf_new(i) - fq_fonte * chasno            tsurf_new(i) = tsurf_new(i) - fq_fonte * chasno
95              
96            !IM cf. JLD/ GKtest fonte aussi pour la glace            !IM cf. JLD/ GKtest fonte aussi pour la glace
97            IF (nisurf == is_sic .OR. nisurf == is_lic) THEN            IF (nisurf == is_sic .OR. nisurf == is_lic) THEN
98               fq_fonte = MAX((tsurf_new(i) - RTT) / chaice, 0.)               fq_fonte = MAX((tsurf_new(i) - RTT) / chaice, 0.)
# Line 106  contains Line 107  contains
107         ! S'il y a une hauteur trop importante de neige, elle s'\'ecoule         ! S'il y a une hauteur trop importante de neige, elle s'\'ecoule
108         fqcalving(i) = max(0., snow(i) - snow_max) / dtime         fqcalving(i) = max(0., snow(i) - snow_max) / dtime
109         snow(i) = min(snow(i), snow_max)         snow(i) = min(snow(i), snow_max)
110        enddo
111    
112        IF (nisurf == is_ter) then
113           qsol = MIN(qsol + bil_eau_s, max_eau_sol)
114        else if (nisurf == is_lic) then
115           if (.not. allocated(run_off_lic)) allocate(run_off_lic(knon))
116           ! assumes that the fraction of land-ice does not change during the run
117    
118         IF (nisurf == is_ter) then         do i = 1, knon
           qsol(i) = qsol(i) + bil_eau_s(i)  
           qsol(i) = MIN(qsol(i), max_eau_sol)  
        else if (nisurf == is_lic) then  
119            run_off_lic(i) = (coeff_rel * fqcalving(i)) + &            run_off_lic(i) = (coeff_rel * fqcalving(i)) + &
120                 (1. - coeff_rel) * run_off_lic_0(i)                 (1. - coeff_rel) * run_off_lic_0(i)
121            run_off_lic_0(i) = run_off_lic(i)            run_off_lic_0(i) = run_off_lic(i)
122            run_off_lic(i) = run_off_lic(i) + bil_eau_s(i) / dtime            run_off_lic(i) = run_off_lic(i) + bil_eau_s(i) / dtime
123         endif         enddo
124      enddo      endif
125    
126    END SUBROUTINE fonte_neige    END SUBROUTINE fonte_neige
127    

Legend:
Removed from v.216  
changed lines
  Added in v.217

  ViewVC Help
Powered by ViewVC 1.1.21