<p>The resources you want will vary on what level of understanding you are seeking.  For example, knowing the math means you can solve equations or transform them, but it doesn't mean you understand the physics involved. </p>

<p>Some topics you'll want an understanding of to understand the process:</p>

<ul>
<li><p>Physics</p>

<p>At the heart of any weather model are our primitive equations.  Navier-stokes, thermodynamic energy, the state equation, and mass continuity. </p></li>
<li><p>Differential equations, linear algebra</p>

<p>The math for solving the above equations.</p></li>
<li><p>Discretization, numerical stability</p>

<p>How to turn the equations into something than be numerically solved on a 3D grid of points discrete in space and time.  This also involves choices in grid types, grid resolution, boundary conditions and time steps.  Any numeric noise must be accounted for and some artificial diffusion is sometimes used to accomplish this.  </p></li>
<li><p>Sub-gridscale physics</p>

<p>A consequence of a grid means that processes smaller than about 4x your grid spacing and certainly those entirely contained within a grid volume are not resolvable by the physics in your equations.  These physics must be parameterized.  These process can include convection, radiation, turbulence, moisture, boundary layer processes and more.</p></li>
</ul>

<p>Some books that may assist you include:</p>

<ul>
<li><a href="http://rads.stackoverflow.com/amzn/click/1441964118">Numerical Methods for Fluid Dynamics (Durran, 2010)</a> (finite difference methods, time stepping schemes, numerical methods)</li>
<li><a href="http://rads.stackoverflow.com/amzn/click/0521880688">Numerical Recipes</a> (implementations of numerical methods)</li>
<li><a href="http://rads.stackoverflow.com/amzn/click/0521126762">Paramaterization schemes (Stenstrud 2009)</a> (how to represent sub-gridscale physics in your model)</li>
<li><a href="http://rads.stackoverflow.com/amzn/click/0199601429">Modern Fortran Explained (Metcalf, Cohen and Reid, 2011)</a> (in the world of models you will be seeing a lot of Fortran and FORTRAN).</li>
<li>A good text on MPI (not necessarily needed to understand the model, but if you are interested in how it runs across nodes you'll want to understand MPI).</li>
</ul>

<p>The next step is digging into the source code.  From this perspective I suggest taking a look at <a href="http://www2.mmm.ucar.edu/people/bryan/cm1/">CM1</a>, which may be easier to follow than WRF from a programming perspective and will give you a foundation for how the math is applied in code to solve our equations and produce the output you see.  </p>

CC BY-SA 3.0
2015-02-16T18:39:54.973Z
2015-02-16T18:39:54.973Z
casey
<p>There is a community wiki question over at <a href="https://earthscience.stackexchange.com/questions/621/a-good-book-or-source-for-climate-science-and-meteorology-basics">A good book or source for climate science and meteorology basics?</a> that talks about meteorology basics.</p>

<p>Building on that, but with a slightly different focus, are there "standard texts" for a computer programmer (with engineering background - I get maths, but don't know which math I need to apply) to help understand numerical weather forecasting? If that is too broad, I'm mainly interested in mesoscale and microscale applications.</p>

<p>I've tried building and running some of the forecast models (e.g. WRF) but I'm uncomfortable looking at numbers coming out without understanding at least some of the process.</p>

CC BY-SA 3.0
2015-02-14T07:06:48.220Z
Related: http://earthscience.stackexchange.com/questions/2806/resources-for-learning-the-technical-parts-of-atmospheric-modeling/2807
milancurcic
CC BY-SA 3.0
2015-02-15T03:35:53.977Z
there is typically a benchmark case included with the model so you can test your setup
f.thorpe
CC BY-SA 3.0
2015-02-16T20:00:53.577Z
Did you look at at http://www2.mmm.ucar.edu/wrf/users/docs/arw_v3.pdf
stali
CC BY-SA 3.0
2015-02-17T21:58:11.860Z
I think one of the most valuable standard sources is not text, it is the user community of the respective model framework (e.g. ncl-talk, m3users, wrfusers, etc.).  User lists for modeling are very active and you will typically get a response from a knowledgeable person within a day or two.
f.thorpe
<meteorology><atmosphere-modelling><nwp>
Numerical weather forecasting - resources for a programmer?
BradHards
# Numerical weather forecasting - resources for a programmer?

(Asked by: username_0 on 2015-02-13)

There is a community wiki question over at [A good book or source for climate science and meteorology basics?](https://earthscience.stackexchange.com/questions/621/a-good-book-or-source-for-climate-science-and-meteorology-basics) that talks about meteorology basics.

Building on that, but with a slightly different focus, are there "standard texts" for a computer programmer (with engineering background - I get maths, but don't know which math I need to apply) to help understand numerical weather forecasting? If that is too broad, I'm mainly interested in mesoscale and microscale applications.

I've tried building and running some of the forecast models (e.g. WRF) but I'm uncomfortable looking at numbers coming out without understanding at least some of the process.

**Tags:** meteorology, atmosphere-modelling, nwp

> **Comments:**
> **username_1**: Related: http://earthscience.stackexchange.com/questions/2806/resources-for-learning-the-technical-parts-of-atmospheric-modeling/2807  
> **username_2**: there is typically a benchmark case included with the model so you can test your setup  
> **username_3**: Did you look at at http://www2.mmm.ucar.edu/wrf/users/docs/arw_v3.pdf  
> **username_2**: I think one of the most valuable standard sources is not text, it is the user community of the respective model framework (e.g. ncl-talk, m3users, wrfusers, etc.).  User lists for modeling are very active and you will typically get a response from a knowledgeable person within a day or two.  

---

## 1 answers

### Answer by username_4 on 2015-02-16. Score: 11 | Accepted answer

The resources you want will vary on what level of understanding you are seeking. For example, knowing the math means you can solve equations or transform them, but it doesn't mean you understand the physics involved.

Some topics you'll want an understanding of to understand the process:

* Physics

  At the heart of any weather model are our primitive equations. Navier-stokes, thermodynamic energy, the state equation, and mass continuity.
* Differential equations, linear algebra

  The math for solving the above equations.
* Discretization, numerical stability

  How to turn the equations into something than be numerically solved on a 3D grid of points discrete in space and time. This also involves choices in grid types, grid resolution, boundary conditions and time steps. Any numeric noise must be accounted for and some artificial diffusion is sometimes used to accomplish this.
* Sub-gridscale physics

  A consequence of a grid means that processes smaller than about 4x your grid spacing and certainly those entirely contained within a grid volume are not resolvable by the physics in your equations. These physics must be parameterized. These process can include convection, radiation, turbulence, moisture, boundary layer processes and more.

Some books that may assist you include:

* [Numerical Methods for Fluid Dynamics (Durran, 2010)](http://rads.stackoverflow.com/amzn/click/1441964118) (finite difference methods, time stepping schemes, numerical methods)
* [Numerical Recipes](http://rads.stackoverflow.com/amzn/click/0521880688) (implementations of numerical methods)
* [Paramaterization schemes (Stenstrud 2009)](http://rads.stackoverflow.com/amzn/click/0521126762) (how to represent sub-gridscale physics in your model)
* [Modern Fortran Explained (Metcalf, Cohen and Reid, 2011)](http://rads.stackoverflow.com/amzn/click/0199601429) (in the world of models you will be seeing a lot of Fortran and FORTRAN).
* A good text on MPI (not necessarily needed to understand the model, but if you are interested in how it runs across nodes you'll want to understand MPI).

The next step is digging into the source code. From this perspective I suggest taking a look at [CM1](http://www2.mmm.ucar.edu/people/bryan/cm1/), which may be easier to follow than WRF from a programming perspective and will give you a foundation for how the math is applied in code to solve our equations and produce the output you see.


---

