Changeset 2309 for LMDZ5/trunk


Ignore:
Timestamp:
Jun 23, 2015, 6:08:54 PM (9 years ago)
Author:
jyg
Message:

Modification of physiq.F90: when wakes are
present, an adiabatic adjustment is applied to the
wake region before calling the Emanuel convection
scheme. The switch 'ok_adjwk', read from .def
files, controls this adjustment.

File:
1 edited

Legend:

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

    r2295 r2309  
    406406  REAL dt_a(klon,klev)
    407407  REAL dq_a(klon,klev)
     408  REAL d_t_adjwk(klon,klev)                !jyg
     409  REAL d_q_adjwk(klon,klev)                !jyg
     410  LOGICAL,SAVE :: ok_adjwk=.FALSE.
     411  !$OMP THREADPRIVATE(ok_adjwk)
    408412  REAL, dimension(klon) :: www
    409413  REAL, SAVE :: alp_offset
     
    9991003     CALL suphel ! initialiser constantes et parametres phys.
    10001004     CALL getin_p('random_notrig_max',random_notrig_max)
     1005     CALL getin_p('ok_adjwk',ok_adjwk)
    10011006  ENDIF
    10021007
     
    21392144        enddo
    21402145     enddo
     2146!
     2147!jyg<
     2148     ! Perform dry adiabatic adjustment on wake profile
     2149     ! The corresponding tendencies are added to the convective tendencies
     2150     ! after the call to the convective scheme.
     2151     IF (iflag_wake>=1) then
     2152      IF (ok_adjwk) THEN
     2153        limbas(:) = 1
     2154        CALL ajsec(paprs, pplay, t_wake, q_wake, limbas, &
     2155                  d_t_adjwk, d_q_adjwk)
     2156      ELSE
     2157      DO k=1,klev
     2158         DO i=1,klon
     2159           d_t_adjwk(i,k) = 0.
     2160           d_q_adjwk(i,k) = 0.
     2161         ENDDO
     2162      ENDDO
     2163     ENDIF
     2164!
     2165     DO k=1,klev
     2166        DO i=1,klon
     2167          t_wake(i,k) = t_wake(i,k) + d_t_adjwk(i,k)
     2168          q_wake(i,k) = q_wake(i,k) + d_q_adjwk(i,k)
     2169          wake_deltat(i,k) = wake_deltat(i,k) + d_t_adjwk(i,k)
     2170          wake_deltaq(i,k) = wake_deltaq(i,k) + d_q_adjwk(i,k)
     2171        ENDDO
     2172     ENDDO
     2173     ENDIF ! (iflag_wake>=1)
     2174!>jyg
     2175!
    21412176
    21422177     ! Calcul de l'energie disponible ALE (J/kg) et de la puissance
     
    23282363           if (iflagctrl(i).le.1) itau_con(i)=itau_con(i)+1
    23292364        enddo
    2330 
     2365!
     2366!jyg<
     2367!    Add the tendency due to the dry adjustment of the wake profile
     2368       DO k=1,klev
     2369          DO i=1,klon
     2370          ftd(i,k) = ftd(i,k) + wake_s(i)*d_t_adjwk(i,k)/dtime
     2371          fqd(i,k) = fqd(i,k) + wake_s(i)*d_q_adjwk(i,k)/dtime
     2372          d_t_con(i,k) = d_t_con(i,k) + wake_s(i)*d_t_adjwk(i,k)
     2373          d_q_con(i,k) = d_q_con(i,k) + wake_s(i)*d_q_adjwk(i,k)
     2374          enddo
     2375       enddo
     2376!>jyg
     2377!
    23312378     ELSE ! ok_cvl
    23322379
Note: See TracChangeset for help on using the changeset viewer.