U.S. Energy Information Administration logo
Skip to sub-navigation
‹ Analysis & Projections

Annual Energy Outlook 2020

Release date: January 29, 2020   |  Next release date:  January 2021   |  full report

Availability of the National Energy Modeling System (NEMS) Archive

print version

The U.S. Energy Information Administration (EIA) developed the National Energy Modeling System (NEMS) primarily for its modelers to use it. As a result, only a few organizations other than EIA use NEMS. Past external users less familiar with NEMS programming and structure have reported that the system presents limitations and challenges.

Although NEMS is not typically used for state-level analysis and is poorly suited for application to other countries, many users obtain the model simply to use the data in its input files or to examine the source code. Because EIA, as the NEMS developer, is a federal entity, most of what constitutes NEMS is in the public domain (and no licenses are required to access or use it). However, NEMS does contain some proprietary components that are outside the public domain, and instructions on how to license these components are provided in the numbered list below.

NEMS is an integrated model of the U.S. energy system linked to a macroeconomic model. For an overview of NEMS, see The National Energy Modeling System: An Overview 2018 (April 2019). More detailed documentation of NEMS is also available.

The Annual Energy Outlook 2020 (AEO2020) Reference case uses the NEMS archive, which is available as an encrypted zip file on the EIA website. The archive demonstrates that the published results from the AEO2020 Reference case can be replicated with the model and discloses the source code and inputs used. The archive does not include executables of the model, which can be generated from the source code with the appropriate software.

Please email the NEMS team for the encryption key to the downloaded zip file. EIA will send files for the proprietary IHS Markit macroeconomic model separately once it has received notification that arrangements for licensing the model have been made with IHS Markit.

The NEMS archive is designed for use as a 64-bit application with Microsoft Windows Server 2012, but it should be mostly compatible with other 64-bit Windows versions, such as Windows Server 2008, Windows 8 for PCs, or even more recent versions. To use NEMS, users must obtain the following non-EIA software packages directly from the vendors:

1) Intel Visual Fortran Compiler Professional Edition for Windows, Version Build 20171018 (now called the Intel® Parallel Studio XE 2018 Composer Edition for Fortran Windows) as a 64‐bit application. (If version 18 is not the latest, it may still be available and should be installed for compatibility. Once you purchase Intel Fortran, you can download earlier versions through its support site.)

2) Optimization and Modeling Library (OML) license from Ketron Optimization with XpressMP barrier interface (optional). The Electricity Market Module (EMM) in NEMS uses the OML optimizer. The OML libraries are in the archive file.

You must independently obtain the license key from

Ketron Optimization Support Services
P.O. Box 71-1601
Oak Hill, VA 20171-1601 USA
Phone: 703-636-4805

Once you have obtained the Ketron OML license files and key, you will need to copy all of the files to the MPSIII license folder. Typically for the normal OML install, the license folder would be at C:\MPSIII. Make sure an environmental variables path is set up for MPSIII.CFG. To set this environmental variable

  • Right-click Computer
  • Select Properties
  • Select Advanced System Settings
  • Select the Environmental Variables button under the Advanced tab

If no MPS variable is defined under System Variables

  • Select New
  • Add the variable name MPS
  • Define the value as C:\MPSIII\

3) Fair-Isaac Corporation’s (FICO) Xpress optimizer. EIA uses the Xpress optimizer[1] to solve the EMM’s Electricity Capacity Planning linear program (LP); the Liquid Fuels Market Module LP; and the Carbon Transport, Utilization, and Storage mixed integer program (MIP). EIA has made arrangements with Fair-Isaac Corporation to provide a license of the Xpress solver to a limited number of organizations who want to use it for NEMS.

To obtain the Xpress Optimization license file, you will need to complete the following steps:

  1. Contact EIA to request a license for Xpress under EIA’s arrangement with FICO.
  2. Contact FICO to download and install Xpress from the FICO website.
    • a. Submit the form at the bottom of their contact page.
    • b. In the comments box, request Xpress under the EIA-FICO arrangement to run NEMS and request an online account.
    • c. Run the xphostid executable.
    • d. Copy the results and send them to EIA.

EIA will forward the result from the xphostid tool to FICO, who will then send you a license file.

