This description of SIMMOD is Appendix B Reductions in Flight Operations as an Alternative to Runway Reconfiguration at San Francisco International Airport, prepared by Charles River Associates for San Francisco Int. Airport, April 2001.

Airport and Airspace Simulation Model (SIMMOD)


SIMMOD, the FAA Airport and Airspace Simulation Model, is a discrete-event simulation model that tracks the movement of individual aircraft as they travel through the airspace and on the ground. Input parameters include aircraft flight schedules, air traffic control rules and procedures, airspace route structures, airfield layout and ground control procedures. SIMMOD output consists of estimates of travel time and delay for individual aircraft by phase of flight. The following paragraphs, many of which are excerpted from the SIMMOD manual, describe how SIMMOD simulates aircraft operations and provides additional detail regarding SIMMOD inputs and outputs. Additional information regarding how SIMMOD functions, including the original text from which this appendix was developed, can be obtained from the ATAC Corporation’s SIMMOD website.


SIMMOD is a discrete-event simulation model; it represents a system evolving over time by means of a mathematical model, the state of which changes at discrete points in time. These points are those at which an event occurs, where an event is an instantaneous occurrence that changes the state variables.

Consider a simple runway departure queue. An airplane joining this queue is an event. SIMMOD calculates the effect of this new event on the existing system and modifies or adds state variables resulting from this event before considering the next event in the simulation. In a simplified model of such a runway queue, these state variables might be as follows:

The status of the runway is needed to determine whether an aircraft can advance to the runway immediately when it reaches the front of the queue. Likewise the number of planes in the departure queue are needed to determine whether the queue is empty. If so, the aircraft joining the queue will be next in line to use the runway. If this state variable is non-zero, the state variable tells the model the position of the current aircraft in the queue.

The simplified departure queue example actually involves two type of events: (1) entering the queue and (2) leaving the runway. Entering the queue is an event because it causes the runway status (a state variable) to change from empty to occupied or it increases the number of aircraft in the queue (another state variable) by one. Correspondingly, leaving the runway is an event because it causes the runway status to change from occupied to empty or decreases the number in the queue by one.

The Simulation Clock

SIMMOD keeps track of the current value of simulated time as it proceeds and advances simulated time from one value to another. Processing the next event updates the simulation clock time. At the start of a simulation run, SIMMOD initializes the simulation clock to 00:00 and schedules the times of external events. Then it advances the simulation clock to the time of the first event, updates the state of the system to account for changes made by the event, and adds to the schedule internal events generated by the event. Then it advances the simulation clock to the time of the next event and repeats the process. SIMMOD continues advancing the simulation clock from one event to another and updating the system until it reaches the end of the event list or a user-specified event that ends the simulation.

The Event Schedule

The event schedule and the simulation clock work together to process SIMMOD events in the proper sequence. SIMMOD is sometimes called an "event stepped" simulation, because it steps forward from one event to the next. With each step, the model bypasses an interval in which no events occur. It processes each event strictly according to the order of its appearance in the event schedule.

If two events are scheduled to occur at the same time, SIMMOD prioritizes them and processes them in sequence, without moving the simulation clock forward. The priority can be tracked by examining the Simulation Log, which lists every event in chronological order. Table B-1 shows a simple event schedule.

Table B-1. A Simple Event List

Flight ID

Event Type
AA 23411:40Arrive at node 120
TW 1111:42Finish loading at gate S12
CO 88811:44Arrive at node 320
GA 2511:44Check for end of hold at node 33

When SIMMOD finishes processing an event (which includes updating the state variables changed by the event) it checks the event schedule for the next event. Each event can cause other events to be added to the schedule. Most of the events that occur in a typical simulation are generated internally by SIMMOD itself. However, the model user must also define “external events” for SIMMOD to function. There are three types of external events in SIMMOD, as follows:

Events that initiate flights. These events create arrival, departure and en-route flights in SIMMOD. Thereafter, the aircraft proceed through the simulation according to user specified flight information, route assignments, and flight procedures.

Events that alter simulation parameters. These events change in the airport and airspace network and the air traffic control logic used in the simulation. They are used to simulate changes in weather conditions, runway use configurations, and flight procedures that occur over the simulated time period.

Events that generate output. These events tell the model what kinds of data to collect during the simulation and when to collect them.


