Changeset 2240


Ignore:
Timestamp:
Mar 23, 2015, 5:07:43 PM (10 years ago)
Author:
fhourdin
Message:

Revisite de la formule des flux de surface
(en priorité sur l'océan) en tenant compte des bourrasques de
vent et de la différence entre les hauteurs de rugosités pour
la quantité de mouvement, l'enthalpie et éventuellement l'humidité.

Etape 1 :
Introduction d'un calcul de gustiness dans la physique
gustiness(:)=f_gust_bl * ale_bl + f_gust_wk * ame_wk
Cette variable est passée ensuite jusqu'au fin fond de la couche limite.
L'étape 1 est prête à commettre, ne nécessite pas de nouvelles
variables dans les startphy et assure la convergence numérique.

Introduction of gustiness in the surface flux computation.
Gustiness is computed from as
gustiness(:)=f_gust_bl * ale_bl + f_gust_wk * ame_wk
and pass through pbl_surface down to the routines that compute
surface fluxes.

Location:
LMDZ5/trunk/libf/phylmd
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/calcul_fluxs_mod.F90

    r1907 r2240  
    77       tsurf, p1lay, cal, beta, coef1lay, ps, &
    88       precip_rain, precip_snow, snow, qsurf, &
    9        radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, &
     9       radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, gustiness, &
    1010       petAcoef, peqAcoef, petBcoef, peqBcoef, &
    1111       tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    1313    USE dimphy, ONLY : klon
    1414    USE indice_sol_mod
     15
     16    INCLUDE "clesphys.h"
    1517
    1618! Cette routine calcule les fluxs en h et q a l'interface et eventuellement
     
    6264    REAL, DIMENSION(klon), INTENT(IN)    :: precip_rain, precip_snow ! pas utiles
    6365    REAL, DIMENSION(klon), INTENT(IN)    :: radsol, dif_grnd
    64     REAL, DIMENSION(klon), INTENT(IN)    :: t1lay, u1lay, v1lay
     66    REAL, DIMENSION(klon), INTENT(IN)    :: t1lay, u1lay, v1lay,gustiness
    6567
    6668! Parametres entree-sorties
     
    155157       zx_qsat(i) = zx_qs
    156158       zx_coef(i) = coef1lay(i) * &
    157             (1.0+SQRT(u1lay(i)**2+v1lay(i)**2)) * &
     159            (min_wind_speed+SQRT(gustiness(i)+u1lay(i)**2+v1lay(i)**2)) * &
    158160            p1lay(i)/(RD*t1lay(i))
    159161       
     
    244246!
    245247  SUBROUTINE calcul_flux_wind(knon, dtime, &
    246        u0, v0, u1, v1, cdrag_m, &
     248       u0, v0, u1, v1, gustiness, cdrag_m, &
    247249       AcoefU, AcoefV, BcoefU, BcoefV, &
    248250       p1lay, t1lay, &
     
    251253    USE dimphy
    252254    INCLUDE "YOMCST.h"
     255    INCLUDE "clesphys.h"
    253256
    254257! Input arguments
     
    257260    REAL, INTENT(IN)                     :: dtime
    258261    REAL, DIMENSION(klon), INTENT(IN)    :: u0, v0  ! u and v at niveau 0
    259     REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1  ! u and v at niveau 1
     262    REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1, gustiness  ! u and v at niveau 1
    260263    REAL, DIMENSION(klon), INTENT(IN)    :: cdrag_m ! cdrag pour momentum
    261264    REAL, DIMENSION(klon), INTENT(IN)    :: AcoefU, AcoefV, BcoefU, BcoefV
     
    277280!****************************************************************************************
    278281    DO i=1,knon
    279        mod_wind = 1.0 + SQRT((u1(i) - u0(i))**2 + (v1(i)-v0(i))**2)
     282       mod_wind = min_wind_speed + SQRT(gustiness(i)+(u1(i) - u0(i))**2 + (v1(i)-v0(i))**2)
    280283       buf = cdrag_m(i) * mod_wind * p1lay(i)/(RD*t1lay(i))
    281284       flux_u1(i) = (AcoefU(i) - u0(i)) / (1/buf - BcoefU(i)*dtime )
  • LMDZ5/trunk/libf/phylmd/clesphys.h

    r2227 r2240  
    4444! Frottement au sol (Cdrag)
    4545       Real f_cdrag_ter,f_cdrag_oce
     46       REAL min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce
     47       INTEGER iflag_gusts
     48
    4649! Rugoro
    4750       Real f_rugoro
     
    9295     &     , fmagic, pmagic                                             &
    9396     &     , f_cdrag_ter,f_cdrag_oce,f_rugoro                           &
     97     &     , min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce              &
    9498     &     , pasphys            , freq_outNMC, freq_calNMC              &
    9599     &     , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins             &
     
    115119     &     , ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP                     &
    116120     &     , ip_ebil_phy                                                &
     121     &     , iflag_gusts                                                 &
    117122     &     , ok_lic_melt,           aer_type                            &
    118123     &     , iflag_rrtm, ok_strato,ok_hines, ok_qch4                    &
  • LMDZ5/trunk/libf/phylmd/conf_phys_m.F90

    r2236 r2240  
    118118    Real,SAVE           :: f_cdrag_ter_omp,f_cdrag_oce_omp
    119119    Real,SAVE           :: f_rugoro_omp   
     120    REAL,SAVE           :: min_wind_speed_omp,f_gust_wk_omp,f_gust_bl_omp,f_qsat_oce_omp
     121    INTEGER,SAVE        :: iflag_gusts_omp
    120122
    121123    ! Local
     
    213215    !-----------------------------------------------------------------
    214216
     217     print*,'CONFPHYS ENTREE'
    215218    !$OMP MASTER
    216219    !Config Key  = type_ocean
     
    16451648    !
    16461649    !
     1650    print*,'CONFPHYS OOK avant drag_ter'
    16471651    !
    16481652    ! PARAMETRES CDRAG
    1649     !
    1650     !Config Key  = f_cdrag_ter
    1651     !Config Desc =
    1652     !Config Def  = 0.8
    1653     !Config Help =
    16541653    !
    16551654    f_cdrag_ter_omp = 0.8
    16561655    call getin('f_cdrag_ter',f_cdrag_ter_omp)
    16571656    !
    1658     !Config Key  = f_cdrag_oce
    1659     !Config Desc =
    1660     !Config Def  = 0.8
    1661     !Config Help =
    1662     !
    16631657    f_cdrag_oce_omp = 0.8
    16641658    call getin('f_cdrag_oce',f_cdrag_oce_omp)
     1659    !
     1660
     1661! Gustiness flags
     1662    f_qsat_oce_omp = 1.
     1663    call getin('f_qsat_oce',f_qsat_oce_omp)
     1664    !
     1665    f_gust_bl_omp = 0.
     1666    call getin('f_gust_bl',f_gust_bl_omp)
     1667    !
     1668    f_gust_wk_omp = 0.
     1669    call getin('f_gust_wk',f_gust_wk_omp)
     1670    !
     1671    print*,'CONFPHYS OOK avant gust'
     1672    iflag_gusts_omp=0
     1673    call getin('iflag_gusts',iflag_gusts_omp)
     1674    !
     1675    min_wind_speed_omp = 1.
     1676    call getin('min_wind_speed',min_wind_speed_omp)
     1677
    16651678    !
    16661679    ! RUGORO
     
    20222035    f_cdrag_ter=f_cdrag_ter_omp
    20232036    f_cdrag_oce=f_cdrag_oce_omp
     2037
     2038    f_gust_wk=f_gust_wk_omp
     2039    f_gust_bl=f_gust_bl_omp
     2040    f_qsat_oce=f_qsat_oce_omp
     2041    min_wind_speed=min_wind_speed_omp
     2042    iflag_gusts=iflag_gusts_omp
     2043
    20242044    f_rugoro=f_rugoro_omp
    20252045    supcrit1 = supcrit1_omp
  • LMDZ5/trunk/libf/phylmd/ocean_cpl_mod.F90

    r1907 r2240  
    4949       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    5050       AcoefU, AcoefV, BcoefU, BcoefV, &
    51        ps, u1, v1, &
     51       ps, u1, v1, gustiness, &
    5252       radsol, snow, agesno, &
    5353       qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    8383    REAL, DIMENSION(klon), INTENT(IN)        :: AcoefU, AcoefV, BcoefU, BcoefV
    8484    REAL, DIMENSION(klon), INTENT(IN)        :: ps
    85     REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1
     85    REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1, gustiness
    8686
    8787! In/Output arguments
     
    138138         tsurf_cpl, p1lay, cal, beta, cdragh, ps, &
    139139         precip_rain, precip_snow, snow, qsurf,  &
    140          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     140         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    141141         AcoefH, AcoefQ, BcoefH, BcoefQ, &
    142142         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    144144! - Flux calculation at first modele level for U and V
    145145    CALL calcul_flux_wind(knon, dtime, &
    146          u0_cpl, v0_cpl, u1, v1, cdragm, &
     146         u0_cpl, v0_cpl, u1, v1, gustiness, cdragm, &
    147147         AcoefU, AcoefV, BcoefU, BcoefV, &
    148148         p1lay, temp_air, &
     
    185185       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    186186       AcoefU, AcoefV, BcoefU, BcoefV, &
    187        ps, u1, v1, pctsrf, &
     187       ps, u1, v1, gustiness, pctsrf, &
    188188       radsol, snow, qsurf, &
    189189       alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    219219    REAL, DIMENSION(klon), INTENT(IN)        :: AcoefU, AcoefV, BcoefU, BcoefV
    220220    REAL, DIMENSION(klon), INTENT(IN)        :: ps
    221     REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1
     221    REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1, gustiness
    222222    REAL, DIMENSION(klon,nbsrf), INTENT(IN)  :: pctsrf
    223223
     
    281281         tsurf_cpl, p1lay, cal, beta, cdragh, ps, &
    282282         precip_rain, precip_snow, snow, qsurf,  &
    283          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     283         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    284284         AcoefH, AcoefQ, BcoefH, BcoefQ, &
    285285         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    288288! - Flux calculation at first modele level for U and V
    289289    CALL calcul_flux_wind(knon, dtime, &
    290          u0, v0, u1, v1, cdragm, &
     290         u0, v0, u1, v1, gustiness, cdragm, &
    291291         AcoefU, AcoefV, BcoefU, BcoefV, &
    292292         p1lay, temp_air, &
  • LMDZ5/trunk/libf/phylmd/ocean_forced_mod.F90

    r1961 r2240  
    1717       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    1818       AcoefU, AcoefV, BcoefU, BcoefV, &
    19        ps, u1, v1, &
     19       ps, u1, v1, gustiness, &
    2020       radsol, snow, agesno, &
    2121       qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    4646    REAL, DIMENSION(klon), INTENT(IN)        :: AcoefU, AcoefV, BcoefU, BcoefV
    4747    REAL, DIMENSION(klon), INTENT(IN)        :: ps
    48     REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1
     48    REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1, gustiness
    4949
    5050! In/Output arguments
     
    111111         tsurf_lim, p1lay, cal, beta, cdragh, ps, &
    112112         precip_rain, precip_snow, snow, qsurf,  &
    113          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     113         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    114114         AcoefH, AcoefQ, BcoefH, BcoefQ, &
    115115         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    117117! - Flux calculation at first modele level for U and V
    118118    CALL calcul_flux_wind(knon, dtime, &
    119          u0, v0, u1, v1, cdragm, &
     119         u0, v0, u1, v1, gustiness, cdragm, &
    120120         AcoefU, AcoefV, BcoefU, BcoefV, &
    121121         p1lay, temp_air, &
     
    131131       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    132132       AcoefU, AcoefV, BcoefU, BcoefV, &
    133        ps, u1, v1, &
     133       ps, u1, v1, gustiness, &
    134134       radsol, snow, qsol, agesno, tsoil, &
    135135       qsurf, alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    165165    REAL, DIMENSION(klon), INTENT(IN)    :: AcoefU, AcoefV, BcoefU, BcoefV
    166166    REAL, DIMENSION(klon), INTENT(IN)    :: ps
    167     REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1
     167    REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1, gustiness
    168168
    169169! In/Output arguments
     
    233233         tsurf_tmp, p1lay, cal, beta, cdragh, ps, &
    234234         precip_rain, precip_snow, snow, qsurf,  &
    235          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     235         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    236236         AcoefH, AcoefQ, BcoefH, BcoefQ, &
    237237         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    239239! - Flux calculation at first modele level for U and V
    240240    CALL calcul_flux_wind(knon, dtime, &
    241          u0, v0, u1, v1, cdragm, &
     241         u0, v0, u1, v1, gustiness, cdragm, &
    242242         AcoefU, AcoefV, BcoefU, BcoefV, &
    243243         p1lay, temp_air, &
  • LMDZ5/trunk/libf/phylmd/ocean_slab_mod.F90

    r2209 r2240  
    219219       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    220220       AcoefU, AcoefV, BcoefU, BcoefV, &
    221        ps, u1, v1, tsurf_in, &
     221       ps, u1, v1, gustiness, tsurf_in, &
    222222       radsol, snow, &
    223223       qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    242242    REAL, DIMENSION(klon), INTENT(IN)    :: AcoefU, AcoefV, BcoefU, BcoefV
    243243    REAL, DIMENSION(klon), INTENT(IN)    :: ps
    244     REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1
     244    REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1, gustiness
    245245    REAL, DIMENSION(klon), INTENT(IN)    :: tsurf_in
    246246    REAL, DIMENSION(klon), INTENT(INOUT) :: radsol
     
    289289         tsurf_in, p1lay, cal, beta, cdragh, ps, &
    290290         precip_rain, precip_snow, snow, qsurf,  &
    291          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     291         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    292292         AcoefH, AcoefQ, BcoefH, BcoefQ, &
    293293         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    295295! - Flux calculation at first modele level for U and V
    296296    CALL calcul_flux_wind(knon, dtime, &
    297          u0, v0, u1, v1, cdragm, &
     297         u0, v0, u1, v1, gustiness, cdragm, &
    298298         AcoefU, AcoefV, BcoefU, BcoefV, &
    299299         p1lay, temp_air, &
     
    398398       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    399399       AcoefU, AcoefV, BcoefU, BcoefV, &
    400        ps, u1, v1, &
     400       ps, u1, v1, gustiness, &
    401401       radsol, snow, qsurf, qsol, agesno, &
    402402       alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    420420    REAL, DIMENSION(klon), INTENT(IN)    :: AcoefU, AcoefV, BcoefU, BcoefV
    421421    REAL, DIMENSION(klon), INTENT(IN)    :: ps
    422     REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1
     422    REAL, DIMENSION(klon), INTENT(IN)    :: u1, v1, gustiness
    423423    REAL, DIMENSION(klon), INTENT(IN)    :: swnet
    424424
     
    500500        tsurf_in, p1lay, cal, beta, cdragh, ps, &
    501501        precip_rain, precip_snow, snow, qsurf,  &
    502         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     502        radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    503503        AcoefH, AcoefQ, BcoefH, BcoefQ, &
    504504        tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
     
    509509! calcul_flux_wind
    510510    CALL calcul_flux_wind(knon, dtime, &
    511          u0, v0, u1, v1, cdragm, &
     511         u0, v0, u1, v1, gustiness, cdragm, &
    512512         AcoefU, AcoefV, BcoefU, BcoefV, &
    513513         p1lay, temp_air, &
  • LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90

    r2234 r2240  
    174174       zsig,      lwdown_m,  pphi,     cldt,          &
    175175       rain_f,    snow_f,    solsw_m,  sollw_m,       &
     176       gustiness,                                     &
    176177       t,         q,         u,        v,             &
    177178!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
     
    334335    REAL, DIMENSION(klon),        INTENT(IN)        :: zsig    ! slope
    335336    REAL, DIMENSION(klon),        INTENT(IN)        :: lwdown_m ! downward longwave radiation at mean s   
     337    REAL, DIMENSION(klon),        INTENT(IN)        :: gustiness ! gustiness
     338
    336339    REAL, DIMENSION(klon),        INTENT(IN)        :: cldt    ! total cloud fraction
    337340    REAL, DIMENSION(klon,klev),   INTENT(IN)        :: pphi    ! geopotential (m2/s2)
     
    795798    REAL, DIMENSION(klon, nbsrf)       :: alb          ! mean albedo for whole SW interval
    796799    REAL, DIMENSION(klon)              :: ylwdown      ! jg : temporary (ysollwdown)
     800    REAL, DIMENSION(klon)              :: ygustiness      ! jg : temporary (ysollwdown)
    797801
    798802    REAL                               :: zx_qs1, zcor1, zdelta1
     
    823827
    824828    IF (first_call) THEN
     829       print*,'PBL SURFACE AVEC GUSTINESS'
    825830       first_call=.FALSE.
    826831     
     
    11781183    ENDDO
    11791184
    1180 
    11811185!****************************************************************************************
    11821186! 4) Loop over different surfaces
     
    12441248          yfder(j)   = fder(i)
    12451249          ylwdown(j) = lwdown_m(i)
     1250          ygustiness(j) = gustiness(i)
    12461251          ysolsw(j)  = solsw(i,nsrf)
    12471252          ysollw(j)  = sollw(i,nsrf)
     
    18011806               AcoefH, AcoefQ, BcoefH, BcoefQ, &
    18021807               AcoefU, AcoefV, BcoefU, BcoefV, &
    1803                ypsref, yu1, yv1, yrugoro, pctsrf, &
     1808               ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    18041809               ylwdown, yq2m, yt2m, &
    18051810               ysnow, yqsol, yagesno, ytsoil, &
     
    18411846               AcoefH, AcoefQ, BcoefH, BcoefQ, &
    18421847               AcoefU, AcoefV, BcoefU, BcoefV, &
    1843                ypsref, yu1, yv1, yrugoro, pctsrf, &
     1848               ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    18441849               ysnow, yqsurf, yqsol, yagesno, &
    18451850!albedo SB >>>
     
    18871892               AcoefH, AcoefQ, BcoefH, BcoefQ, &
    18881893               AcoefU, AcoefV, BcoefU, BcoefV, &
    1889                ypsref, yu1, yv1, yrugoro, pctsrf, &
     1894               ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    18901895               ysnow, yqsurf, yagesno, &
    18911896!albedo SB >>>
     
    19221927               AcoefH, AcoefQ, BcoefH, BcoefQ, &
    19231928               AcoefU, AcoefV, BcoefU, BcoefV, &
    1924                ypsref, yu1, yv1, yrugoro, pctsrf, &
     1929               ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    19251930               ysnow, yqsurf, yqsol, yagesno, ytsoil, &
    19261931!albedo SB >>>
  • LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r2209 r2240  
    7474      ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /), &
    7575    't2m_sic', "Temp 2m "//clnsurf(4), "K", (/ ('', i=1, 9) /)) /)
     76
     77  TYPE(ctrl_out), SAVE :: o_gusts = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 /), &
     78    'gusts', 'surface gustiness', 'm2/s2', (/ ('', i=1, 9) /))
    7679
    7780  TYPE(ctrl_out), SAVE :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 /), &
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2209 r2240  
    3232         o_t2m_min_mon, o_t2m_max_mon, &
    3333         o_q2m, o_ustar, o_u10m, o_v10m, &
    34          o_wind10m, o_wind10max, o_sicf, &
     34         o_wind10m, o_wind10max, o_gusts, o_sicf, &
    3535         o_psol, o_mass, o_qsurf, o_qsol, &
    3636         o_precip, o_ndayrain, o_plul, o_pluc, &
     
    159159         SWdn200, SWdn200clr, LWup200, LWup200clr, &
    160160         LWdn200, LWdn200clr, solsw, solsw0, sollw, &
    161          radsol, sollw0, sollwdown, sollw, &
     161         radsol, sollw0, sollwdown, sollw, gustiness, &
    162162         sollwdownclr, lwdn0, ftsol, ustar, u10m, &
    163163         v10m, pbl_tke, wake_delta_pbl_TKE, &
     
    354354       ENDIF
    355355       CALL histwrite_phy(o_wind10max, zx_tmp_fi2d)
     356
     357       CALL histwrite_phy(o_gusts, gustiness)
    356358
    357359       IF (vars_defined) THEN
  • LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90

    r2227 r2240  
    304304      REAL,ALLOCATABLE,SAVE :: sollwdown(:)
    305305!$OMP THREADPRIVATE(sollwdown)
     306      REAL,ALLOCATABLE,SAVE :: gustiness(:)
     307!$OMP THREADPRIVATE(gustiness)
    306308      REAL,ALLOCATABLE,SAVE :: sollwdownclr(:)
    307309!$OMP THREADPRIVATE(sollwdownclr)
     
    544546      ALLOCATE(albplap(klon))
    545547      ALLOCATE(solswp(klon), sollwp(klon))
     548      ALLOCATE(gustiness(klon))
    546549      ALLOCATE(sollwdownp(klon))
    547550      ALLOCATE(topsw0p(klon),toplw0p(klon))
     
    664667      deallocate(topsw, toplw)
    665668      deallocate(sollwdown, sollwdownclr)
     669      deallocate(gustiness)
    666670      deallocate(toplwdown, toplwdownclr)
    667671      deallocate(topsw0,toplw0,solsw0,sollw0)
  • LMDZ5/trunk/libf/phylmd/physiq.F90

    r2236 r2240  
    18411841!>jyg+nrlmd
    18421842!
     1843!-------gustiness calculation-------!
     1844     do i = 1, klon
     1845        gustiness(i)=f_gust_bl*ale_bl(i)+f_gust_wk*ale_wake(i)
     1846     enddo
     1847
    18431848     CALL pbl_surface(  &
    18441849          dtime,     date0,     itap,    days_elapsed+1, &
     
    18471852          zsig,      sollwdown, pphi,    cldt,      &
    18481853          rain_fall, snow_fall, solsw,   sollw,     &
     1854          gustiness,                                &
    18491855          t_seri,    q_seri,    u_seri,  v_seri,    &
    18501856!nrlmd+jyg<
     
    21512157        ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    21522158! Estimation d'une vitesse verticale effective pour ALP
     2159        if (1==0) THEN
    21532160        www(1:klon)=0.
    21542161        do k=2,klev-1
     
    21662173           if (www(i)>0. .and. ale_bl(i)>0. ) www(i)=www(i)/ale_bl(i)
    21672174        enddo
     2175        ENDIF
    21682176
    21692177
     
    21782186              ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb
    21792187           else
     2188       abort_message ='Ne pas passer la car www non calcule'
     2189       CALL abort_gcm (modname,abort_message,1)
    21802190
    21812191!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    43134323  ENDDO
    43144324  RETURN
    4315 END SUBROUTINE gr_fi_ecrit
     4325  END SUBROUTINE gr_fi_ecrit
     4326
  • LMDZ5/trunk/libf/phylmd/surf_land_bucket_mod.F90

    r1907 r2240  
    1313       tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, &
    1414       spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, pref, &
    15        u1, v1, rugoro, swnet, lwnet, &
     15       u1, v1, gustiness, rugoro, swnet, lwnet, &
    1616       snow, qsol, agesno, tsoil, &
    1717       qsurf, z0_new, alb1_new, alb2_new, evap, &
     
    4949    REAL, DIMENSION(klon), INTENT(IN)       :: petBcoef, peqBcoef
    5050    REAL, DIMENSION(klon), INTENT(IN)       :: pref
    51     REAL, DIMENSION(klon), INTENT(IN)       :: u1, v1
     51    REAL, DIMENSION(klon), INTENT(IN)       :: u1, v1, gustiness
    5252    REAL, DIMENSION(klon), INTENT(IN)       :: rugoro
    5353    REAL, DIMENSION(klon), INTENT(IN)       :: swnet, lwnet
     
    125125         tsurf, p1lay, cal, beta, tq_cdrag, pref, &
    126126         precip_rain, precip_snow, snow, qsurf,  &
    127          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     127         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    128128         petAcoef, peqAcoef, petBcoef, peqBcoef, &
    129129         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
  • LMDZ5/trunk/libf/phylmd/surf_land_mod.F90

    r2227 r2240  
    1414       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    1515       AcoefU, AcoefV, BcoefU, BcoefV, &
    16        pref, u1, v1, rugoro, pctsrf, &
     16       pref, u1, v1, gustiness, rugoro, pctsrf, &
    1717       lwdown_m, q2m, t2m, &
    1818       snow, qsol, agesno, tsoil, &
     
    6161    REAL, DIMENSION(klon), INTENT(IN)       :: AcoefU, AcoefV, BcoefU, BcoefV
    6262    REAL, DIMENSION(klon), INTENT(IN)       :: pref   ! pressure reference
    63     REAL, DIMENSION(klon), INTENT(IN)       :: u1, v1
     63    REAL, DIMENSION(klon), INTENT(IN)       :: u1, v1, gustiness
    6464    REAL, DIMENSION(klon), INTENT(IN)       :: rugoro
    6565    REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf
     
    137137            knindex, rlon, rlat, pctsrf, &
    138138            debut, lafin, &
    139             zlev,  u1, v1, temp_air, spechum, epot_air, ccanopy, &
     139            zlev,  u1, v1, gustiness, temp_air, spechum, epot_air, ccanopy, &
    140140            cdragh, AcoefH, AcoefQ, BcoefH, BcoefQ, &
    141141            precip_rain, precip_snow, lwdown_m, swnet, swdown, &
     
    160160            tsurf, p1lay, cdragh, precip_rain, precip_snow, temp_air, &
    161161            spechum, AcoefH, AcoefQ, BcoefH, BcoefQ, pref, &
    162             u1, v1, rugoro, swnet, lwnet, &
     162            u1, v1, gustiness, rugoro, swnet, lwnet, &
    163163            snow, qsol, agesno, tsoil, &
    164164            qsurf, z0_new, alb1_new, alb2_new, evap, &
     
    175175    v0(:)=0.0
    176176    CALL calcul_flux_wind(knon, dtime, &
    177          u0, v0, u1, v1, cdragm, &
     177         u0, v0, u1, v1, gustiness, cdragm, &
    178178         AcoefU, AcoefV, BcoefU, BcoefV, &
    179179         p1lay, temp_air, &
  • LMDZ5/trunk/libf/phylmd/surf_land_orchidee_mod.F90

    r2126 r2240  
    3333       knindex, rlon, rlat, pctsrf, &
    3434       debut, lafin, &
    35        plev,  u1_lay, v1_lay, temp_air, spechum, epot_air, ccanopy, &
     35       plev,  u1_lay, v1_lay, gustiness, temp_air, spechum, epot_air, ccanopy, &
    3636       tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, &
    3737       precip_rain, precip_snow, lwdown, swnet, swdown, &
     
    115115    REAL, DIMENSION(klon), INTENT(IN)         :: rlon, rlat
    116116    REAL, DIMENSION(klon), INTENT(IN)         :: plev
    117     REAL, DIMENSION(klon), INTENT(IN)         :: u1_lay, v1_lay
     117    REAL, DIMENSION(klon), INTENT(IN)         :: u1_lay, v1_lay, gustiness
    118118    REAL, DIMENSION(klon), INTENT(IN)         :: temp_air, spechum
    119119    REAL, DIMENSION(klon), INTENT(IN)         :: epot_air, ccanopy
  • LMDZ5/trunk/libf/phylmd/surf_landice_mod.F90

    r2227 r2240  
    1515       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    1616       AcoefU, AcoefV, BcoefU, BcoefV, &
    17        ps, u1, v1, rugoro, pctsrf, &
     17       ps, u1, v1, gustiness, rugoro, pctsrf, &
    1818       snow, qsurf, qsol, agesno, &
    1919!albedo SB >>>
     
    5959    REAL, DIMENSION(klon), INTENT(IN)             :: AcoefU, AcoefV, BcoefU, BcoefV
    6060    REAL, DIMENSION(klon), INTENT(IN)             :: ps
    61     REAL, DIMENSION(klon), INTENT(IN)             :: u1, v1
     61    REAL, DIMENSION(klon), INTENT(IN)             :: u1, v1, gustiness
    6262    REAL, DIMENSION(klon), INTENT(IN)             :: rugoro
    6363    REAL, DIMENSION(klon,nbsrf), INTENT(IN)       :: pctsrf
     
    205205       
    206206       CALL calcul_flux_wind(knon, dtime, &
    207             u0, v0, u1, v1, cdragm, &
     207            u0, v0, u1, v1, gustiness, cdragm, &
    208208            AcoefU, AcoefV, BcoefU, BcoefV, &
    209209            p1lay, temp_air, &
     
    245245         tsurf, p1lay, cal, beta, cdragh, ps, &
    246246         precip_rain, precip_snow, snow, qsurf,  &
    247          radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &
     247         radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, &
    248248         AcoefH, AcoefQ, BcoefH, BcoefQ, &
    249249         tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
    250250
    251251    CALL calcul_flux_wind(knon, dtime, &
    252          u0, v0, u1, v1, cdragm, &
     252         u0, v0, u1, v1, gustiness, cdragm, &
    253253         AcoefU, AcoefV, BcoefU, BcoefV, &
    254254         p1lay, temp_air, &
  • LMDZ5/trunk/libf/phylmd/surf_ocean_mod.F90

    r2227 r2240  
    1414       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    1515       AcoefU, AcoefV, BcoefU, BcoefV, &
    16        ps, u1, v1, rugoro, pctsrf, &
     16       ps, u1, v1, gustiness, rugoro, pctsrf, &
    1717       snow, qsurf, agesno, &
    1818!albedo SB >>>
     
    6262    REAL, DIMENSION(klon), INTENT(IN)        :: AcoefU, AcoefV, BcoefU, BcoefV
    6363    REAL, DIMENSION(klon), INTENT(IN)        :: ps
    64     REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1
     64    REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1, gustiness
    6565    REAL, DIMENSION(klon), INTENT(IN)        :: rugoro
    6666    REAL, DIMENSION(klon,nbsrf), INTENT(IN)  :: pctsrf
     
    118118            AcoefH, AcoefQ, BcoefH, BcoefQ, &
    119119            AcoefU, AcoefV, BcoefU, BcoefV, &
    120             ps, u1, v1, &
     120            ps, u1, v1, gustiness, &
    121121            radsol, snow, agesno, &
    122122            qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    129129            AcoefH, AcoefQ, BcoefH, BcoefQ, &
    130130            AcoefU, AcoefV, BcoefU, BcoefV, &
    131             ps, u1, v1, tsurf_in, &
     131            ps, u1, v1, gustiness, tsurf_in, &
    132132            radsol, snow, &
    133133            qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    141141            AcoefH, AcoefQ, BcoefH, BcoefQ, &
    142142            AcoefU, AcoefV, BcoefU, BcoefV, &
    143             ps, u1, v1, &
     143            ps, u1, v1, gustiness, &
    144144            radsol, snow, agesno, &
    145145            qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
  • LMDZ5/trunk/libf/phylmd/surf_seaice_mod.F90

    r2227 r2240  
    1717       AcoefH, AcoefQ, BcoefH, BcoefQ, &
    1818       AcoefU, AcoefV, BcoefU, BcoefV, &
    19        ps, u1, v1, rugoro, pctsrf, &
     19       ps, u1, v1, gustiness, rugoro, pctsrf, &
    2020       snow, qsurf, qsol, agesno, tsoil, &
    2121!albedo SB >>>
     
    6060    REAL, DIMENSION(klon), INTENT(IN)        :: AcoefU, AcoefV, BcoefU, BcoefV
    6161    REAL, DIMENSION(klon), INTENT(IN)        :: ps
    62     REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1
     62    REAL, DIMENSION(klon), INTENT(IN)        :: u1, v1, gustiness
    6363    REAL, DIMENSION(klon), INTENT(IN)        :: rugoro
    6464    REAL, DIMENSION(klon,nbsrf), INTENT(IN)  :: pctsrf
     
    117117            AcoefH, AcoefQ, BcoefH, BcoefQ, &
    118118            AcoefU, AcoefV, BcoefU, BcoefV, &
    119             ps, u1, v1, pctsrf, &
     119            ps, u1, v1, gustiness, pctsrf, &
    120120            radsol, snow, qsurf, &
    121121            alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    128128          AcoefH, AcoefQ, BcoefH, BcoefQ, &
    129129            AcoefU, AcoefV, BcoefU, BcoefV, &
    130           ps, u1, v1, &
     130          ps, u1, v1, gustiness, &
    131131          radsol, snow, qsurf, qsol, agesno, &
    132132          alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
     
    139139            AcoefH, AcoefQ, BcoefH, BcoefQ, &
    140140            AcoefU, AcoefV, BcoefU, BcoefV, &
    141             ps, u1, v1, &
     141            ps, u1, v1, gustiness, &
    142142            radsol, snow, qsol, agesno, tsoil, &
    143143            qsurf, alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
Note: See TracChangeset for help on using the changeset viewer.