Processes a CMIP3 style file path.

    The standard CMIP3 directory structure:

        <experiment>/<variable_name>/<model>/<ensemble_member>/<CMOR filename>.nc

    Filename is of pattern:

        <model>-<experiment>-<variable_name>-<ensemble_member>.nc

    Arguments:
        fp (str): A file path conforming to CMIP3 spec.

    Returns:
        dict: Metadata as extracted from the file path.

def get_fp_meta(fp):
    """Processes a CMIP3 style file path.

    The standard CMIP3 directory structure:

        <experiment>/<variable_name>/<model>/<ensemble_member>/<CMOR filename>.nc

    Filename is of pattern:

        <model>-<experiment>-<variable_name>-<ensemble_member>.nc

    Arguments:
        fp (str): A file path conforming to CMIP3 spec.

    Returns:
        dict: Metadata as extracted from the file path.

    """

    # Copy metadata list then reverse to start at end of path
    directory_meta = list(DIR_ATTS)

    # Prefer meta extracted from filename
    meta = get_dir_meta(fp, directory_meta)
    meta.update(get_fname_meta(fp))

    return meta