/[MITgcm]/MITgcm/tutorial_examples/global_ocean_circulation/code/CPP_EEOPTIONS.h
ViewVC logotype

Diff of /MITgcm/tutorial_examples/global_ocean_circulation/code/CPP_EEOPTIONS.h

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

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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.4.1

  ViewVC Help
Powered by ViewVC 1.1.22