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

    r2241 r2243  
    1717       lwdown_m, q2m, t2m, &
    1818       snow, qsol, agesno, tsoil, &
    19        z0_new, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, &   
     19       z0m, z0h, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, &   
    2020       qsurf, tsurf_new, dflux_s, dflux_l, &
    2121       flux_u1, flux_v1 )
     
    7373! Output variables
    7474!****************************************************************************************
    75     REAL, DIMENSION(klon), INTENT(OUT)       :: z0_new
     75    REAL, DIMENSION(klon), INTENT(OUT)       :: z0m, z0h
    7676!albedo SB >>>
    7777!    REAL, DIMENSION(klon), INTENT(OUT)       :: alb1_new ! albdeo for shortwave interval 1(visible)
     
    140140            evap, fluxsens, fluxlat, &             
    141141            tsol_rad, tsurf_new, alb1_new, alb2_new, &
    142             emis_new, z0_new, qsurf)       
     142            emis_new, z0m, qsurf)       
     143        z0h(1:knon)=z0m(1:knon) ! En attendant mieux
    143144
    144145
     
    146147
    147148       DO i=1,knon
    148           z0_new(i) = MAX(1.5e-05,SQRT(z0_new(i)**2 + rugoro(i)**2))
     149          z0m(i) = MAX(1.5e-05,SQRT(z0m(i)**2 + rugoro(i)**2))
    149150       ENDDO
    150151
     
    159160            u1, v1, gustiness, rugoro, swnet, lwnet, &
    160161            snow, qsol, agesno, tsoil, &
    161             qsurf, z0_new, alb1_new, alb2_new, evap, &
     162            qsurf, z0m, alb1_new, alb2_new, evap, &
    162163            fluxsens, fluxlat, tsurf_new, dflux_s, dflux_l)
     164        z0h(1:knon)=z0m(1:knon) ! En attendant mieux
    163165
    164166    ENDIF ! ok_veget
Note: See TracChangeset for help on using the changeset viewer.