source: LMDZ6/trunk/libf/phylmd/add_wake_tend.F90 @ 5248

Last change on this file since 5248 was 4744, checked in by jyg, 13 months ago

Implementation of a two radii model for wake population dynamics.
It is activated with : iflag_wk_pop_dyn=3

File size: 2.4 KB
Line 
1SUBROUTINE add_wake_tend(zddeltat, zddeltaq, zds, zdas, zddensw, zddensaw, zoccur, text, abortphy)
2!===================================================================
3! Ajoute les tendances liées aux diverses parametrisations physiques aux
4! variables d'etat des poches froides.
5!===================================================================
6!======================================================================
7! Declarations
8!======================================================================
9
10USE dimphy, ONLY: klon, klev
11USE phys_state_var_mod, ONLY: wake_deltat, wake_deltaq, wake_s, awake_s,  &
12                              wake_dens, awake_dens
13
14USE print_control_mod, ONLY: prt_level
15IMPLICIT none
16
17! Arguments :
18!------------
19  REAL, DIMENSION(klon, klev),   INTENT (IN)         :: zddeltat, zddeltaq
20  REAL, DIMENSION(klon),         INTENT (IN)         :: zds, zdas, zddensw, zddensaw
21  INTEGER, DIMENSION(klon),      INTENT (IN)         :: zoccur
22  CHARACTER*(*),                 INTENT (IN)         :: text
23  INTEGER,                       INTENT (IN)         :: abortphy
24
25! Local :
26!--------
27
28INTEGER                                              :: i, l
29
30
31
32     IF (prt_level >= 5) then
33        write (*,*) "In add_wake_tend, after ",text
34        call flush
35     end if
36
37     IF (abortphy==1) RETURN ! on n ajoute pas les tendance si le modele
38                              ! a deja plante.
39
40!======================================================================
41!    Add tendencies to wake state variables
42!======================================================================
43         DO l = 1, klev
44           DO i = 1, klon
45             IF (zoccur(i) .GE. 1) THEN
46               wake_deltat(i, l) = wake_deltat(i, l) + zddeltat(i,l)
47               wake_deltaq(i, l) = wake_deltaq(i, l) + zddeltaq(i,l)
48             ELSE
49               wake_deltat(i, l) = 0.
50               wake_deltaq(i, l) = 0.
51             ENDIF   ! (zoccur(i) .GE. 1)
52           END DO
53         END DO
54         DO i = 1, klon
55           IF (zoccur(i) .GE. 1) THEN
56             wake_s(i)     = wake_s(i)    + zds(i)
57             awake_s(i)    = awake_s(i)    + zdas(i)
58             wake_dens(i)  = wake_dens(i) + zddensw(i)
59             awake_dens(i) = awake_dens(i) + zddensaw(i)
60           ELSE
61             wake_s(i)     = 0.
62             awake_s(i)    = 0.
63             wake_dens(i)  = 0.
64             awake_dens(i) = 0.
65           ENDIF   ! (zoccur(i) .GE. 1)
66         END DO
67
68RETURN
69END
Note: See TracBrowser for help on using the repository browser.