Ignore:
Timestamp:
Dec 17, 2008, 2:30:13 PM (15 years ago)
Author:
Laurent Fairhead
Message:
  • Modifications lie au premier niveau du modele pour la diffusion turbulent

du vent.

  • Preparation pour un couplage des courrant oceaniques.

JG

File:
1 edited

Legend:

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

    r996 r1067  
    1 !
    2 ! $Header$
    31!
    42MODULE surf_land_mod
    53 
    6   USE surface_data, ONLY    : ok_veget
    7   USE dimphy
    8  
    9 #ifdef CPP_VEGET
    10   USE surf_land_orchidee_mod
    11 #endif
    12   USE surf_land_bucket_mod
    13 
    144  IMPLICIT NONE
    155
     
    2111       rlon, rlat, &
    2212       debut, lafin, zlev, ccanopy, swnet, lwnet, albedo, &
    23        tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, spechum, &
    24        petAcoef, peqAcoef, petBcoef, peqBcoef, &
    25        pref, u1_lay, v1_lay, rugoro, pctsrf, &
     13       tsurf, p1lay, cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, &
     14       AcoefH, AcoefQ, BcoefH, BcoefQ, &
     15       AcoefU, AcoefV, BcoefU, BcoefV, &
     16       pref, u1, v1, rugoro, pctsrf, &
    2617       snow, qsol, agesno, tsoil, &
    2718       z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, &
    2819       qsurf, tsurf_new, dflux_s, dflux_l, &
     20       flux_u1, flux_v1, &
    2921       lwdown_m)
     22
     23    USE dimphy
     24    USE surface_data, ONLY    : ok_veget
     25    USE surf_land_orchidee_mod
     26    USE surf_land_bucket_mod
     27    USE calcul_fluxs_mod
    3028
    3129    INCLUDE "indicesol.h"
     
    4644    REAL, DIMENSION(klon), INTENT(IN)       :: tsurf
    4745    REAL, DIMENSION(klon), INTENT(IN)       :: p1lay
    48     REAL, DIMENSION(klon), INTENT(IN)       :: tq_cdrag
     46    REAL, DIMENSION(klon), INTENT(IN)       :: cdragh, cdragm
    4947    REAL, DIMENSION(klon), INTENT(IN)       :: precip_rain, precip_snow
    5048    REAL, DIMENSION(klon), INTENT(IN)       :: temp_air, spechum
    51     REAL, DIMENSION(klon), INTENT(IN)       :: petAcoef, peqAcoef
    52     REAL, DIMENSION(klon), INTENT(IN)       :: petBcoef, peqBcoef
     49    REAL, DIMENSION(klon), INTENT(IN)       :: AcoefH, AcoefQ, BcoefH, BcoefQ
     50    REAL, DIMENSION(klon), INTENT(IN)       :: AcoefU, AcoefV, BcoefU, BcoefV
    5351    REAL, DIMENSION(klon), INTENT(IN)       :: pref   ! pressure reference
    54     REAL, DIMENSION(klon), INTENT(IN)       :: u1_lay, v1_lay
     52    REAL, DIMENSION(klon), INTENT(IN)       :: u1, v1
    5553    REAL, DIMENSION(klon), INTENT(IN)       :: rugoro
    5654    REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf
     
    7573    REAL, DIMENSION(klon), INTENT(OUT)       :: tsurf_new
    7674    REAL, DIMENSION(klon), INTENT(OUT)       :: dflux_s, dflux_l     
     75    REAL, DIMENSION(klon), INTENT(OUT)       :: flux_u1, flux_v1  ! flux for U and V at first model level
    7776
    7877! Local variables
     
    8483    REAL, DIMENSION(klon) :: epot_air           ! potential air temperature
    8584    REAL, DIMENSION(klon) :: tsol_rad, emis_new ! output from interfsol not used
     85    REAL, DIMENSION(klon) :: u0, v0     ! surface speed
    8686    INTEGER               :: i
    8787
     
    117117       END DO
    118118
    119 #ifdef CPP_VEGET
    120119       ! temporary for keeping same results using lwdown_m instead of lwdown
    121120       CALL surf_land_orchidee(itime, dtime, date0, knon, &
    122121            knindex, rlon, rlat, pctsrf, &
    123122            debut, lafin, &
    124             zlev,  u1_lay, v1_lay, temp_air, spechum, epot_air, ccanopy, &
    125             tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, &
     123            zlev,  u1, v1, temp_air, spechum, epot_air, ccanopy, &
     124            cdragh, AcoefH, AcoefQ, BcoefH, BcoefQ, &
    126125            precip_rain, precip_snow, lwdown_m, swnet, swdown, &
    127126            pref_tmp, &
     
    129128            tsol_rad, tsurf_new, alb1_new, alb2_new, &
    130129            emis_new, z0_new, qsurf)       
    131 #endif
    132130
    133131
     
    144142!****************************************************************************************
    145143       CALL surf_land_bucket(itime, jour, knon, knindex, debut, dtime,&
    146             tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, &
    147             spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, pref, &
    148             u1_lay, v1_lay, rugoro, swnet, lwnet, &
     144            tsurf, p1lay, cdragh, precip_rain, precip_snow, temp_air, &
     145            spechum, AcoefH, AcoefQ, BcoefH, BcoefQ, pref, &
     146            u1, v1, rugoro, swnet, lwnet, &
    149147            snow, qsol, agesno, tsoil, &
    150148            qsurf, z0_new, alb1_new, alb2_new, evap, &
     
    153151    ENDIF ! ok_veget
    154152
     153!****************************************************************************************
     154! Calculation for all land models
     155! - Flux calculation at first modele level for U and V
     156!****************************************************************************************
     157! Suppose zero surface speed
     158    u0(:)=0.0
     159    v0(:)=0.0
     160    CALL calcul_flux_wind(knon, dtime, &
     161         u0, v0, u1, v1, cdragm, &
     162         AcoefU, AcoefV, BcoefU, BcoefV, &
     163         p1lay, temp_air, &
     164         flux_u1, flux_v1)
     165   
    155166  END SUBROUTINE surf_land
    156167!
Note: See TracChangeset for help on using the changeset viewer.