Ignore:
Timestamp:
Mar 28, 2024, 6:06:40 PM (7 weeks ago)
Author:
evignon
Message:

extraction plus propre de la dissipation de TKE

File:
1 edited

Legend:

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

    r4804 r4881  
    77subroutine atke_compute_km_kh(ngrid,nlay,dtime, &
    88                        wind_u,wind_v,temp,qvap,play,pinterf,cdrag_uv, &
    9                         tke,Km_out,Kh_out)
     9                        tke,eps,Km_out,Kh_out)
    1010
    1111!========================================================================
     
    7070REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: wind_u   ! zonal velocity (m/s)
    7171REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: wind_v   ! meridional velocity (m/s)
    72 REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: temp   ! temperature (K)
    73 REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: qvap   ! specific humidity (kg/kg)
    74 REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: play   ! pressure (Pa)
    75 REAL, DIMENSION(ngrid,nlay+1), INTENT(IN)     :: pinterf   ! pressure at interfaces(Pa)
    76 REAL, DIMENSION(ngrid), INTENT(IN)            :: cdrag_uv   ! surface drag coefficient for momentum
    77 
    78 REAL, DIMENSION(ngrid,nlay+1), INTENT(INOUT)  :: tke  ! turbulent kinetic energy at interface between layers
    79 
    80 REAL, DIMENSION(ngrid,nlay), INTENT(OUT)      :: Km_out   ! output: Exchange coefficient for momentum at interface between layers
    81 REAL, DIMENSION(ngrid,nlay), INTENT(OUT)      :: Kh_out   ! output: Exchange coefficient for heat flux at interface between layers
     72REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: temp     ! temperature (K)
     73REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: qvap     ! specific humidity (kg/kg)
     74REAL, DIMENSION(ngrid,nlay), INTENT(IN)       :: play     ! pressure (Pa)
     75REAL, DIMENSION(ngrid,nlay+1), INTENT(IN)     :: pinterf  ! pressure at interfaces(Pa)
     76REAL, DIMENSION(ngrid), INTENT(IN)            :: cdrag_uv ! surface drag coefficient for momentum
     77
     78REAL, DIMENSION(ngrid,nlay+1), INTENT(INOUT)  :: tke      ! turbulent kinetic energy at interface between layers (m2/s2)
     79
     80REAL, DIMENSION(ngrid,nlay+1), INTENT(OUT)    :: eps      ! output: TKE dissipation rate at interface between layers (m2/s3)
     81REAL, DIMENSION(ngrid,nlay), INTENT(OUT)      :: Km_out   ! output: Exchange coefficient for momentum at interface between layers (m2/s)
     82REAL, DIMENSION(ngrid,nlay), INTENT(OUT)      :: Kh_out   ! output: Exchange coefficient for heat flux at interface between layers (m2/s)
    8283
    8384! Local variables
     
    259260                tke(igrid,ilay) = cepsilon * l_exchange(igrid,ilay)**2 * Sm(igrid,ilay) * &
    260261                shear2(igrid,ilay) * (1. - Ri(igrid,ilay) / Prandtl(igrid,ilay))
     262                eps(igrid,ilay) = (tke(igrid,ilay)**(3./2))/(cepsilon*l_exchange(igrid,ilay))
    261263            ENDDO
    262264        ENDDO
     
    275277            qq=(-2.*sqrt(2.)*cepsilon*l_exchange(igrid,ilay)/dtime + sqrt(delta))/2.
    276278            qq=max(0.,qq)
    277             tke(igrid,ilay)=0.5*(qq**2)
     279            tke(igrid,ilay)=0.5*(qq**2)
     280            eps(igrid,ilay) = (tke(igrid,ilay)**(3./2))/(cepsilon*l_exchange(igrid,ilay))
    278281            ENDDO
    279282        ENDDO
     
    292295                /(1.+qq*dtime/(cepsilon*l_exchange(igrid,ilay)*2.*sqrt(2.)))
    293296            tke(igrid,ilay)=0.5*(qq**2)
     297            eps(igrid,ilay) = (tke(igrid,ilay)**(3./2))/(cepsilon*l_exchange(igrid,ilay))
    294298            ENDDO
    295299        ENDDO
     
    302306        DO ilay=2,nlay
    303307            DO igrid=1,ngrid
     308            eps(igrid,ilay) = (tke(igrid,ilay)**(3./2))/(cepsilon*l_exchange(igrid,ilay))
    304309            qq=max(sqrt(2.*tke(igrid,ilay)),1.e-10)
    305310            IF (Ri(igrid,ilay) .LT. 0.) THEN
     
    327332            qq=max(0.,qq)
    328333            tke(igrid,ilay)=0.5*(qq**2)
     334            eps(igrid,ilay) = (tke(igrid,ilay)**(3./2))/(cepsilon*l_exchange(igrid,ilay))
    329335            ENDDO
    330336        ENDDO
Note: See TracChangeset for help on using the changeset viewer.