ix=0
  jx=0
  kx=0
  call reorder(MemoryOrder,MemO)
  if(IACHAR(MemO(1:1)) > MaxUpperCase) ix=i2+i1
  if(IACHAR(MemO(2:2)) > MaxUpperCase) jx=j2+j1
  if(IACHAR(MemO(3:3)) > MaxUpperCase) kx=k2+k1

! pjj/cray
  if(IO == 'write') then
!dir$ concurrent
     do k=k1,k2
        do j=j1,j2
!dir$ prefervector
!dir$ concurrent
!cdir select(vector)
           do i=i1,i2
              DFIELD = Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k))
           enddo
        enddo
     enddo
  else

!dir$ concurrent
     do k=k1,k2
        do j=j1,j2
!dir$ prefervector
!dir$ concurrent
!cdir select(vector)
           do i=i1,i2
              Field(1:di,abs(ix-i),abs(jx-j),abs(kx-k)) = DFIELD
           enddo
        enddo
     enddo
  endif

  return