anchor.diff:           status = NXgetslab (file_id, buffer, data_start, data_size)
            IF (status == NX_OK) THEN
               ALLOCATE (data(data_size(1),data_size(2),data_size(3)))
  -            data = RESHAPE (buffer, data_size(1:3))
  +            data_shape = data_size(1:3)
  +            data = RESHAPE (buffer, data_shape)
            END IF
         ELSE
            ALLOCATE (buffer(PRODUCT(dimensions(1:3))))
  
positive.code:       REAL(kind=NXr4),  POINTER       :: data(:,:)
        CHARACTER(len=*), INTENT(out), OPTIONAL :: units
        INTEGER,          INTENT(in),  OPTIONAL ::data_start(:), data_size(:)
        INTEGER :: status, dimensions(NX_MAXRANK)
        REAL, ALLOCATABLE :: buffer(:)
  
        status = NXUconfirmdata (file_id, data_name, NX_FLOAT32, 2, dimensions)
  
negative.code:          status = NXgetslab (file_id, buffer, data_start, data_size)
           IF (status == NX_OK) THEN
              ALLOCATE (data(data_size(1),data_size(2)))
              data_shape = data_size(1:2)
              data = RESHAPE (buffer, data_shape)
           END IF
        ELSE
           ALLOCATE (buffer(PRODUCT(dimensions(1:2))))
  