12        rmu0, lwdownm, 
albedo, pphi1, &
 
   13        swnet, lwnet, tsurf, p1lay, &
 
   14        cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, &
 
   15        acoefh, acoefq, bcoefh, bcoefq, &
 
   16        acoefu, acoefv, bcoefu, bcoefv, &
 
   17        ps, u1, v1, gustiness, rugoro, pctsrf, &
 
   18        snow, qsurf, qsol, agesno, &
 
   19        tsoil, z0m, z0h, sfrwl, alb_dir, alb_dif, evap, fluxsens, fluxlat, &
 
   20        tsurf_new, dflux_s, dflux_l, &
 
   22        snowhgt, qsnow, to_ice, sissnow, &
 
   44     INTEGER, 
INTENT(IN)                           :: itime, knon
 
   45     INTEGER, 
DIMENSION(klon), 
INTENT(in)          :: knindex
 
   46     REAL, 
INTENT(in)                              :: dtime
 
   47     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: swnet 
 
   48     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: lwnet 
 
   49     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: tsurf
 
   50     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: p1lay
 
   51     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: cdragh, cdragm
 
   52     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: precip_rain, precip_snow
 
   53     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: temp_air, spechum
 
   54     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: AcoefH, AcoefQ
 
   55     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: BcoefH, BcoefQ
 
   56     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: AcoefU, AcoefV, BcoefU, BcoefV
 
   57     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: ps
 
   58     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: u1, v1, gustiness
 
   59     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: rugoro
 
   60     REAL, 
DIMENSION(klon,nbsrf), 
INTENT(IN)       :: pctsrf
 
   62     LOGICAL,  
INTENT(IN)                          :: debut   
 
   63     LOGICAL,  
INTENT(IN)                          :: lafin   
 
   64     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: rlon, rlat
 
   65     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: rmu0
 
   66     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: lwdownm 
 
   67     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: albedo  
 
   68     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: pphi1    
 
   69     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: slope   
 
   70     REAL, 
DIMENSION(klon), 
INTENT(IN)             :: cloudf  
 
   74     REAL, 
DIMENSION(klon), 
INTENT(INOUT)          :: snow, qsol
 
   75     REAL, 
DIMENSION(klon), 
INTENT(INOUT)          :: agesno
 
   76     REAL, 
DIMENSION(klon, nsoilmx), 
INTENT(INOUT) :: tsoil
 
   80     REAL, 
DIMENSION(klon), 
INTENT(OUT)            :: qsurf
 
   81     REAL, 
DIMENSION(klon), 
INTENT(OUT)            :: z0m, z0h
 
   85     REAL, 
DIMENSION(6), 
INTENT(IN)              ::SFRWL
 
   86     REAL, 
DIMENSION(klon,nsw), 
INTENT(OUT)        ::alb_dir,alb_dif
 
   88     REAL, 
DIMENSION(klon), 
INTENT(OUT)            :: evap, fluxsens, fluxlat
 
   89     REAL, 
DIMENSION(klon), 
INTENT(OUT)            :: tsurf_new
 
   90     REAL, 
DIMENSION(klon), 
INTENT(OUT)            :: dflux_s, dflux_l      
 
   91     REAL, 
DIMENSION(klon), 
INTENT(OUT)            :: flux_u1, flux_v1
 
   93     REAL, 
DIMENSION(klon), 
INTENT(OUT)           :: alb3
 
   94     REAL, 
DIMENSION(klon), 
INTENT(OUT)           :: qsnow   
 
   95     REAL, 
DIMENSION(klon), 
INTENT(OUT)           :: snowhgt 
 
   96     REAL, 
DIMENSION(klon), 
INTENT(OUT)           :: to_ice
 
   97     REAL, 
DIMENSION(klon), 
INTENT(OUT)           :: sissnow
 
   98     REAL, 
DIMENSION(klon), 
INTENT(OUT)           :: runoff  
 
  103     REAL, 
DIMENSION(klon)    :: soilcap, soilflux
 
  104     REAL, 
DIMENSION(klon)    :: cal, beta, dif_grnd
 
  105     REAL, 
DIMENSION(klon)    :: zfra, alb_neig
 
  106     REAL, 
DIMENSION(klon)    :: radsol
 
  107     REAL, 
DIMENSION(klon)    :: u0, v0, u1_lay, v1_lay
 
  110     REAL, 
