NAG Logo
Numerical Algorithms Group

NAG Ping - Issue 14 (May 2004)

This issue covers:


Questions? Comments? Need more information about an article? Write to us at ping@nag.com.


NAG Collaborates on Version 2.0 of AMD's Core Math Library

AMD recently announced the availability of AMD Core Math Library (ACML) version 2.0, an advanced set of tools that allow software developers to further exploit the large memory space and performance enhancements offered by the AMD64 architecture.

Co-developed with NAG, ACML 2.0 provides developers with increased performance of Basic Linear Algebra Subroutines and Fast Fourier Transform routines from version 1.5. Developers using ACML 2.0 can achieve greater code accuracy and speed of delivery while maximizing performance and functionality of x86-based applications running on 32-bit Windows(r) and 32- and 64-bit Linux operating systems. ACML 2.0 also helps build the foundation for the Windows software developer in preparation for 64-bit capable Windows availability.

Optimized math libraries like ACML 2.0 deliver dramatic performance improvements for challenging computational problems such as oil & gas exploration and computer-aided engineering.


NAGWare f95 Compiler Now Available for Windows

Developers who seek very clean and portable Fortran code in a Windows(tm) environment, can now use NAG's NAGWare f95 Compiler Release 4.2 for Windows. Arguably the world's most standards compliant compiler, the NAGWare f95 Compiler has many innovations for error detection and supports the Fortran 95 language in its entirety, High Performance Fortran, and legacy Fortran 77 code, and Fortran 2003 standards for allocatable components and for IEEE Floating Point Exception Handling.

Many common extensions to Fortran 77 are allowed to provide support for legacy code. For example, the f95 Compiler allows processing of code containing tab format input, byte-sized declarations (e.g. INTEGER*2) and DOUBLE COMPLEX.

The NAGWare f95 Compiler includes optional run-time checking of array bounds, pointer association and procedure arguments. Extensive error messages are given by the compiler, both those required by the ISO standard and additional compile and run-time information. The messages are informative rather than cryptic and usually contain context information to assist in identifying and rectifying problems. For this reason the compiler is particularly suited to teaching and for programmers wishing to update their skills to the new language.

Built-in modules provide an interface to a large number of Posix system calls, e.g. GETARG, SYSTEM, and many others. To achieve portability, the NAGWare f95 Compiler uses C as its intermediate language - automatically invoking the host compiler to produce object code.

Automatic garbage collection is available as an option. This prevents memory leaks by de-allocating memory that can no longer be accessed by the program. An option is provided on Windows to generate code that can be linked to the DLL implementation of the NAG Fortran Library, Mark 20.

The f95 Compiler for Windows is aimed specifically at users of the Cygwin environment and uses Cygwin gcc as the code generator. Information and downloads are available from www.cygwin.com. Information about NAG's 30-day trial on the f95 Compiler for Windows can be found at http://www.nag.com/nagware/NP/NP_trial.asp.


Help for .NET Developers

The .NET platform offers application developers the means to simplify the code base, reduce development time and make portable, interoperable code. Its ultimate goal is to provide users access to their information anywhere, anytime and on any platform or device. While we are used to accessing information or services on one machine or even on a local network, .NET aims to make it simple to write applications that can access information or services anywhere on the web. Building upon the Java experiences, Microsoft has designed an entire technology in an integrated and coherent manner.

NAG has followed the development of .NET since its beginnings with particular interest in the languages provided by Microsoft: C#, managed C++ and of course VB.NET. NAG is also looking closely at the third-party compilers, especially the various Fortran.Net compilers now available.

.NET requires each of these languages to generate the same intermediate code and to share a common runtime library so that different routines may be compiled in different languages before being combined into one assembled application. Because of this there have been some sharp changes in the VB language. In consequence VB.NET is different in a number of aspects from the traditional (VB6) language. If you use (or plan to use) a NAG Library, the changes in storage conventions for array storage and the changed default calling convention could affect your application.

The rest of the article and more helpful information can be found at here.


Tech Tip - NAG Fortran DLLs

Users of the NAG Fortran DLLs will know from the supporting documentation and examples that it is possible to call the NAG routines from Excel. To help with this NAG supplies a set of 'Declare' statements which may be copied and pasted into your VBA module.

