 		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);

		h_prevTenv = h_Tenv;
		h_prevPenv = h_Penv;

		CopyLFCIteratorValuesKernel<<<gridSize, blockSize, 0, stream>>>(d_Titer, d_Tparcel, d_Piter, *h_Penv);

		curLevel.Value(curLevel.Value() - 1);
	}


		CUDA_CHECK(cudaStreamSynchronize(stream));

		if (static_cast<size_t>(std::count(found.begin(), found.end(), 1)) == found.size()) break;

		CUDA_CHECK(cudaMemcpyAsync(d_prevTparcel, d_Tparcel, sizeof(double) * N, cudaMemcpyDeviceToDevice, stream));
		curLevel.Value(curLevel.Value() - 1);
