F_orig = new char[sizeof(T)*Layout::sitesOnNode()+QDP_ALIGNMENT_SIZE];
F_orig = new(nothrow) char[sizeof(T)*Layout::sitesOnNode()+QDP_ALIGNMENT_SIZE];
  inline void alloc_mem(const char* const p)     {#ifdef QDP_USE_QCDOC_EDRAM      // Let us try and allocate in the EDRAM first. The QCOMMS apparently      // improves streaming performance later by locating things in transient      // cache areas (even if we don't want to communicate the thing later       F_orig = (char *)qalloc((QFAST|QCOMMS), sizeof(T)*Layout::sitesOnNode()+QDP_ALIGNMENT_SIZE);      if(F_orig == (char *)NULL) {	// If allocation in EDRAM failed, try allocating in DDR. 	// According to Peter, it is still worth keeping the QCOMMS flag	// on for better caching in the transient cache area 	F_orig = (char *)qalloc(QCOMMS, sizeof(T)*Layout::sitesOnNode()+QDP_ALIGNMENT_SIZE);	if( F_orig == (char *)NULL ) {           QDP_error_exit("Unable to qalloc in alloc mem");        }      }#else       F_orig = new char[sizeof(T)*Layout::sitesOnNode()+QDP_ALIGNMENT_SIZE];      if (F_orig == 0x0) { 	QDP_error_exit("Unable to new memory in alloc mem in qdp_outer.h");      }#endif      F = (T*)(((unsigned int)F_orig + (QDP_ALIGNMENT_SIZE-1)) & ~(QDP_ALIGNMENT_SIZE-1));#if QDP_DEBUG >= 1      QDP_info("%s OLattice_orig=0x%x, OLattice[%d]=0x%x, this=0x%x, bytes/site=%d",	       p,F_orig,Layout::sitesOnNode(),F,this,sizeof(T));#endif    }