DIMENSION(klon)    :: emis_new                  
 
  111     REAL, 
DIMENSION(klon)    :: swdown,lwdown
 
  112     REAL, 
DIMENSION(klon)    :: precip_snow_adv, snow_adv 
 
  113     REAL, 
DIMENSION(klon)    :: bl_height, wind_velo      
 
  114     REAL, 
DIMENSION(klon)    :: dens_air,  snow_cont_air  
 
  115     REAL, 
DIMENSION(klon)    :: alb_soil                  
 
  116     REAL, 
DIMENSION(klon)    :: pexner                    
 
  118     REAL, 
DIMENSION(klon,nsoilmx) :: tsoil0 
 
  120     CHARACTER (len = 20)                      :: modname = 
'surf_landice' 
  121     CHARACTER (len = 80)                      :: abort_message
 
  124     real,
dimension(klon) :: alb1,alb2
 
  141     radsol(1:knon) = swnet(1:knon) + lwnet(1:knon)
 
  156           swdown(i)        = swnet(i)/(1-
albedo(i))
 
  157           lwdown(i)        = lwdownm(i)
 
  162        snow_cont_air(:) = 0.       
 
  166           wind_velo(i)     = u1(i)**2 + v1(i)**2
 
  167           wind_velo(i)     = wind_velo(i)**0.5
 
  168           pexner(i)        = (p1lay(i)/pref)**(rd/rcpd)
 
  169           dens_air(i)      = p1lay(i)/rd/temp_air(i)  
 
  170           bl_height(i)     = pphi1(i)/
rg               
  179           tsoil0(i,:)=tsoil(i,:)
 
  182            print*, 
'on appelle surf_sisvat' 
  184        CALL surf_sisvat(knon, rlon, rlat, knindex, itime, dtime, debut, lafin, &
 
  185             rmu0, swdown, lwdown, pexner, ps, p1lay, &
 
  186             precip_rain, precip_snow, precip_snow_adv, snow_adv, &
 
  187             bl_height, wind_velo, temp_air, dens_air, spechum, tsurf, &
 
  188             rugoro, snow_cont_air, alb_soil, slope, cloudf, &
 
  189             radsol, qsol, tsoil0, snow, snowhgt, qsnow, to_ice,sissnow, agesno, &
 
  190             acoefh, acoefq, bcoefh, bcoefq, cdragh, &
 
  191             run_off_lic, evap, fluxsens, fluxlat, dflux_s, dflux_l, &        
 
  192             tsurf_new, alb1, alb2, alb3, &
 
  193             emis_new, z0m, qsurf)
 
  194        z0h(1:knon)=z0m(1:knon) 
 
  205             u0, v0, u1, v1, gustiness, cdragm, &
 
  206             acoefu, acoefv, bcoefu, bcoefv, &
 
  210        abort_message=
'Pb de coherence: ok_snow = .true. mais CPP_SISVAT = .false.' 
  220        CALL soil(dtime, 
is_lic, knon, snow, tsurf, tsoil, soilcap, soilflux)
 
  221        cal(1:knon) = rcpd / soilcap(1:knon)
 
  222        radsol(1:knon)  = radsol(1:knon) + soilflux(1:knon)
 
  225        WHERE (snow > 0.0) cal = rcpd * 
