Some Notes on Use of NONMEM 7 (and PDx-Pop 4) with Intel Fortran 11 on Windows Platforms

1 messages 1 people Latest: Oct 13, 2009
Intel Fortran has historically presented issues with installation and configuration of it's compiler on Windows systems. By comparison, Digital and Compaq were user-friendly and set the environment variables for the user during installation. To complicate matters, with every version, Intel changed the deal somewhat with respect to by whom and how the linker was provided and the names of batch file(s) that could be run to set the environment (temporarily). I hope to provide some tips her on using Intel 11 for NONMEM 7 on Windows platforms. (The installation of Intel 11 on Linux and Mac OS X doesn't create similar issues as on Windows.) The variation Intel chose regarding installation for Intel 11 on Windows is to provide the linker with the compiler package (some previous versions required a separate purchase, installation, and configuration of Microsoft Visual Studio to provide the linker). However, it still does not set the environment variables in a system wide manner. There are three basic ways in which to use NONMEM in a manner in which the Intel Fortran variables can be found and NONMEM will run successfully. 1. Intel provides a build environment window with its installation that can be accessed from the Windows Programs menu system, e.g. on Windows XP "Start > Programs > Intel Software Development Tools > Intel Fortran Compiler > Fortran Build Environment for applications running on IA-32". Intel correctly sets the environment for this window only. You can install and run NONMEM successfully if you always use this window. This is by far the easiest way to use Intel 11 and may suit your needs. The downside is that it does not provide a system-wide environment to allow NONMEM to be run from the typical Command Prompt window or from PDx-Pop. 2. The second method is to use the Command Prompt window ("Start > Programs > Accessories > Command Prompt" on Windows XP)" and then find and use the Intel batch file that can set the environment for this instance of the Command Prompt. The name of the batch file used by Intel 11 appears to ifortvars.bat and requires the appropriate command line argument (ia32, ia32_intel64, intel64, ia32_ia64, or ia64) depending on your cpu type and os type. For my system running a 32-bit version of Window with a dual-core 32-bit cpu, the argument to ifortvars.bat was "ia32". This method requires the environment batch file to be run every time you open the Command Prompt to run NONMEM. Additionally, due to the number of choices of the argument to the batch file it can be confusing to determine the correct argument and it also does not set the environment for PDx-Pop. 3. The third way to set the enviroment is to do so once and permanently. I find the least confusing way to do this is to compare the environment variables between the Intel build environment (set by Intel) and the Command Prompt (not set) and add the differences found in the Intel build environment from the Command prompt environment to the system environment using the Control Panel: a. first open a Command Prompt window ("Start > Programs > Accessories > Command Prompt" on Windows XP)" and then write the environment variables to a file: Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\>set >dos_env.txt The environment variables can now be read from the dos_env.txt file and represent the environment prior to being set by Intel. b. next open the Fortran Build environment window ("Start > Programs > Intel Software Development Tools > Intel Fortran Compiler > Fortran Build Environment for applications running on IA-32") and then write the environment variables to a file: Intel(R) Visual Fortran Compiler Professional for applications running on IA-32 Version 11.0.074 Copyright (C) 1985-2009 Intel Corporation. All rights reserved. Setting environment for using Microsoft Visual Studio 2005 x86 tools. C:\Documents and Settings\bachmanw>cd \ C:\>set >build_env.txt The environment variables can now be read from the build_env.txt file and represent the environment after being set by Intel. c. Compare dos_env.txt and build_env.txt to see the differences in the entries that need to be added to the system environment. There are some entries that just need to be modified like the PATH variable. There are other entries that will need to be created and given values, e.g. INCLUDE and LIB. There may also be a lot of other variables that don't seem to be critical for making Intel Fortran 11 work. The critical variables are PATH, LIB and INCLUDE (but it does not hurt to add the other variables with Intel paths in them like IFORT_COMPILER11or INTEL_LICENSE_FILE). You can do a manually (line-by-line) comparison of the files to find the differences or use a file comparison program like WinMerge or a DOS version of the diff progam if you have one available. The differences found on one system were the following: IFORT_COMPILER11=C:\Program Files\Intel\Compiler\11.0\074\fortran\ INCLUDE=C:\Program Files\Intel\Compiler\11.0\074\fortran\Include;C:\Program Files\Intel\Compiler\11.0\074\fortran\Include\ia32;C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include INTEL_LICENSE_FILE=C:\Program Files\Common Files\Intel\Licenses LIB=C:\Program Files\Intel\Compiler\11.0\074\fortran\Lib\ia32;C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib Path=C:\Program Files\Intel\Compiler\11.0\074\fortran\lib\ia32;C:\WINDOWS\system32;C:\WI NDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Altiris\Software Virtualization Agent\;C:\Program Files\Intel\Compiler\11.0\074\fortran\Bin\ia32;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages Use the above entries only as a guideline, your system changes should be based on the differences found on your system. On this particular system, it was configured to use the linker from Microsoft Visual Studio, your system may use the linker provided by Intel or other source. The process for editing the environment is to use the Control Panel (Start > Settings > Control Panel > System > Advanced > Environment Variables > System Variables" and then New or Edit depending on whether you want to add a new variable or edit an existing variable). You may need to have an administrator edit the environment for you or be given admin rights on your system). This last method of setting the environment allows NONMEM to be run from PDx-Pop or from any Command Prompt without the prior running of any script to pre-set the environment. Feedback from other users of Intel 11 with NONMEM 7 is welcome. William J. Bachman, Ph.D. Director, Pharmacometrics R&D Icon Development Solutions 6031 University Blvd., Suite 300 Ellicott City, MD 21043 Office 215-616-8699 Cell 301-467-8635 William.Bachman