1 |
C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_summary.F,v 1.15 2014/10/02 22:26:17 gforget Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "ECCO_OPTIONS.h" |
5 |
|
6 |
subroutine ecco_summary( |
7 |
I mythid |
8 |
& ) |
9 |
|
10 |
c ================================================================== |
11 |
c SUBROUTINE ecco_summary |
12 |
c ================================================================== |
13 |
c |
14 |
c o Summarize the setup of the ECCO release. |
15 |
c |
16 |
#ifdef ALLOW_OLD_ESTIM_CODES |
17 |
c started: Christian Eckert eckert@mit.edu 29-Feb-1999 |
18 |
c |
19 |
c - Introduced to create a package for the MITgcmUV. |
20 |
c |
21 |
c changed: Christian Eckert eckert@mit.edu |
22 |
#endif |
23 |
c |
24 |
c ================================================================== |
25 |
c SUBROUTINE ecco_summary |
26 |
c ================================================================== |
27 |
|
28 |
implicit none |
29 |
|
30 |
c == global variables == |
31 |
|
32 |
#include "EEPARAMS.h" |
33 |
#include "SIZE.h" |
34 |
#include "ecco.h" |
35 |
|
36 |
#ifdef ALLOW_CTRL |
37 |
# include "optim.h" |
38 |
#endif |
39 |
|
40 |
c == routine arguments == |
41 |
|
42 |
c integer mythid - thread number for this instance of the routine. |
43 |
integer mythid |
44 |
|
45 |
c == local variables == |
46 |
|
47 |
character*(max_len_mbuf) msgbuf |
48 |
#ifdef ALLOW_GENCOST_CONTRIBUTION |
49 |
integer k, il, msgunit |
50 |
#endif |
51 |
|
52 |
c == external == |
53 |
|
54 |
integer ilnblnk |
55 |
external ilnblnk |
56 |
|
57 |
c == end of interface == |
58 |
|
59 |
write(msgbuf,'(a)') |
60 |
&' ' |
61 |
call print_message( msgbuf, standardmessageunit, |
62 |
& SQUEEZE_RIGHT , mythid) |
63 |
write(msgbuf,'(a)') |
64 |
&'// =======================================================' |
65 |
call print_message( msgbuf, standardmessageunit, |
66 |
& SQUEEZE_RIGHT , mythid) |
67 |
write(msgbuf,'(a)') |
68 |
&'// ECCO configuration >>> START <<<' |
69 |
call print_message( msgbuf, standardmessageunit, |
70 |
& SQUEEZE_RIGHT , mythid) |
71 |
write(msgbuf,'(a)') |
72 |
&'// =======================================================' |
73 |
call print_message( msgbuf, standardmessageunit, |
74 |
& SQUEEZE_RIGHT , mythid) |
75 |
|
76 |
#ifdef ALLOW_OLD_ESTIM_CODES |
77 |
write(msgbuf,'(a)') |
78 |
&' ' |
79 |
call print_message( msgbuf, standardmessageunit, |
80 |
& SQUEEZE_RIGHT , mythid) |
81 |
write(msgbuf,'(a,a)') |
82 |
&'ECCO version: ',eccoversion |
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 |
&'Packages used: ' |
91 |
call print_message( msgbuf, standardmessageunit, |
92 |
& SQUEEZE_RIGHT , mythid) |
93 |
write(msgbuf,'(a,a)') |
94 |
&'Calendar version: ',eccoUsesCalVersion |
95 |
call print_message( msgbuf, standardmessageunit, |
96 |
& SQUEEZE_RIGHT , mythid) |
97 |
write(msgbuf,'(a,a)') |
98 |
&'External Forcing version: ',eccoUsesExfVersion |
99 |
call print_message( msgbuf, standardmessageunit, |
100 |
& SQUEEZE_RIGHT , mythid) |
101 |
write(msgbuf,'(a,a)') |
102 |
&'Adjoint support version: ',eccoUsesAdsuppVersion |
103 |
call print_message( msgbuf, standardmessageunit, |
104 |
& SQUEEZE_RIGHT , mythid) |
105 |
write(msgbuf,'(a,a)') |
106 |
&'Optimization version: ',eccoUsesOptimVersion |
107 |
call print_message( msgbuf, standardmessageunit, |
108 |
& SQUEEZE_RIGHT , mythid) |
109 |
write(msgbuf,'(a)') |
110 |
&' ' |
111 |
call print_message( msgbuf, standardmessageunit, |
112 |
& SQUEEZE_RIGHT , mythid) |
113 |
|
114 |
c-- For each CPP option state if it is enabled or disabled. |
115 |
c-- ======================================================= |
116 |
|
117 |
#ifdef ALLOW_ECCO_FORWARD_RUN |
118 |
write(msgbuf,'(a)') |
119 |
&'// ALLOW_ECCO_FORWARD_RUN: defined' |
120 |
call print_message( msgbuf, standardmessageunit, |
121 |
& SQUEEZE_RIGHT , mythid) |
122 |
#else |
123 |
write(msgbuf,'(a)') |
124 |
&'// ALLOW_ECCO_FORWARD_RUN: NOT defined' |
125 |
call print_message( msgbuf, standardmessageunit, |
126 |
& SQUEEZE_RIGHT , mythid) |
127 |
#endif |
128 |
|
129 |
#ifdef ALLOW_ECCO_DIAGNOSTIC_RUN |
130 |
write(msgbuf,'(a)') |
131 |
&'// ALLOW_ECCO_DIAGNOSTIC_RUN: defined' |
132 |
call print_message( msgbuf, standardmessageunit, |
133 |
& SQUEEZE_RIGHT , mythid) |
134 |
#else |
135 |
write(msgbuf,'(a)') |
136 |
&'// ALLOW_ECCO_DIAGNOSTIC_RUN: NOT defined' |
137 |
call print_message( msgbuf, standardmessageunit, |
138 |
& SQUEEZE_RIGHT , mythid) |
139 |
#endif |
140 |
|
141 |
#ifdef ALLOW_ADJOINT_RUN |
142 |
write(msgbuf,'(a)') |
143 |
&'// ALLOW_ADJOINT_RUN: defined' |
144 |
call print_message( msgbuf, standardmessageunit, |
145 |
& SQUEEZE_RIGHT , mythid) |
146 |
#else |
147 |
write(msgbuf,'(a)') |
148 |
&'// ALLOW_ADJOINT_RUN: NOT defined' |
149 |
call print_message( msgbuf, standardmessageunit, |
150 |
& SQUEEZE_RIGHT , mythid) |
151 |
#endif |
152 |
|
153 |
#ifdef ALLOW_GRADIENT_CHECK |
154 |
write(msgbuf,'(a)') |
155 |
&'// ALLOW_GRADIENT_CHECK: defined' |
156 |
call print_message( msgbuf, standardmessageunit, |
157 |
& SQUEEZE_RIGHT , mythid) |
158 |
#else |
159 |
write(msgbuf,'(a)') |
160 |
&'// ALLOW_GRADIENT_CHECK: NOT defined' |
161 |
call print_message( msgbuf, standardmessageunit, |
162 |
& SQUEEZE_RIGHT , mythid) |
163 |
#endif |
164 |
|
165 |
#ifdef ALLOW_ECCO_OPTIMIZATION |
166 |
write(msgbuf,'(a)') |
167 |
&'// ALLOW_ECCO_OPTIMIZATION: defined' |
168 |
call print_message( msgbuf, standardmessageunit, |
169 |
& SQUEEZE_RIGHT , mythid) |
170 |
#else |
171 |
write(msgbuf,'(a)') |
172 |
&'// ALLOW_ECCO_OPTIMIZATION: NOT defined' |
173 |
call print_message( msgbuf, standardmessageunit, |
174 |
& SQUEEZE_RIGHT , mythid) |
175 |
#endif |
176 |
|
177 |
#ifdef ALLOW_NO_DYNAMICS |
178 |
c-- Just do a "dry" run ( useful for testing ). |
179 |
write(msgbuf,'(a)') |
180 |
&'// ALLOW_NO_DYNAMICS: defined' |
181 |
call print_message( msgbuf, standardmessageunit, |
182 |
& SQUEEZE_RIGHT , mythid) |
183 |
#else |
184 |
write(msgbuf,'(a)') |
185 |
&'// ALLOW_NO_DYNAMICS: NOT defined' |
186 |
call print_message( msgbuf, standardmessageunit, |
187 |
& SQUEEZE_RIGHT , mythid) |
188 |
#endif |
189 |
|
190 |
|
191 |
#ifdef ALLOW_YMDS_TREE |
192 |
c-- Use the Yearly-Monthly-Daily-Stepping call tree. |
193 |
write(msgbuf,'(a)') |
194 |
&'// ALLOW_YMDS_TREE: defined' |
195 |
call print_message( msgbuf, standardmessageunit, |
196 |
& SQUEEZE_RIGHT , mythid) |
197 |
#else |
198 |
write(msgbuf,'(a)') |
199 |
&'// ALLOW_YMDS_TREE: NOT defined' |
200 |
call print_message( msgbuf, standardmessageunit, |
201 |
& SQUEEZE_RIGHT , mythid) |
202 |
#endif |
203 |
|
204 |
#ifdef ALLOW_STEPPING_CALL |
205 |
c-- Do not call stepping. |
206 |
write(msgbuf,'(a)') |
207 |
&'// ALLOW_STEPPING_CALL: defined' |
208 |
call print_message( msgbuf, standardmessageunit, |
209 |
& SQUEEZE_RIGHT , mythid) |
210 |
#else |
211 |
write(msgbuf,'(a)') |
212 |
&'// ALLOW_STEPPING_CALL: NOT defined' |
213 |
call print_message( msgbuf, standardmessageunit, |
214 |
& SQUEEZE_RIGHT , mythid) |
215 |
#endif |
216 |
|
217 |
#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO |
218 |
c-- Use non-dimensional vector of controls as input. |
219 |
write(msgbuf,'(a)') |
220 |
&'// ALLOW_NONDIMENSIONAL_CONTROL_IO: defined' |
221 |
call print_message( msgbuf, standardmessageunit, |
222 |
& SQUEEZE_RIGHT , mythid) |
223 |
#else |
224 |
write(msgbuf,'(a)') |
225 |
&'// ALLOW_NONDIMENSIONAL_CONTROL_IO: NOT defined' |
226 |
call print_message( msgbuf, standardmessageunit, |
227 |
& SQUEEZE_RIGHT , mythid) |
228 |
#endif |
229 |
|
230 |
#ifdef ALLOW_EGM96_ERROR_COV |
231 |
c-- Read the EGM error covariance from file. |
232 |
write(msgbuf,'(a)') |
233 |
&'// ALLOW_EGM96_ERROR_COV: defined' |
234 |
call print_message( msgbuf, standardmessageunit, |
235 |
& SQUEEZE_RIGHT , mythid) |
236 |
#else |
237 |
write(msgbuf,'(a)') |
238 |
&'// ALLOW_EGM96_ERROR_COV: NOT defined' |
239 |
call print_message( msgbuf, standardmessageunit, |
240 |
& SQUEEZE_RIGHT , mythid) |
241 |
#endif |
242 |
|
243 |
#ifdef ALLOW_READ_EGM_DATA |
244 |
c-- Read the EGM data from file. |
245 |
write(msgbuf,'(a)') |
246 |
&'// ALLOW_READ_EGM_DATA: defined' |
247 |
call print_message( msgbuf, standardmessageunit, |
248 |
& SQUEEZE_RIGHT , mythid) |
249 |
#else |
250 |
write(msgbuf,'(a)') |
251 |
&'// ALLOW_READ_EGM_DATA: NOT defined' |
252 |
call print_message( msgbuf, standardmessageunit, |
253 |
& SQUEEZE_RIGHT , mythid) |
254 |
#endif |
255 |
|
256 |
#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ |
257 |
defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) |
258 |
c-- Use NSCAT data for getting the weights. |
259 |
write(msgbuf,'(a)') |
260 |
&'// ALLOW_SCAT_COST_CONTRIBUTION: defined' |
261 |
call print_message( msgbuf, standardmessageunit, |
262 |
& SQUEEZE_RIGHT , mythid) |
263 |
#else |
264 |
write(msgbuf,'(a)') |
265 |
&'// ALLOW_SCAT_COST_CONTRIBUTION: NOT defined' |
266 |
call print_message( msgbuf, standardmessageunit, |
267 |
& SQUEEZE_RIGHT , mythid) |
268 |
#endif |
269 |
|
270 |
#ifdef ALLOW_HFLUX_COST_CONTRIBUTION |
271 |
c-- Include code to use the heat flux contribution. |
272 |
write(msgbuf,'(a)') |
273 |
&'// ALLOW_HFLUX_COST_CONTRIBUTION: defined' |
274 |
call print_message( msgbuf, standardmessageunit, |
275 |
& SQUEEZE_RIGHT , mythid) |
276 |
#else |
277 |
write(msgbuf,'(a)') |
278 |
&'// ALLOW_HFLUX_COST_CONTRIBUTION: NOT defined' |
279 |
call print_message( msgbuf, standardmessageunit, |
280 |
& SQUEEZE_RIGHT , mythid) |
281 |
#endif |
282 |
|
283 |
#ifdef ALLOW_SFLUX_COST_CONTRIBUTION |
284 |
c-- Include code to use the salt flux contribution. |
285 |
write(msgbuf,'(a)') |
286 |
&'// ALLOW_SFLUX_COST_CONTRIBUTION: defined' |
287 |
call print_message( msgbuf, standardmessageunit, |
288 |
& SQUEEZE_RIGHT , mythid) |
289 |
#else |
290 |
write(msgbuf,'(a)') |
291 |
&'// ALLOW_SFLUX_COST_CONTRIBUTION: NOT defined' |
292 |
call print_message( msgbuf, standardmessageunit, |
293 |
& SQUEEZE_RIGHT , mythid) |
294 |
#endif |
295 |
|
296 |
#ifdef ALLOW_USTRESS_COST_CONTRIBUTION |
297 |
c-- Include code to use the zonal wind stress contribution. |
298 |
write(msgbuf,'(a)') |
299 |
&'// ALLOW_USTRESS_COST_CONTRIBUTION: defined' |
300 |
call print_message( msgbuf, standardmessageunit, |
301 |
& SQUEEZE_RIGHT , mythid) |
302 |
#else |
303 |
write(msgbuf,'(a)') |
304 |
&'// ALLOW_USTRESS_COST_CONTRIBUTION: NOT defined' |
305 |
call print_message( msgbuf, standardmessageunit, |
306 |
& SQUEEZE_RIGHT , mythid) |
307 |
#endif |
308 |
|
309 |
#ifdef ALLOW_VSTRESS_COST_CONTRIBUTION |
310 |
c-- Include code to use the meridional wind stress contribution. |
311 |
write(msgbuf,'(a)') |
312 |
&'// ALLOW_VSTRESS_COST_CONTRIBUTION: defined' |
313 |
call print_message( msgbuf, standardmessageunit, |
314 |
& SQUEEZE_RIGHT , mythid) |
315 |
#else |
316 |
write(msgbuf,'(a)') |
317 |
&'// ALLOW_VSTRESS_COST_CONTRIBUTION: NOT defined' |
318 |
call print_message( msgbuf, standardmessageunit, |
319 |
& SQUEEZE_RIGHT , mythid) |
320 |
#endif |
321 |
|
322 |
#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION |
323 |
c-- Enable testing of the 3d sigmaR field contribution |
324 |
c-- to the cost function. |
325 |
write(msgbuf,'(a)') |
326 |
&'// ALLOW_SIGMAR_COST_CONTRIBUTION: defined' |
327 |
call print_message( msgbuf, standardmessageunit, |
328 |
& SQUEEZE_RIGHT , mythid) |
329 |
#else |
330 |
write(msgbuf,'(a)') |
331 |
&'// ALLOW_SIGMAR_COST_CONTRIBUTION: NOT defined' |
332 |
call print_message( msgbuf, standardmessageunit, |
333 |
& SQUEEZE_RIGHT , mythid) |
334 |
#endif |
335 |
|
336 |
#ifdef ALLOW_THETA_COST_CONTRIBUTION |
337 |
c-- Enable testing of the 3d temperature field contribution |
338 |
c-- to the cost function. |
339 |
write(msgbuf,'(a)') |
340 |
&'// ALLOW_THETA_COST_CONTRIBUTION: defined' |
341 |
call print_message( msgbuf, standardmessageunit, |
342 |
& SQUEEZE_RIGHT , mythid) |
343 |
#else |
344 |
write(msgbuf,'(a)') |
345 |
&'// ALLOW_THETA_COST_CONTRIBUTION: NOT defined' |
346 |
call print_message( msgbuf, standardmessageunit, |
347 |
& SQUEEZE_RIGHT , mythid) |
348 |
#endif |
349 |
|
350 |
#ifdef ALLOW_SST_COST_CONTRIBUTION |
351 |
c-- Enable testing of the sea surface temperature contribution |
352 |
c-- to the cost function. |
353 |
write(msgbuf,'(a)') |
354 |
&'// ALLOW_SST_COST_CONTRIBUTION: defined' |
355 |
call print_message( msgbuf, standardmessageunit, |
356 |
& SQUEEZE_RIGHT , mythid) |
357 |
#else |
358 |
write(msgbuf,'(a)') |
359 |
&'// ALLOW_SST_COST_CONTRIBUTION: NOT defined' |
360 |
call print_message( msgbuf, standardmessageunit, |
361 |
& SQUEEZE_RIGHT , mythid) |
362 |
#endif |
363 |
|
364 |
#ifdef ALLOW_SALT_COST_CONTRIBUTION |
365 |
c-- Enable testing of the 3d salinity field contribution |
366 |
c-- to the cost function. |
367 |
write(msgbuf,'(a)') |
368 |
&'// ALLOW_SALT_COST_CONTRIBUTION: defined' |
369 |
call print_message( msgbuf, standardmessageunit, |
370 |
& SQUEEZE_RIGHT , mythid) |
371 |
#else |
372 |
write(msgbuf,'(a)') |
373 |
&'// ALLOW_SALT_COST_CONTRIBUTION: NOT defined' |
374 |
call print_message( msgbuf, standardmessageunit, |
375 |
& SQUEEZE_RIGHT , mythid) |
376 |
#endif |
377 |
|
378 |
#ifdef ALLOW_SSH_COST_CONTRIBUTION |
379 |
c-- Enable testing of the sea surface height contribution |
380 |
c-- to the cost function. |
381 |
write(msgbuf,'(a)') |
382 |
&'// ALLOW_SSH_COST_CONTRIBUTION: defined' |
383 |
call print_message( msgbuf, standardmessageunit, |
384 |
& SQUEEZE_RIGHT , mythid) |
385 |
#else |
386 |
write(msgbuf,'(a)') |
387 |
&'// ALLOW_SSH_COST_CONTRIBUTION: NOT defined' |
388 |
call print_message( msgbuf, standardmessageunit, |
389 |
& SQUEEZE_RIGHT , mythid) |
390 |
#endif |
391 |
|
392 |
#ifdef APPLY_HFLUX_COST_CONTRIBUTION |
393 |
c-- Enable testing of the heat flux contribution to the |
394 |
c-- cost function. |
395 |
write(msgbuf,'(a)') |
396 |
&'// APPLY_HFLUX_COST_CONTRIBUTION: defined' |
397 |
call print_message( msgbuf, standardmessageunit, |
398 |
& SQUEEZE_RIGHT , mythid) |
399 |
#else |
400 |
write(msgbuf,'(a)') |
401 |
&'// APPLY_HFLUX_COST_CONTRIBUTION: NOT defined' |
402 |
call print_message( msgbuf, standardmessageunit, |
403 |
& SQUEEZE_RIGHT , mythid) |
404 |
#endif |
405 |
|
406 |
#ifdef APPLY_SFLUX_COST_CONTRIBUTION |
407 |
c-- Enable testing of the salt flux contribution to the |
408 |
c-- cost function. |
409 |
write(msgbuf,'(a)') |
410 |
&'// APPLY_SFLUX_COST_CONTRIBUTION: defined' |
411 |
call print_message( msgbuf, standardmessageunit, |
412 |
& SQUEEZE_RIGHT , mythid) |
413 |
#else |
414 |
write(msgbuf,'(a)') |
415 |
&'// APPLY_SFLUX_COST_CONTRIBUTION: NOT defined' |
416 |
call print_message( msgbuf, standardmessageunit, |
417 |
& SQUEEZE_RIGHT , mythid) |
418 |
#endif |
419 |
|
420 |
#ifdef APPLY_USTRESS_COST_CONTRIBUTION |
421 |
c-- Enable testing of the zonal wind stress contribution |
422 |
c-- to the cost function. |
423 |
write(msgbuf,'(a)') |
424 |
&'// APPLY_USTRESS_COST_CONTRIBUTION: defined' |
425 |
call print_message( msgbuf, standardmessageunit, |
426 |
& SQUEEZE_RIGHT , mythid) |
427 |
#else |
428 |
write(msgbuf,'(a)') |
429 |
&'// APPLY_USTRESS_COST_CONTRIBUTION: NOT defined' |
430 |
call print_message( msgbuf, standardmessageunit, |
431 |
& SQUEEZE_RIGHT , mythid) |
432 |
#endif |
433 |
|
434 |
#ifdef APPLY_VSTRESS_COST_CONTRIBUTION |
435 |
c-- Enable testing of the meridional wind stress contribution |
436 |
c-- to the cost function. |
437 |
write(msgbuf,'(a)') |
438 |
&'// APPLY_VSTRESS_COST_CONTRIBUTION: defined' |
439 |
call print_message( msgbuf, standardmessageunit, |
440 |
& SQUEEZE_RIGHT , mythid) |
441 |
#else |
442 |
write(msgbuf,'(a)') |
443 |
&'// APPLY_VSTRESS_COST_CONTRIBUTION: NOT defined' |
444 |
call print_message( msgbuf, standardmessageunit, |
445 |
& SQUEEZE_RIGHT , mythid) |
446 |
#endif |
447 |
|
448 |
#ifdef APPLY_THETA_COST_CONTRIBUTION |
449 |
c-- Enable testing of the initial state temperature contribution |
450 |
c-- to the cost function. |
451 |
write(msgbuf,'(a)') |
452 |
&'// APPLY_THETA_COST_CONTRIBUTION: defined' |
453 |
call print_message( msgbuf, standardmessageunit, |
454 |
& SQUEEZE_RIGHT , mythid) |
455 |
#else |
456 |
write(msgbuf,'(a)') |
457 |
&'// APPLY_THETA_COST_CONTRIBUTION: NOT defined' |
458 |
call print_message( msgbuf, standardmessageunit, |
459 |
& SQUEEZE_RIGHT , mythid) |
460 |
#endif |
461 |
|
462 |
#ifdef APPLY_SALT_COST_CONTRIBUTION |
463 |
c-- Enable testing of the initial state salinity contribution |
464 |
c-- to the cost function. |
465 |
write(msgbuf,'(a)') |
466 |
&'// APPLY_SALT_COST_CONTRIBUTION: defined' |
467 |
call print_message( msgbuf, standardmessageunit, |
468 |
& SQUEEZE_RIGHT , mythid) |
469 |
#else |
470 |
write(msgbuf,'(a)') |
471 |
&'// APPLY_SALT_COST_CONTRIBUTION: NOT defined' |
472 |
call print_message( msgbuf, standardmessageunit, |
473 |
& SQUEEZE_RIGHT , mythid) |
474 |
#endif |
475 |
|
476 |
#ifdef APPLY_SST_COST_CONTRIBUTION |
477 |
c-- Enable testing of the sea surface temperature contribution |
478 |
c-- to the cost function. |
479 |
write(msgbuf,'(a)') |
480 |
&'// APPLY_SST_COST_CONTRIBUTION: defined' |
481 |
call print_message( msgbuf, standardmessageunit, |
482 |
& SQUEEZE_RIGHT , mythid) |
483 |
#else |
484 |
write(msgbuf,'(a)') |
485 |
&'// APPLY_SST_COST_CONTRIBUTION: NOT defined' |
486 |
call print_message( msgbuf, standardmessageunit, |
487 |
& SQUEEZE_RIGHT , mythid) |
488 |
#endif |
489 |
|
490 |
#ifdef APPLY_SSH_COST_CONTRIBUTION |
491 |
c-- Enable testing of the sea surface height contribution |
492 |
c-- to the cost function. |
493 |
write(msgbuf,'(a)') |
494 |
&'// APPLY_SSH_COST_CONTRIBUTION: defined' |
495 |
call print_message( msgbuf, standardmessageunit, |
496 |
& SQUEEZE_RIGHT , mythid) |
497 |
#else |
498 |
write(msgbuf,'(a)') |
499 |
&'// APPLY_SSH_COST_CONTRIBUTION: NOT defined' |
500 |
call print_message( msgbuf, standardmessageunit, |
501 |
& SQUEEZE_RIGHT , mythid) |
502 |
#endif |
503 |
|
504 |
#ifdef ALLOW_SPH_PROJECTION |
505 |
c-- Use projection onto spherical harmonics for the evaluation of |
506 |
c-- the cost function contribution of the mean sea surface elevation. |
507 |
write(msgbuf,'(a)') |
508 |
&'// ALLOW_SPH_PROJECTION: defined' |
509 |
call print_message( msgbuf, standardmessageunit, |
510 |
& SQUEEZE_RIGHT , mythid) |
511 |
#else |
512 |
write(msgbuf,'(a)') |
513 |
&'// ALLOW_SPH_PROJECTION: NOT defined' |
514 |
call print_message( msgbuf, standardmessageunit, |
515 |
& SQUEEZE_RIGHT , mythid) |
516 |
#endif |
517 |
|
518 |
#ifdef ALLOW_THETA0_CONTROL |
519 |
c-- Initial state temperature used as part of the control vector. |
520 |
write(msgbuf,'(a)') |
521 |
&'// ALLOW_THETA0_CONTROL: defined' |
522 |
call print_message( msgbuf, standardmessageunit, |
523 |
& SQUEEZE_RIGHT , mythid) |
524 |
#else |
525 |
write(msgbuf,'(a)') |
526 |
&'// ALLOW_THETA0_CONTROL: NOT defined' |
527 |
call print_message( msgbuf, standardmessageunit, |
528 |
& SQUEEZE_RIGHT , mythid) |
529 |
#endif |
530 |
|
531 |
#ifdef ALLOW_SALT0_CONTROL |
532 |
c-- Initial state salinity used as part of the control vector. |
533 |
write(msgbuf,'(a)') |
534 |
&'// ALLOW_SALT0_CONTROL: defined' |
535 |
call print_message( msgbuf, standardmessageunit, |
536 |
& SQUEEZE_RIGHT , mythid) |
537 |
#else |
538 |
write(msgbuf,'(a)') |
539 |
&'// ALLOW_SALT0_CONTROL: NOT defined' |
540 |
call print_message( msgbuf, standardmessageunit, |
541 |
& SQUEEZE_RIGHT , mythid) |
542 |
#endif |
543 |
|
544 |
#ifdef ALLOW_ETAN0_CONTROL |
545 |
c-- Initial state sealevel used as part of the control vector. |
546 |
write(msgbuf,'(a)') |
547 |
&'// ALLOW_ETAN0_CONTROL: defined' |
548 |
call print_message( msgbuf, standardmessageunit, |
549 |
& SQUEEZE_RIGHT , mythid) |
550 |
#else |
551 |
write(msgbuf,'(a)') |
552 |
&'// ALLOW_ETAN0_CONTROL: NOT defined' |
553 |
call print_message( msgbuf, standardmessageunit, |
554 |
& SQUEEZE_RIGHT , mythid) |
555 |
#endif |
556 |
#ifdef ALLOW_UVEL0_CONTROL |
557 |
c-- Initial state velocity used as part of the control vector. |
558 |
write(msgbuf,'(a)') |
559 |
&'// ALLOW_UVEL0_CONTROL: defined' |
560 |
call print_message( msgbuf, standardmessageunit, |
561 |
& SQUEEZE_RIGHT , mythid) |
562 |
#else |
563 |
write(msgbuf,'(a)') |
564 |
&'// ALLOW_UVEL0_CONTROL: NOT defined' |
565 |
call print_message( msgbuf, standardmessageunit, |
566 |
& SQUEEZE_RIGHT , mythid) |
567 |
#endif |
568 |
#ifdef ALLOW_VVEL0_CONTROL |
569 |
c-- Initial state velocity used as part of the control vector. |
570 |
write(msgbuf,'(a)') |
571 |
&'// ALLOW_VVEL0_CONTROL: defined' |
572 |
call print_message( msgbuf, standardmessageunit, |
573 |
& SQUEEZE_RIGHT , mythid) |
574 |
#else |
575 |
write(msgbuf,'(a)') |
576 |
&'// ALLOW_VVEL0_CONTROL: NOT defined' |
577 |
call print_message( msgbuf, standardmessageunit, |
578 |
& SQUEEZE_RIGHT , mythid) |
579 |
#endif |
580 |
|
581 |
#ifdef ALLOW_HFLUX_CONTROL |
582 |
c-- Surface heat flux used as part of the control vector. |
583 |
write(msgbuf,'(a)') |
584 |
&'// ALLOW_HFLUX_CONTROL: defined' |
585 |
call print_message( msgbuf, standardmessageunit, |
586 |
& SQUEEZE_RIGHT , mythid) |
587 |
#else |
588 |
write(msgbuf,'(a)') |
589 |
&'// ALLOW_HFLUX_CONTROL: NOT defined' |
590 |
call print_message( msgbuf, standardmessageunit, |
591 |
& SQUEEZE_RIGHT , mythid) |
592 |
#endif |
593 |
|
594 |
#ifdef ALLOW_SFLUX_CONTROL |
595 |
c-- Short wave radiative flux used as part of the control vector. |
596 |
write(msgbuf,'(a)') |
597 |
&'// ALLOW_SFLUX_CONTROL: defined' |
598 |
call print_message( msgbuf, standardmessageunit, |
599 |
& SQUEEZE_RIGHT , mythid) |
600 |
#else |
601 |
write(msgbuf,'(a)') |
602 |
&'// ALLOW_SFLUX_CONTROL: NOT defined' |
603 |
call print_message( msgbuf, standardmessageunit, |
604 |
& SQUEEZE_RIGHT , mythid) |
605 |
#endif |
606 |
|
607 |
#ifdef ALLOW_USTRESS_CONTROL |
608 |
c-- Zonal wind stress used as part of the control vector. |
609 |
write(msgbuf,'(a)') |
610 |
&'// ALLOW_USTRESS_CONTROL: defined' |
611 |
call print_message( msgbuf, standardmessageunit, |
612 |
& SQUEEZE_RIGHT , mythid) |
613 |
#else |
614 |
write(msgbuf,'(a)') |
615 |
&'// ALLOW_USTRESS_CONTROL: NOT defined' |
616 |
call print_message( msgbuf, standardmessageunit, |
617 |
& SQUEEZE_RIGHT , mythid) |
618 |
#endif |
619 |
|
620 |
#ifdef ALLOW_VSTRESS_CONTROL |
621 |
c-- Meridional wind stress used as part of the control vector. |
622 |
write(msgbuf,'(a)') |
623 |
&'// ALLOW_VSTRESS_CONTROL: defined' |
624 |
call print_message( msgbuf, standardmessageunit, |
625 |
& SQUEEZE_RIGHT , mythid) |
626 |
#else |
627 |
write(msgbuf,'(a)') |
628 |
&'// ALLOW_VSTRESS_CONTROL: NOT defined' |
629 |
call print_message( msgbuf, standardmessageunit, |
630 |
& SQUEEZE_RIGHT , mythid) |
631 |
#endif |
632 |
|
633 |
#ifdef ALLOW_SWFLUX_CONTROL |
634 |
c-- Short wave radiative flux used as part of the control vector. |
635 |
write(msgbuf,'(a)') |
636 |
&'// ALLOW_SWFLUX_CONTROL: defined' |
637 |
call print_message( msgbuf, standardmessageunit, |
638 |
& SQUEEZE_RIGHT , mythid) |
639 |
#else |
640 |
write(msgbuf,'(a)') |
641 |
&'// ALLOW_SWFLUX_CONTROL: NOT defined' |
642 |
call print_message( msgbuf, standardmessageunit, |
643 |
& SQUEEZE_RIGHT , mythid) |
644 |
#endif |
645 |
|
646 |
#ifdef ALLOW_SWDOWN_CONTROL |
647 |
c-- Short wave radiative flux used as part of the control vector. |
648 |
write(msgbuf,'(a)') |
649 |
&'// ALLOW_SWDOWN_CONTROL: defined' |
650 |
call print_message( msgbuf, standardmessageunit, |
651 |
& SQUEEZE_RIGHT , mythid) |
652 |
#else |
653 |
write(msgbuf,'(a)') |
654 |
&'// ALLOW_SWDOWN_CONTROL: NOT defined' |
655 |
call print_message( msgbuf, standardmessageunit, |
656 |
& SQUEEZE_RIGHT , mythid) |
657 |
#endif |
658 |
|
659 |
#ifdef ALLOW_ATEMP_CONTROL |
660 |
c-- Atmospheric Temperature used as part of the control vector. |
661 |
write(msgbuf,'(a)') |
662 |
&'// ALLOW_ATEMP_CONTROL: defined' |
663 |
call print_message( msgbuf, standardmessageunit, |
664 |
& SQUEEZE_RIGHT , mythid) |
665 |
#else |
666 |
write(msgbuf,'(a)') |
667 |
&'// ALLOW_ATEMP_CONTROL: NOT defined' |
668 |
call print_message( msgbuf, standardmessageunit, |
669 |
& SQUEEZE_RIGHT , mythid) |
670 |
#endif |
671 |
|
672 |
#ifdef ALLOW_AQH_CONTROL |
673 |
c-- Specific humidity used as part of the control vector. |
674 |
write(msgbuf,'(a)') |
675 |
&'// ALLOW_AQH_CONTROL: defined' |
676 |
call print_message( msgbuf, standardmessageunit, |
677 |
& SQUEEZE_RIGHT , mythid) |
678 |
#else |
679 |
write(msgbuf,'(a)') |
680 |
&'// ALLOW_AQH_CONTROL: NOT defined' |
681 |
call print_message( msgbuf, standardmessageunit, |
682 |
& SQUEEZE_RIGHT , mythid) |
683 |
#endif |
684 |
|
685 |
#ifdef ALLOW_UWIND_CONTROL |
686 |
c-- Zonal winds used as part of the control vector. |
687 |
write(msgbuf,'(a)') |
688 |
&'// ALLOW_UWIND_CONTROL: defined' |
689 |
call print_message( msgbuf, standardmessageunit, |
690 |
& SQUEEZE_RIGHT , mythid) |
691 |
#else |
692 |
write(msgbuf,'(a)') |
693 |
&'// ALLOW_UWIND_CONTROL: NOT defined' |
694 |
call print_message( msgbuf, standardmessageunit, |
695 |
& SQUEEZE_RIGHT , mythid) |
696 |
#endif |
697 |
|
698 |
#ifdef ALLOW_VWIND_CONTROL |
699 |
c-- Meridional winds used as part of the control vector. |
700 |
write(msgbuf,'(a)') |
701 |
&'// ALLOW_VWIND_CONTROL: defined' |
702 |
call print_message( msgbuf, standardmessageunit, |
703 |
& SQUEEZE_RIGHT , mythid) |
704 |
#else |
705 |
write(msgbuf,'(a)') |
706 |
&'// ALLOW_VWIND_CONTROL: NOT defined' |
707 |
call print_message( msgbuf, standardmessageunit, |
708 |
& SQUEEZE_RIGHT , mythid) |
709 |
#endif |
710 |
|
711 |
#ifdef ALLOW_PRECIP_CONTROL |
712 |
c-- Precipitation used as part of the control vector. |
713 |
write(msgbuf,'(a)') |
714 |
&'// ALLOW_PRECIP_CONTROL: defined' |
715 |
call print_message( msgbuf, standardmessageunit, |
716 |
& SQUEEZE_RIGHT , mythid) |
717 |
#else |
718 |
write(msgbuf,'(a)') |
719 |
&'// ALLOW_PRECIP_CONTROL: NOT defined' |
720 |
call print_message( msgbuf, standardmessageunit, |
721 |
& SQUEEZE_RIGHT , mythid) |
722 |
#endif |
723 |
|
724 |
#ifdef ALLOW_AUTODIFF_TAMC |
725 |
c-- Enable automatic differentiation of the ECCO code. |
726 |
write(msgbuf,'(a)') |
727 |
&'// ALLOW_AUTODIFF_TAMC: defined' |
728 |
call print_message( msgbuf, standardmessageunit, |
729 |
& SQUEEZE_RIGHT , mythid) |
730 |
#else |
731 |
write(msgbuf,'(a)') |
732 |
&'// ALLOW_AUTODIFF_TAMC: NOT defined' |
733 |
call print_message( msgbuf, standardmessageunit, |
734 |
& SQUEEZE_RIGHT , mythid) |
735 |
#endif |
736 |
|
737 |
#ifdef ALLOW_TAMC_CHECKPOINTING |
738 |
c-- Checkpointing as handled by TAMC. |
739 |
write(msgbuf,'(a)') |
740 |
&'// ALLOW_TAMC_CHECKPOINTING: defined' |
741 |
call print_message( msgbuf, standardmessageunit, |
742 |
& SQUEEZE_RIGHT , mythid) |
743 |
#else |
744 |
write(msgbuf,'(a)') |
745 |
&'// ALLOW_TAMC_CHECKPOINTING: NOT defined' |
746 |
call print_message( msgbuf, standardmessageunit, |
747 |
& SQUEEZE_RIGHT , mythid) |
748 |
#endif |
749 |
|
750 |
c-- General summary. |
751 |
write(msgbuf,'(a)') |
752 |
&' ' |
753 |
call print_message( msgbuf, standardmessageunit, |
754 |
& SQUEEZE_RIGHT , mythid) |
755 |
write(msgbuf,'(a,2x,a10)') |
756 |
&' Experiment name:',expId |
757 |
call print_message( msgbuf, standardmessageunit, |
758 |
& SQUEEZE_RIGHT , mythid) |
759 |
|
760 |
#ifdef ALLOW_AUTODIFF_TAMC |
761 |
c-- Generation of adjoint code. |
762 |
write(msgbuf,'(a)') |
763 |
&' ' |
764 |
call print_message( msgbuf, standardmessageunit, |
765 |
& SQUEEZE_RIGHT , mythid) |
766 |
write(msgbuf,'(a)') |
767 |
&' Generation of adjoint code for the ECCO setup is enabled' |
768 |
call print_message( msgbuf, standardmessageunit, |
769 |
& SQUEEZE_RIGHT , mythid) |
770 |
write(msgbuf,'(a)') |
771 |
#else |
772 |
c-- Generation of adjoint code not enabled. |
773 |
write(msgbuf,'(a)') |
774 |
&' ' |
775 |
call print_message( msgbuf, standardmessageunit, |
776 |
& SQUEEZE_RIGHT , mythid) |
777 |
write(msgbuf,'(a)') |
778 |
&' Generation of adjoint code for the ECCO setup is not enabled' |
779 |
call print_message( msgbuf, standardmessageunit, |
780 |
& SQUEEZE_RIGHT , mythid) |
781 |
#endif |
782 |
#endif /* ALLOW_OLD_ESTIM_CODES */ |
783 |
|
784 |
|
785 |
#ifdef ALLOW_GENCOST_CONTRIBUTION |
786 |
msgunit=standardmessageunit |
787 |
c-- |
788 |
write(msgbuf,'(a)') ' ' |
789 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
790 |
c-- |
791 |
do k = 1, NGENCOST |
792 |
if (using_gencost(k)) then |
793 |
c |
794 |
il = ilnblnk(gencost_name(k)) |
795 |
write(msgbuf,'(a,i2,a,a)') 'gencost(',k, |
796 |
& ') = ',gencost_name(k)(1:il) |
797 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
798 |
write(msgbuf,'(a)') '-------------' |
799 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
800 |
c |
801 |
if ( gencost_datafile(k) .ne. ' ' ) then |
802 |
il = ilnblnk(gencost_datafile(k)) |
803 |
write(msgbuf,'(a,a)') ' data file = ',gencost_datafile(k)(1:il) |
804 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
805 |
write(msgbuf,'(a)') ' starts and ends at : ' |
806 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
807 |
CALL CAL_PRINTDATE(gencost_startdate(1,k),mythid) |
808 |
CALL CAL_PRINTDATE(gencost_enddate(1,k),mythid) |
809 |
write(msgbuf,'(a,i5)') ' no. of records = ', |
810 |
& gencost_nrec(k) |
811 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
812 |
write(msgbuf,'(a,i5)') ' per. of repeat = ', |
813 |
& gencost_nrecperiod(k) |
814 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
815 |
endif |
816 |
c |
817 |
il = ilnblnk(gencost_barfile(k)) |
818 |
write(msgbuf,'(a,a)') ' model file = ',gencost_barfile(k)(1:il) |
819 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
820 |
il = ilnblnk(gencost_errfile(k)) |
821 |
write(msgbuf,'(a,a)') ' error file = ',gencost_errfile(k)(1:il) |
822 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
823 |
il = ilnblnk(gencost_scalefile(k)) |
824 |
write(msgbuf,'(a,a)') ' scale file = ', |
825 |
& gencost_scalefile(k)(1:il) |
826 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
827 |
write(msgbuf,'(a,a)') ' preprocess = ',gencost_preproc(k) |
828 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
829 |
write(msgbuf,'(a,a)') ' posprocess = ',gencost_posproc(k) |
830 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
831 |
c |
832 |
write(msgbuf,'(a,i2,L2,i2,L2,L2,i2,a)') ' flags etc. = ', |
833 |
& gencost_flag(k), gencost_is3d(k),gencost_pointer3d(k), |
834 |
& gencost_timevaryweight(k), gencost_barskip(k), |
835 |
& gencost_outputlevel(k) |
836 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
837 |
|
838 |
write(msgbuf,'(a)') ' ' |
839 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
840 |
c |
841 |
endif |
842 |
enddo |
843 |
c-- |
844 |
write(msgbuf,'(a)') ' ' |
845 |
call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) |
846 |
#endif /* ALLOW_GENCOST_CONTRIBUTION */ |
847 |
|
848 |
write(msgbuf,'(a)') |
849 |
&' ' |
850 |
call print_message( msgbuf, standardmessageunit, |
851 |
& SQUEEZE_RIGHT , mythid) |
852 |
write(msgbuf,'(a)') |
853 |
&'// =======================================================' |
854 |
call print_message( msgbuf, standardmessageunit, |
855 |
& SQUEEZE_RIGHT , mythid) |
856 |
write(msgbuf,'(a)') |
857 |
&'// ECCO configuration >>> END <<<' |
858 |
call print_message( msgbuf, standardmessageunit, |
859 |
& SQUEEZE_RIGHT , mythid) |
860 |
write(msgbuf,'(a)') |
861 |
&'// =======================================================' |
862 |
call print_message( msgbuf, standardmessageunit, |
863 |
& SQUEEZE_RIGHT , mythid) |
864 |
write(msgbuf,'(a)') |
865 |
&' ' |
866 |
call print_message( msgbuf, standardmessageunit, |
867 |
& SQUEEZE_RIGHT , mythid) |
868 |
|
869 |
return |
870 |
end |
871 |
|