Ignore:
Timestamp:
Feb 12, 2018, 1:24:03 AM (7 years ago)
Author:
fhourdin
Message:

Retour vers l'insensibilite au decoupage en sous domaine.
Les routines gwd_rando incluait le calcul de niveaux de reference
sur la base d'un profile pris au milieu du domaine (en klon/2).
Rempace par un test en presnivs.

Une autre intercation entre routines concernant la tke a fait apparaitre
que la tke n'était pas passee correctement au niveau klev+1 au moment
du regroupement des mailles sous les sous surface.

Ces changements garantissent la convergence numerique si
addtkeoro=0
iflag_pbl<12
et
ok_gwd_rando=n
La convergence n'est pas garantie pour les dernieres versions des physiq.def
mais les differences devraient etre mineures.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/tend_to_tke.F90

    r3188 r3198  
    3232!**************************************************************************************
    3333
    34  SUBROUTINE tend_to_tke(dt,plev,exner,temp,windu,windv,dt_a,du_a,dv_a,tke)
     34 SUBROUTINE tend_to_tke(dt,plev,exner,temp,windu,windv,dt_a,du_a,dv_a,pctsrf,tke)
    3535
    3636 USE dimphy, ONLY: klon, klev
     
    5353  REAL du_a(klon,klev)      ! Zonal wind speed tendency [m/s], grid-cell average or for a one subsurface
    5454  REAL dv_a(klon,klev)      ! Meridional wind speed tendency [m/s], grid-cell average or for a one subsurface
     55  REAL pctsrf(klon,nbsrf+1)       ! Turbulent Kinetic energy [m2/s2], grid-cell average or for a subsurface
    5556
    5657! Inputs/Outputs
     
    119120
    120121
    121  DO isrf=1,nbsrf
     122 DO isrf=1,nsrf
    122123    DO k=1,klev
    123        tke(:,k,isrf)= tke(:,k,isrf)+tendu(:,k)+tendv(:,k)+tendt(:,k)
    124        tke(:,k,isrf)= max(tke(:,k,isrf),1.e-10)
     124       DO i=1,klon
     125          IF (pctsrf(i,isrf)>0.) THEN
     126            tke(i,k,isrf)= tke(i,k,isrf)+tendu(i,k)+tendv(i,k)+tendt(i,k)
     127            tke(i,k,isrf)= max(tke(i,k,isrf),1.e-10)
     128          ENDIF
     129       ENDDO
    125130    ENDDO
    126131 ENDDO
    127 
    128 ! dtke_t(:,:)=tendt(:,:)
    129 ! dtke_u(:,:)=tendu(:,:)
    130 ! dtke_v(:,:)=tendv(:,:)
    131132
    132133
Note: See TracChangeset for help on using the changeset viewer.