/[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.7 by adcroft, Wed Jul 15 22:05:44 1998 UTC revision 1.13 by adcroft, Tue Mar 14 16:16:01 2000 UTC
# Line 62  C                              system F9 Line 62  C                              system F9
62  #endif  #endif
63    
64  #ifdef TARGET_DEC  #ifdef TARGET_DEC
65  #undef  USE_KAP_THREADING  #define USE_KAP_THREADING
66  #endif  #endif
67    
68  #ifdef TARGET_SGI  #ifdef TARGET_SGI
# Line 85  C     compiler directives here. Line 85  C     compiler directives here.
85  C--   Define the mapping for the BEGIN_CRIT() and  END_CRIT() macros.  C--   Define the mapping for the BEGIN_CRIT() and  END_CRIT() macros.
86  C     On some systems we simply execute this section only using the  C     On some systems we simply execute this section only using the
87  C     master thread i.e. its not really a critical section. We can  C     master thread i.e. its not really a critical section. We can
88  C     do this because we don't use critical sections in any critical  C     do this because we do not use critical sections in any critical
89  C     sections of our code!  C     sections of our code!
90  #define _BEGIN_CRIT(a) _BEGIN_MASTER(a)  #define _BEGIN_CRIT(a) _BEGIN_MASTER(a)
91  #define _END_CRIT(a)   _END_MASTER(a)  #define _END_CRIT(a)   _END_MASTER(a)
# Line 98  C     it alone execute the BEGIN_MASTER. Line 98  C     it alone execute the BEGIN_MASTER.
98  #define _END_MASTER(a)    ENDIF  #define _END_MASTER(a)    ENDIF
99    
100  C--   Control MPI based parallel processing  C--   Control MPI based parallel processing
101  #define ALLOW_USE_MPI  #undef  ALLOW_USE_MPI
102  #define ALWAYS_USE_MPI  #undef  ALWAYS_USE_MPI
103    
104  C--   Control use of communication that might overlap computation.  C--   Control use of communication that might overlap computation.
105  C     Under MPI selects/deselects "non-blocking" sends and receives.  C     Under MPI selects/deselects "non-blocking" sends and receives.
# Line 111  C     Under MPI selects/deselects "block Line 111  C     Under MPI selects/deselects "block
111  #define ALLOW_SYNC_COMMUNICATION  #define ALLOW_SYNC_COMMUNICATION
112  #undef  ALWAYS_USE_SYNC_COMMUNICATION  #undef  ALWAYS_USE_SYNC_COMMUNICATION
113    
114    C--   Control use of JAM routines for Artic network
115    C     These invoke optimized versions of "exchange" and "sum" that
116    C     utilize the programmable aspect of Artic cards.
117    #undef  LETS_MAKE_JAM
118    #undef  JAM_WITH_TWO_PROCS_PER_NODE
119    #ifdef LETS_MAKE_JAM
120    #define _JAMEXT _jam
121    #else
122    #define _JAMEXT
123    #endif
124    
125  C--   Control storage of floating point operands  C--   Control storage of floating point operands
126  C     On many systems it improves performance only to use  C     On many systems it improves performance only to use
127  C     8-byte precision for time stepped variables.  C     8-byte precision for time stepped variables.
# Line 119  C     can use 4-byte precision, reducing Line 130  C     can use 4-byte precision, reducing
130  C     boosting performance because of a smaller working  C     boosting performance because of a smaller working
131  C     set size. However, on vector CRAY systems this degrades  C     set size. However, on vector CRAY systems this degrades
132  C     performance.  C     performance.
133  #undef  REAL4_IS_SLOW  #define REAL4_IS_SLOW
134    
135  #ifdef REAL4_IS_SLOW  #ifdef REAL4_IS_SLOW
136  #define real Real*8  #define real Real*8
137  #define REAL Real*8  #define REAL Real*8
138  #define _RS  Real*8  #define _RS  Real*8
139  #define _RL  Real*8  #define _RL  Real*8
140    #define RS_IS_REAL8
141  #define _EXCH_XY_R4(a,b)       CALL EXCH_XY_R8 ( a, b )  #define _EXCH_XY_R4(a,b)       CALL EXCH_XY_R8 ( a, b )
142  #define _EXCH_XYZ_R4(a,b)      CALL EXCH_XYZ_R8 ( a, b )  #define _EXCH_XYZ_R4(a,b)      CALL EXCH_XYZ_R8 ( a, b )
143  #define _GLOBAL_SUM_R4(a,b,c)  CALL GLOBAL_SUM_R8( a, b , c)  #define _GLOBAL_SUM_R4(a,b)    CALL GLOBAL_SUM_R8( a, b )
144  #define _GLOBAL_MAX_R4(a,b,c)  CALL GLOBAL_MAX_R8( a, b , c)  #define _GLOBAL_MAX_R4(a,b)    CALL GLOBAL_MAX_R8( a, b )
145  #endif  #endif
146    
147  #ifndef REAL4_IS_SLOW  #ifndef REAL4_IS_SLOW
# Line 137  C     performance. Line 149  C     performance.
149  #define REAL Real*8  #define REAL Real*8
150  #define _RS  Real*4  #define _RS  Real*4
151  #define _RL  Real*8  #define _RL  Real*8
152    #define RS_IS_REAL4
153  #define _EXCH_XY_R4(a,b)       CALL EXCH_XY_R4 ( a, b )  #define _EXCH_XY_R4(a,b)       CALL EXCH_XY_R4 ( a, b )
154  #define _EXCH_XYZ_R4(a,b)      CALL EXCH_XYZ_R4 ( a, b )  #define _EXCH_XYZ_R4(a,b)      CALL EXCH_XYZ_R4 ( a, b )
155  #define _GLOBAL_SUM_R4(a,b,c)  CALL GLOBAL_SUM_R4( a, b , c)  #define _GLOBAL_SUM_R4(a,b)    CALL GLOBAL_SUM_R4( a, b )
156  #define _GLOBAL_MAX_R4(a,b,c)  CALL GLOBAL_MAX_R4( a, b , c)  #define _GLOBAL_MAX_R4(a,b)    CALL GLOBAL_MAX_R4( a, b )
157  #endif  #endif
158    
159  #define _EXCH_XY_R8(a,b)       CALL EXCH_XY_R8 ( a, b )  #define _EXCH_XY_R8(a,b)       CALL EXCH_XY_R8 ( a, b )
160  #define _EXCH_XYZ_R8(a,b)      CALL EXCH_XYZ_R8 ( a, b )  #define _EXCH_XYZ_R8(a,b)      CALL EXCH_XYZ_R8 ( a, b )
161  #define _GLOBAL_SUM_R8(a,b,c)  CALL GLOBAL_SUM_R8( a, b , c)  #define _GLOBAL_SUM_R8(a,b)    CALL GLOBAL_SUM_R8( a, b )
162  #define _GLOBAL_MAX_R8(a,b,c)  CALL GLOBAL_MAX_R8( a, b , c)  #define _GLOBAL_MAX_R8(a,b)    CALL GLOBAL_MAX_R8( a, b )
163    
164  C--   Control use of "double" precision constants.  C--   Control use of "double" precision constants.
165  C     Use D0 where it means REAL*8 but not where it means REAL*16  C     Use D0 where it means REAL*8 but not where it means REAL*16
# Line 158  C     Use D0 where it means REAL*8 but n Line 171  C     Use D0 where it means REAL*8 but n
171  C--   Control XY periodicity in processor to grid mappings  C--   Control XY periodicity in processor to grid mappings
172  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
173  C           periodic because it has overlap regions for every box.  C           periodic because it has overlap regions for every box.
174  C           Model's simply assume that these values have been  C           Model assume that these values have been
175  C           filled in some way.  C           filled in some way.
176  #undef  ALWAYS_PREVENT_X_PERIODICITY  #undef  ALWAYS_PREVENT_X_PERIODICITY
177  #undef  ALWAYS_PREVENT_Y_PERIODICITY  #undef  ALWAYS_PREVENT_Y_PERIODICITY
# Line 166  C           filled in some way. Line 179  C           filled in some way.
179  #define CAN_PREVENT_Y_PERIODICITY  #define CAN_PREVENT_Y_PERIODICITY
180    
181  C--   Substitue for 1.D variables  C--   Substitue for 1.D variables
182  C     Sun compilers don't use 8-byte precision for literals  C     Sun compilers do not use 8-byte precision for literals
183  C     unless .Dnn is specified. CRAY vector machines use 16-byte  C     unless .Dnn is specified. CRAY vector machines use 16-byte
184  C     precision when they see .Dnn which runs very slowly!  C     precision when they see .Dnn which runs very slowly!
185  #ifdef REAL_D0_IS_16BYTES  #ifdef REAL_D0_IS_16BYTES
186  #define _d  #define _d
187    #define _F64( a ) a
188  #endif  #endif
189  #ifndef REAL_D0_IS_16BYTES  #ifndef REAL_D0_IS_16BYTES
190  #define _d D  #define _d D
191    #define _F64( a ) DFLOAT( a )
192  #endif  #endif
193    
194  #endif /* _CPP_EEOPTIONS_H_ */  #endif /* _CPP_EEOPTIONS_H_ */

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22