Ignore:
Timestamp:
Mar 24, 2015, 2:28:51 PM (9 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 2 :

  • Séparation des z0 pour la quantité de mouvement et l'enthalpie.

rugs (ou frugs, rugos, yrugos ...) disparait au profit de z0m, z0h.
Les variables qui étaient à la fois dans pbl_surface_init et

  • dans l'interface de pbl_surface sont suprimées de pbl_surface_init.

On travaille directement pour ces variables (evap, z0, qsol, agesno)
avec les versions de phys_state_var_mod (qui étaient
précédemment dans phys_local_var_mod

  • Nouveaux paramètres de contrôle :
    • iflag_z0_oce (par défaut 0, et seule option active jusque là)
    • z0m_seaice_omp, z0h_seaice_omp, comme leur nom l'indique (utilisées dans surf_landice
    • z0min appliqué sur z0m et z0h dans pbl_surface
  • Introduction des fonction phyeta0_get et phyetat0_srf pour lire

les conditions de initiales dans startphy.
Du coup une seule ligne suffit pour lire et contrôler d'éventuels
problèmes.

  • Pour la variable fxrugs, elle est remplacée par z0m(:,nbsrf+1)

Ce choix déjà utilisé pour d'autres variables pourrait être
systématiser pour alléger l'interface de pbl_surface_mod.

  • Dans les sorties, les variables rugs* ont été remplacées par

des z0m* et z0h*

  • Nettoyage des anciens alb1/alb2 dans les lectures/écritures

des états de redémarrage (et dans pbl_surface_mod.F90).

File:
1 edited

Legend:

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

    r2240 r2243  
    99!
    1010  SUBROUTINE surf_ocean(rlon, rlat, swnet, lwnet, alb1, &
    11        rugos, windsp, rmu0, fder, tsurf_in, &
     11       windsp, rmu0, fder, tsurf_in, &
    1212       itime, dtime, jour, knon, knindex, &
    1313       p1lay, cdragh, cdragm, precip_rain, precip_snow, temp_air, spechum, &
     
    1616       ps, u1, v1, gustiness, rugoro, pctsrf, &
    1717       snow, qsurf, agesno, &
    18 !albedo SB >>>
    19 !      z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, &
    20        z0_new, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, &
    21 !albedo SB <<<
     18       z0m, z0h, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, &
    2219       tsurf_new, dflux_s, dflux_l, lmt_bils, &
    2320       flux_u1, flux_v1)
     
    4946    REAL, DIMENSION(klon), INTENT(IN)        :: lwnet  ! net longwave radiation at surface 
    5047    REAL, DIMENSION(klon), INTENT(IN)        :: alb1   ! albedo in visible SW interval
    51     REAL, DIMENSION(klon), INTENT(IN)        :: rugos
    5248    REAL, DIMENSION(klon), INTENT(IN)        :: windsp
    5349    REAL, DIMENSION(klon), INTENT(IN)        :: rmu0 
     
    7470! Output variables
    7571!****************************************************************************************
    76     REAL, DIMENSION(klon), INTENT(OUT)       :: z0_new
     72    REAL, DIMENSION(klon), INTENT(OUT)       :: z0m, z0h
    7773!albedo SB >>>
    7874!    REAL, DIMENSION(klon), INTENT(OUT)       :: alb1_new  ! new albedo in visible SW interval
     
    188184!
    189185!****************************************************************************************
     186IF (iflag_z0_oce==0) THEN
    190187    DO i = 1, knon
    191188       tmp = MAX(cepdu2,u1(i)**2+v1(i)**2)
    192        z0_new(i) = 0.018*cdragm(i) * (u1(i)**2+v1(i)**2)/RG  &
     189       z0m(i) = 0.018*cdragm(i) * (u1(i)**2+v1(i)**2)/RG  &
    193190            +  0.11*14e-6 / SQRT(cdragm(i) * tmp)
    194        z0_new(i) = MAX(1.5e-05,z0_new(i))
     191       z0m(i) = MAX(1.5e-05,z0m(i))
    195192    ENDDO   
     193    z0h(1:knon)=z0m(1:knon) ! En attendant mieux
     194
     195ELSE
     196       STOP'Alina, au boulot :)'
     197ENDIF
    196198!
    197199!****************************************************************************************
Note: See TracChangeset for help on using the changeset viewer.