1 |
C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_summary.F,v 1.7 2014/04/30 00:11:33 atn Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "CTRL_OPTIONS.h" |
5 |
|
6 |
subroutine ctrl_Summary( mythid ) |
7 |
|
8 |
c ================================================================== |
9 |
c SUBROUTINE ctrl_Summary |
10 |
c ================================================================== |
11 |
c |
12 |
c o Summarize the control vector part of the ECCO release. |
13 |
c |
14 |
c started: Christian Eckert eckert@mit.edu 06-Mar-2000 |
15 |
c |
16 |
c changed: Christian Eckert eckert@mit.edu |
17 |
c |
18 |
c ================================================================== |
19 |
c SUBROUTINE ctrl_Summary |
20 |
c ================================================================== |
21 |
|
22 |
implicit none |
23 |
|
24 |
c == global variables == |
25 |
|
26 |
#include "EEPARAMS.h" |
27 |
#include "SIZE.h" |
28 |
|
29 |
#ifdef ALLOW_CAL |
30 |
# include "cal.h" |
31 |
#endif |
32 |
#include "ctrl.h" |
33 |
#ifdef ALLOW_AUTODIFF |
34 |
# include "AUTODIFF_PARAMS.h" |
35 |
#endif |
36 |
|
37 |
c == routine arguments == |
38 |
|
39 |
integer mythid |
40 |
|
41 |
c == local variables == |
42 |
|
43 |
integer bi,bj |
44 |
integer i,k |
45 |
integer il |
46 |
integer timeint(4) |
47 |
integer nwetcenter |
48 |
integer nwetsouth |
49 |
integer nwetwest |
50 |
|
51 |
character*(max_len_mbuf) msgbuf |
52 |
|
53 |
c == external == |
54 |
|
55 |
integer ilnblnk |
56 |
external ilnblnk |
57 |
|
58 |
c == end of interface == |
59 |
|
60 |
write(msgbuf,'(a)') |
61 |
&' ' |
62 |
call print_message( msgbuf, standardmessageunit, |
63 |
& SQUEEZE_RIGHT , mythid) |
64 |
write(msgbuf,'(a)') |
65 |
&'// =======================================================' |
66 |
call print_message( msgbuf, standardmessageunit, |
67 |
& SQUEEZE_RIGHT , mythid) |
68 |
write(msgbuf,'(a)') |
69 |
&'// ECCO control vector configuration >>> START <<<' |
70 |
call print_message( msgbuf, standardmessageunit, |
71 |
& SQUEEZE_RIGHT , mythid) |
72 |
write(msgbuf,'(a)') |
73 |
&'// =======================================================' |
74 |
call print_message( msgbuf, standardmessageunit, |
75 |
& SQUEEZE_RIGHT , mythid) |
76 |
write(msgbuf,'(a)') |
77 |
&' ' |
78 |
call print_message( msgbuf, standardmessageunit, |
79 |
& SQUEEZE_RIGHT , mythid) |
80 |
|
81 |
write(msgbuf,'(a)') |
82 |
&' Total number of ocean points per tile:' |
83 |
call print_message( msgbuf, standardmessageunit, |
84 |
& SQUEEZE_RIGHT , mythid) |
85 |
write(msgbuf,'(a)') |
86 |
&' --------------------------------------' |
87 |
call print_message( msgbuf, standardmessageunit, |
88 |
& SQUEEZE_RIGHT , mythid) |
89 |
write(msgbuf,'(a)') |
90 |
&' ' |
91 |
call print_message( msgbuf, standardmessageunit, |
92 |
& SQUEEZE_RIGHT , mythid) |
93 |
write(msgbuf,'(a,i8)') ' snx*sny*nr = ',snx*sny*nr |
94 |
call print_message( msgbuf, standardmessageunit, |
95 |
& SQUEEZE_RIGHT , mythid) |
96 |
write(msgbuf,'(a)') |
97 |
&' ' |
98 |
call print_message( msgbuf, standardmessageunit, |
99 |
& SQUEEZE_RIGHT , mythid) |
100 |
write(msgbuf,'(a)') |
101 |
&' Number of ocean points per tile:' |
102 |
call print_message( msgbuf, standardmessageunit, |
103 |
& SQUEEZE_RIGHT , mythid) |
104 |
write(msgbuf,'(a)') |
105 |
&' --------------------------------' |
106 |
call print_message( msgbuf, standardmessageunit, |
107 |
& SQUEEZE_RIGHT , mythid) |
108 |
do bj = 1,nsy |
109 |
do bi = 1,nsx |
110 |
nwetcenter = 0 |
111 |
nwetsouth = 0 |
112 |
nwetwest = 0 |
113 |
do k = 1,nr |
114 |
nwetcenter = nwetcenter + nwetctile(bi,bj,k) |
115 |
nwetsouth = nwetsouth + nwetstile(bi,bj,k) |
116 |
nwetwest = nwetwest + nwetwtile(bi,bj,k) |
117 |
enddo |
118 |
write(msgbuf,'(a,i5.4,i5.4,i7.6,i7.6,i7.6)') |
119 |
& ' bi,bj,#(c/s/w):',bi,bj,nwetcenter, |
120 |
& nwetsouth, |
121 |
& nwetwest |
122 |
call print_message( msgbuf, standardmessageunit, |
123 |
& SQUEEZE_RIGHT , mythid) |
124 |
enddo |
125 |
enddo |
126 |
|
127 |
#ifdef ALLOW_THETA0_CONTROL |
128 |
write(msgbuf,'(a)') |
129 |
&' ' |
130 |
call print_message( msgbuf, standardmessageunit, |
131 |
& SQUEEZE_RIGHT , mythid) |
132 |
write(msgbuf,'(a)') |
133 |
&' Initial state temperature contribution:' |
134 |
call print_message( msgbuf, standardmessageunit, |
135 |
& SQUEEZE_RIGHT , mythid) |
136 |
write(msgbuf,'(a,i5.4)') |
137 |
&' Control variable index: ',ncvarindex(1) |
138 |
call print_message( msgbuf, standardmessageunit, |
139 |
& SQUEEZE_RIGHT , mythid) |
140 |
#endif |
141 |
#ifdef ALLOW_SALT0_CONTROL |
142 |
write(msgbuf,'(a)') |
143 |
&' ' |
144 |
call print_message( msgbuf, standardmessageunit, |
145 |
& SQUEEZE_RIGHT , mythid) |
146 |
write(msgbuf,'(a)') |
147 |
&' Initial state salinity contribution:' |
148 |
call print_message( msgbuf, standardmessageunit, |
149 |
& SQUEEZE_RIGHT , mythid) |
150 |
write(msgbuf,'(a,i5.4)') |
151 |
&' Control variable index: ',ncvarindex(2) |
152 |
call print_message( msgbuf, standardmessageunit, |
153 |
& SQUEEZE_RIGHT , mythid) |
154 |
#endif |
155 |
#ifdef ALLOW_HFLUX_CONTROL |
156 |
write(msgbuf,'(a)') |
157 |
&' ' |
158 |
call print_message( msgbuf, standardmessageunit, |
159 |
& SQUEEZE_RIGHT , mythid) |
160 |
write(msgbuf,'(a)') |
161 |
&' Heat flux contribution:' |
162 |
call print_message( msgbuf, standardmessageunit, |
163 |
& SQUEEZE_RIGHT , mythid) |
164 |
write(msgbuf,'(a,i5.4)') |
165 |
&' Control variable index: ',ncvarindex(3) |
166 |
call print_message( msgbuf, standardmessageunit, |
167 |
& SQUEEZE_RIGHT , mythid) |
168 |
|
169 |
il = ilnblnk(xx_hflux_file) |
170 |
call cal_TimeInterval( xx_hfluxperiod, 'secs', timeint, mythid ) |
171 |
|
172 |
write(msgbuf,'(a)') |
173 |
&' ' |
174 |
call print_message( msgbuf, standardmessageunit, |
175 |
& SQUEEZE_RIGHT , mythid) |
176 |
write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') |
177 |
&' Heat flux contribution starts at: ', |
178 |
& (xx_hfluxstartdate(i), i=1,2), |
179 |
& dayofweek(xx_hfluxstartdate(4)),'.' |
180 |
call print_message( msgbuf, standardmessageunit, |
181 |
& SQUEEZE_RIGHT , mythid) |
182 |
write(msgbuf,'(a,i9.8,i7.6)') |
183 |
&' Heat flux contribution period is: ', |
184 |
& (timeint(i), i=1,2) |
185 |
call print_message( msgbuf, standardmessageunit, |
186 |
& SQUEEZE_RIGHT , mythid) |
187 |
write(msgbuf,'(a)') |
188 |
&' Heat flux contribution is read from file: ' |
189 |
call print_message( msgbuf, standardmessageunit, |
190 |
& SQUEEZE_RIGHT , mythid) |
191 |
write(msgbuf,'(a,a,a)') |
192 |
&' >> ',xx_hflux_file(1:il),' <<' |
193 |
call print_message( msgbuf, standardmessageunit, |
194 |
& SQUEEZE_RIGHT , mythid) |
195 |
#endif |
196 |
#ifdef ALLOW_SFLUX_CONTROL |
197 |
write(msgbuf,'(a)') |
198 |
&' ' |
199 |
call print_message( msgbuf, standardmessageunit, |
200 |
& SQUEEZE_RIGHT , mythid) |
201 |
write(msgbuf,'(a)') |
202 |
&' Salt flux contribution:' |
203 |
call print_message( msgbuf, standardmessageunit, |
204 |
& SQUEEZE_RIGHT , mythid) |
205 |
write(msgbuf,'(a,i5.4)') |
206 |
&' Control varibale index: ',ncvarindex(4) |
207 |
call print_message( msgbuf, standardmessageunit, |
208 |
& SQUEEZE_RIGHT , mythid) |
209 |
|
210 |
il = ilnblnk(xx_sflux_file) |
211 |
call cal_TimeInterval( xx_sfluxperiod, 'secs', timeint, mythid ) |
212 |
|
213 |
write(msgbuf,'(a)') |
214 |
&' ' |
215 |
call print_message( msgbuf, standardmessageunit, |
216 |
& SQUEEZE_RIGHT , mythid) |
217 |
write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') |
218 |
&' Salt flux contribution starts at: ', |
219 |
& (xx_sfluxstartdate(i), i=1,2), |
220 |
& dayofweek(xx_sfluxstartdate(4)),'.' |
221 |
call print_message( msgbuf, standardmessageunit, |
222 |
& SQUEEZE_RIGHT , mythid) |
223 |
write(msgbuf,'(a,i9.8,i7.6)') |
224 |
&' Salt flux contribution period is: ', |
225 |
& (timeint(i), i=1,2) |
226 |
call print_message( msgbuf, standardmessageunit, |
227 |
& SQUEEZE_RIGHT , mythid) |
228 |
write(msgbuf,'(a)') |
229 |
&' Salt flux contribution is read from file: ' |
230 |
call print_message( msgbuf, standardmessageunit, |
231 |
& SQUEEZE_RIGHT , mythid) |
232 |
write(msgbuf,'(a,a,a)') |
233 |
&' >> ',xx_sflux_file(1:il),' <<' |
234 |
call print_message( msgbuf, standardmessageunit, |
235 |
& SQUEEZE_RIGHT , mythid) |
236 |
#endif |
237 |
#ifdef ALLOW_USTRESS_CONTROL |
238 |
write(msgbuf,'(a)') |
239 |
&' ' |
240 |
call print_message( msgbuf, standardmessageunit, |
241 |
& SQUEEZE_RIGHT , mythid) |
242 |
write(msgbuf,'(a)') |
243 |
&' Zonal wind stress contribution:' |
244 |
call print_message( msgbuf, standardmessageunit, |
245 |
& SQUEEZE_RIGHT , mythid) |
246 |
write(msgbuf,'(a,i5.4)') |
247 |
&' Control variable index: ',ncvarindex(5) |
248 |
call print_message( msgbuf, standardmessageunit, |
249 |
& SQUEEZE_RIGHT , mythid) |
250 |
|
251 |
il = ilnblnk(xx_tauu_file) |
252 |
call cal_TimeInterval( xx_tauuperiod, 'secs', timeint, mythid ) |
253 |
|
254 |
write(msgbuf,'(a)') |
255 |
&' ' |
256 |
call print_message( msgbuf, standardmessageunit, |
257 |
& SQUEEZE_RIGHT , mythid) |
258 |
write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') |
259 |
&' Zonal wind stress contribution starts at: ', |
260 |
& (xx_tauustartdate(i), i=1,2), |
261 |
& dayofweek(xx_tauustartdate(4)),'.' |
262 |
call print_message( msgbuf, standardmessageunit, |
263 |
& SQUEEZE_RIGHT , mythid) |
264 |
write(msgbuf,'(a,i9.8,i7.6)') |
265 |
&' Zonal wind stress contribution period is: ', |
266 |
& (timeint(i), i=1,2) |
267 |
call print_message( msgbuf, standardmessageunit, |
268 |
& SQUEEZE_RIGHT , mythid) |
269 |
write(msgbuf,'(a)') |
270 |
&' Zonal wind stress contribution is read from file: ' |
271 |
call print_message( msgbuf, standardmessageunit, |
272 |
& SQUEEZE_RIGHT , mythid) |
273 |
write(msgbuf,'(a,a,a)') |
274 |
&' >> ',xx_tauu_file(1:il),' <<' |
275 |
call print_message( msgbuf, standardmessageunit, |
276 |
& SQUEEZE_RIGHT , mythid) |
277 |
#endif |
278 |
#ifdef ALLOW_VSTRESS_CONTROL |
279 |
write(msgbuf,'(a)') |
280 |
&' ' |
281 |
call print_message( msgbuf, standardmessageunit, |
282 |
& SQUEEZE_RIGHT , mythid) |
283 |
write(msgbuf,'(a)') |
284 |
&' Meridional wind stress contribution:' |
285 |
call print_message( msgbuf, standardmessageunit, |
286 |
& SQUEEZE_RIGHT , mythid) |
287 |
write(msgbuf,'(a,i5.4)') |
288 |
&' Control variable index: ',ncvarindex(6) |
289 |
call print_message( msgbuf, standardmessageunit, |
290 |
& SQUEEZE_RIGHT , mythid) |
291 |
|
292 |
il = ilnblnk(xx_tauv_file) |
293 |
call cal_TimeInterval( xx_tauvperiod, 'secs', timeint, mythid ) |
294 |
|
295 |
write(msgbuf,'(a)') |
296 |
&' ' |
297 |
call print_message( msgbuf, standardmessageunit, |
298 |
& SQUEEZE_RIGHT , mythid) |
299 |
write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') |
300 |
&' Merid. wind stress contribution starts at: ', |
301 |
& (xx_hfluxstartdate(i), i=1,2), |
302 |
& dayofweek(xx_hfluxstartdate(4)),'.' |
303 |
call print_message( msgbuf, standardmessageunit, |
304 |
& SQUEEZE_RIGHT , mythid) |
305 |
write(msgbuf,'(a,i9.8,i7.6)') |
306 |
&' Merid. wind stress contribution period is: ', |
307 |
& (timeint(i), i=1,2) |
308 |
call print_message( msgbuf, standardmessageunit, |
309 |
& SQUEEZE_RIGHT , mythid) |
310 |
write(msgbuf,'(a)') |
311 |
&' Merid. wind stress contribution is read from file: ' |
312 |
call print_message( msgbuf, standardmessageunit, |
313 |
& SQUEEZE_RIGHT , mythid) |
314 |
write(msgbuf,'(a,a,a)') |
315 |
&' >> ',xx_tauv_file(1:il),' <<' |
316 |
call print_message( msgbuf, standardmessageunit, |
317 |
& SQUEEZE_RIGHT , mythid) |
318 |
#endif |
319 |
|
320 |
#ifdef ALLOW_SMOOTH_CORREL3D |
321 |
write(msgbuf,'(a,L5)') |
322 |
&'ctrlSmoothCorrel3D: ',ctrlSmoothCorrel3D |
323 |
call print_message( msgbuf, standardmessageunit, |
324 |
& SQUEEZE_RIGHT , mythid) |
325 |
#endif /* ALLOW_SMOOTH_CORREL3D */ |
326 |
|
327 |
#ifdef ALLOW_SMOOTH_CORREL2D |
328 |
write(msgbuf,'(a,L5)') |
329 |
&'ctrlSmoothCorrel2D: ',ctrlSmoothCorrel2D |
330 |
call print_message( msgbuf, standardmessageunit, |
331 |
& SQUEEZE_RIGHT , mythid) |
332 |
#endif /* ALLOW_SMOOTH_CORREL2D */ |
333 |
|
334 |
#ifdef ALLOW_AUTODIFF |
335 |
c allow for switching off correl2d in adjoint |
336 |
CALL WRITE_0D_L( useSmoothCorrel2DinAdMode, INDEX_NONE, |
337 |
& 'useSmoothCorrel2DinAdMode =', |
338 |
& ' /* use ctrlSmoothCorrel2D in adjoint mode */') |
339 |
#endif |
340 |
|
341 |
#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) |
342 |
write(msgbuf,'(a,L5)') |
343 |
&'ctrlUseGen : ',ctrlUseGen |
344 |
call print_message( msgbuf, standardmessageunit, |
345 |
& SQUEEZE_RIGHT , mythid) |
346 |
#endif /* ALLOW_SMOOTH_CORREL3D */ |
347 |
|
348 |
write(msgbuf,'(a)') |
349 |
&' ' |
350 |
call print_message( msgbuf, standardmessageunit, |
351 |
& SQUEEZE_RIGHT , mythid) |
352 |
write(msgbuf,'(a)') |
353 |
&'// =======================================================' |
354 |
call print_message( msgbuf, standardmessageunit, |
355 |
& SQUEEZE_RIGHT , mythid) |
356 |
write(msgbuf,'(a)') |
357 |
&'// ECCO control vector configuration >>> END <<<' |
358 |
call print_message( msgbuf, standardmessageunit, |
359 |
& SQUEEZE_RIGHT , mythid) |
360 |
write(msgbuf,'(a)') |
361 |
&'// =======================================================' |
362 |
call print_message( msgbuf, standardmessageunit, |
363 |
& SQUEEZE_RIGHT , mythid) |
364 |
write(msgbuf,'(a)') |
365 |
&' ' |
366 |
call print_message( msgbuf, standardmessageunit, |
367 |
& SQUEEZE_RIGHT , mythid) |
368 |
|
369 |
return |
370 |
end |
371 |
|