def load_inputvariablesfile(intputfile):
    """
    Loads inputfile which must be in the bifacial_radiance directory,
    and must be a ``.py`` file with all the variables, and organizes the variables
    into dictionaries that it returns

    Parameters
    ----------
    inputfile : str
        String of a ``.py`` file in the bifacial_radiance directory.

    Returns
    -------
    simulationParamsDict : Dictionary
        Dictionary containing the parameters for performing the simulation,
        including simulation names, and types of sky, fixed or tracked systems:
            ========================  =======  =============================
            variable                   type         Description
            ========================  =======  =============================
            testfolder                str      Path to testfolder
            weatherfile               str      File (with path) to weatherfile
            getEPW                    bool     
            simulationname            str      Name for simulation
            moduletype                str      Module name as is / or will be defined in JSON
            rewritemodule             bool     If moduletype exists in JSON, True will rewrite with new parameters
            cellLevelmodule           bool        
            axisofrotationtorquetube  bool
            torqueTube                bool
            hpc                       bool
            tracking                  bool
            cumulativesky             bool
            daydateSimulation         bool
            timeIndexSimulation  bool
            ========================  =======  =============================
    sceneParamsDict : Dictionary 
        gcrorpitch, gcr, pitch, albedo, nMods, nRows, 
        hub_height, clearance_height, azimuth, hub_height, axis_Azimuth
    timeControlParamsDict : Dictionary      
        hourstart, hourend, daystart, dayend, monthstart, monthend,
        timestampstart, timestampend, 
    moduleParamsDict : Dictionary
        numpanels, x, y, bifi, xgap, ygap, zgap
    cellLevelModuleParamsDict : Dictionary
        numcellsx, numcellsy, xcell, ycell, xcellgap, ycellgap
    trackingParamsDict : Dictionary
        backtrack, limit_angle,angle_delta
    torquetubeParamsDict : Dictionary
         diameter, tubetype, torqueTubeMaterial
    analysisParamsDict : Dictionary
        sensorsy, modWanted, rowWanted
    """
    import inputfile as ibf
    simulationParamsDict = {'testfolder': ibf.testfolder, 'epwfile': ibf.
        epwfile, 'simulationname': ibf.simulationname, 'moduletype': ibf.
        moduletype, 'rewriteModule': ibf.rewriteModule, 'cellLevelModule':
        ibf.cellLevelModule, 'axisofrotationTorqueTube': ibf.
        axisofrotationTorqueTube, 'torqueTube': ibf.torqueTube}
    simulationControlDict = {'fixedortracked': ibf.fixedortracked,
        'cumulativeSky': ibf.cumulativeSky, 'timestampSimulation': ibf.
        timestampSimulation, 'timeIndexSimulation': ibf.timeIndexSimulation,
        'hpc': ibf.hpc, 'daydateSimulation': ibf.dayDateSimulation,
        'singleKeySimulation': ibf.singleKeySimulation,
        'singleKeyRangeSimulation': ibf.singleKeyRangeSimulation}
    timeControlParamsDict = {'timestampstart': ibf.timestampstart,
        'timestampend': ibf.timestampend, 'startdate': ibf.startdate,
        'enddate': ibf.enddate, 'singlekeystart': ibf.singlekeystart,
        'singlekeyend': ibf.singlekeyend, 'day_date': ibf.daydate}
    moduleParamsDict = {'numpanels': ibf.numpanels, 'x': ibf.x, 'y': ibf.y,
        'bifi': ibf.bifi, 'xgap': ibf.xgap, 'ygap': ibf.ygap, 'zgap': ibf.zgap}
    sceneParamsDict = {'gcr': ibf.gcr, 'pitch': ibf.pitch, 'albedo': ibf.
        albedo, 'nMods': ibf.nMods, 'nRows': ibf.nRows, 'azimuth': ibf.
        azimuth_ang, 'tilt': ibf.tilt, 'clearance_height': ibf.
        clearance_height, 'hub_height': ibf.hub_height, 'axis_azimuth': ibf
        .axis_azimuth}
    trackingParamsDict = {'backtrack': ibf.backtrack, 'limit_angle': ibf.
        limit_angle, 'angle_delta': ibf.angle_delta}
    torquetubeParamsDict = {'diameter': ibf.diameter, 'tubetype': ibf.
        tubetype, 'torqueTubeMaterial': ibf.torqueTubeMaterial}
    analysisParamsDict = {'sensorsy': ibf.sensorsy, 'modWanted': ibf.
        modWanted, 'rowWanted': ibf.rowWanted}
    cellLevelModuleParamsDict = {'numcellsx': ibf.numcellsx, 'numcellsy':
        ibf.numcellsy, 'xcell': ibf.xcell, 'ycell': ibf.ycell, 'xcellgap':
        ibf.xcellgap, 'ycellgap': ibf.ycellgap}
    return (simulationParamsDict, simulationControlDict,
        timeControlParamsDict, moduleParamsDict, cellLevelModuleParamsDict,
        sceneParamsDict, trackingParamsDict, analysisParamsDict)
