 			// Missing data or current grid point is below LFC
 			return;
 		}
+
+		ASSERT(LFCP < 1200.);
+		ASSERT(LFCT > 100.);
 
 		if (IsMissingDouble(prevTparcel) && !IsMissingDouble(Tparcel))
 		{

		ASSERT(prevTparcel > 100. || IsMissingDouble(prevTparcel));

		double LFCP = d_LFCP[idx];  // hPa
		ASSERT(LFCP < 1200.);

		double LFCT = d_LFCT[idx];  // K
		ASSERT(LFCT > 100.);

		if (IsMissingDouble(Penv) || IsMissingDouble(Tenv) || IsMissingDouble(Zenv) || IsMissingDouble(prevZenv) ||
		    IsMissingDouble(Tparcel) || Penv > LFCP)


	if (idx < d_Ptarget.size_x * d_Ptarget.size_y)
	{
		ASSERT((d_P[idx] > 10 && d_P[idx] < 1500) || IsMissingDouble(d_P[idx]));

		ASSERT(d_Ptarget.values[idx] > 10);
		ASSERT((d_Ptarget.values[idx] > 10 && d_Ptarget.values[idx] < 1500) || IsMissingDouble(d_Ptarget.values[idx]));

		ASSERT((d_T[idx] > 100 && d_T[idx] < 350) || IsMissingDouble(d_T[idx]));

		double T = metutil::LiftLCLA_(d_P[idx] * 100, d_T[idx], d_PLCL[idx] * 100, d_Ptarget.values[idx] * 100);

		ASSERT((T > 100 && T < 350) || IsMissingDouble(T));

		d_Tparcel[idx] = T;
	}
