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

Diff of /MITgcm/tutorial_examples/baroclinic_gyre_on_a_sphere/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.2.1 by cnh, Mon Jan 14 17:01:44 2002 UTC
# Line 0  Line 1 
1    C $Header$
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"

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

  ViewVC Help
Powered by ViewVC 1.1.22