source: palm/trunk/SOURCE/average_3d_data.f90 @ 2

Last change on this file since 2 was 1, checked in by raasch, 17 years ago

Initial repository layout and content

File size: 6.2 KB
Line 
1 SUBROUTINE average_3d_data
2
3!------------------------------------------------------------------------------!
4! Actual revisions:
5! -----------------
6!
7!
8! Former revisions:
9! -----------------
10! $Log: average_3d_data.f90,v $
11! Revision 1.1  2006/02/23 09:48:58  raasch
12! Initial revision
13!
14!
15! Description:
16! ------------
17! Time-averaging of 3d-data-arrays.
18!------------------------------------------------------------------------------!
19
20    USE arrays_3d
21    USE averaging
22    USE cloud_parameters
23    USE control_parameters
24    USE cpulog
25    USE indices
26    USE interfaces
27
28    IMPLICIT NONE
29
30    INTEGER ::  i, ii, j, k
31
32
33    CALL cpu_log (log_point(35),'average_3d_data','start')
34
35!
36!-- Check, if averaging is necessary
37    IF ( average_count_3d <= 1 )  RETURN
38
39!
40!-- Loop of all variables to be averaged.
41    DO  ii = 1, doav_n
42
43!
44!--    Store the array chosen on the temporary array.
45       SELECT CASE ( TRIM( doav(ii) ) )
46
47          CASE ( 'e' )
48             DO  i = nxl-1, nxr+1
49                DO  j = nys-1, nyn+1
50                   DO  k = nzb, nzt+1
51                      e_av(k,j,i) = e_av(k,j,i) / REAL( average_count_3d )
52                   ENDDO
53                ENDDO
54             ENDDO
55
56          CASE ( 'lwp*' )
57             DO  i = nxl-1, nxr+1
58                DO  j = nys-1, nyn+1
59                   lwp_av(j,i) = lwp_av(j,i) / REAL( average_count_3d )
60                ENDDO
61             ENDDO
62
63          CASE ( 'p' )
64             DO  i = nxl-1, nxr+1
65                DO  j = nys-1, nyn+1
66                   DO  k = nzb, nzt+1
67                      p_av(k,j,i) = p_av(k,j,i) / REAL( average_count_3d )
68                   ENDDO
69                ENDDO
70             ENDDO
71
72          CASE ( 'pc' )
73             DO  i = nxl, nxr
74                DO  j = nys, nyn
75                   DO  k = nzb, nzt+1
76                      pc_av(k,j,i) = pc_av(k,j,i) / REAL( average_count_3d )
77                   ENDDO
78                ENDDO
79             ENDDO
80
81          CASE ( 'pr' )
82             DO  i = nxl, nxr
83                DO  j = nys, nyn
84                   DO  k = nzb, nzt+1
85                      pr_av(k,j,i) = pr_av(k,j,i) / REAL( average_count_3d )
86                   ENDDO
87                ENDDO
88             ENDDO
89
90          CASE ( 'pt' )
91             DO  i = nxl-1, nxr+1
92                DO  j = nys-1, nyn+1
93                   DO  k = nzb, nzt+1
94                      pt_av(k,j,i) = pt_av(k,j,i) / REAL( average_count_3d )
95                   ENDDO
96                ENDDO
97             ENDDO
98
99          CASE ( 'q' )
100             DO  i = nxl-1, nxr+1
101                DO  j = nys-1, nyn+1
102                   DO  k = nzb, nzt+1
103                      q_av(k,j,i) = q_av(k,j,i) / REAL( average_count_3d )
104                   ENDDO
105                ENDDO
106             ENDDO
107             
108          CASE ( 'ql' )
109             DO  i = nxl-1, nxr+1
110                DO  j = nys-1, nyn+1
111                   DO  k = nzb, nzt+1
112                      ql_av(k,j,i) = ql_av(k,j,i) / REAL( average_count_3d )
113                   ENDDO
114                ENDDO
115             ENDDO
116
117          CASE ( 'ql_c' )
118             DO  i = nxl-1, nxr+1
119                DO  j = nys-1, nyn+1
120                   DO  k = nzb, nzt+1
121                      ql_c_av(k,j,i) = ql_c_av(k,j,i) / REAL( average_count_3d )
122                   ENDDO
123                ENDDO
124             ENDDO
125
126          CASE ( 'ql_v' )
127             DO  i = nxl-1, nxr+1
128                DO  j = nys-1, nyn+1
129                   DO  k = nzb, nzt+1
130                      ql_v_av(k,j,i) = ql_v_av(k,j,i) / REAL( average_count_3d )
131                   ENDDO
132                ENDDO
133             ENDDO
134
135          CASE ( 'ql_vp' )
136             DO  i = nxl-1, nxr+1
137                DO  j = nys-1, nyn+1
138                   DO  k = nzb, nzt+1
139                      ql_vp_av(k,j,i) = ql_vp_av(k,j,i) / &
140                                        REAL( average_count_3d )
141                   ENDDO
142                ENDDO
143             ENDDO
144
145          CASE ( 'qv' )
146             DO  i = nxl-1, nxr+1
147                DO  j = nys-1, nyn+1
148                   DO  k = nzb, nzt+1
149                      qv_av(k,j,i) = qv_av(k,j,i) / REAL( average_count_3d )
150                   ENDDO
151                ENDDO
152             ENDDO
153             
154          CASE ( 's' )
155             DO  i = nxl-1, nxr+1
156                DO  j = nys-1, nyn+1
157                   DO  k = nzb, nzt+1
158                      s_av(k,j,i) = s_av(k,j,i) / REAL( average_count_3d )
159                   ENDDO
160                ENDDO
161             ENDDO
162             
163          CASE ( 't*' )
164             DO  i = nxl-1, nxr+1
165                DO  j = nys-1, nyn+1
166                   ts_av(j,i) = ts_av(j,i) / REAL( average_count_3d )
167                ENDDO
168             ENDDO
169
170          CASE ( 'u' )
171             DO  i = nxl-1, nxr+1
172                DO  j = nys-1, nyn+1
173                   DO  k = nzb, nzt+1
174                      u_av(k,j,i) = u_av(k,j,i) / REAL( average_count_3d )
175                   ENDDO
176                ENDDO
177             ENDDO
178
179          CASE ( 'u*' )
180             DO  i = nxl-1, nxr+1
181                DO  j = nys-1, nyn+1
182                   us_av(j,i) = us_av(j,i) / REAL( average_count_3d )
183                ENDDO
184             ENDDO
185
186          CASE ( 'v' )
187             DO  i = nxl-1, nxr+1
188                DO  j = nys-1, nyn+1
189                   DO  k = nzb, nzt+1
190                      v_av(k,j,i) = v_av(k,j,i) / REAL( average_count_3d )
191                   ENDDO
192                ENDDO
193             ENDDO
194
195          CASE ( 'vpt' )
196             DO  i = nxl-1, nxr+1
197                DO  j = nys-1, nyn+1
198                   DO  k = nzb, nzt+1
199                      vpt_av(k,j,i) = vpt_av(k,j,i) / REAL( average_count_3d )
200                   ENDDO
201                ENDDO
202             ENDDO
203
204          CASE ( 'w' )
205             DO  i = nxl-1, nxr+1
206                DO  j = nys-1, nyn+1
207                   DO  k = nzb, nzt+1
208                      w_av(k,j,i) = w_av(k,j,i) / REAL( average_count_3d )
209                   ENDDO
210                ENDDO
211             ENDDO
212
213          CASE DEFAULT
214!
215!--          User-defined quantity
216             CALL user_3d_data_averaging( 'average', doav(ii) )
217
218       END SELECT
219
220    ENDDO
221
222!
223!-- Reset the counter
224    average_count_3d = 0.0
225
226    CALL cpu_log (log_point(35),'average_3d_data','stop','nobarrier')
227
228
229 END SUBROUTINE average_3d_data
Note: See TracBrowser for help on using the repository browser.