Historically, climate modeling has developed incrementally and in a decentralized manner, with changes and improvements authored by research groups all over the world. Climate models have also developed experimentally, with a number of "one-of-a-kind" routines developed for specific models to be run on specific platforms. As a result, it is very difficult for different models, or model components, to communicate with each other.
Efforts to bridge the gaps that prevent climate model modularity have focused upon establishing clear and comprehensive programming standards. Such efforts, as important as they are, unfortunately run the risk of producing standards that while comprehensive, have limited utility. This is because in general climate scientists are not computer scientists, and their motivation to develop code that meets the high standards of commercial programming is moderate at best. Interfaces for making climate models interoperable thus need to be both simple and intuitive, as well as comprehensive and extensible. Here we use cognitive science approaches to ascertain how to develop such interfaces and apply them using an object-oriented programming framework.