/[MITgcm]/MITgcm/eesupp/inc/CPP_EEOPTIONS.h
ViewVC logotype

Contents of /MITgcm/eesupp/inc/CPP_EEOPTIONS.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.16 - (show annotations) (download)
Sun Feb 4 14:38:41 2001 UTC (23 years, 2 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint36, checkpoint35
Changes since 1.15: +2 -1 lines
File MIME type: text/plain
Made sure each .F and .h file had
the CVS keywords Header and Name at its start.
Most had header but very few currently have Name, so
lots of changes!

1 C $Header: /u/gcmpack/models/MITgcmUV/eesupp/inc/CPP_EEOPTIONS.h,v 1.15 2000/11/13 16:20:30 heimbach Exp $
2 C $Name: $
3 C
4 C /==========================================================\
5 C | CPP_EEOPTIONS.h |
6 C |==========================================================|
7 C | C preprocessor "execution environment" supporting |
8 C | flags. Use this file to set flags controlling the |
9 C | execution environment in which a model runs - as opposed |
10 C | to the dynamical problem the model solves. |
11 C | Note: Many options are implemented with both compile time|
12 C | and run-time switches. This allows options to be |
13 C | removed altogether, made optional at run-time or |
14 C | to be permanently enabled. This convention helps |
15 C | with the data-dependence analysis performed by the |
16 C | adjoint model compiler. This data dependency |
17 C | analysis can be upset by runtime switches that it |
18 C | is unable to recoginise as being fixed for the |
19 C | duration of an integration. |
20 C | A reasonable way to use these flags is to |
21 C | set all options as selectable at runtime but then |
22 C | once an experimental configuration has been |
23 C | identified, rebuild the code with the appropriate |
24 C | options set at compile time. |
25 C \==========================================================/
26
27 #ifndef _CPP_EEOPTIONS_H_
28 #define _CPP_EEOPTIONS_H_
29
30 C In general the following convention applies:
31 C ALLOW - indicates an feature will be included but it may
32 C CAN have a run-time flag to allow it to be switched
33 C on and off.
34 C If ALLOW or CAN directives are "undef'd" this generally
35 C means that the feature will not be available i.e. it
36 C will not be included in the compiled code and so no
37 C run-time option to use the feature will be available.
38 C
39 C ALWAYS - indicates the choice will be fixed at compile time
40 C so no run-time option will be present
41
42 C Flag used to indicate whether Fortran formatted write
43 C and read are threadsafe. On SGI the routines can be thread
44 C safe, on Sun it is not possible - if you are unsure then
45 C undef this option.
46 #undef FMTFTN_IO_THREADSAFE
47
48 C-- Control MPI based parallel processing
49 #undef ALLOW_USE_MPI
50 #undef ALWAYS_USE_MPI
51
52 C-- Control use of communication that might overlap computation.
53 C Under MPI selects/deselects "non-blocking" sends and receives.
54 #define ALLOW_ASYNC_COMMUNICATION
55 #undef ALLOW_ASYNC_COMMUNICATION
56 #undef ALWAYS_USE_ASYNC_COMMUNICATION
57 C-- Control use of communication that is atomic to computation.
58 C Under MPI selects/deselects "blocking" sends and receives.
59 #define ALLOW_SYNC_COMMUNICATION
60 #undef ALWAYS_USE_SYNC_COMMUNICATION
61
62 C-- Control use of JAM routines for Artic network
63 C These invoke optimized versions of "exchange" and "sum" that
64 C utilize the programmable aspect of Artic cards.
65 #undef LETS_MAKE_JAM
66 #undef JAM_WITH_TWO_PROCS_PER_NODE
67
68 C-- Control storage of floating point operands
69 C On many systems it improves performance only to use
70 C 8-byte precision for time stepped variables.
71 C Constant in time terms ( geometric factors etc.. )
72 C can use 4-byte precision, reducing memory utilisation and
73 C boosting performance because of a smaller working
74 C set size. However, on vector CRAY systems this degrades
75 C performance.
76 #define REAL4_IS_SLOW
77
78 C-- Control use of "double" precision constants.
79 C Use D0 where it means REAL*8 but not where it means REAL*16
80 #define D0 d0
81
82 C-- Control XY periodicity in processor to grid mappings
83 C Note: Model code does not need to know whether a domain is
84 C periodic because it has overlap regions for every box.
85 C Model assume that these values have been
86 C filled in some way.
87 #undef ALWAYS_PREVENT_X_PERIODICITY
88 #undef ALWAYS_PREVENT_Y_PERIODICITY
89 #define CAN_PREVENT_X_PERIODICITY
90 #define CAN_PREVENT_Y_PERIODICITY
91
92 #endif /* _CPP_EEOPTIONS_H_ */
93
94 #include "CPP_EEMACROS.h"

  ViewVC Help
Powered by ViewVC 1.1.22