MM5 is written in
FORTRAN. These FORTRAN programs must be compiled on a local computer, and some need to be recompiled each time a model configuration is changed. The program uses pointers to assign variables to values. These pointers go into parts of the memory to assign specific values to the desired variables. MM5 can also perform multiple tasks at once. Specifically, two different tasks can be executed on different processors simultaneously and MM5 uses this as much as possible. This multi-tasking also uses nesting, and MM5 allows up to nine
domains (processes) running at the same time and they interact throughout the whole process. The model utilizes two-way nesting, which occurs when the input from one nest's coarse mesh, which is a high density of cells in one area, comes from one of the four boundaries, but the feedback to the coarser mesh happens through the nest interior. Each domain gathers information from its parent domain each timestep, then it runs three
timesteps, and then delivers the information back to its parent domain. There are three different ways to do two-way nesting: Nest interpolation, nest analysis input, and nest terrain input. Interpolation occurs when the terrain is smooth, such as water. There is no input that is required for this type of two-way nesting. Nest input requires a file called MMINPUT, and that file contains the meteorological and the terrain information so that initially, a better analysis can be done. Finally terrain input requires a TERRAIN file. Then the meteorological fields are
interpolated. When multi-tasking occurs, the variables must be marked as either shared or private. Shared implies that the processors all have access to the same part of memory, while private implies that each processor must have its own private copy of an array with its personal memory location. The multi-tasking occurs specifically in the subroutines Solve1, Solve3, and Sound. ==Requirements==