Artificial Weather by Mikael Rennerhorn
_