Ignore:
Timestamp:
Feb 16, 2018, 12:42:18 PM (6 years ago)
Author:
jyg
Message:

Implementation of a first crude model of the
dynamic of wake population.

File:
1 edited

Legend:

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

    r3000 r3208  
    44SUBROUTINE calwake(iflag_wake_tend, paprs, pplay, dtime, &
    55    t, q, omgb, &
    6     dt_dwn, dq_dwn, m_dwn, m_up, dt_a, dq_a, &
    7     sigd, &
    8     wake_deltat, wake_deltaq, wake_s, wake_dens, &
     6    dt_dwn, dq_dwn, m_dwn, m_up, dt_a, dq_a, wgen, &
     7    sigd, Cin, &
     8    wake_deltat, wake_deltaq, wake_s, awake_dens, wake_dens, &
    99    wake_dth, wake_h, &
    1010    wake_pe, wake_fip, wake_gfl, &
     
    1414    wake_omg, wake_dp_deltomg, &
    1515    wake_spread, wake_cstar, wake_d_deltat_gw, &
    16     wake_ddeltat, wake_ddeltaq, wake_ds, wake_ddens)
     16    wake_ddeltat, wake_ddeltaq, wake_ds, awake_ddens, wake_ddens)
    1717  ! **************************************************************
    1818  ! *
     
    4545  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: m_up, m_dwn
    4646  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: dt_a, dq_a
     47  REAL, DIMENSION(klon),         INTENT (IN)         :: wgen
    4748  REAL, DIMENSION(klon),         INTENT (IN)         :: sigd
     49  REAL, DIMENSION(klon),         INTENT (IN)         :: Cin
    4850  ! Input/Output
    4951  ! ------------
    5052  REAL, DIMENSION(klon, klev),   INTENT (INOUT)      :: wake_deltat, wake_deltaq
    5153  REAL, DIMENSION(klon),         INTENT (INOUT)      :: wake_s
    52   REAL, DIMENSION(klon),         INTENT (INOUT)      :: wake_dens
     54  REAL, DIMENSION(klon),         INTENT (INOUT)      :: awake_dens, wake_dens
    5355  ! Output
    5456  ! ------
     
    6769  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_cstar
    6870  REAL, DIMENSION(klon, klev),   INTENT (OUT)        :: wake_ddeltat, wake_ddeltaq
    69   REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_ds, wake_ddens
     71  REAL, DIMENSION(klon),         INTENT (OUT)        :: wake_ds, awake_ddens, wake_ddens
    7072
    7173
     
    8890  REAL, DIMENSION(klon, klev)                        :: tx, qx
    8991  REAL, DIMENSION(klon)                              :: hw, wape, fip, gfl
    90   REAL, DIMENSION(klon)                              :: sigmaw, wdens
     92  REAL, DIMENSION(klon)                              :: sigmaw, awdens, wdens
    9193  REAL, DIMENSION(klon, klev)                        :: omgbdth
    9294  REAL, DIMENSION(klon, klev)                        :: dp_omgb
     
    99101  REAL, DIMENSION(klon, klev)                        :: d_deltat_gw
    100102  REAL, DIMENSION(klon, klev)                        :: d_deltatw, d_deltaqw
    101   REAL, DIMENSION(klon)                              :: d_sigmaw, d_wdens
     103  REAL, DIMENSION(klon)                              :: d_sigmaw, d_awdens, d_wdens
    102104
    103105  REAL                                               :: rdcp
     
    105107
    106108  IF (prt_level >= 10) THEN
    107     print *, '-> calwake, wake_s input ', wake_s(1)
     109    print *, '-> calwake, wake_s, wgen input ', wake_s(1), wgen(1)
    108110  ENDIF
    109111
     
    147149d_deltaqw(:,:) = 0.
    148150d_sigmaw(:) = 0.
     151d_awdens(:) = 0.
    149152d_wdens(:) = 0.
    150153!
     
    179182
    180183  DO i = 1, klon
     184    awdens(i) = max(0., awake_dens(i))
    181185    wdens(i) = max(0., wake_dens(i))
    182186  END DO
     
    206210  CALL wake(znatsurf, p, ph, pi, dtime, &
    207211    te, qe, omgbe, &
    208     dtdwn, dqdwn, amdwn, amup, dta, dqa, &
    209     sigd0, &
    210     dtw, dqw, sigmaw, wdens, &                                   ! state variables
     212    dtdwn, dqdwn, amdwn, amup, dta, dqa, wgen, &
     213    sigd0, Cin, &
     214    dtw, dqw, sigmaw, awdens, wdens, &                                   ! state variables
    211215    dth, hw, wape, fip, gfl, &
    212216    dtls, dqls, ktopw, omgbdth, dp_omgb, tx, qx, &
    213217    dtke, dqke, omg, dp_deltomg, spread, cstar, &
    214218    d_deltat_gw, &
    215     d_deltatw, d_deltaqw, d_sigmaw, d_wdens)                     ! tendencies
     219    d_deltatw, d_deltaqw, d_sigmaw, d_awdens, d_wdens)                     ! tendencies
    216220
    217221!
     
    274278    IF (ktopw(i)>0) THEN
    275279      wake_ds(i) = d_sigmaw(i)*dtime
     280      awake_ddens(i) = d_awdens(i)*dtime
    276281      wake_ddens(i) = d_wdens(i)*dtime
    277282    ELSE
     
    298303    DO i = 1, klon
    299304      wake_s(i) = sigmaw(i)
     305      awake_dens(i) = awdens(i)
    300306      wake_dens(i) = wdens(i)
    301307    END DO
Note: See TracChangeset for help on using the changeset viewer.