heat original version, will extend to OpenACC version