/[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.3 by heimbach, Mon May 14 21:31:41 2001 UTC revision 1.4 by adcroft, Tue May 29 14:01:35 2001 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3  C  
4  C     /==========================================================\  C     /==========================================================\
5  C     | CPP_EEMACROS.h                                           |  C     | CPP_EEMACROS.h                                           |
6  C     |==========================================================|  C     |==========================================================|
# Line 78  C     it alone execute the BEGIN_MASTER. Line 78  C     it alone execute the BEGIN_MASTER.
78  #define _BEGIN_MASTER(a)  IF ( a .EQ. 1 ) THEN  #define _BEGIN_MASTER(a)  IF ( a .EQ. 1 ) THEN
79  #define _END_MASTER(a)    ENDIF  #define _END_MASTER(a)    ENDIF
80    
 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  
   
81  C--   Control storage of floating point operands  C--   Control storage of floating point operands
82  C     On many systems it improves performance only to use  C     On many systems it improves performance only to use
83  C     8-byte precision for time stepped variables.  C     8-byte precision for time stepped variables.
# Line 98  C     performance. Line 89  C     performance.
89  #ifdef REAL4_IS_SLOW  #ifdef REAL4_IS_SLOW
90  #define _RS Real*8  #define _RS Real*8
91  #define RS_IS_REAL8  #define RS_IS_REAL8
92  #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 _EXCH_XZ_R4(a,b) CALL EXCH_XZ_R8 _JAMEXT ( a, b )  
 #define _EXCH_YZ_R4(a,b) CALL EXCH_YZ_R8 _JAMEXT ( a, b )  
 #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8 _JAMEXT ( a, b)  
93  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R8 ( a, b )  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R8 ( a, b )
94  #else  #else
95  #define _RS Real*4  #define _RS Real*4
96  #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 )  
 #define _EXCH_XZ_R4(a,b) CALL EXCH_XZ_R4 ( a, b )  
 #define _EXCH_YZ_R4(a,b) CALL EXCH_YZ_R4 ( a, b )  
97  #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R4 ( a, b )  #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R4 ( a, b )
98  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R4 ( a, b )  #define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R4 ( a, b )
99  #endif  #endif
100    #define _EXCH_XY_R4(a,b) CALL EXCH_XY_RS ( a, b )
101    #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_RS ( a, b )
102    
103  #define _RL Real*8  #define _RL Real*8
104  #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 )
105  #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 )
106  #define _EXCH_XZ_R8(a,b) CALL EXCH_XZ_R8 _JAMEXT ( a, b )  #define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8 ( a, b )
 #define _EXCH_YZ_R8(a,b) CALL EXCH_YZ_R8 _JAMEXT ( a, b )  
 #define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8 _JAMEXT ( a, b )  
107  #define _GLOBAL_MAX_R8(a,b) CALL GLOBAL_MAX_R8 ( a, b )  #define _GLOBAL_MAX_R8(a,b) CALL GLOBAL_MAX_R8 ( a, b )
108    
109    #define _EXCH_XY_RS(a,b) CALL EXCH_XY_RS ( a, b )
110    #define _EXCH_XYZ_RS(a,b) CALL EXCH_XYZ_RS ( a, b )
111    #define _EXCH_XY_RL(a,b) CALL EXCH_XY_RL ( a, b )
112    #define _EXCH_XYZ_RL(a,b) CALL EXCH_XYZ_RL ( a, b )
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    #ifdef LETS_MAKE_JAM
118    #define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8_JAM ( a, b)
119    #define _EXCH_XY_R4(a,b) CALL EXCH_XY_R8_JAM ( a, b )
120    #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
121    #define _EXCH_XY_R8(a,b) CALL EXCH_XY_R8_JAM ( a, b )
122    #define _EXCH_XYZ_R8(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
123    #define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8_JAM ( a, b )
124    
125    #define _EXCH_XY_RS(a,b) CALL EXCH_XY_R8_JAM ( a, b )
126    #define _EXCH_XYZ_RS(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
127    #define _EXCH_XY_RL(a,b) CALL EXCH_XY_R8_JAM ( a, b )
128    #define _EXCH_XYZ_RL(a,b) CALL EXCH_XYZ_R8_JAM ( a, b )
129    #endif
130    
131  C--   Control use of "double" precision constants.  C--   Control use of "double" precision constants.
132  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.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22