def calacs(input_file, exec_path=None, time_stamps=False, temp_files=False,<EOL>verbose=False, debug=False, quiet=False, single_core=False,<EOL>exe_args=None):
if exec_path:<EOL><INDENT>if not os.path.exists(exec_path):<EOL><INDENT>raise OSError('<STR_LIT>' + exec_path)<EOL><DEDENT>call_list = [exec_path]<EOL><DEDENT>else:<EOL><INDENT>call_list = ['<STR_LIT>']<EOL><DEDENT>if time_stamps:<EOL><INDENT>call_list.append('<STR_LIT>')<EOL><DEDENT>if temp_files:<EOL><INDENT>call_list.append('<STR_LIT>')<EOL><DEDENT>if verbose:<EOL><INDENT>call_list.append('<STR_LIT>')<EOL><DEDENT>if debug:<EOL><INDENT>call_list.append('<STR_LIT>')<EOL><DEDENT>if quiet:<EOL><INDENT>call_list.append('<STR_LIT>')<EOL><DEDENT>if single_core:<EOL><INDENT>call_list.append('<STR_LIT>')<EOL><DEDENT>if not os.path.exists(input_file):<EOL><INDENT>raise IOError('<STR_LIT>' + input_file)<EOL><DEDENT>call_list.append(input_file)<EOL>if exe_args:<EOL><INDENT>call_list.extend(exe_args)<EOL><DEDENT>subprocess.check_call(call_list)<EOL>
Run the calacs.e executable as from the shell.

By default this will run the calacs given by 'calacs.e'.

Parameters
----------
input_file : str
    Name of input file.

exec_path : str, optional
    The complete path to a calacs executable.

time_stamps : bool, optional
    Set to True to turn on the printing of time stamps.

temp_files : bool, optional
    Set to True to have CALACS save temporary files.

verbose : bool, optional
    Set to True for verbose output.

debug : bool, optional
    Set to True to turn on debugging output.

quiet : bool, optional
    Set to True for quiet output.

single_core : bool, optional
    CTE correction in CALACS will by default try to use all available
    CPUs on your computer. Set this to True to force the use of just
    one CPU.

exe_args : list, optional
    Arbitrary arguments passed to underlying executable call.
    Note: Implementation uses subprocess.call and whitespace is not
    permitted. E.g. use exe_args=['--nThreads', '1']