def METHOD_NAME(self, pname, roxgrid, realisation, casting):  # pragma: no cover
    """Store property in RMS."""
    indexer = roxgrid.get_grid(realisation=realisation).grid_indexer
    logger.info("Store in RMS...")
    val3d = self.values.copy()
    cellno = indexer.get_cell_numbers_in_range((0, 0, 0), indexer.dimensions)
    ijk = indexer.get_indices(cellno)
    iind = ijk[:, 0]
    jind = ijk[:, 1]
    kind = ijk[:, 2]
    dtype = self._roxar_dtype
    logger.info("DTYPE is %s for %s", dtype, pname)
    # casting will secure correct types
    if dtype not in VALID_ROXAR_DTYPES:
        raise TypeError(
            f"Roxar dtype is not valid: {dtype} must be in {VALID_ROXAR_DTYPES}"
        )
    if self.isdiscrete:
        pvalues = roxgrid.get_grid(realisation=realisation).generate_values(
            data_type=dtype
        )
        roxar_property_type = roxar.GridPropertyType.discrete
    else:
        pvalues = roxgrid.get_grid(realisation=realisation).generate_values(
            data_type=dtype
        )
        roxar_property_type = roxar.GridPropertyType.continuous
    pvalues[cellno] = val3d[iind, jind, kind]
    properties = roxgrid.properties
    if pname not in properties:
        rprop = properties.create(
            pname, property_type=roxar_property_type, data_type=dtype
        )
    else:
        rprop = properties[pname]
        dtype = rprop.data_type
    rprop.set_values(pvalues.astype(dtype, casting=casting), realisation=realisation)
    if self.isdiscrete:
        rprop.code_names = _rox_compatible_codes(self.codes)