4) General Algebraic Modeling System (GAMS). GAMS is used for the Carbon Transport, Utilization, and Storage submodule and for the Liquid Fuels Market Module. EIA used GAMS version 24.7.3 for the AEO2020. EIA’s GAMS implementation uses the Xpress solver mentioned above. The GAMS commercial and academic price schedules are available on the GAMS website. EIA purchased the development license (rather than the run-time license), which allows changes to the linear program matrix during execution of a NEMS run.

5) Advanced Integrated Multidimensional Modeling Software (AIMMS). AIMMS is used for the Coal Market Module, the Natural Gas Market Module, and the Renewable and Electricity Storage submodule within EMM. EIA used AIMMS version 4 (release for AEO2020 licensed with the CPLEX solver. (AIMMS does not link with the Xpress solver.) The AIMMS System Development Kit, which has a programming interface known as the AIMMSLINK library, has been installed at EIA and is also used with the NEMS Coal Market Module. The AIMMSLINK library invokes the AIMMS SDK and is linked in for NEMS runs. The AIMMS SDK is no longer supported by AIMMS.

6) (Optional) For macroeconomic feedback cases only, EIA uses the IHS Markit Macroeconomic Model as implemented with the EViews10 software package. EIA is currently using EViews10 standard edition, version 10, December 12, 2018 build. The IHS Markit macro module is executed as a subprocess to NEMS if the macro feedback switch in NEMS is turned on. Users can elect to run NEMS without macro feedback, in which case the run uses static macroeconomic inputs taken as-is. When the macro feedback switch is on, NEMS will attempt to call the macro model by executing EViews using the IHS Markit model's work files as the input to Eviews. These Eviews work files are not included in the archive, but you can obtain them from EIA after licensing the IHS Markit model. A copy of EViews must also be acquired to run the IHS Markit model. Contact IHS Markit Representative Ryan Grazier for more information

NEMS is computationally intensive and requires a memory address space of about 1.6 gigabytes (GB) with some additional memory, about 1 GB, allocated dynamically. Some modules, run as separate subprocesses, are not included in this total. EIA is now running NEMS as a 64-bit application on 64-bit Windows PCs with the 64-bit Windows Server 2012. The AIMMS subprocesses run as 32-bit applications. The EIA servers running NEMS have 128 GB of RAM to accommodate multiple runs and users simultaneously, but a single copy of NEMS may execute on a single-user system with 4 GB of RAM. NEMS also can be run on a desktop/laptop using Windows 8 with sufficient RAM and processing speed. EIA runs the integrated NEMS run in two parts simultaneously (in parallel) to speed run time, so two processor cores per integrated run are used. If a (non-integrated) run is done with modules off (e.g., turning off coal, electricity, and renewables) then only one processor core per run is needed. With a quad core processor, one can run two integrated parallel runs or four non-integrated runs with little speed loss, provided sufficient memory is available. To run two integrated runs or four non-integrated runs in parallel, 16 GB of RAM is suggested. NEMS can be run as one process, but it requires about two hours longer per cycle.

Runs of NEMS take about three or four hours on the EIA servers purchased in 2018 (with dual Intel XEON Gold 6134 processors, 3.2 gigahertz), but most scenarios are solved by making a series of complete runs, known as cycles, that are used to resolve convergence and foresight issues. Such multi-run scenarios are usually planned to run overnight, for about 12–18 hours total. Runs of some individual parts of NEMS, such as the energy demand models, if run separately, can take only a few minutes. All files of a completed run, input and output, take up about 30 GB of storage, but they compress to about 15 GB once the run finishes.

Brief instructions for compiling the code, setting up a run, and replicating the AEO2020 Reference case are included in a readme.txt file included with the archive. EIA does not have a budget to support the outside use of NEMS.

Technical questions about the NEMS model can be directed to individual NEMS modelers, and requests for the encryption key can be sent to NEMSModel@eia.gov. Email is the best method for acquiring the encryption key because it can then be copied and pasted.

Link to the model: https://www.eia.gov/outlooks/archive/aeozipfiles/aeo/aeo2020.zip


  1. The OML optimizer is used to solve the Electricity Fuel Dispatch LP of the EMM and can be also be used in place of Xpress to solve the Electricity Capacity Planning LP, but the results will differ from EIA's results and the execution time will increase significantly.