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/etat0_netcdf.F90

    r2239 r2243  
    5454#include "dimsoil.h"
    5555#include "temps.h"
    56   REAL,    DIMENSION(klon)                 :: tsol, qsol
     56  REAL,    DIMENSION(klon)                 :: tsol
    5757  REAL,    DIMENSION(klon)                 :: sn, rugmer, run_off_lic_0
    5858  REAL,    DIMENSION(iip1,jjp1)            :: orog, rugo, psol
     
    6161  REAL,    DIMENSION(iip1,jjm ,llm)        :: vvent
    6262  REAL,    DIMENSION(:,:,:,:), ALLOCATABLE :: q3d
    63   REAL,    DIMENSION(klon,nbsrf)           :: qsolsrf, snsrf, evap
    64   REAL,    DIMENSION(klon,nbsrf)           :: frugs, agesno
     63  REAL,    DIMENSION(klon,nbsrf)           :: qsolsrf, snsrf
    6564  REAL,    DIMENSION(klon,nsoilmx,nbsrf)   :: tsoil
    6665
     
    480479  DO i=1,nbsrf; ftsol(:,i) = tsol; END DO
    481480  DO i=1,nbsrf; snsrf(:,i) = sn;   END DO
    482   falb1(:,is_ter) = 0.08; falb1(:,is_lic) = 0.6
    483   falb1(:,is_oce) = 0.5;  falb1(:,is_sic) = 0.6
    484   falb2 = falb1
    485481!albedo SB >>>
    486482  falb_dir(:,is_ter,:)=0.08; falb_dir(:,is_lic,:)=0.6
    487483  falb_dir(:,is_oce,:)=0.5;  falb_dir(:,is_sic,:)=0.6
    488484!albedo SB <<<
    489   evap(:,:) = 0.
     485  fevap(:,:) = 0.
    490486  DO i=1,nbsrf; qsolsrf(:,i)=150.; END DO
    491487  DO i=1,nbsrf; DO j=1,nsoilmx; tsoil(:,j,i) = tsol; END DO; END DO
     
    495491  q_ancien = 0.
    496492  agesno = 0.
    497   frugs(:,is_oce) = rugmer(:)
    498   frugs(:,is_ter) = MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
    499   frugs(:,is_lic) = MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
    500   frugs(:,is_sic) = 0.001
     493
     494  z0m(:,is_oce) = rugmer(:)
     495  z0m(:,is_ter) = MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
     496  z0m(:,is_lic) = MAX(1.0e-05,zstd(:)*zsig(:)/2.0)
     497  z0m(:,is_sic) = 0.001
     498  z0h(:,:)=z0m(:,:)
     499
    501500  fder = 0.0
    502501  clwcon = 0.0
     
    526525
    527526  CALL fonte_neige_init(run_off_lic_0)
    528   CALL pbl_surface_init( qsol, fder, snsrf, qsolsrf, evap, frugs, agesno, tsoil )
     527  CALL pbl_surface_init( fder, snsrf, qsolsrf, tsoil )
    529528  CALL phyredem( "startphy.nc" )
    530529
Note: See TracChangeset for help on using the changeset viewer.