 	checkAndSetGPUDevice(netId);
 
 	// cudaFree all device pointers
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].voltage));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].nextVoltage));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].recovery));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].current));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extCurrent));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].curSpike));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npre));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npre_plastic));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npre_plasticInv));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npost));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].cumulativePost));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].cumulativePre));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].synSpikeTime));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].wt));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].wtChange));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].maxSynWt));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].nSpikeCnt));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].avgFiring));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].baseFiring));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].baseFiringInv));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpDA));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grp5HT));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpACh));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpNE));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpDABuffer));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grp5HTBuffer));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpAChBuffer));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpNEBuffer));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpIds));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_a));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_b));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_c));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_d));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_C));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_k));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_vr));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_vt));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_vpeak));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gAMPA));
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].voltage) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].nextVoltage) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].recovery) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].current) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extCurrent) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].curSpike) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npre) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npre_plastic) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npre_plasticInv) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Npost) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].cumulativePost) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].cumulativePre) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].synSpikeTime) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].wt) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].wtChange) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].maxSynWt) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].nSpikeCnt) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].avgFiring) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].baseFiring) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].baseFiringInv) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpDA) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grp5HT) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpACh) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpNE) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpDABuffer) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grp5HTBuffer) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpAChBuffer) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpNEBuffer) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].grpIds) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_a) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_b) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_c) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_d) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_C) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_k) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_vr) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_vt) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].Izh_vpeak) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gAMPA) );
 	if (sim_with_NMDA_rise) {
-		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gNMDA_r));
-		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gNMDA_d));
+		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gNMDA_r) );
+		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gNMDA_d) );
 	}
 	else {
-		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gNMDA));
-	}
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAa));
+		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gNMDA) );
+	}
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAa) );
 	if (sim_with_GABAb_rise) {
-		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAb_r));
-		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAb_d));
+		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAb_r) );
+		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAb_d) );
 	}
 	else {
-		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAb));
-	}
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].stpu));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].stpx));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].connIdsPreIdx));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].groupIdInfo));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].neuronAllocation));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].postDelayInfo));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].postSynapticIds));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].preSynapticIds));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].I_set));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].poissonFireRate));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].lastSpikeTime));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].spikeGenBits));
-
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].firingTableD2));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].firingTableD1));
+		CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].gGABAb) );
+	}
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].stpu) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].stpx) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].connIdsPreIdx) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].groupIdInfo) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].neuronAllocation) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].postDelayInfo) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].postSynapticIds) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].preSynapticIds) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].I_set) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].poissonFireRate) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].lastSpikeTime) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].spikeGenBits) );
+
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].firingTableD2) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].firingTableD1) );
 
 	int** tempPtrs;
 	tempPtrs = new int*[networkConfigs[netId].numGroups];
 
 	// fetch device memory address stored in extFiringTableD2
-	CUDA_CHECK_ERRORS( cudaMemcpy(tempPtrs, runtimeData[netId].extFiringTableD2, sizeof(int*) * networkConfigs[netId].numGroups, cudaMemcpyDeviceToHost));
+	CUDA_CHECK_ERRORS( cudaMemcpy(tempPtrs, runtimeData[netId].extFiringTableD2, sizeof(int*) * networkConfigs[netId].numGroups, cudaMemcpyDeviceToHost) );
 	for (int i = 0; i < networkConfigs[netId].numGroups; i++)
-		CUDA_CHECK_ERRORS( cudaFree(tempPtrs[i]));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableD2));
+		CUDA_CHECK_ERRORS( cudaFree(tempPtrs[i]) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableD2) );
 
 	// fetch device memory address stored in extFiringTableD1
-	CUDA_CHECK_ERRORS( cudaMemcpy(tempPtrs, runtimeData[netId].extFiringTableD1, sizeof(int*) * networkConfigs[netId].numGroups, cudaMemcpyDeviceToHost));
+	CUDA_CHECK_ERRORS( cudaMemcpy(tempPtrs, runtimeData[netId].extFiringTableD1, sizeof(int*) * networkConfigs[netId].numGroups, cudaMemcpyDeviceToHost) );
 	for (int i = 0; i < networkConfigs[netId].numGroups; i++)
-		CUDA_CHECK_ERRORS( cudaFree(tempPtrs[i]));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableD1));
+		CUDA_CHECK_ERRORS( cudaFree(tempPtrs[i]) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableD1) );
 
 	delete [] tempPtrs;
 
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableEndIdxD2));
-	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableEndIdxD1));
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableEndIdxD2) );
+	CUDA_CHECK_ERRORS( cudaFree(runtimeData[netId].extFiringTableEndIdxD1) );
 
 	// delete random numbr generator on GPU(s)
 	// Note: RNG_rand48 objects allocate device memory

	case STANDARD:
		if (groupConfigsGPU[grpId].WithHomeostasis) {
			// this factor is slow
			t_wt += (diff_firing*t_wt*homeostasisScale + t_effectiveWtChange) * baseFiring * avgTimeScaleInv / (1.0f + fabs(diff_firing)*50.0f);
		} else {
			t_wt += t_effectiveWtChange;
		}


	if (isSimulationWithNMDARise()) {
		assert(src->gNMDA_r != NULL);
		if(allocateMem) CUDA_CHECK_ERRORS(cudaMalloc((void**) &dest->gNMDA_r, sizeof(float) * length));
		CUDA_CHECK_ERRORS(cudaMemcpy(&dest->gNMDA_r[ptrPos], &src->gNMDA_r[ptrPos], sizeof(float) * length, kind));

		assert(src->gNMDA_d != NULL);
		if(allocateMem) CUDA_CHECK_ERRORS(cudaMalloc((void**) &dest->gNMDA_d, sizeof(float) * length));
		CUDA_CHECK_ERRORS(cudaMemcpy(&dest->gNMDA_d[ptrPos], &src->gNMDA_d[ptrPos], sizeof(float) * length, kind));
	} else {
		assert(src->gNMDA != NULL);
		if(allocateMem) CUDA_CHECK_ERRORS(cudaMalloc((void**) &dest->gNMDA, sizeof(float) * length));
		CUDA_CHECK_ERRORS(cudaMemcpy(&dest->gNMDA[ptrPos + destOffset], &src->gNMDA[ptrPos], sizeof(float) * length, kind));
	}
}
