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

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

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

revision 1.18 by cnh, Fri Sep 21 03:54:35 2001 UTC revision 1.43 by jmc, Thu Sep 14 19:47:35 2017 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
   These lines are here to deliberately cause a compile-time error.  
   If you see these lines in your .F files or the compiler shows them  
   as an error then it means you have not placed your configuration  
   files in the appropriate place.  
   You need to place you own copy of CPP_EEOPTIONS.h in the include  
   path for the model.  
   
4  CBOP  CBOP
5  C     !ROUTINE: CPP_EEOPTIONS.h  C     !ROUTINE: CPP_EEOPTIONS.h
6  C     !INTERFACE:  C     !INTERFACE:
# Line 15  C     include "CPP_EEOPTIONS.h" Line 8  C     include "CPP_EEOPTIONS.h"
8  C  C
9  C     !DESCRIPTION:  C     !DESCRIPTION:
10  C     *==========================================================*  C     *==========================================================*
11  C     | CPP_EEOPTIONS.h                                          |  C     | CPP\_EEOPTIONS.h                                         |
12  C     *==========================================================*  C     *==========================================================*
13  C     | C preprocessor "execution environment" supporting        |  C     | C preprocessor "execution environment" supporting        |
14  C     | flags. Use this file to set flags controlling the        |  C     | flags. Use this file to set flags controlling the        |
# Line 53  C Line 46  C
46  C     ALWAYS - indicates the choice will be fixed at compile time  C     ALWAYS - indicates the choice will be fixed at compile time
47  C              so no run-time option will be present  C              so no run-time option will be present
48    
49  C     Flag used to indicate whether Fortran formatted write  C=== Macro related options ===
50    C--   Control storage of floating point operands
51    C     On many systems it improves performance only to use
52    C     8-byte precision for time stepped variables.
53    C     Constant in time terms ( geometric factors etc.. )
54    C     can use 4-byte precision, reducing memory utilisation and
55    C     boosting performance because of a smaller working set size.
56    C     However, on vector CRAY systems this degrades performance.
57    C     Enable to switch REAL4_IS_SLOW from genmake2 (with LET_RS_BE_REAL4):
58    #ifdef LET_RS_BE_REAL4
59    #undef REAL4_IS_SLOW
60    #else /* LET_RS_BE_REAL4 */
61    #define REAL4_IS_SLOW
62    #endif /* LET_RS_BE_REAL4 */
63    
64    C--   Control use of "double" precision constants.
65    C     Use D0 where it means REAL*8 but not where it means REAL*16
66    #define D0 d0
67    
68    C--   Enable some old macro conventions for backward compatibility
69    #undef USE_OLD_MACROS_R4R8toRSRL
70    
71    C=== IO related options ===
72    C--   Flag used to indicate whether Fortran formatted write
73  C     and read are threadsafe. On SGI the routines can be thread  C     and read are threadsafe. On SGI the routines can be thread
74  C     safe, on Sun it is not possible - if you are unsure then  C     safe, on Sun it is not possible - if you are unsure then
75  C     undef this option.  C     undef this option.
76  #undef  FMTFTN_IO_THREADSAFE  #undef FMTFTN_IO_THREAD_SAFE
77    
78    C--   Flag used to indicate whether Binary write to Local file (i.e.,
79    C     a different file for each tile) and read are thread-safe.
80    #undef LOCBIN_IO_THREAD_SAFE
81    
82    C--   Flag to turn off the writing of error message to ioUnit zero
83    #undef DISABLE_WRITE_TO_UNIT_ZERO
84    
85    C--   Alternative formulation of BYTESWAP, faster than
86    C     compiler flag -byteswapio on the Altix.
87    #undef FAST_BYTESWAP
88    
89    C--   Flag to turn on old default of opening scratch files with the
90    C     STATUS='SCRATCH' option. This method, while perfectly FORTRAN-standard,
91    C     caused filename conflicts on some multi-node/multi-processor platforms
92    C     in the past and has been replace by something (hopefully) more robust.
93    #undef USE_FORTRAN_SCRATCH_FILES
94    
95    C--   Flag defined for eeboot_minimal.F, eeset_parms.F and open_copy_data_file.F
96    C     to write STDOUT, STDERR and scratch files from process 0 only.
97    C WARNING: to use only when absolutely confident that the setup is working
98    C     since any message (error/warning/print) from any proc <> 0 will be lost.
99    #undef SINGLE_DISK_IO
100    
101    C=== MPI, EXCH and GLOBAL_SUM related options ===
102    C--   Flag turns off MPI_SEND ready_to_receive polling in the
103    C     gather_* subroutines to speed up integrations.
104    #undef DISABLE_MPI_READY_TO_RECEIVE
105    
106  C--   Control MPI based parallel processing  C--   Control MPI based parallel processing
107  #undef  ALLOW_USE_MPI  CXXX We no longer select the use of MPI via this file (CPP_EEOPTIONS.h)
108  #undef  ALWAYS_USE_MPI  CXXX To use MPI, use an appropriate genmake2 options file or use
109    CXXX genmake2 -mpi .
110    CXXX #undef  ALLOW_USE_MPI
111    
112  C--   Control use of communication that might overlap computation.  C--   Control use of communication that might overlap computation.
113  C     Under MPI selects/deselects "non-blocking" sends and receives.  C     Under MPI selects/deselects "non-blocking" sends and receives.
114  #define ALLOW_ASYNC_COMMUNICATION  #define ALLOW_ASYNC_COMMUNICATION
# Line 73  C     Under MPI selects/deselects "block Line 119  C     Under MPI selects/deselects "block
119  #define ALLOW_SYNC_COMMUNICATION  #define ALLOW_SYNC_COMMUNICATION
120  #undef  ALWAYS_USE_SYNC_COMMUNICATION  #undef  ALWAYS_USE_SYNC_COMMUNICATION
121    
 C--   Control use of JAM routines for Artic network  
 C     These invoke optimized versions of "exchange" and "sum" that  
 C     utilize the programmable aspect of Artic cards.  
 #undef  LETS_MAKE_JAM  
 #undef  JAM_WITH_TWO_PROCS_PER_NODE  
   
 C--   Control storage of floating point operands  
 C     On many systems it improves performance only to use  
 C     8-byte precision for time stepped variables.  
 C     Constant in time terms ( geometric factors etc.. )  
 C     can use 4-byte precision, reducing memory utilisation and  
 C     boosting performance because of a smaller working  
 C     set size. However, on vector CRAY systems this degrades  
 C     performance.  
 #define REAL4_IS_SLOW  
   
 C--   Control use of "double" precision constants.  
 C     Use D0 where it means REAL*8 but not where it means REAL*16  
 #define D0 d0  
   
