1 | ! |
---|
2 | ! $Id: phys_local_var_mod.F90 1179 2009-06-11 14:18:47Z jghattas $ |
---|
3 | ! |
---|
4 | MODULE phys_local_var_mod |
---|
5 | ! Variables locales pour effectuer les appels en serie |
---|
6 | !====================================================================== |
---|
7 | ! |
---|
8 | ! |
---|
9 | !====================================================================== |
---|
10 | ! Declaration des variables |
---|
11 | |
---|
12 | REAL, SAVE, ALLOCATABLE :: t_seri(:,:), q_seri(:,:) |
---|
13 | !$OMP THREADPRIVATE(t_seri, q_seri) |
---|
14 | REAL, SAVE, ALLOCATABLE :: ql_seri(:,:),qs_seri(:,:) |
---|
15 | !$OMP THREADPRIVATE(ql_seri,qs_seri) |
---|
16 | REAL, SAVE, ALLOCATABLE :: u_seri(:,:), v_seri(:,:) |
---|
17 | !$OMP THREADPRIVATE(u_seri, v_seri) |
---|
18 | |
---|
19 | REAL, SAVE, ALLOCATABLE :: tr_seri(:,:,:) |
---|
20 | !$OMP THREADPRIVATE(tr_seri) |
---|
21 | REAL, SAVE, ALLOCATABLE :: d_t_dyn(:,:), d_q_dyn(:,:) |
---|
22 | !$OMP THREADPRIVATE(d_t_dyn, d_q_dyn) |
---|
23 | REAL, SAVE, ALLOCATABLE :: d_u_dyn(:,:), d_v_dyn(:,:) |
---|
24 | !$OMP THREADPRIVATE(d_u_dyn, d_v_dyn) |
---|
25 | REAL, SAVE, ALLOCATABLE :: d_t_con(:,:),d_q_con(:,:) |
---|
26 | !$OMP THREADPRIVATE(d_t_con,d_q_con) |
---|
27 | REAL, SAVE, ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:) |
---|
28 | !$OMP THREADPRIVATE(d_u_con,d_v_con) |
---|
29 | REAL, SAVE, ALLOCATABLE :: d_t_wake(:,:),d_q_wake(:,:) |
---|
30 | !$OMP THREADPRIVATE( d_t_wake,d_q_wake) |
---|
31 | REAL, SAVE, ALLOCATABLE :: d_t_lsc(:,:),d_q_lsc(:,:),d_ql_lsc(:,:) |
---|
32 | !$OMP THREADPRIVATE(d_t_lsc,d_q_lsc,d_ql_lsc) |
---|
33 | REAL, SAVE, ALLOCATABLE :: d_t_ajsb(:,:), d_q_ajsb(:,:) |
---|
34 | !$OMP THREADPRIVATE(d_t_ajsb, d_q_ajsb) |
---|
35 | REAL, SAVE, ALLOCATABLE :: d_t_ajs(:,:), d_q_ajs(:,:) |
---|
36 | !$OMP THREADPRIVATE(d_t_ajs, d_q_ajs) |
---|
37 | REAL, SAVE, ALLOCATABLE :: d_u_ajs(:,:), d_v_ajs(:,:) |
---|
38 | !$OMP THREADPRIVATE(d_u_ajs, d_v_ajs) |
---|
39 | REAL, SAVE, ALLOCATABLE :: d_t_eva(:,:),d_q_eva(:,:) |
---|
40 | !$OMP THREADPRIVATE(d_t_eva,d_q_eva) |
---|
41 | !tendances dues a oro et lif |
---|
42 | REAL, SAVE, ALLOCATABLE :: d_t_oli(:,:) |
---|
43 | !$OMP THREADPRIVATE(d_t_oli) |
---|
44 | REAL, SAVE, ALLOCATABLE :: d_u_oli(:,:), d_v_oli(:,:) |
---|
45 | !$OMP THREADPRIVATE(d_u_oli, d_v_oli) |
---|
46 | REAL, SAVE, ALLOCATABLE :: d_t_vdf(:,:), d_q_vdf(:,:) |
---|
47 | !$OMP THREADPRIVATE( d_t_vdf, d_q_vdf) |
---|
48 | REAL, SAVE, ALLOCATABLE :: d_u_vdf(:,:), d_v_vdf(:,:) |
---|
49 | !$OMP THREADPRIVATE(d_u_vdf, d_v_vdf) |
---|
50 | REAL, SAVE, ALLOCATABLE :: d_t_oro(:,:) |
---|
51 | !$OMP THREADPRIVATE(d_t_oro) |
---|
52 | REAL, SAVE, ALLOCATABLE :: d_u_oro(:,:), d_v_oro(:,:) |
---|
53 | !$OMP THREADPRIVATE(d_u_oro, d_v_oro) |
---|
54 | REAL, SAVE, ALLOCATABLE :: d_t_lif(:,:) |
---|
55 | !$OMP THREADPRIVATE(d_t_lif) |
---|
56 | REAL, SAVE, ALLOCATABLE :: d_u_lif(:,:), d_v_lif(:,:) |
---|
57 | !$OMP THREADPRIVATE(d_u_lif, d_v_lif) |
---|
58 | ! Tendances Ondes de G non oro (runs strato). |
---|
59 | REAL, SAVE, ALLOCATABLE :: d_u_hin(:,:) |
---|
60 | !$OMP THREADPRIVATE(d_u_hin) |
---|
61 | REAL, SAVE, ALLOCATABLE :: d_v_hin(:,:) |
---|
62 | !$OMP THREADPRIVATE(d_v_hin) |
---|
63 | REAL, SAVE, ALLOCATABLE :: d_t_hin(:,:) |
---|
64 | !$OMP THREADPRIVATE(d_t_hin) |
---|
65 | |
---|
66 | ! tendance du a la conersion Ec -> E thermique |
---|
67 | REAL, SAVE, ALLOCATABLE :: d_t_ec(:,:) |
---|
68 | !$OMP THREADPRIVATE(d_t_ec) |
---|
69 | REAL, SAVE, ALLOCATABLE :: d_ts(:,:), d_tr(:,:,:) |
---|
70 | !$OMP THREADPRIVATE(d_ts, d_tr) |
---|
71 | |
---|
72 | ! diagnostique pour le rayonnement |
---|
73 | REAL, SAVE, ALLOCATABLE :: topswad_aero(:), solswad_aero(:) ! diag |
---|
74 | !$OMP THREADPRIVATE(topswad_aero,solswad_aero) |
---|
75 | REAL, SAVE, ALLOCATABLE :: topswai_aero(:), solswai_aero(:) ! diag |
---|
76 | !$OMP THREADPRIVATE(topswai_aero,solswai_aero) |
---|
77 | REAL, SAVE, ALLOCATABLE :: topswad0_aero(:), solswad0_aero(:) ! pas utilise, eventuellment pour diag |
---|
78 | !$OMP THREADPRIVATE(topswad0_aero,solswad0_aero) |
---|
79 | REAL, SAVE, ALLOCATABLE :: topsw_aero(:,:), solsw_aero(:,:) ! pas utilise, eventuellment pour diag |
---|
80 | !$OMP THREADPRIVATE(topsw_aero,solsw_aero) |
---|
81 | REAL, SAVE, ALLOCATABLE :: topsw0_aero(:,:), solsw0_aero(:,:) ! pas utilise, eventuellment pour diag |
---|
82 | !$OMP THREADPRIVATE(topsw0_aero,solsw0_aero) |
---|
83 | CONTAINS |
---|
84 | |
---|
85 | !====================================================================== |
---|
86 | SUBROUTINE phys_local_var_init |
---|
87 | use dimphy |
---|
88 | use infotrac, ONLY : nbtr |
---|
89 | IMPLICIT NONE |
---|
90 | #include "indicesol.h" |
---|
91 | allocate(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev)) |
---|
92 | allocate(u_seri(klon,klev),v_seri(klon,klev)) |
---|
93 | |
---|
94 | allocate(tr_seri(klon,klev,nbtr)) |
---|
95 | allocate(d_t_dyn(klon,klev),d_q_dyn(klon,klev)) |
---|
96 | allocate(d_u_dyn(klon,klev),d_v_dyn(klon,klev)) |
---|
97 | allocate(d_t_con(klon,klev),d_q_con(klon,klev)) |
---|
98 | allocate(d_u_con(klon,klev),d_v_con(klon,klev)) |
---|
99 | allocate(d_t_wake(klon,klev),d_q_wake(klon,klev)) |
---|
100 | allocate(d_t_lsc(klon,klev),d_q_lsc(klon,klev)) |
---|
101 | allocate(d_ql_lsc(klon,klev)) |
---|
102 | allocate(d_t_ajsb(klon,klev),d_q_ajsb(klon,klev)) |
---|
103 | allocate(d_t_ajs(klon,klev),d_q_ajs(klon,klev)) |
---|
104 | allocate(d_u_ajs(klon,klev),d_v_ajs(klon,klev)) |
---|
105 | allocate(d_t_eva(klon,klev),d_q_eva(klon,klev)) |
---|
106 | allocate(d_t_vdf(klon,klev),d_q_vdf(klon,klev)) |
---|
107 | allocate(d_u_vdf(klon,klev),d_v_vdf(klon,klev)) |
---|
108 | allocate(d_t_oli(klon,klev),d_t_oro(klon,klev)) |
---|
109 | allocate(d_u_oli(klon,klev),d_v_oli(klon,klev)) |
---|
110 | allocate(d_u_oro(klon,klev),d_v_oro(klon,klev)) |
---|
111 | allocate(d_t_lif(klon,klev),d_t_ec(klon,klev)) |
---|
112 | allocate(d_u_lif(klon,klev),d_v_lif(klon,klev)) |
---|
113 | allocate(d_ts(klon,klev), d_tr(klon,klev,nbtr)) |
---|
114 | allocate(topswad_aero(klon), solswad_aero(klon)) |
---|
115 | allocate(topswai_aero(klon), solswai_aero(klon)) |
---|
116 | allocate(topswad0_aero(klon), solswad0_aero(klon)) |
---|
117 | allocate(topsw_aero(klon,9), solsw_aero(klon,9)) |
---|
118 | allocate(topsw0_aero(klon,9), solsw0_aero(klon,9)) |
---|
119 | allocate(d_u_hin(klon,klev),d_v_hin(klon,klev),d_t_hin(klon,klev)) |
---|
120 | |
---|
121 | END SUBROUTINE phys_local_var_init |
---|
122 | |
---|
123 | !====================================================================== |
---|
124 | SUBROUTINE phys_local_var_end |
---|
125 | use dimphy |
---|
126 | IMPLICIT NONE |
---|
127 | #include "indicesol.h" |
---|
128 | deallocate(t_seri,q_seri,ql_seri,qs_seri) |
---|
129 | deallocate(u_seri,v_seri) |
---|
130 | |
---|
131 | deallocate(tr_seri) |
---|
132 | deallocate(d_t_dyn,d_q_dyn) |
---|
133 | deallocate(d_u_dyn,d_v_dyn) |
---|
134 | deallocate(d_t_con,d_q_con) |
---|
135 | deallocate(d_u_con,d_v_con) |
---|
136 | deallocate(d_t_wake,d_q_wake) |
---|
137 | deallocate(d_t_lsc,d_q_lsc) |
---|
138 | deallocate(d_ql_lsc) |
---|
139 | deallocate(d_t_ajsb,d_q_ajsb) |
---|
140 | deallocate(d_t_ajs,d_q_ajs) |
---|
141 | deallocate(d_u_ajs,d_v_ajs) |
---|
142 | deallocate(d_t_eva,d_q_eva) |
---|
143 | deallocate(d_t_vdf,d_q_vdf) |
---|
144 | deallocate(d_u_vdf,d_v_vdf) |
---|
145 | deallocate(d_t_oli,d_t_oro) |
---|
146 | deallocate(d_u_oli,d_v_oli) |
---|
147 | deallocate(d_u_oro,d_v_oro) |
---|
148 | deallocate(d_t_lif,d_t_ec) |
---|
149 | deallocate(d_u_lif,d_v_lif) |
---|
150 | deallocate(d_ts, d_tr) |
---|
151 | deallocate(topswad_aero,solswad_aero) |
---|
152 | deallocate(topswai_aero,solswai_aero) |
---|
153 | deallocate(topswad0_aero,solswad0_aero) |
---|
154 | deallocate(topsw_aero,solsw_aero) |
---|
155 | deallocate(topsw0_aero,solsw0_aero) |
---|
156 | deallocate(d_u_hin,d_v_hin,d_t_hin) |
---|
157 | |
---|
158 | END SUBROUTINE phys_local_var_end |
---|
159 | |
---|
160 | END MODULE phys_local_var_mod |
---|