Selecting your Compiler for Fortran Code and C-Code

This article is intended to help users to select a Fortran and C-code compiler for use with PSCAD.

PSCAD uses a Fortran compiler and a C-compiler to compile Fortran code and C-code into executable files, which are launched to perform the numerical calculations for the simulation. These results are sent to PSCAD during the simulation for display.

Two compilers are suported for use with PSCAD, GFortran and the Intel® compiler.

GFortran

GFortran is a third-party compiler that is available to PSCAD users for free. The GFortran compiler compiles both Fortran code and C-code, and is suitable for small to medium-sized projects.

GFortran – Selecting a Suitable Version

The following should be considered for selecting the most suitable version of GFortran:

  • Compatibility with pre-compiled libraries or object files (if any): See this article.

Note
The supported version should normally be specified by the supplier of the pre-compiled files.

  • Compatibility with PSCAD: See Chart 2.a of the PSCAD Compatibility Charts document, posted here.

Note
There are three versions of GFortran, each supported with specified versions of PSCAD.

GFortran - Setting up Software

Setup information for GFortran is available on this page.

Intel® Compiler

The Intel® compiler (IVF) is a third-party, commercially available software that is recommended for compiling larger and more complex PSCAD projects due to its superior simulation speed, debugging environment and optimization features. IVF compiles projects faster than GFortran, and also produces simulations that run up to 25% faster than GFortran. IVF is used to compile Fortran code and C-code in conjunction with another third-party software, Microsoft® Visual Studio (VS), due to its dependency on VS tools. Information on selecting and obtaining a suitable edition and version of VS is available in Selecting your Microsoft® Visual Studio Software.

IVF – Selecting a Suitable Version

The following should be considered for selecting the most suitable version of IFV:

  • Compatibility with pre-compiled libraries or object files (if any): See this article.

Note
The supported versions should normally be specified by the supplier of the pre-compiled files.

  • Compatibility with PSCAD: See Chart 2.a of the PSCAD Compatibility Charts document, posted here.
  • Compatibility with VS: See Chart 4 of the PSCAD Compatibility Charts document, posted here.
  • Whether VS Shell Edition comes bundled: For older Intel compiler versions (v19.0 Update 2 and older), the VS Shell Edition, supported with PSCAD, comes bundled with the licensed edition of Intel software. See Chart 5 of the PSCAD Compatibility Charts document, posted here.

Notes
The VS Shell Edition does not come bundled with Intel 19.0 Update 3+, nor with an Intel trial license)
The VS Shell Edition does not have a c-compiler, so should not be selected if your project contains C-code.

IVF – Selecting a Suitable Edition

For v19.1 and older, the Intel® Parallel Studio Composer Edition for Fortran for Windows is the recommended edition for use with PSCAD. However, the Professional edition and the Cluster edition are also suitable.

For v19.2, the Intel oneAPI is suitable for use with PSCAD.

NOTE - The Parallel Studio Composer Edition is no longer available for sale as of December 31, 2020. Please refer to this article for information on the new Intel oneAPI replacement.

IVF - Selecting the 32-bit or 64-bit Edition

Please consider the following factors when selecting your edition of Intel.

Regarding compatibility:

  • A pre-compiled model will be compatible with the same edition.
    e.g. if the model was pre-compiled with 32-bit edition, then it is only compatible with the 32-bit edition.

  • Intel may be dropping the 32-bit edition, possibly in 2023. If this occurs, then any models that were only pre-compiled using the 32-bit edition would eventually only be compatible with older versions of Intel still containing the 32-bit edition.

  • For Model Developers, the general recommendation is to pre-compile models in both editions of Intel, 32-bit and 64-bit. This will help to ensure that it remains useful and compatible for current and future model end-users.
  • For Model Receivers, ensure to use the same edition as specified by the developer.

Regarding Project Size:

  • The 64-bit edition should be selected for extremely large simulations.

Regarding Speed:

  • Please note that speed is not a consideration for this selection: The 64-bit edition is slightly faster than the 32-bit edition, but not by a significant amount.

IVF – Selecting a Suitable License Type

There are three types of licenses for IVF:

  • The Named-User license, which can be installed on more than one machine, but only used by one user.

  • The Floating License is hosted on the customer’s server, and shared with client machines over the network. This type of license is no longer available from Intel, but existing licenses with older versions of Intel are still supported.

  • The new Team (Concurrent) License was introduced with Intel v19.2 (oneAPI). The license can be installed on multiple client machines, "for use by no more than the authorized number of concurrent users".

Further information on IVF licensing is available on this webpage.

IVF - Obtaining a License

Both the Named-User and Team licenses may be purchased through Intel. Refer to this article for a sample purchase.
A Named-User License may also be purchased through MHI (sales@pscad.com).

IVF – Active Priority Support

The purchase of an Intel license provides one to three years of support from Intel. Additional years of support may be purchased separately. Please refer to this webpage regarding IVF licensing and active Priority Support”.

IVF - Setting up the Software

Information on setting up the IVF and VS software for use with PSCAD is available on this webpage. This information pertains to the IVF Licensed edition, as well as to the free time-limited IVF Trial Edition.

Please feel free to contact the MHI Support Desk if you have any questions (support@mhi.ca).

Back