Ignore:
Timestamp:
Feb 4, 2008, 5:24:28 PM (16 years ago)
Author:
Laurent Fairhead
Message:

Modifications sur l'albedo JG
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/surf_land_mod.F90

    r793 r888  
    2020  SUBROUTINE surf_land(itime, dtime, date0, jour, knon, knindex, &
    2121       rlon, rlat, &
    22        debut, lafin, zlev, epot_air, ccanopy, sollwdown, swnet, swdown, &
     22       debut, lafin, zlev, ccanopy, swnet, lwnet, albedo, &
    2323       tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, spechum, &
    2424       petAcoef, peqAcoef, petBcoef, peqBcoef, &
    25        ps, u1_lay, v1_lay, rugoro, pctsrf, &
    26        radsol, snow, qsurf, qsol, agesno, &
    27        tsoil, z0_new, alblw, evap, fluxsens, fluxlat, &
    28        tsurf_new, alb_new, dflux_s, dflux_l, pctsrf_ter)
     25       pref, u1_lay, v1_lay, rugoro, pctsrf, &
     26       snow, qsol, agesno, tsoil, &
     27       z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, &
     28       qsurf, tsurf_new, dflux_s, dflux_l, pctsrf_ter, &
     29       lwdown_m)
    2930
    3031    INCLUDE "indicesol.h"
    3132    INCLUDE "dimsoil.h"
     33    INCLUDE "YOMCST.h"
    3234
    3335! Input variables 
     
    3941    LOGICAL, INTENT(IN)                     :: debut, lafin
    4042    REAL, INTENT(IN)                        :: dtime
    41     REAL, DIMENSION(klon), INTENT(IN)       :: zlev, epot_air, ccanopy
    42     REAL, DIMENSION(klon), INTENT(IN)       :: sollwdown, swnet, swdown   
     43    REAL, DIMENSION(klon), INTENT(IN)       :: zlev, ccanopy
     44    REAL, DIMENSION(klon), INTENT(IN)       :: swnet, lwnet
     45    REAL, DIMENSION(klon), INTENT(IN)       :: albedo  ! albedo for whole short-wave interval
    4346    REAL, DIMENSION(klon), INTENT(IN)       :: tsurf
    4447    REAL, DIMENSION(klon), INTENT(IN)       :: p1lay
     
    4851    REAL, DIMENSION(klon), INTENT(IN)       :: petAcoef, peqAcoef
    4952    REAL, DIMENSION(klon), INTENT(IN)       :: petBcoef, peqBcoef
    50     REAL, DIMENSION(klon), INTENT(IN)       :: ps
     53    REAL, DIMENSION(klon), INTENT(IN)       :: pref   ! pressure reference
    5154    REAL, DIMENSION(klon), INTENT(IN)       :: u1_lay, v1_lay
    5255    REAL, DIMENSION(klon), INTENT(IN)       :: rugoro
    5356    REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf
    5457
     58    REAL, DIMENSION(klon), INTENT(IN)       :: lwdown_m  ! downwelling longwave radiation at mean surface
     59                                                         ! corresponds to previous sollwdown
     60
    5561! In/Output variables
    5662!****************************************************************************************
    57     REAL, DIMENSION(klon), INTENT(INOUT)          :: radsol
    5863    REAL, DIMENSION(klon), INTENT(INOUT)          :: snow, qsol
    5964    REAL, DIMENSION(klon), INTENT(INOUT)          :: agesno
     
    6267! Output variables
    6368!****************************************************************************************
     69    REAL, DIMENSION(klon), INTENT(OUT)       :: z0_new
     70    REAL, DIMENSION(klon), INTENT(OUT)       :: alb1_new ! albdeo for shortwave interval 1(visible)
     71    REAL, DIMENSION(klon), INTENT(OUT)       :: alb2_new ! albedo for shortwave interval 2(near infrared)
     72    REAL, DIMENSION(klon), INTENT(OUT)       :: evap
     73    REAL, DIMENSION(klon), INTENT(OUT)       :: fluxsens, fluxlat
    6474    REAL, DIMENSION(klon), INTENT(OUT)       :: qsurf
    65     REAL, DIMENSION(klon), INTENT(OUT)       :: z0_new
    66     REAL, DIMENSION(klon), INTENT(OUT)       :: alblw
    67     REAL, DIMENSION(klon), INTENT(OUT)       :: evap, fluxsens, fluxlat
    68     REAL, DIMENSION(klon), INTENT(OUT)       :: tsurf_new, alb_new
     75    REAL, DIMENSION(klon), INTENT(OUT)       :: tsurf_new
    6976    REAL, DIMENSION(klon), INTENT(OUT)       :: dflux_s, dflux_l     
    7077    REAL, DIMENSION(klon), INTENT(OUT)       :: pctsrf_ter
     
    7279! Local variables
    7380!****************************************************************************************
    74     REAL, DIMENSION(klon) :: ps_tmp, p1lay_tmp
     81    REAL, DIMENSION(klon) :: p1lay_tmp
     82    REAL, DIMENSION(klon) :: pref_tmp
     83    REAL, DIMENSION(klon) :: swdown     ! downwelling shortwave radiation at land surface
     84    REAL, DIMENSION(klon) :: lwdown     ! downwelling longwave radiation at land surface
     85    REAL, DIMENSION(klon) :: epot_air           ! potential air temperature
    7586    REAL, DIMENSION(klon) :: tsol_rad, emis_new ! output from interfsol not used
    7687    INTEGER               :: i
     
    8394   IF (ok_veget) THEN
    8495!****************************************************************************************
    85 !  Call model sechiba
     96!  Call model sechiba in model ORCHIDEE
    8697!
    8798!****************************************************************************************
    8899       p1lay_tmp(:)      = 0.0
    89        ps_tmp(:)         = 0.0
     100       pref_tmp(:)       = 0.0
    90101       p1lay_tmp(1:knon) = p1lay(1:knon)/100.
    91        ps_tmp(1:knon)    = ps(1:knon)/100.
     102       pref_tmp(1:knon)  = pref(1:knon)/100.
     103!
     104!* Calculate incoming flux for SW and LW interval: swdown, lwdown
     105!
     106       swdown(:) = 0.0
     107       lwdown(:) = 0.0
     108       DO i = 1, knon
     109          swdown(i) = swnet(i)/(1-albedo(i))
     110          lwdown(i) = lwnet(i) + RSIGMA*tsurf(i)**4
     111       END DO
     112!
     113!* Calculate potential air temperature
     114!
     115       epot_air(:) = 0.0
     116       DO i = 1, knon
     117          epot_air(i) = RCPD*temp_air(i)*(pref(i)/p1lay(i))**RKAPPA
     118       END DO
    92119
    93120#ifdef CPP_VEGET
     121       ! temporary for keeping same results using lwdown_m instead of lwdown
    94122       CALL surf_land_orchidee(itime, dtime, date0, knon, &
    95123            knindex, rlon, rlat, pctsrf, &
     
    97125            zlev,  u1_lay, v1_lay, temp_air, spechum, epot_air, ccanopy, &
    98126            tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, &
    99             precip_rain, precip_snow, sollwdown, swnet, swdown, &
    100             ps_tmp, &
     127            precip_rain, precip_snow, lwdown_m, swnet, swdown, &
     128            pref_tmp, &
    101129            evap, fluxsens, fluxlat, &             
    102             tsol_rad, tsurf_new, alb_new, alblw, &
     130            tsol_rad, tsurf_new, alb1_new, alb2_new, &
    103131            emis_new, z0_new, qsurf)       
    104132#endif
    105133
    106134
    107 !* Ajout de la contribution du relief
     135!* Add contribution of relief to surface roughness
    108136
    109137       DO i=1,knon
     
    118146       CALL surf_land_bucket(itime, jour, knon, knindex, debut, dtime,&
    119147            tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, &
    120             spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, ps, &
    121             u1_lay, v1_lay, rugoro, &
    122             radsol, snow, qsol, agesno, tsoil, &
    123             qsurf, z0_new, alblw, evap, fluxsens, fluxlat, &
    124             tsurf_new, alb_new, dflux_s, dflux_l)
     148            spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, pref, &
     149            u1_lay, v1_lay, rugoro, swnet, lwnet, &
     150            snow, qsol, agesno, tsoil, &
     151            qsurf, z0_new, alb1_new, alb2_new, evap, &
     152            fluxsens, fluxlat, tsurf_new, dflux_s, dflux_l)
    125153
    126154    ENDIF ! ok_veget
Note: See TracChangeset for help on using the changeset viewer.