def get_node_name_fout(name, fout, i, pc, hpc='slurm'):
    """Make a node name and fout unique to the run name, year, and node number.

    Parameters
    ----------
    name : str
        Base node/job name
    fout : str
        Base file output name (no path) (with or without .h5 extension)
    i : int | None
        Node number. If None, only a single node is being used and no
        enumeration is necessary.
    pc : reV.config.PointsControl
        A PointsControl instance that i is enumerated from.
    hpc : str
        HPC job submission tool name (e.g. slurm or pbs). Affects job name.

    Returns
    -------
    node_name : str
        Base node name with _00 tag. 16 char max.
    fout_node : str
        Base file output name with _node00 tag.
    """
    if name.endswith('.h5'):
        name = name.replace('.h5', '')
    if not fout.endswith('.h5'):
        fout += '.h5'
    if i is None or len(pc) == 1:
        fout_node = fout
        node_name = fout
    else:
        if hpc == 'slurm':
            node_name = '{0}_{1:02d}'.format(name, i)
        elif hpc == 'pbs':
            node_name = '{0}_{1:02d}'.format(name[:13], i)
        fout_node = fout.replace('.h5', '_node{0:02d}.h5'.format(i))
    if node_name.endswith('.h5'):
        node_name = node_name.replace('.h5', '')
    return node_name, fout_node
