 // load same initial conditions for all threads
 #define SAME_IC
 #define REPEATS 100
+#define BLOCK_SIZE 64
+#define LOW_T 1000
+#define HI_T 2000
+#define GLOBAL_MEM
 
 // shuffle initial conditions randomly
 //#define SHUFFLE

#include <cuComplex.h>

#include "header.h"
#include "exprb43.cuh"
#include "mass_mole.h"
#include "timer.h"


	{
		rev_rates[tid + i * NUM] = local_rev_rates[i];
	}
#else
	#pragma unroll
	for (int repeat = 0; repeat < REPEATS; repeat++)
	{
		if (tid < NUM)
		{
			eval_rxn_rates (T_global[tid], conc, fwd_rates, rev_rates);
		}
	}
#endif
}

__global__
void presmod_driver (const int NUM, const Real* T_global, const Real* pr_global, const Real* conc, Real* pres_mod) {
#ifndef GLOBAL_MEM
	Real local_pres_mod[PRES_MOD_RATES];
	// local array with initial values
	Real local_conc[NSP];