Typically there a number of utilities that you might need to write or copy from the NAG examples in order to complete the necessary code. If you have access to the NAG statistical Add-Ins then these functions need not be replicated, simply reference the NAG_Library.xla supplied with the NAG Statistical Add-Ins. To do this, obtain the VBA window in Excel from the Tools\Macro\Visual Basic Editor menus. In this Visual Basic Window use the Tools\References menus to establish a reference to NAG_Library.xla.

The following functions may be useful:

Public Sub AddNagMenu(NagSubMenu As String)
'Adds a submenu to the NAG Menu
End Sub

Sub Assemble(X, A)
' Take an argument X and ReDim a VB array A, copying the values
' contained in X into A. 

' The first element of A may then be passed to NAG routines
' as an actual argument.
End Sub

Sub AssembleS(X, V)
' Take an argument X and ReDim a VB array vector V, copying the values
' contained in X into V.

' The first element of V may then be passed to NAG routines
' as an actual argument.
End Sub

Public Function ContextID(RoutineName As String) As Long
'Returns the ContextID for a NAG routine in the Help system
End Function

Public Sub DeleteNagMenu(NagSubMenu As String)
'Removes a submenu from the NAG menu
End Sub

Private Function dimension(myVariantArray) As Long
'Determines the number of dimensions of an array
'usually determining whether an array has two or one dimension.
End Function

Further information on the use of DLLs can be found here, including a link to download our booklet titled, "Enhanced numerical capability through NAG DLLs."


Product News - New Implementations
NAG is committed to offering new implementations of its broad range of numerical and statistical software components and compilers and tools. The following implementations for NAG products have recently become available:

NAG Fortran Library, Mark20

  • HP Alpha VMS
  • Microsoft Windows using the Salford FTN77 Compiler
  • SGI MIPS IRIX 6 Single Precision using the MIPSPRO f77 or f90 Compilers

NAG C Library Mark 7

  • Intel-64 Linux64 using the Intel C++ Compiler for Itanium-based applications v 8.0

NAG Fortran 90 Library, Release 4

  • AMD-64 Linux64 using the NAGWare f95 Compiler
  • Intel-32 Linux using the Intel Fortran Compiler for 32-bit applications v8.0
  • Intel-64 Linux64 using the Intel Fortran Compiler for Itanium-based applications v 8.0


Your Privacy - Our Policy

At NAG, we have a simple policy on the use of information you provide to us; it is to treat you how we would like to be treated. We will not sell or give your personal information to anyone and will only use it for the purposes we state and with the permission you grant us. NAG also is one of the first U.S. companies to voluntarily certify compliance with the safe harbor principles for privacy protection developed by the U.S. Department of Commerce in conjunction with the European Union.
To learn more, click here.


Subscribe/Unsubscribe/Manage Your Account

You have received NAG Ping because you have:

  1. Registered on the NAG Web site
  2. Hold a current license to NAG Software
  3. Given NAG permission to send information to you from a prior research survey
  4. Requested NAG add you to their mailing list
You are free to forward this newsletter to colleagues or to post it to your company's Intranet site.
If your colleagues would like to receive this newsletter, they can either register online or contact us at ping@nag.com.

To manage your account with NAG (name, e-mail address, interests, etc.)
go to http://www.nag.com/local/userreg/users and login with your user name and password.

If you no longer wish to receive The NAG Ping, please reply with the word 'unsubscribe' in the subject line.


About The NAG Ping

The NAG Ping is an occasional newsletter of technical tips, product information and discussions of technical computing topics. Its principal audience is in North America though it has readers throughout the world. It is the sister publication of the NAGNews, produced by our colleagues at NAG Ltd primarily for those in Europe and elsewhere outside North America.

The NAG Ping is named in memory of Mike Muuss, formerly of the Army Research Laboratory. Among the creative and useful works of his life was the "ping" program to test network connection. It was written by Mike in 1983 to help diagnose problems on his network. The name is tied to Mike's earlier work in sonar modeling and echolocation. To learn more, click here.


Contact us / Copyright information

Contact us at at ping@nag.com or http://nag.com/contact_us.asp#northamerica.

Copyright 2001-2004 Numerical Algorithms Group, Inc.

© The Numerical Algorithms Group 2008
Privacy Policy | Trademarks

© Numerical Algorithms Group

Visit NAG on the web at:

www.nag.co.uk (Europe and ROW)
www.nag.com (North America)
www.nag-j.co.jp (Japan)

http://www.nag.com/nagnews/nagping/np014.asp