1 | SUBROUTINE add_pbl_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text,abortphy,flag_inhib_tend) |
---|
2 | ! ====================================================================== |
---|
3 | ! Ajoute les tendances de couche limite, soit determinees par la |
---|
4 | ! parametrisation |
---|
5 | ! physique, soit forcees, aux variables d etat de la dynamique t_seri, |
---|
6 | ! q_seri ... |
---|
7 | ! ====================================================================== |
---|
8 | |
---|
9 | |
---|
10 | ! ====================================================================== |
---|
11 | ! Declarations |
---|
12 | ! ====================================================================== |
---|
13 | |
---|
14 | USE dimphy |
---|
15 | USE phys_local_var_mod |
---|
16 | USE phys_state_var_mod |
---|
17 | USE mod_grid_phy_lmdz, ONLY: nbp_lev |
---|
18 | IMPLICIT NONE |
---|
19 | REAL,SAVE,ALLOCATABLE :: hthturb_gcssold(:) |
---|
20 | REAL,SAVE,ALLOCATABLE :: hqturb_gcssold(:) |
---|
21 | !$OMP THREADPRIVATE(hthturb_gcssold,hqturb_gcssold) |
---|
22 | REAL,SAVE :: dtime_frcg |
---|
23 | LOGICAL,SAVE :: turb_fcg_gcssold |
---|
24 | LOGICAL,SAVE :: firstcall=.true. |
---|
25 | !$OMP THREADPRIVATE(firstcall,turb_fcg_gcssold,dtime_frcg) |
---|
26 | INTEGER abortphy |
---|
27 | ! COMMON /turb_forcing/dtime_frcg, hthturb_gcssold, hqturb_gcssold, & |
---|
28 | ! turb_fcg_gcssold |
---|
29 | |
---|
30 | ! Arguments : |
---|
31 | ! ------------ |
---|
32 | REAL zdu(klon, klev), zdv(klon, klev) |
---|
33 | REAL zdt(klon, klev), zdq(klon, klev), zdql(klon, klev), zdqi(klon, klev) |
---|
34 | CHARACTER *(*) text |
---|
35 | REAL paprs(klon,klev+1) |
---|
36 | INTEGER flag_inhib_tend ! if flag_inhib_tend != 0, tendencies are not added |
---|
37 | |
---|
38 | ! Local : |
---|
39 | ! -------- |
---|
40 | REAL zzdt(klon, klev), zzdq(klon, klev) |
---|
41 | INTEGER i, k |
---|
42 | |
---|
43 | IF (firstcall) THEN |
---|
44 | ALLOCATE(hthturb_gcssold(nbp_lev)) |
---|
45 | ALLOCATE(hqturb_gcssold(nbp_lev)) |
---|
46 | firstcall=.false. |
---|
47 | ENDIF |
---|
48 | |
---|
49 | IF (turb_fcg_gcssold) THEN |
---|
50 | DO k = 1, klev |
---|
51 | DO i = 1, klon |
---|
52 | zzdt(i, k) = hthturb_gcssold(k)*dtime_frcg |
---|
53 | zzdq(i, k) = hqturb_gcssold(k)*dtime_frcg |
---|
54 | END DO |
---|
55 | END DO |
---|
56 | PRINT *, ' add_pbl_tend, dtime_frcg ', dtime_frcg |
---|
57 | PRINT *, ' add_pbl_tend, zzdt ', zzdt |
---|
58 | PRINT *, ' add_pbl_tend, zzdq ', zzdq |
---|
59 | CALL add_phys_tend(zdu, zdv, zzdt, zzdq, zdql, zdqi, paprs, text,abortphy,flag_inhib_tend) |
---|
60 | ELSE |
---|
61 | CALL add_phys_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text,abortphy,flag_inhib_tend) |
---|
62 | END IF |
---|
63 | |
---|
64 | |
---|
65 | RETURN |
---|
66 | END SUBROUTINE add_pbl_tend |
---|