/[MITgcm]/MITgcm/verification/global2x2_tot/code/CPP_EEOPTIONS.h
ViewVC logotype

Diff of /MITgcm/verification/global2x2_tot/code/CPP_EEOPTIONS.h

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

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

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

  ViewVC Help
Powered by ViewVC 1.1.22