 		assert(d_T[idx] > 100);
 		assert(d_T[idx] < 350 || d_T[idx] == kFloatMissing);
 
-		double T = metutil::MoistLift_(d_P[idx] * 100, d_T[idx], d_Ptarget.values[idx] * 100);
+		double T = metutil::MoistLiftA_(d_P[idx] * 100, d_T[idx], d_Ptarget.values[idx] * 100);
 
 		assert(T > 100);
 		assert(T < 350 || T == kFloatMissing);


				d_LFCT[idx] = intersection.X();
				d_LFCP[idx] = intersection.Y();
			}

			assert(d_LFCT[idx] > 100);


	CUDA_CHECK(cudaStreamCreate(&stream));

	auto h_prevZenv = PrepareInfo(prevZenvInfo, stream);
	auto h_prevTenv = PrepareInfo(prevTenvInfo, stream);
	auto h_prevPenv = PrepareInfo(prevPenvInfo, stream);

	double* d_Psource = 0;
	double* d_Tparcel = 0;
	double* d_Piter = 0;
	double* d_Titer = 0;
