Traditionally, community weather models rely on software engineering to separate the physical sciences from the computing side so that modelers need not concern themselves with the details of the mapping of the implementation to hardware. Also, for ease of maintenance, community weather models benefit from a single-source implementation. That is, the same source code is used not only for compilation of single- and multi-core systems, but also for systems with different processor manufacturer and configuration.
A software strategy is presented that extends the Weather Research and Forecasting (WRF) model to include GPUs while conforming to the single-source paradigm as well as maintaining separation of physics from computing. The strategy uses a combination of the ANSI C and Compute Unified Device Architecture programming languages and is based on the software architecture found in the Weather Research and Forecasting model.