--- MITgcm/eesupp/inc/CPP_EEOPTIONS.h 1998/09/05 17:52:12 1.8 +++ MITgcm/eesupp/inc/CPP_EEOPTIONS.h 2000/03/14 16:16:01 1.13 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/eesupp/inc/CPP_EEOPTIONS.h,v 1.8 1998/09/05 17:52:12 cnh Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/eesupp/inc/CPP_EEOPTIONS.h,v 1.13 2000/03/14 16:16:01 adcroft Exp $ C C /==========================================================\ C | CPP_EEOPTIONS.h | @@ -62,7 +62,7 @@ #endif #ifdef TARGET_DEC -#undef USE_KAP_THREADING +#define USE_KAP_THREADING #endif #ifdef TARGET_SGI @@ -85,7 +85,7 @@ C-- Define the mapping for the BEGIN_CRIT() and END_CRIT() macros. C On some systems we simply execute this section only using the C master thread i.e. its not really a critical section. We can -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 C sections of our code! #define _BEGIN_CRIT(a) _BEGIN_MASTER(a) #define _END_CRIT(a) _END_MASTER(a) @@ -111,6 +111,17 @@ #define ALLOW_SYNC_COMMUNICATION #undef ALWAYS_USE_SYNC_COMMUNICATION +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 +#ifdef LETS_MAKE_JAM +#define _JAMEXT _jam +#else +#define _JAMEXT +#endif + 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. @@ -126,10 +137,11 @@ #define REAL Real*8 #define _RS Real*8 #define _RL Real*8 +#define RS_IS_REAL8 #define _EXCH_XY_R4(a,b) CALL EXCH_XY_R8 ( a, b ) #define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_R8 ( a, b ) -#define _GLOBAL_SUM_R4(a,b,c) CALL GLOBAL_SUM_R8( a, b , c) -#define _GLOBAL_MAX_R4(a,b,c) CALL GLOBAL_MAX_R8( a, b , c) +#define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8( a, b ) +#define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R8( a, b ) #endif #ifndef REAL4_IS_SLOW @@ -137,16 +149,17 @@ #define REAL Real*8 #define _RS Real*4 #define _RL Real*8 +#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 _GLOBAL_SUM_R4(a,b,c) CALL GLOBAL_SUM_R4( a, b , c) -#define _GLOBAL_MAX_R4(a,b,c) CALL GLOBAL_MAX_R4( a, b , c) +#define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R4( a, b ) +#define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R4( a, b ) #endif #define _EXCH_XY_R8(a,b) CALL EXCH_XY_R8 ( a, b ) #define _EXCH_XYZ_R8(a,b) CALL EXCH_XYZ_R8 ( a, b ) -#define _GLOBAL_SUM_R8(a,b,c) CALL GLOBAL_SUM_R8( a, b , c) -#define _GLOBAL_MAX_R8(a,b,c) CALL GLOBAL_MAX_R8( a, b , c) +#define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8( a, b ) +#define _GLOBAL_MAX_R8(a,b) CALL GLOBAL_MAX_R8( a, b ) C-- Control use of "double" precision constants. C Use D0 where it means REAL*8 but not where it means REAL*16 @@ -158,7 +171,7 @@ C-- Control XY periodicity in processor to grid mappings C Note: Model code does not need to know whether a domain is C periodic because it has overlap regions for every box. -C Model's simply assume that these values have been +C Model assume that these values have been C filled in some way. #undef ALWAYS_PREVENT_X_PERIODICITY #undef ALWAYS_PREVENT_Y_PERIODICITY @@ -166,7 +179,7 @@ #define CAN_PREVENT_Y_PERIODICITY C-- Substitue for 1.D variables -C Sun compilers don't use 8-byte precision for literals +C Sun compilers do not use 8-byte precision for literals C unless .Dnn is specified. CRAY vector machines use 16-byte C precision when they see .Dnn which runs very slowly! #ifdef REAL_D0_IS_16BYTES