SetupSpectralMethods(jg)
    jg.runtime.timestep_size = 2  # second #jg.runtime.output_timestep_size/100.0
    jg.runtime.timestepping_method = tsm[0]
    jg.runtime.timestepping_order = tsm[1]
    jg.runtime.timestepping_order2 = tsm[2]
    jg.runtime.space_res_physical = -1
    #jg.runtime.space_res_spectral = 1024
    jg.runtime.space_res_spectral = phys_res_list[0]

    # Tag this as a reference job
    jg.reference_job = True
    jg.gen_jobscript_directory()
    jg.reference_job = False

    # Use this one as the reference solution!
    jg.reference_job_unique_id = jg.job_unique_id

#
# Use only 2 iterations for Semi-Lagrangian methods
#
unique_id_filter.append('runtime.semi_lagrangian')
jg.runtime.semi_lagrangian_iterations = 2
jg.runtime.semi_lagrangian_convergence_threshold = -1

jg.parallelization.max_wallclock_seconds = max_wallclock_seconds

for tsm in ts_methods[1:]:

    if 'ln_erk' in tsm[0]:
        SetupFDCMethods(jg)
    else:
                if verbose:
                    pspace.print()
                    ptime.print()
                    p.parallelization.print()

                if len(tsm) > 4:
                    s = tsm[4]
                    p.load_from_dict(tsm[4])

                p.parallelization.max_wallclock_seconds = estimateWallclockTime(
                    p)

                p.gen_jobscript_directory('job_benchref_' + p.getUniqueID())

                p.reference_job_unique_id = p.job_unique_id

            #
            # Create job scripts
            #
            for tsm in ts_methods[1:]:
                p.runtime.timestepping_method = tsm[0]
                p.runtime.timestepping_order = tsm[1]
                p.runtime.timestepping_order2 = tsm[2]

                if len(tsm) > 4:
                    s = tsm[4]
                    p.runtime.load_from_dict(tsm[4])

                tsm_name = tsm[0]
                if 'ln_erk' in tsm_name: