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

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

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

revision 1.2 by cnh, Sun Feb 4 14:38:41 2001 UTC revision 1.5 by cnh, Fri Sep 21 03:54:35 2001 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3  C  
4  C     /==========================================================\  CBOP
5  C     | CPP_EEMACROS.h                                           |  C     !ROUTINE: CPP_EEMACROS.h
6  C     |==========================================================|  C     !INTERFACE:
7  C     | C preprocessor "execution environment" supporting        |  C     include "CPP_EEMACROS.h "
8  C     | macros. Use this file to define macros for  simplifying  |  C     !DESCRIPTION:
9  C     | execution environment in which a model runs - as opposed |  C     *==========================================================*
10  C     | to the dynamical problem the model solves.               |  C     | CPP_EEMACROS.h                                            
11  C     \==========================================================/  C     *==========================================================*
12    C     | C preprocessor "execution environment" supporting        
13    C     | macros. Use this file to define macros for  simplifying  
14    C     | execution environment in which a model runs - as opposed  
15    C     | to the dynamical problem the model solves.                
16    C     *==========================================================*
17    CEOP
18    
19  #ifndef _CPP_EEMACROS_H_  #ifndef _CPP_EEMACROS_H_
20  #define _CPP_EEMACROS_H_  #define _CPP_EEMACROS_H_
# Line 78  C     it alone execute the BEGIN_MASTER. Line 84  C     it alone execute the BEGIN_MASTER.
84  #define _BEGIN_MASTER(a)  IF ( a .EQ. 1 ) THEN  #define _BEGIN_MASTER(a)  IF ( a .EQ. 1 ) THEN
85  #define _END_MASTER(a)    ENDIF  #define _END_MASTER(a)    ENDIF
86    
 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.  
 #ifdef LETS_MAKE_JAM  
 #define _JAMEXT _jam  
 #else  
 #define _JAMEXT  
 #endif  
   
87  C--   Control storage of floating point operands  C--   Control storage of floating point operands
88  C     On many systems it improves performance only to use  C     On many systems it improves performance only to use
89  C     8-byte precision for time stepped variables.  C     8-byte precision for time stepped variables.
# Line 98  C     performance. Line 95  C     performance.
95  #ifdef REAL4_IS_SLOW  #ifdef REAL4_IS_SLOW
96  #define _RS Real*8  #define _RS Real*8
97  #define RS_IS_REAL8  #define RS_IS_REAL8
98  #define _EXCH_XY_R4(a,b) CALL EXCH_XY_R8 _JAMEXT ( a, b )  #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8 ( a, b)
 #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_R8 _JAMEXT ( a, b )  
 #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8 _JAMEXT ( a, b)  
99  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R8 ( a, b )  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R8 ( a, b )
100  #else  #else
101  #define _RS Real*4  #define _RS Real*4
102  #define RS_IS_REAL4  #define RS_IS_REAL4
 #define _EXCH_XY_R4(a,b) CALL EXCH_XY_R4 ( a, b )  
 #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_R4 ( a, b )  
103  #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R4 ( a, b )  #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R4 ( a, b )
104  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R4 ( a, b )  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R4 ( a, b )
105  #endif  #endif
106    #define _EXCH_XY_R4(a,b) CALL EXCH_XY_RS ( a, b )
107    #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_RS ( a, b )
108    
109  #define _RL Real*8  #define _RL Real*8
110  #define _EXCH_XY_R8(a,b) CALL EXCH_XY_R8 _JAMEXT ( a, b )  #define _EXCH_XY_R8(a,b) CALL EXCH_XY_RL ( a, b )
111  #define _EXCH_XYZ_R8(a,b) CALL EXCH_XYZ_R8 _JAMEXT ( a, b )  #define _EXCH_XYZ_R8(a,b) CALL EXCH_XYZ_RL ( a, b )
112  #define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8 _JAMEXT ( a, b )  #define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8 ( a, b )
113  #define _GLOBAL_MAX_R8(a,b) CALL GLOBAL_MAX_R8 ( a, b )  #define _GLOBAL_MAX_R8(a,b) CALL GLOBAL_MAX_R8 ( a, b )
114    
115    #define _EXCH_XY_RS(a,b) CALL EXCH_XY_RS ( a, b )
116    #define _EXCH_XYZ_RS(a,b) CALL EXCH_XYZ_RS ( a, b )
117    #define _EXCH_XY_RL(a,b) CALL EXCH_XY_RL ( a, b )
118    #define _EXCH_XYZ_RL(a,b) CALL EXCH_XYZ_RL ( a, b )
119    
120    C--   Control use of JAM routines for Artic network
121    C     These invoke optimized versions of "exchange" and "sum" that
122    C     utilize the programmable aspect of Artic cards.
123    #ifdef LETS_MAKE_JAM
124    #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8_JAM ( a, b)
125    #define _EXCH_XY_R4(a,b) CALL EXCH_XY_R8_JAM ( a, b )
126    #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
127    #define _EXCH_XY_R8(a,b) CALL EXCH_XY_R8_JAM ( a, b )
128    #define _EXCH_XYZ_R8(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
129    #define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8_JAM ( a, b )
130    
131    #define _EXCH_XY_RS(a,b) CALL EXCH_XY_R8_JAM ( a, b )
132    #define _EXCH_XYZ_RS(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
133    #define _EXCH_XY_RL(a,b) CALL EXCH_XY_R8_JAM ( a, b )
134    #define _EXCH_XYZ_RL(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
135    #endif
136    
137  C--   Control use of "double" precision constants.  C--   Control use of "double" precision constants.
138  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

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

  ViewVC Help
Powered by ViewVC 1.1.22