# Comparison of Intel® Visual Fortran and Windows* API Routines

This topic only applies to Windows*.

Intel® Visual Fortran provides Fortran language elements (such as intrinsic procedures and statements) that conform to the Fortran Standard. The Intel® Visual Fortran Compiler also provides language elements that are language extensions, including library routines.

The library routines provided by the Intel® Visual Fortran Compiler:

- Are intended to be called from the Fortran language. For example, character arguments are assumed to be Fortran character variables, not null-terminated C strings.

- May have `QQ` appended at the end of their names to differentiate them from equivalent Windows* routines.

- Are described in the Intel® Visual Fortran Compiler Language Reference online documentation, in the A to Z Reference. The routine description lists the appropriate USE statement needed to include the interface definitions, such as USE IFPORT.

- Call appropriate Windows* system API routines provided with the operating system.

- Are specific to Windows* systems, with one exception: most of the Intel® Fortran IFPORT Portability Library routines exist on most Linux* systems.

In contrast, the Windows* API routines provided by the Windows* operating system:

- Are intended to be called from the C language. For example, character arguments are assumed to be null-terminated C strings.

- Often have multiple words appended together in their names, such as GetSystemTime.

- Are described in the Windows* SDK online documentation. To look up a specific routine, visit the MSDN Library website. The calling format is listed near the top of the page, followed by a description of the routine's arguments. The QuickInfo at the bottom of the Windows* API routine documentation page lists the import library needed.

- Are also specific to Windows*.

Note that the Intel® Visual Fortran Compiler provides interface block definitions that simplify calling Windows* API routines from the Intel® Visual Fortran Compiler (such as allowing you to specify Fortran data arguments as being passed by reference). To obtain these interface definitions, add the USE IFWIN statement to your program.

There are many groups of Windows* routines (see the Platform SDK and other resources). These routines provide sophisticated window management, memory management, graphics support, threading, security, and networking.

You can access many Windows* API routines from any Fortran application, including Fortran Console and Fortran QuickWin applications. Only the Fortran Windows* application Understanding Project Types provides access to the full set of Win32 routines needed to create GUI applications.

Fortran Console applications are text-only applications. Fortran QuickWin applications allow you to build Windows*-style applications easily, but access only a small subset of the available Windows* API features. Fortran QuickWin applications also allow you to use graphics.

Parent topic: Libraries

## See Also

A to Z Reference
IFPORT Portability Library
Understanding Project Types