SIMMOD represents airfield networks (i.e., runways, taxiways, and aircraft gates) and airspace networks (i.e., airways and holding patterns) networks as a series of nodes connected by links. A node is a point in a coordinate system where SIMMOD evaluates an aircraft’s position with respect to other aircraft in the system. A link defines the path between two nodes. Aircraft move from one node to another only along a defined link.

SIMMOD maintains airfield nodes and airspace nodes as separate groups. Airfield nodes describe airfield locations such as aircraft gates, departure queues, or runway and taxiway intersections. Airspace nodes describe airspace locations such as navigational fixes, holding queues, airspace route junctions, and interfaces with airfield nodes. SIMMOD also maintains ground and airspace links separately. Ground links typically represent taxiways and runways. Airspace links typically represent arrival and departure routes.

In SIMMOD, delay is generally accrued at airspace and airfield nodes.[1] It is at these nodes that aircraft are held by the model in order to meet user-defined node aircraft-to-aircraft separation criteria and node/link capacities.

[1] The only exception is delay that is accrued along airspace links due to path stretching, vectoring, or speed controls.

Stochastic Processes

SIMMOD is a stochastic model, meaning that it uses random variables to represent day-to-day variations in air traffic phenomena. Because SIMMOD is designed to produce realistic results from any iteration of a defined application dataset, it is usually necessary to run several iterations with a single dataset in order to account for iteration-to-iteration variability. SIMMOD uses random linear variables to simulate certain airport and airspace phenomena. The following parameters can be defined in terms of these random variables, among others:

In SIMMOD, randomness is controlled through the use of user-defined cumulative probability distributions, which determine the amount of variation associated with a selected parameter. SIMMOD generates a random real number between 0 and 1, and uses this number to select values from the defined distribution.

Because SIMMOD uses many random numbers in every run of an application dataset, it creates a sequence, or stream, of random numbers for each iteration. These streams are created by a random number generator built into SIMSCRIPT II.5, the language in which SIMMOD is programmed. The first number in a random number stream is called the seed. The random number generator uses this seed to produce the ensuing stream. Starting with the same seed, the random number generator will always produce exactly the same random number stream (assuming that the simulation is run on a machine with the same processor). Seeds can be specified by the user, which enables simulation results to be reproduced if desired.

Input Files

SIMMOD input data is contained in three primary input files as follows:

Airspace File. This file contains data describing the location and characteristics of airspace links and nodes. It also contains descriptions of arrival, departure, and en-route route structures. Finally, it contains definitions of the airspace procedures, separation minimums, and control strategies that are intended to replicate air traffic control rules and procedures.

Ground File. This file contains data describing the location and characteristics of airfield nodes and links, including definitions of airport runways. Information regarding preferred taxiing routes, departure queues, and aircraft gates are also contained in this file.

Events File. This file contains information regarding “external events” that will be processed by SIMMOD. As described previously, these events include the flight schedule of arrival and departure operations, as well as switches that either reset model parameters or turn model output functions on and off.

Specific information regarding the content and format of these input files is available at the aforementioned ATAC website.

Output Data

SIMMOD collects travel time and delay data for simulated arrival and departure operation and prints this information to an output file at the conclusion of each simulation iteration. Travel times and delays are reported by phase of flight during which they were incurred (e.g., on the ground or in the air). As previously mentioned, delays in SIMMOD represent excess travel time incurred by flights because of their interactions with other aircraft in the system.

For example, suppose a simulated arrival was first held at an airspace node in order to provide adequate separation between it and a preceding arrival; then, after landing, was held at a runway crossing point because other traffic was using the runway, and finally was held near its gate until a departing flight using the same gate was pushed back. The duration the flight was held in each of these instances would be counted as delay by SIMMOD. Note that this would be the case even if the flight arrived ahead of its scheduled (i.e., Official Airline Guide) arrival time. Thus, SIMMOD is not capable of measuring on-time performance directly but rather assesses system performance relative to an unimpeded system.


Figure B-1 shows results of a SIMMOD simulation of the actual and scheduled arrival profiles for SFO under differing assumptions about the weather conditions. [Note: figure is omitted here.] In this figure, the vertical distance between the desired level of arrivals and the actual level represents the actual queue at that time. It signifies the total number of flights that are delayed in each hour. The total amount of delay is indicated by horizontal distance between actual and desired arrival lines, which can be thought of as the average delay per flight (or alternatively, all of the flights scheduled to arrive at a given time are delayed by this much).

The total delay experienced during a given time period is represented as the total area between the two lines (desired arrivals and actual arrivals) during that time, with the total delay incurred during the course of the entire day being the whole area between the lines.