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_ocean_mod.F90

    r793 r888  
    1616!****************************************************************************************
    1717!
    18   SUBROUTINE surf_ocean(rlon, rlat, sollw, albedo, &
    19        rugos, windsp, rmu0, &
    20        fder, &
     18  SUBROUTINE surf_ocean(rlon, rlat, swnet, lwnet, alb1, &
     19       rugos, windsp, rmu0, fder, &
    2120       itime, dtime, jour, knon, knindex, &
    22        debut, swdown, &
     21       debut, &
    2322       p1lay, tq_cdrag, coefm, precip_rain, precip_snow, temp_air, spechum, &
    2423       petAcoef, peqAcoef, petBcoef, peqBcoef, &
    2524       ps, u1_lay, v1_lay, rugoro, pctsrf, &
    26        radsol, snow, qsurf, agesno, &
    27        z0_new, alblw, evap, fluxsens, fluxlat, &
    28        tsurf_new, alb_new, dflux_s, dflux_l, pctsrf_oce)
     25       snow, qsurf, agesno, &
     26       z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, &
     27       tsurf_new, dflux_s, dflux_l, pctsrf_oce)
    2928!
    3029! This subroutine will make a call to ocean_XXX_noice according to the ocean mode (force,
     
    4140    REAL, INTENT(IN)                         :: dtime
    4241    REAL, DIMENSION(klon), INTENT(IN)        :: rlon, rlat
    43     REAL, DIMENSION(klon), INTENT(IN)        :: sollw
    44     REAL, DIMENSION(klon), INTENT(IN)        :: albedo
     42    REAL, DIMENSION(klon), INTENT(IN)        :: swnet  ! net shortwave radiation at surface 
     43    REAL, DIMENSION(klon), INTENT(IN)        :: lwnet  ! net longwave radiation at surface 
     44    REAL, DIMENSION(klon), INTENT(IN)        :: alb1   ! albedo in visible SW interval
    4545    REAL, DIMENSION(klon), INTENT(IN)        :: rugos
    4646    REAL, DIMENSION(klon), INTENT(IN)        :: windsp
    4747    REAL, DIMENSION(klon), INTENT(IN)        :: rmu0 
    4848    REAL, DIMENSION(klon), INTENT(IN)        :: fder
    49     REAL, DIMENSION(klon), INTENT(IN)        :: swdown   
    5049    REAL, DIMENSION(klon), INTENT(IN)        :: p1lay
    5150    REAL, DIMENSION(klon), INTENT(IN)        :: tq_cdrag
     
    6362! In/Output variables
    6463!****************************************************************************************
    65     REAL, DIMENSION(klon), INTENT(INOUT)     :: radsol
    66     REAL, DIMENSION(klon), INTENT(INOUT)     :: snow, qsurf
     64    REAL, DIMENSION(klon), INTENT(INOUT)     :: snow
     65    REAL, DIMENSION(klon), INTENT(INOUT)     :: qsurf
    6766    REAL, DIMENSION(klon), INTENT(INOUT)     :: agesno
    6867
     
    7069!****************************************************************************************
    7170    REAL, DIMENSION(klon), INTENT(OUT)       :: z0_new
    72     REAL, DIMENSION(klon), INTENT(OUT)       :: alblw
     71    REAL, DIMENSION(klon), INTENT(OUT)       :: alb1_new  ! new albedo in visible SW interval
     72    REAL, DIMENSION(klon), INTENT(OUT)       :: alb2_new  ! new albedo in near IR interval
    7373    REAL, DIMENSION(klon), INTENT(OUT)       :: evap, fluxsens, fluxlat
    74     REAL, DIMENSION(klon), INTENT(OUT)       :: tsurf_new, alb_new
     74    REAL, DIMENSION(klon), INTENT(OUT)       :: tsurf_new
    7575    REAL, DIMENSION(klon), INTENT(OUT)       :: dflux_s, dflux_l     
    7676    REAL, DIMENSION(klon), INTENT(OUT)       :: pctsrf_oce
     
    8181    INTEGER               :: i
    8282    REAL, DIMENSION(klon) :: alb_eau
     83    REAL, DIMENSION(klon) :: radsol
    8384
    8485! End definition
    8586!****************************************************************************************
    86 !
     87
     88
     89!****************************************************************************************
     90! Calculate total net radiance at surface
     91!
     92!****************************************************************************************
     93    radsol(:) = 0.0
     94    radsol(1:knon) = swnet(1:knon) + lwnet(1:knon)
     95
     96!****************************************************************************************
    8797! Switch according to type of ocean (couple, slab or forced)
    8898!****************************************************************************************
    8999    SELECT CASE(ocean)
    90100    CASE('couple')
    91        CALL ocean_cpl_noice(&
    92             sollw, albedo, &
     101       CALL ocean_cpl_noice( &
     102            swnet, lwnet, alb1, &
    93103            windsp, &
    94104            fder, &
    95105            itime, dtime, knon, knindex, &
    96             swdown, &
    97106            p1lay, tq_cdrag, precip_rain, precip_snow,temp_air,spechum,&
    98107            petAcoef, peqAcoef, petBcoef, peqBcoef, &
    99108            ps, u1_lay, v1_lay, pctsrf, &
    100             radsol, snow, qsurf, agesno, &
    101             evap, fluxsens, fluxlat, &
     109            radsol, snow, agesno, &
     110            qsurf, evap, fluxsens, fluxlat, &
    102111            tsurf_new, dflux_s, dflux_l, pctsrf_oce)
    103112
    104113    CASE('slab')
    105        CALL ocean_slab_noice(&
     114       CALL ocean_slab_noice( &
    106115            dtime, knon, knindex, &
    107116            p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, spechum,&
    108117            petAcoef, peqAcoef, petBcoef, peqBcoef, &
    109118            ps, u1_lay, v1_lay, &
    110             radsol, snow, qsurf, agesno, &
    111             evap, fluxsens, fluxlat, &
    112             tsurf_new, &
    113             dflux_s, dflux_l, pctsrf_oce)
     119            radsol, snow, agesno, &
     120            qsurf, evap, fluxsens, fluxlat, &
     121            tsurf_new, dflux_s, dflux_l, pctsrf_oce)
    114122       
    115123    CASE('force')
    116        CALL ocean_forced_noice(itime, dtime, jour, knon, knindex, &
     124       CALL ocean_forced_noice( &
     125            itime, dtime, jour, knon, knindex, &
    117126            debut, &
    118127            p1lay, tq_cdrag, precip_rain, precip_snow, &
     
    120129            petAcoef, peqAcoef, petBcoef, peqBcoef, &
    121130            ps, u1_lay, v1_lay, &
    122             radsol, snow, qsurf, &
    123             agesno, &
    124             evap, fluxsens, fluxlat, &
     131            radsol, snow, agesno, &
     132            qsurf, evap, fluxsens, fluxlat, &
    125133            tsurf_new, dflux_s, dflux_l, pctsrf_oce)
    126134    END SELECT
     
    137145
    138146    DO i =1, knon
    139        alb_new(i) = alb_eau(knindex(i))
     147       alb1_new(i) = alb_eau(knindex(i))
    140148    ENDDO
     149    alb2_new(1:knon) = alb1_new(1:knon)
    141150
    142151!****************************************************************************************
     
    154163    ENDDO
    155164   
    156     alblw(1:knon) = alb_new(1:knon)
    157165!
    158166!****************************************************************************************
Note: See TracChangeset for help on using the changeset viewer.