122  C--   Control XY periodicity in processor to grid mappings  C--   Control XY periodicity in processor to grid mappings
123  C     Note: Model code does not need to know whether a domain is  C     Note: Model code does not need to know whether a domain is
124  C           periodic because it has overlap regions for every box.  C           periodic because it has overlap regions for every box.
125  C           Model assume that these values have been  C           Model assume that these values have been
126  C           filled in some way.  C           filled in some way.
# Line 103  C           filled in some way. Line 129  C           filled in some way.
129  #define CAN_PREVENT_X_PERIODICITY  #define CAN_PREVENT_X_PERIODICITY
130  #define CAN_PREVENT_Y_PERIODICITY  #define CAN_PREVENT_Y_PERIODICITY
131    
132    C--   disconnect tiles (no exchange between tiles, just fill-in edges
133    C     assuming locally periodic subdomain)
134    #undef DISCONNECTED_TILES
135    
136    C--   Always cumulate tile local-sum in the same order by applying MPI allreduce
137    C     to array of tiles ; can get slower with large number of tiles (big set-up)
138    #define GLOBAL_SUM_ORDER_TILES
139    
140    C--   Alternative way of doing global sum without MPI allreduce call
141    C     but instead, explicit MPI send & recv calls. Expected to be slower.
142    #undef GLOBAL_SUM_SEND_RECV
143    
144    C--   Alternative way of doing global sum on a single CPU
145    C     to eliminate tiling-dependent roundoff errors. Note: This is slow.
146    #undef  CG2D_SINGLECPU_SUM
147    
148    C=== Other options (to add/remove pieces of code) ===
149    C--   Flag to turn on checking for errors from all threads and procs
150    C     (calling S/R STOP_IF_ERROR) before stopping.
151    #define USE_ERROR_STOP
152    
153    C--   Control use of communication with other component:
154    C     allow to import and export from/to Coupler interface.
155    #undef COMPONENT_MODULE
156    
157    C--   Activate some pieces of code for coupling to GEOS AGCM
158    #undef HACK_FOR_GMAO_CPL
159    
160  #endif /* _CPP_EEOPTIONS_H_ */  #endif /* _CPP_EEOPTIONS_H_ */
161    
162  #include "CPP_EEMACROS.h"  #include "CPP_EEMACROS.h"
163    

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.43

  ViewVC Help
Powered by ViewVC 1.1.22