Vol. 24, No. 4, December 1998 | RALF GIERING and THOMAS KAMINSKI
The article discusses the development and application of adjoint models in meteorology and oceanography, focusing on their use in data assimilation, model tuning, sensitivity analysis, and determination of singular vectors. Adjoint models compute the gradient of a cost function with respect to control variables, which is essential for optimizing model performance and improving data assimilation accuracy. The authors present a method for generating adjoint code based on basic principles, which allows for simple construction rules for adjoint statements and complete adjoint subprograms. These rules are illustrated with examples and discuss conflicts that arise due to loops and variable redefinition. The article also introduces the Tangent Linear and Adjoint Model Compiler (TAMC), a tool for automatically generating adjoint code from numerical models. The method is applicable to sophisticated models with complex boundary conditions and emphasizes the importance of modularity, locality, and readability in adjoint code construction.The article discusses the development and application of adjoint models in meteorology and oceanography, focusing on their use in data assimilation, model tuning, sensitivity analysis, and determination of singular vectors. Adjoint models compute the gradient of a cost function with respect to control variables, which is essential for optimizing model performance and improving data assimilation accuracy. The authors present a method for generating adjoint code based on basic principles, which allows for simple construction rules for adjoint statements and complete adjoint subprograms. These rules are illustrated with examples and discuss conflicts that arise due to loops and variable redefinition. The article also introduces the Tangent Linear and Adjoint Model Compiler (TAMC), a tool for automatically generating adjoint code from numerical models. The method is applicable to sophisticated models with complex boundary conditions and emphasizes the importance of modularity, locality, and readability in adjoint code construction.