IMSL(R) Fortran Numerical Library Version 7.0.0 This document contains usage information for the IMSL Fortran Numerical Library Version 7.0.0 for UNIX systems. IMSL Fortran Numerical Library Version 7.0.0 is thread-safe. The IMSL Fortran Numerical Library is comprised of the products IMSL MATH/LIBRARY, IMSL MATH/LIBRARY Special Functions and IMSL STAT/LIBRARY. In this document IMSL MATH/LIBRARY, IMSL MATH/LIBRARY Special Functions and IMSL STAT/LIBRARY will be referred to collectively as the IMSL Fortran Numerical Library. ===============================< Contents >=============================== This file has the following parts: Part Contents ---- -------- 1 Introduction 2 Installation - Setting up the IMSL Libraries Environment - License Setup - Start the License Manager - Validate the Installation 3 Using the IMSL Fortran Numerical Library - Setting up the IMSL Libraries Environment - Compiling and Linking Fortran Library Applications - On-Line Documentation - Examples - License Management Notes 4 Additional Usage Information - Optional Third-Party Software - Performance Enhancements - LINK options 5 Miscellaneous Information - Known Problems, Limitations, and Differences - Troubleshooting - Modifying the IMSL Fortran Numerical Library Error Message File - Directory Layout and Description 6 Copyright Notices - NVIDIA CUDA Toolkit - ARPACK (Arnoldi Package) - SuperLU - LAPACK (Linear Algebra Package) - Mersenne Twister 7 Customer Support =========================< Part 1: Introduction >============================ This file contains information on the installation and usage of the IMSL Fortran Numerical Library. The user/programmer may choose to skip the "Installation" section since it refers to product installation. ------------------------------------------------------------------------------- Note: For users familiar with using IMSL Fortran Numerical Library, a file named QuickStart exists in this directory which provides less detailed product information and may result in a faster startup time. ------------------------------------------------------------------------------- In addition to this README file there is an environment-specific README file that documents usage information which is specific to the environment. This file is named README., where is the environment mnemonic of the product that was installed. There is also a RELEASE_NOTES file which documents changes made since the last release of IMSL Fortran Numerical Library. These files are located in this directory. =========================< Part 2: Installation >============================ The following steps are necessary to complete the installation of the IMSL Fortran Numerical Library. - Setting up the IMSL Library Environment To complete the installation of the IMSL Fortran Numerical Library you must define certain environment variables. After running the installation procedure, the files fnlsetup.csh (for C shell users) and fnlsetup.sh (for Bourne and Korn shell users) are created in the /imsl/fnl700//bin directory, where is the main IMSL Fortran Numerical Library installation directory and is the environment mnemonic. - C shell users should enter the following command: source /imsl/fnl700//bin/fnlsetup.csh - Bourne and Korn shell users should enter the following command: . /imsl/fnl700//bin/fnlsetup.sh - License Setup *************************************************************************** THIS STEP IS NOT NECESSARY IF YOU HAVE A NON-LICENSE MANAGED PRODUCT. TO DETERMINE WHETHER YOUR PRODUCT IS LICENSE MANAGED, REFER TO THE MEDIA LABEL. IF YOU HAVE A PRODUCT WHICH IS NOT LICENSE-MANAGED OR YOU INSTALLED THE PRODUCT FROM SOURCE CODE, SKIP TO THE SUBSECTION "VALIDATE THE INSTALLATION". *************************************************************************** - Obtaining Your License o Temporary License Temporary licenses for evaluation purposes can be obtained by contacting your local sales representative. o Permanent License To obtain your permanent license you will need the hostname and hostid of the machine on which the license manager process will execute. An easy way to obtain this information is to run the script documented below and then forward the resulting file to us. Instructions on where to send the output can be found in the output file. $LICENSE_DIR/bin/get_host_info Output is directed to the file hostinfo. - Create the License File Using a text editor, create the license file /license/imsl_license.lic. Then cut and paste the contents of the imsl_license.lic file that you received via email from the IMSL License Administrator into the imsl_license.lic file you created. If a DAEMON line is part of your license file you must either edit the pathname to the VNI daemon to match the location of your installation or remove the pathname altogether. To remove the pathname of the VNI daemon change the daemon line from: DAEMON VNI /usr/local/vni/license/bin/VNI to: DAEMON VNI - Start the License Manager -------------------------------------------------------------------------- Note: The license manager needs only to be started if you unlocked a per-seat license. If your FEATURE line has a number greater than zero after the date, it is a per-seat license. -------------------------------------------------------------------------- Start the license manager by entering the following command: VNI_LICENSE_MGR If problems are encountered refer to the "Troubleshooting" section in "Part 5: Miscellaneous Information". -------------------------------------------------------------------------- Note: It is recommended that the license manager be initiated at boot time. -------------------------------------------------------------------------- - Validate the Installation After you have completed the license setup, verify its success by running small example programs. Enter the following command and refer to the README file to complete the validation of the IMSL Fortran Numerical Library. cd $FNL_EXAMPLES/validate =======< Part 3: Using the IMSL Fortran Numerical Library >========== - Setting up the IMSL Libraries Environment Before using the IMSL Fortran Numerical Library you must define certain environment variables. After product installation is completed, the files fnlsetup.csh (for C shell users) and fnlsetup.sh (for Bourne and Korn shell users) are created in the /imsl/fnl700//bin directory, where is the main IMSL Fortran Numerical Library installation directory and is the environment mnemonic for the installed platform. - C shell users should enter the following command: source /imsl/fnl700//bin/fnlsetup.csh - Bourne and Korn shell users should enter the following command: . /imsl/fnl700//bin/fnlsetup.sh The fnlsetup.csh and fnlsetup.sh files set many environment variables and shell aliases/functions. The following is a list of what is useful to the Fortran Numerical Library user. Several other variables are set that are used internally by the Fortran Numerical Library. $FC - Fortran compiler $F90FLAGS - Compiler options used to compile free-format Fortran source files. $FFLAGS - Compiler options used to compile fixed-format Fortran source files. For environments which identify fixed-format and free-format Fortran source files by the filename extensions .f and .f90, $FFLAGS and $F90FLAGS will be identical. For those which do not, $FFLAGS and $F90FLAGS will be different. $FNL_VERSION - The Fortran Numerical Library version number. $FNL_COMPILER_VERSION - The compiler that the object libraries were compiled under. (An exception would be if you installed from source code and you did not update this environment variable) $FNL_EXAMPLES - The directory which contains the example programs. $FNL_OS_VERSION - The operating system that the object libraries were compiled under. (An exception would be if you installed from source code and you did not update this environment variable) $FNL_LICENSE_NUMBER - Contains your license number. $LINK_FNL_SHARED - See "Link Options" $LINK_FNL_STATIC - See "Link Options" $LINK_FNL_SHARED_IMSL - See "Link Options" $LINK_FNL_STATIC_IMSL - See "Link Options" $LINK_FNL_SHARED_NVIDIA - See "Link Options" $LINK_FNL_STATIC_NVIDIA - See "Link Options" $LINK_FNL - See "Link Options" $LINK_FNL_IMSL - See "Link Options" $LINK_FNL_NVIDIA - See "Link Options" $LINK_MPI - See "Link Options" $LINK_MPI_IMSL - See "Link Options" $LINK_MPIS - See "Link Options" $LINK_MPIS_IMSL - See "Link Options" $MPIF90 - Command to compile applications which use MPI. $MPIRUN - Command to run applications which use MPI. ------------------------------------------------------------------------- Note: The FFLAGS and F90FLAGS variables do not include any optimization or debugging options. ------------------------------------------------------------------------- ------------------------------------------------------------------------- Note: It is recommended that the setup procedure(s) be executed automatically each time you login rather than doing it interactively. This is especially important if you intend to take advantage of MPI. MPI spawns processes when multiple CPUs are specified. Having the appropriate setup procedures executed automatically at login is the only way to ensure that the environment variables required by the spawned processes are set. This can be done by adding the commands (source and .) to the .cshrc (for C shell) or .profile (for sh). Since Korn shells do not execute .profile when processes are spawned by MPI, it is necessary to place a copy of the license file in the directory /usr/local/flexlm/licenses. ------------------------------------------------------------------------- - Compiling and Linking Fortran Library Applications Use of the environment variables set via the fnlsetup.csh and fnlsetup.sh files is recommended to ease the creation of IMSL Libraries applications. Use any supported Fortran compiler with the desired link options to create the program. Fortran Numerical Library: The following command will compile and link an application program: $FC -o $FFLAGS
$LINK_FNL In the above commands, LINK_FNL can easily be replaced by any of the LINK_FNL* variables. Refer to "Link Options" for a list of the available LINK_FNL* options. ------------------------------------------------------------------ Note: To take advantage of multiple-cpus refer to "Link Options". ------------------------------------------------------------------ - On-Line Documentation ------------------------------------------------------------------ Note: These files will exist only if the the documentation option was chosen during installation. ------------------------------------------------------------------ Documentation is supplied in both Portable Document Format (PDF) files and HTML files. The PDF documentation system requires the use of Adobe Systems Incorporated Acrobat Reader(R) 9.0 or later. This software is available at no charge and can be downloaded from the web site www.adobe.com. To access the PDF documentation, start Acrobat Reader and open imsl.pdf located in $FNL_DIR/help. To access the HTML documentation, start an internet browser and open imsl.html located in $FNL_DIR/help. - Examples ------------------------------------------------------------------ Note: These files will exist only if the FNL examples option for the environment was chosen during installation. ------------------------------------------------------------------ Separate subdirectories are included for each installed architecture. The environment variable FNL_EXAMPLES is defined during the setup procedure. This environment variable identifies the directory where the examples associated with your environment are located. To change to the appropriate directory enter the following command for the IMSL Fortran Numerical Library examples: cd $FNL_EXAMPLES This directory will contain the subdirectories documented below. o eiat The eiat directory contains the Environment and Installation Assurance Test. The Environment and Installation Assurance Test is a set of FORTRAN subprograms designed to verify the proper installation and functioning of the IMSL Libraries in a specific computer/compiler environment. It is recommended that these tests be run if you are running in an unsupported computer/compiler environment. Refer to the README file located in the eiat directory for details on how to run these tests. o manual The manual directory contains selected native Fortran 90 examples documented in the IMSL Fortran Numerical Library User's Guide. It is recommended that these examples be run if you are running in an unsupported computer/compiler environment. These examples are also useful as templates for writing your own applications. Refer to the README file located in the manual directory for details on how to run these examples. o benchmark The benchmark directory contains the benchmark programs which are referred to in the IMSL Fortran Numerical Library User's Guide. These tests compare the performance of IMSL routines written in "native" Fortran 90 with the equivalent versions written in Fortran 77. If performance is an issue, these benchmark tests will prove to be useful. Refer to the README file located in the benchmark directory for details on running the benchmark programs. o mpi_manual The mpi_manual directory contains the MPI examples documented in the IMSL Fortran Numerical Library User's Guide. These examples make use of the subroutines which can take advantage of MPI. An MPI library is required to run these examples. It is recommended that these examples be run if you are running in an unsupported computer/compiler environment. These examples are also useful as templates for writing your own applications. Refer to the README file located in the mpi_manual directory for details on how to run these examples. o mpi_benchmark The mpi_benchmark directory contains the MPI benchmark programs which are documented in the IMSL Fortran Numerical Library User's Guide. These tests compare the performance of IMSL routines which take advantage of MPI with the equivalent scalar versions. Refer to the README file located in the benchmark directory for details on running the benchmark programs. o mpi_scalapack The mpi_scalapack directory contains the examples documented in the IMSL Fortran Numerical Library User's Guide which demonstrate the use of ScaLAPACK. Running these examples requires MPI, ScaLAPACK and vendor supplied BLAS. See "Performance Enhancements" for more information. It is recommended that these examples be run if you are running in an unsupported computer/compiler environment. These examples are also useful as templates for writing your own applications. Refer to the README file located in the mpi_scalapack directory for details on how to run these examples. - License Management Notes By default, if all available licenses are in use, the user is asked if they want to be placed in a wait queue for the next available license. To eliminate the need for an interactive response, the following environment variables are available: IMSL_NO_LMQUEUE - Do not queue the request. Abort the process. IMSL_LMQUEUE - Queue the request. Start executing the program once a license becomes available. These environment variables can be set to any value. The code simply checks to see if they are set. If both environment variables are set the behavior of the license manager is unknown. ====================< Part 4: Additional Usage Information >=============== - Optional Third-Party Software IMSL Fortran Numerical Library may utilize optional product components not provided by Rogue Wave Software. These product components are summarized below. o Basic Linear Algebra Subprograms (BLAS) The BLAS are high quality "building block" routines for performing basic vector and matrix operations. Level 1 BLAS address vector-vector operations, Level 2 BLAS address matrix-vector operations, and Level 3 BLAS address matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they're commonly used in the development of high quality linear algebra software. A version of the BLAS for use with the IMSL linking options is supplied with the IMSL Fortran Numerical Library. A user supplied BLAS library is required when using the other linking options. (See the LINK environment variables). The version of BLAS used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. o Linear Algebra PACKage (LAPACK) LAPACK provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value decomposition. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. A subset of the LAPACK library for use with the IMSL linking options is supplied with the IMSL Fortran Numerical Library. A user supplied LAPACK library is required when using the other linking options. (See the LINK environment variables). The version of LAPACK used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. o Message Passing Interface (MPI) Certain IMSL Fortran Numerical Library codes can take advantage of distributed network computing (a type of parallelism). This parallelism is accomplished by using library calls based on the Message Passing Interface standard or MPI. If you do not have access to an MPI library, these routines will still run using a single processor. A user supplied MPI library is required when using the MPI linking options. (See the LINK environment variables). The version of MPI used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. o ScaLAPACK ScaLAPACK is a large-scale linear algebra computational package. ScaLAPACK includes a subset of LAPACK codes redesigned for use on distributed memory MIMD parallel computers. A number of IMSL Library routines make use of a subset of the ScaLAPACK library. A ScaLAPACK library is not required when using the IMSL linking options. A user supplied ScaLAPACK library is required when using the other MPI linking options. (See the LINK environment variables). The version of ScaLAPACK used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. o BLACS The Basic Linear Algebra Communication Subprogram (BLACS) are required by ScaLAPACK. The IMSL Fortran Numerical Library does not require the BLACS to run. Therefore, unless you intend to use ScaLAPACK this subroutine package is not required. A user supplied BLACS library is not required when using the IMSL linking options. A user supplied BLACS library is required when using the other linking options. (See the LINK environment variables). The version of BLACS used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. - Performance Enhancements o Parallelism in the IMSL Fortran Numerical Library The IMSL Fortran Numerical Library employs both fine-grain parallelism and coarse-grain parallelism to take advantage of multiple CPUs. = Fine Grain Parallelism Fine-grain parallelism occurs within a subroutine or function and is limited to shared-memory (SMP) systems, i.e. one system with multiple CPUs. This parallelism is done at the DO loop level. The fine-grain parallelism utilized in the IMSL Fortran Numerical Library is obtained via OpenMP directives and the BLAS within user supplied high performance libraries. = Coarse Grain Parallelism Coarse-grain parallelism occurs at the subroutine/function level, i.e. subroutines/functions are called in parallel. Most of the coarse-grain parallelism implemented in the IMSL Fortran Numerical Library is not limited to a single SMP system but can be distributed across several workstations. (There are a few codes which implement coarse-grain parallelism via OpenMP and therefore are limited to an SMP system.) Most coarse-grain parallelism is accomplished with MPI (Message Passing Interface). You can still get these performance benefits with a single multiple-CPU SMP system by specifying the SMP system multiple times to the MPI interface. Both forms of parallelism are made to be transparent to the user other than setting up the system environment. No additional effort is required by the user. - LINK Options Numerous LINK options are available to the IMSL Fortran Numerical Library when building an application. To clarify which option meets your requirements each LINK option will be described in detail below. LINK_FNL_SHARED - This LINK option will leverage the use of third-party high performance library(s) which contain the BLAS and LAPACK (see Optional Third-Party Software). The LAPACK software makes use of alternative algorithms while the BLAS are typically multi-threaded. Use of this option to link your application will usually result in increased performance especially when computer systems with multiple CPUs are being used. This option links with shared library versions of the software if available. The BLAS and LAPACK used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. LINK_FNL_STATIC - Same as LINK_FNL_SHARED except that static libraries are used when linking. LINK_FNL - This environment variable is identical to LINK_FNL_SHARED. LINK_FNL_SHARED_IMSL - This LINK option does not rely on third-party vendor software. All software is supplied with The IMSL Fortran Numerical Library. This option links with the shared library version of the IMSL Fortran Numerical Library software. LINK_FNL_STATIC_IMSL - Same as LINK_FNL_SHARED_IMSL except that static libraries are used when linking. LINK_FNL_IMSL - Same as LINK_FNL_SHARED_IMSL. LINK_FNL_SHARED_NVIDIA - This LINK option will leverage the NVIDIA CUDA Toolkit to take advantage of the computational resources provided by the NVIDIA GPU boards. Refer to the IMSL Fortran Numerical Library User's Guide MATH/LIBRARY Chapter 9: Basic Matrix/Vector Operations - Programming Notes for BLAS Using NVIDIA for usage information. This option links with shared library versions of the software if available. ---------------------------------------------- Note: Not all environments support this option. Refer to the environment specific README file for more information. ---------------------------------------------- LINK_FNL_STATIC_NVIDIA - Same as LINK_FNL_SHARED_NVIDIA except that static libraries are used when linking. LINK_FNL_NVIDIA - Same as LINK_FNL_SHARED_NVIDIA. LINK_MPI_IMSL - Certain routines in the IMSL Fortran Numerical Library are MPI enabled. MPI (see Optional Third-Party Software) enables the application to use other CPUs in a distributed network. This can increase application performance. Linking with this option can also be advantageous when running on a single SMP (Shared Memory Parallel) system. This can be done by distributing each process to the single system multiple times. This is essentially treating the single system as a distributed network. This option links with static libraries only to avoid the problems associated with locating shared libraries by the spawned processes. The MPI used with the IMSL Fortran Numerical Library for testing purposes is documented in the environment-specific README file. LINK_MPI - Using this LINK option has all the advantages associated with LINK_MPI_IMSL but with the added advantages leveraging the use of ScaLAPACK, BLACS, BLAS, and LAPACK. LINK_MPIS_IMSL - This LINK option allows one to use MPI in their application but not necessarily the MPI-enabled versions of the IMSL Fortran Numerical Library routines. One must be careful when using this option because the MPI-enabled code will be linked when needed and the IMSL error handler designed for use with MPI will not be used. Therefore if you plan on using MPI-enabled versions of IMSL Fortran Numerical Library routines it is strongly recommended that you do not use this option. LINK_MPIS - Using this LINK option has all the advantages associated with LINK_MPIS_IMSL but with the added advantages leveraging the use of ScaLAPACK, BLACS, BLAS, and LAPACK. =========================< Part 5: Miscellaneous Information >=============== - Known Problems, Limitations, and Differences o Global problems and limitations - Using MPI IMSL routines which take advantage of MPI are available in the static libraries only. - Troubleshooting o Trouble with License Setup = The file $LICENSE_DIR/imsl_license.lic must have read access on all installations. To check this enter: ls -l $LICENSE_DIR/imsl_license.lic = Are all environment variables set properly? Review "Setting up the IMSL Libraries Environment" in Part 3. = Be sure that you enter the license server host name and host ID correctly. The correct name and ID appear in the e-mail you received from the IMSL License Administrator. o Trouble Finding System Libraries = By default, the LINK environment variables assume that the system libraries reside in the directories searched by the loader (ld). If the loader cannot find the system libraries, modify the LINK environment variables to include the directory where the system libraries reside. For example, add -L to the LINK environment variables defined in the files .csh and .sh. o Trouble Viewing Online Documentation 1. Make sure you have Acrobat Reader 9.0 or later. 2. Contact your System Administrator and confirm that the online documentation for the product has been installed. - Modifying the IMSL Fortran Numerical Library Error Message File Some IMSL Fortran Numerical Library error messages are stored in an error message file. For most applications of this product, there will be no need to modify this file. There are several situations in which there may be cause to change or add messages: o All or some of the existing messages in this file need to be translated to another language. o Users may want to modify the wording of an existing error message. o Users may want to incorporate the use the IMSL Fortran Numerical Library error handler in their own application. The IMSL Fortran Numerical Library error message file and associated utility files are kept in the $FNL_DIR//bin directory. => Contents of the $FNL_DIR//bin directory This directory includes: o The text version of the error message file, messages.gls. o The direct access version of the error message file, messages.daf. This is the file which is actually referenced by The IMSL Fortran Numerical Library product. o An executable program, prepmess, which builds the error message file messages.daf from messages.gls. o A source program, prepmess.f, used to build prepmess. => Adding or Modifying an Error Message The file you need to change when adding or modifying an error message is the text version of the error message file, messages.gls. Prior to changing this file, back it up in case it is necessary to restore it at a later time. The format of this file is as follows: message_number= message='message string' Here is an integer message number and "message string" is any valid message string not to exceed 255 characters. These lines should not begin with a tab. A message can span more than one line by using the standard Fortran 90 concatenation operator // or with the line continuation character &. Most messages have substitution parameters embedded within them. These substitution parameters have one of the following forms: %(i) for an integer substitution, n indicating the nth integer number output in the message. %(r) for a single precision real number substitution, n indicating the nth single precision number output in the message. %(d) for a double precision real number substitution, n indicating the nth double precision number output in the message. New messages added to the error message file should be added at the end. Message numbers 5000 through 10000 have been reserved for user-added messages. Use only error numbers which are reserved for the user, otherwise error message conflicts are possible. Currently messages 1 through 1400 are used by the IMSL Fortran Numerical Library. One is permitted to have gaps in message numbers within the file. The message numbers must be in ascending order within the file. The message numbers used by each IMSL Fortran Numerical Library routine are documented in "The IMSL Fortran Numerical Library User's Guide". Subsequent releases of this product will likely include a new error message file. With each new version of the error message file, you will need to make any modifications made here to the new error message file. If you are incorporating the use of the IMSL Fortran Numerical Library error handler in your application, see "The IMSL Fortran Library User's Guide" for information on the error_post subroutine on how to access error messages in messages.daf. => Generate a New Error File Once you have made your modifications to the messages.gls file, you can then generate the new error file, messages.daf. Prior to generating a new version of messages.daf, backup the current version. Use the supplied executable program prepmess to generate messages.daf. Enter the following command: prepmess > prepmess_output A new file messages.daf will be created. Prepmess will check the validity of each error message within messages.gls. There should be no FATAL error messages within the file prepmess_output. Your new error file is now ready for use with the IMSL Fortran Numerical Library product. => Using Multiple Versions of the Error File There are several reasons why there may be a need for multiple versions of the error file. Two are listed below: o Many sites do not like to change files which are associated with the default installation. o There may be a need for more than one error file based on either a user or an application. To use an error file other than the "default" version, make a call to the error_post subprogram in your application using the new_unit/new_path optional arguments as described in The IMSL Fortran Numerical Library User's Guide. The new path should point to the directory where messages.daf resides. - Directory Layout and Description The IMSL Libraries are installed in a directory structure shared by other IMSL Fortran Numerical Library products. The directory structure is: (default is /usr/local/vni) | |-license | |-imsl | |-fnl700 | |-help | |- | |-bin | |-examples | | | |-validate | | | |-eiat | | | |-manual | | | |-benchmark | | | |-mpi_manual | | | |-mpi_benchmark | | | |-mpi_scalapack | |-include | |-lib | |-notes Each directory contains the following files or types of files: /imsl/fnl700//bin ------------- Contains the FNL setup files for the specified environment. Contains the binary programs used to convert the Fortran Numerical Library error messages files to the binary version used by the Fortran Numerical Library at run-time. /imsl/fnl700//examples/validate ---------------------- Contains the files used to validate the installation. /imsl/fnl700//examples/eiat ---------------------- Contains the Environment Installation and Assurance Test for the IMSL Fortran Numerical Library. /imsl/fnl700//examples/manual ---------------------- Contains selected native Fortran 90 code examples documented in the IMSL Fortran Numerical Library User's Guide. /imsl/fnl700//examples/benchmark ---------------------- Contains Fortran benchmark programs. /imsl/fnl700//examples/mpi_manual ---------------------- Contains the example programs documented in the IMSL Fortran Numerical Library User's Guide which take advantage of MPI. /imsl/fnl700//examples/mpi_benchmark ---------------------- Contains benchmark programs. These examples benchmark IMSL Fortran Numerical Library routines which take advantage of MPI. /imsl/fnl700//examples/mpi_scalapack ---------------------- Contains the example programs documented in the IMSL Fortran Numerical Library User's Guide which take advantage of ScaLAPACK. /imsl/fnl700/help -------------- Contains the online documentation files. /imsl/fnl700//include ------------- Contains the module files required by the IMSL Fortran Numerical Library. /imsl/fnl700//lib ------------- Contains the object libraries. Depending on the options selected during installation either shared and/or static libraries are included. /license ----------------- Contains the license manager files and utilities. /imsl/fnl700//notes ------------------- Contains notes about the Fortran Numerical Library. ===< Part 6: Copyright Notices>=========================================== The IMSL Fortran Numerical Library has incorporated features from other entities which add value to the product. In compliance with the licensing requirements of these entities we have included the redistribution requirements in this section. - NVIDIA CUDA Toolkit Published by NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 Notice ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, MATERIALS) ARE BEING PROVIDED AS IS. NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation. Trademarks: NVIDIA, CUDA, and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated. Copyright: (c) 2005-2010 by NVIDIA Corporation. All rights reserved. Portions of the SGEMM, DGEMM and ZGEMM library routines were written by Vasily Volkov and are subject to the Modified Berkeley Software Distribution License as follows: Copyright (c) 2007-2009, Regents of the University of California All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the University of California, Berkeley nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Portions of the SGEMM, DGEMM and ZGEMM library routines were written by Davide Barbieri and are subject to the Modified Berkeley Software Distribution License as follows: Copyright (c) 2008-2009 Davide Barbieri @ University of Rome Tor Vergata. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3- The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ARPACK (Arnoldi Package) Copyright (c) 1996-2008 Rice University. Developed by D.C. Sorensen, R.B. Lehoucq, C. Yang, and K. Maschhoff. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution. - Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - SuperLU Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy) All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. (3) Neither the name of Lawrence Berkeley National Laboratory, U.S. Dept. of Energy nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - LAPACK (Linear Algebra Package) Copyright (c) 1992-2008 The University of Tennessee. All rights reserved. $COPYRIGHT$ Additional copyrights may follow $HEADER$ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution. - Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - Mersenne Twister The IMSL Mersenne Twister generators are derived from code copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved. It is subject to the following notice: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The IMSL 32-bit Mersenne Twister generator is based on the Matsumoto and Nishimura code _mt19937ar and the 64-bit code is based on _mt19937-64 =========================< Part 7: Customer Support >=============== If you have problems installing/using any product, contact IMSL Customer Support. The Customer Support group researches and answers your questions about all IMSL products. Refer to http://www.vni.com/tech/imsl/phone.html for contact information. Please provide Customer Support with the following information when you request support: o Your six-digit license number. If you have placed an order for IMSL software, your license number can be found on the packing slip accompanying your order. Evaluation sites should use the license number 999999. This number can be obtained from the VNI_LICENSE_NUMBER environment variable. o The name and version number of the product, for example, Fortran Numerical Library 7.0.0. The version number can be obtained from the top of this README file. o The type of system on which the software is being run. For example, UltraSPARC, IBM RS/6000. o The operating system and version number. For example, Sun Solaris 10, AIX 5L V5.3. o The compiler and version number. For example Sun One Studio 10, C for AIX 5.0. o The type of command shell you are running: C shell (csh), Bourne shell (sh), or Korn shell (ksh). o A detailed description of the problem.