00001
00002
00003 #include "NDMeshStreamer.h"
00004 #include "NDMeshStreamer.def.h"
00005
00006
00007 CkArrayIndex1D TramBroadcastInstance<CkArrayIndex1D>::value=TRAM_BROADCAST;
00008
00009 CkArrayIndex2D TramBroadcastInstance<CkArrayIndex2D>::value=CkArrayIndex2D(TRAM_BROADCAST,TRAM_BROADCAST);
00010
00011 CkArrayIndex3D TramBroadcastInstance<CkArrayIndex3D>::value=CkArrayIndex3D(TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST);
00012
00013 CkArrayIndex4D TramBroadcastInstance<CkArrayIndex4D>::value=CkArrayIndex4D(TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST);
00014
00015 CkArrayIndex5D TramBroadcastInstance<CkArrayIndex5D>::value=CkArrayIndex5D(TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST);
00016
00017 CkArrayIndex6D TramBroadcastInstance<CkArrayIndex6D>::value=CkArrayIndex6D(TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST,TRAM_BROADCAST);
00018
00019
00020 CkArrayIndex& TramBroadcastInstance<CkArrayIndex>::value(int dims) {
00021 switch(dims) {
00022 case 1: return TramBroadcastInstance<CkArrayIndex1D>::value;
00023 case 2: return TramBroadcastInstance<CkArrayIndex2D>::value;
00024 case 3: return TramBroadcastInstance<CkArrayIndex3D>::value;
00025 case 4: return TramBroadcastInstance<CkArrayIndex4D>::value;
00026 case 5: return TramBroadcastInstance<CkArrayIndex5D>::value;
00027 case 6: return TramBroadcastInstance<CkArrayIndex6D>::value;
00028 default: CmiAbort("TRAM only supports 1-6D arrays\n");
00029 }
00030 };