def METHOD_NAME(self, name, array, C0nn=False):
    if isinstance(array, list):
        if all(isinstance(element, str) for element in array):
            array = np.array(array)
        elif all(isinstance(element, bool) for element in array):
            array = np.array(array)
        elif all(isinstance(element, int) for element in array):
            array = np.array(array, dtype = "int32")
        elif sys.version_info.major == 2 and all(isinstance(element, unicode) for element in array):
            array = np.array(array)
        else:
            raise ValueError("!!array {} is python list, type {}, not supported".format(name, type(array[0])))
    if not isinstance(array, np.ndarray):
        raise ValueError("EclOutput - write function works only for numpy arrays")
    if array.dtype == "float32":
        self.__write_real_array(name, array)
    elif array.dtype == "int32":
        self.__write_inte_array(name, array)
    elif array.dtype == "int64":
        print ("!Warning, writing numpy dtype=int64 to 32 bit integer format")
        self.__write_inte_array(name, array)
    elif array.dtype == "float64":
        self.__write_doub_array(name, array)
    elif array.dtype == "bool":
        self.__write_logi_array(name, array)
    elif  array.dtype.kind in {'U', 'S'} and not C0nn:
        self.__write_char_array(name, array)
    elif  array.dtype.kind in {'U', 'S'} and C0nn:
        maxStrLength = max([len(x) for x in array])
        self.__write_c0nn_array(name, array, max([maxStrLength, 8]))
    else:
        raise ValueError("unknown array type for array {}".format(name))