def METHOD_NAME(self, node1, node2, options=None):
    '''Checks if it is valid to apply the GOceanLoopFuseTrans
    transform. It ensures that the fused loops are over
    the same grid-point types, before calling the normal
    LoopFuseTrans validation function.
    :param node1: the first Node representing a GOLoop.
    :type node1: :py:class:`psyclone.gocean1p0.GOLoop`
    :param node2: the second Node representing a GOLoop.
    :type node2: :py:class:`psyclone.gocean1p0.GOLoop`
    :param options: a dictionary with options for transformations.
    :type options: Optional[Dict[str, Any]]
    :raises TransformationError: if the supplied loops are over \
                                 different grid-point types.
    :raises TransformationError: if invalid parameters are passed in.
    '''
    if not (isinstance(node1, psyclone.gocean1p0.GOLoop) and
            isinstance(node2, psyclone.gocean1p0.GOLoop)):
        raise TransformationError(f"Error in {self.name} transformation. "
                                  f"Both nodes must be of the same "
                                  f"GOLoop class.")
    super(GOceanLoopFuseTrans, self).METHOD_NAME(node1, node2,
                                              options=options)
    if node1.field_space != node2.field_space:
        raise TransformationError(
            f"Error in {self.name} transformation. Cannot "
            f"fuse loops that are over different grid-point types: "
            f"{node1.field_space} and {node2.field_space}")