Ignore:
Timestamp:
May 31, 2017, 12:34:09 AM (7 years ago)
Author:
fhourdin
Message:

Introduction d'une possible prise en compte de génération de TKE
par les ondes de relief.
Etienne Vignon et FH

File:
1 edited

Legend:

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

    r2882 r2897  
    6969       d_t_oli,d_u_oli,d_v_oli, &
    7070       d_t_oro,d_u_oro,d_v_oro, &
     71       d_t_oro_gw,d_u_oro_gw,d_v_oro_gw, &
    7172       d_t_lif,d_u_lif,d_v_lif, &
    7273       d_t_ec, &
     
    434435    REAL d_qx(klon,klev,nqtot)
    435436    REAL d_ps(klon)
     437  ! variables pour tend_to_tke
     438    REAL duadd(klon,klev)
     439    REAL dvadd(klon,klev)
     440    REAL dtadd(klon,klev)
     441
    436442    ! Variables pour le transport convectif
    437443    real da(klon,klev),phi(klon,klev,klev),mp(klon,klev)
     
    606612    REAL, SAVE :: alp_offset
    607613    !$OMP THREADPRIVATE(alp_offset)
    608 
     614 
    609615    !
    610616    !RR:fin declarations poches froides
     
    640646    real therm_tke_max(klon,klev)   ! Profil de TKE dans les thermiques
    641647    real env_tke_max(klon,klev)     ! Profil de TKE dans l'environnement
     648
     649    !-------Activer les tendances de TKE due a l'orograp??ie---------
     650     INTEGER, SAVE :: addtkeoro
     651    !$OMP THREADPRIVATE(addtkeoro)
     652     REAL, SAVE :: alphatkeoro
     653    !$OMP THREADPRIVATE(alphatkeoro)
     654     LOGICAL, SAVE :: smallscales_tkeoro
     655    !$OMP THREADPRIVATE(smallscales_tkeoro)
     656
    642657
    643658
     
    780795    real zqsat(klon,klev)
    781796    !
    782     INTEGER i, k, iq, nsrf, l
     797    INTEGER i, k, iq, j, nsrf, ll, l
    783798    !
    784799    REAL t_coup
     
    22442259!>jyg
    22452260       ENDIF
     2261
     2262
     2263
    22462264
    22472265
     
    38703888       IF (ok_strato) THEN
    38713889
    3872           CALL drag_noro_strato(klon,klev,dtime,paprs,pplay, &
     3890          CALL drag_noro_strato(0,klon,klev,dtime,paprs,pplay, &
    38733891               zmea,zstd, zsig, zgam, zthe,zpic,zval, &
    38743892               igwd,idx,itest, &
     
    40454063    !
    40464064    !
     4065
     4066!===============================================================
     4067!            Additional tendency of TKE due to orography
     4068!===============================================================
     4069!
     4070! Inititialization
     4071!------------------
     4072
     4073   
     4074
     4075       addtkeoro=0   
     4076       CALL getin_p('addtkeoro',addtkeoro)
     4077     
     4078       IF (prt_level.ge.5) &
     4079            print*,'addtkeoro', addtkeoro
     4080           
     4081       alphatkeoro=1.   
     4082       CALL getin_p('alphatkeoro',alphatkeoro)
     4083       alphatkeoro=min(max(0.,alphatkeoro),1.)
     4084
     4085       smallscales_tkeoro=.false.   
     4086       CALL getin_p('smallscales_tkeoro',smallscales_tkeoro)
     4087
     4088
     4089        dtadd(:,:)=0.
     4090        duadd(:,:)=0.
     4091        dvadd(:,:)=0.
     4092
     4093
     4094
     4095! Choices for addtkeoro:
     4096!      ** 0 no TKE tendency from orography   
     4097!      ** 1 we include a fraction alphatkeoro of the whole tendency duoro
     4098!      ** 2 we include a fraction alphatkeoro of the gravity wave part of duoro
     4099!
     4100
     4101       IF (addtkeoro .GT. 0 .AND. ok_orodr ) THEN
     4102!      -------------------------------------------
     4103
     4104
     4105       !  selection des points pour lesquels le schema est actif:
     4106
     4107
     4108
     4109  IF (addtkeoro .EQ. 1 ) THEN
     4110
     4111            duadd(:,:)=alphatkeoro*d_u_oro(:,:)
     4112            dvadd(:,:)=alphatkeoro*d_v_oro(:,:)
     4113
     4114  ELSE IF (addtkeoro .EQ. 2) THEN
     4115
     4116
     4117
     4118       IF (smallscales_tkeoro) THEN
     4119       igwd=0
     4120       DO i=1,klon
     4121          itest(i)=0
     4122! Etienne: ici je prends en compte plus de relief que la routine drag_noro_strato
     4123! car on peut s'attendre a ce que les petites echelles produisent aussi de la TKE
     4124! Mais attention, cela ne va pas dans le sens de la conservation de l'energie!
     4125          IF (zstd(i).GT.1.0) THEN
     4126             itest(i)=1
     4127             igwd=igwd+1
     4128             idx(igwd)=i
     4129          ENDIF
     4130       ENDDO
     4131
     4132     ELSE
     4133
     4134       igwd=0
     4135       DO i=1,klon
     4136          itest(i)=0
     4137        IF (((zpic(i)-zmea(i)).GT.100.).AND.(zstd(i).GT.10.0)) THEN
     4138             itest(i)=1
     4139             igwd=igwd+1
     4140             idx(igwd)=i
     4141          ENDIF
     4142       ENDDO
     4143
     4144       END IF
     4145
     4146
     4147
     4148
     4149       CALL drag_noro_strato(addtkeoro,klon,klev,dtime,paprs,pplay, &
     4150               zmea,zstd, zsig, zgam, zthe,zpic,zval, &
     4151               igwd,idx,itest, &
     4152               t_seri, u_seri, v_seri, &
     4153               zulow, zvlow, zustrdr, zvstrdr, &
     4154               d_t_oro_gw, d_u_oro_gw, d_v_oro_gw)
     4155
     4156            zustrdr(:)=0.
     4157            zvstrdr(:)=0.
     4158            zulow(:)=0.
     4159            zvlow(:)=0.
     4160
     4161            duadd(:,:)=alphatkeoro*d_u_oro_gw(:,:)
     4162            dvadd(:,:)=alphatkeoro*d_v_oro_gw(:,:)
     4163 END IF
     4164   
     4165
     4166
     4167   ! TKE update from subgrid temperature and wind tendencies
     4168   !----------------------------------------------------------
     4169    forall (k=1: nbp_lev) exner(:, k) = (pplay(:, k)/paprs(:,1))**RKAPPA
     4170
     4171
     4172    CALL tend_to_tke(pdtphys,paprs,exner,t_seri,u_seri,v_seri,dtadd,duadd,dvadd,pbl_tke)
     4173
     4174
     4175
     4176       ENDIF
     4177!      -----
     4178!===============================================================
     4179
     4180
     4181
    40474182    !====================================================================
    40484183    ! Interface Simulateur COSP (Calipso, ISCCP, MISR, ..)
Note: See TracChangeset for help on using the changeset viewer.