def METHOD_NAME(self, carray, dtype, delete=False):
    """Transfer values from SWIG 1D carray to numpy, 3D array"""
    logger.debug("Update numpy from C array values")
    nv = self.ntotal
    self._isdiscrete = False
    if dtype == np.float64:
        logger.info("Entering conversion to numpy (float64) ...")
        values1d = _cxtgeo.swig_carr_to_numpy_1d(nv, carray)
    else:
        logger.info("Entering conversion to numpy (int32) ...")
        values1d = _cxtgeo.swig_carr_to_numpy_i1d(nv, carray)
        self._isdiscrete = True
    values = np.reshape(values1d, (self._ncol, self._nrow, self._nlay), order="F")
    # make into C order as this is standard Python order...
    values = np.asanyarray(values, order="C")
    # make it float64 or whatever(?) and mask it
    self._values = values
    self.mask_undef()
    # optionally delete the C array if needed
    if delete:
        carray = delete_carray(self, carray)