calsno 
  239     u1_lay(:) = u1(:) - u0(:)
 
  240     v1_lay(:) = v1(:) - v0(:)
 
  243          tsurf, p1lay, cal, beta, cdragh, cdragh, ps, &
 
  244          precip_rain, precip_snow, snow, qsurf,  &
 
  245          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
 
  246          1.,acoefh, acoefq, bcoefh, bcoefq, &
 
  247          tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
 
  250          u0, v0, u1, v1, gustiness, cdragm, &
 
  251          acoefu, acoefv, bcoefu, bcoefv, &
 
  260          tsurf, precip_rain, precip_snow, &
 
  261          snow, qsol, tsurf_new, evap)
 
  268     CALL albsno(
klon,knon,dtime,agesno(:),alb_neig(:), precip_snow(:))  
 
  269     WHERE (snow(1 : knon) .LT. 0.0001) agesno(1 : knon) = 0.
 
  270     zfra(1:knon) = max(0.0,min(1.0,snow(1:knon)/(snow(1:knon)+10.0)))
 
  271     alb1(1:knon) = alb_neig(1:knon)*zfra(1:knon) + &
 
  272          0.6 * (1.0-zfra(1:knon))
 
  283     alb2(1:knon)  = alb1(1:knon)
 
  292     z0m = sqrt(z0m**2+rugoro**2)
 
  332        alb_dir(1:knon,1)=alb1(1:knon)
 
  333        alb_dir(1:knon,2)=alb2(1:knon)
 
  335        alb_dir(1:knon,1)=alb1(1:knon)
 
  336        alb_dir(1:knon,2)=alb2(1:knon)
 
  337        alb_dir(1:knon,3)=alb2(1:knon)
 
  338        alb_dir(1:knon,4)=alb2(1:knon)
 
  340        alb_dir(1:knon,1)=alb1(1:knon)
 
  341        alb_dir(1:knon,2)=alb1(1:knon)
 
  342        alb_dir(1:knon,3)=alb1(1:knon)
 
  343        alb_dir(1:knon,4)=alb2(1:knon)
 
  344        alb_dir(1:knon,5)=alb2(1:knon)
 
  345        alb_dir(1:knon,6)=alb2(1:knon)
 
subroutine albsno(klon, knon, dtime, agesno, alb_neig_grid, precip_snow)
 
!$Header!c include clesph0 h c COMMON clesph0 soil_model
 
subroutine fonte_neige(knon, nisurf, knindex, dtime, tsurf, precip_rain, precip_snow, snow, qsol, tsurf_new, evap)
 
subroutine calcul_flux_wind(knon, dtime, u0, v0, u1, v1, gustiness, cdrag_m, AcoefU, AcoefV, BcoefU, BcoefV, p1lay, t1lay, flux_u1, flux_v1)
 
real, dimension(:), allocatable run_off_lic
 
real, dimension(:), allocatable, save zfra_o
 
integer, parameter is_lic
 
subroutine, public cpl_send_landice_fields(itime, knon, knindex, rlic_in)
 
subroutine surf_landice(itime, dtime, knon, knindex, rlon, rlat, debut, lafin, rmu0, lwdownm, albedo, pphi1, swnet, lwnet, tsurf, p1lay, cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, AcoefH, AcoefQ, BcoefH, BcoefQ, AcoefU, AcoefV, BcoefU, BcoefV, ps, u1, v1, gustiness, rugoro, pctsrf, snow, qsurf, qsol, agesno, tsoil, z0m, z0h, SFRWL, alb_dir, alb_dif, evap, fluxsens, fluxlat, tsurf_new, dflux_s, dflux_l, slope, cloudf, snowhgt, qsnow, to_ice, sissnow, alb3, runoff, flux_u1, flux_v1)
 
c c $Id c nbregdyn DO klon c rlat(i) c ENDIF!lon c ENDIF!lat ENDIF!pctsrf ENDDO!klon ENDDO!nbregdyn cIM 190504 ENDIF!ok_regdyn cIM somme de toutes les nhistoW BEG IF(debut) THEN DO nreg
 
character(len=6), save type_ocean
 
subroutine abort_physic(modname, message, ierr)
 
subroutine calcul_fluxs(knon, nisurf, dtime, tsurf, p1lay, cal, beta, cdragh, cdragq, ps, precip_rain, precip_snow, snow, qsurf, radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, gustiness, fqsat, petAcoef, peqAcoef, petBcoef, peqBcoef, tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
 
subroutine surf_sisvat(knon, rlon, rlat, ikl2i, itime, dtime, debut, lafin, rmu0, swdown, lwdown, pexner, ps, p1lay, precip_rain, precip_snow, precip_snow_adv, snow_adv, bl_height, wind_velo, temp_air, dens_air, spechum, tsurf, rugos, snow_cont_air, alb_soil, slope, cloudf, radsol, qsol, tsoil, snow, snowhgt, qsnow, to_ice, sissnow, agesno, AcoefH, AcoefQ, BcoefH, BcoefQ, cdragh, runoff_lic, evap, fluxsens, fluxlat, dflux_s, dflux_l, tsurf_new, alb1, alb2, alb3, emis_new, z0_new, qsurf)
 
c c $Id c nbregdyn DO klon c rlon(i)
 
real, dimension(:), allocatable, save snow_o
 
subroutine soil(ptimestep, indice, knon, snow, ptsrf, ptsoil, pcapcal, pfluxgrd)