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