The information in this section supplements that found in the NAG installation notes and concerns only the NAG Fortran double precision library, release MARK 16. For further details, consult the NAG installation notes for the platform in question.
The NAG library should be installed on CERNVM, the VXCERN cluster and in AFS. It will be automatically copied from AFS into the asis tree, accessed via NFS on those systems that do not have AFS.
In AFS, it should be stored in /afs/cern.ch/asis/packages/licensed/nag-mark16/@sys. On asis, the corresponding tree is /asis/packages/licensed/nag-mark16/@sys.
For management purposes, a separate volume is created for each operating system.
AFS volumes for the NAG software
/usr/local/bin/fs lsmount * 'alpha_osf22' is a mount point for volume '#asis.alpha_osf2.c.ng16' 'hp700_ux90' is a mount point for volume '#asis.hp700_ux90.c.ng16' 'pmax_ul43a' is a mount point for volume '#asis.pmax_ul4.c.ng16' 'rs_aix32' is a mount point for volume '#asis.rs_aix32.c.ng16' 'sgi3000_40' is a mount point for volume '#asis.sgi3000_40.c.ng16' 'sgi_52' is a mount point for volume '#asis.sgi_52.c.ng16' 'sun4_413' is a mount point for volume '#asis.sun4_413.c.ng16' 'sun4_53' is a mount point for volume '#asis.sun4_53.c.ng16'
Unix versions of NAGLIB should be delivered with on QIC or DAT tapes. There is a DAT drive on hpcernlib and a QIC drive on zfatal.
Go to the directory where you would like to install the software, e.g. /asis/packages/licensed/nag-mark16/rs_aix32, mount the tape in the drive and load the software by typing tar x.
On some systems, more than one version of NAGLIB exists. For example, on RS6000s and HP/UX, versions both with and without the trailing underscore are provided.
In general, make sure that the file libnag.a
List of all Unix NAG Fortran libraries
zfatal:/asis/packages/licensed/nag-mark16 (364) ls -l */nagfl16df/lib* -rw-r--r-- 1 cernlib cr 16850912 Dec 6 14:08 alpha_osf22/nagfl16df/libnag.a -rw-r--r-- 1 cernlib cr 8582742 Jul 26 16:11 alpha_osf22/nagfl16df/libnag.share -rw-r--r-- 1 cernlib cr 16645272 Jul 26 16:14 alpha_osf22/nagfl16df/libnagdx.a -rw-r--r-- 1 cernlib cr 8497254 Jul 26 16:14 alpha_osf22/nagfl16df/libnagdx.so lrwxr-xr-x 1 cernlib cr 12 Dec 6 14:40 hp700_ux90/nagfl16df/libnag.a -> libnag_ppu.a -rw------- 1 cernlib cr 8800940 Jul 6 12:31 hp700_ux90/nagfl16df/libnag_noppu.a -rw------- 1 cernlib cr 8805816 Jul 6 12:32 hp700_ux90/nagfl16df/libnag_ppu.a -rw------- 1 cernlib cr 13587936 Dec 6 17:05 pmax_ul43a/nagfl16df/libnag.a lrwxr-xr-x 1 jamie cp 10 Dec 6 15:10 rs_aix32/nagfl16df/libnag.a -> libnag_u.a -rw-r--r-- 1 jamie cp 8584439 Dec 6 14:46 rs_aix32/nagfl16df/libnag_b.a -rw-r--r-- 1 jamie cp 8603762 Dec 6 12:53 rs_aix32/nagfl16df/libnag_b_noextname.a -rw-r--r-- 1 jamie cp 8605192 Dec 6 12:52 rs_aix32/nagfl16df/libnag_noextname.a -rw-r--r-- 1 jamie cp 8600181 Dec 6 12:53 rs_aix32/nagfl16df/libnag_u.a -rw-r--r-- 1 cernlib cr 11313952 May 8 1994 sgi3000_40/nagfl16df/libnag.a -rw-r--r-- 1 cernlib cr 11341700 May 8 1994 sgi3000_40/nagfl16df/libnagblas.a lrwxr-xr-x 1 cernlib cr 12 Dec 6 15:34 sgi_52/nagfl16df/libnag.a -> libnag3000.a -rw-r--r-- 1 cernlib cr 13263820 Jun 8 1994 sgi_52/nagfl16df/libnag3000.a -rw-r--r-- 1 cernlib cr 12357016 Jun 8 1994 sgi_52/nagfl16df/libnag4000.a -rw-r--r-- 1 cernlib cr 13327488 Jun 8 1994 sgi_52/nagfl16df/libnagblas3000.a -rw-r--r-- 1 cernlib cr 12417468 Jun 8 1994 sgi_52/nagfl16df/libnagblas4000.a -rw-r--r-- 1 jamie cp 11648720 Dec 6 15:57 sun4_413/nagfl16df/libnag.a -rw-r--r-- 1 cernlib cr 4662443 Dec 6 13:11 sun4_413/nagfl16df/libnag_1.4.a.gz -rw-r--r-- 1 cernlib cr 14132336 Nov 4 1993 sun4_53/nagfl16df/libnag.a zfatal:/asis/packages/licensed/nag-mark16 (365)
In the above list, 3 links where created locally, the Alpha/OSF shared library was renamed and the RS6000 library rebuilt locally. In fact, the NAG supplied libnag_u.a would have been sufficient.
Test programs can be run in the following manner:
Running the test programs
export NAG=/asis/packages/licensed/nag-mark16/rs_aix32/nagfl16df xlf -qextname a02aafe.f -L$NAG -lnag -o a02aafe a02aafe < a02aaf.data
The VM/CMS version of NAGLIB arrives on 9 track tape. As there are no more units of this type on the CERN central services, the first step is to copy the tape to a 3480 cartridge. This can be done in the tape vault, with the help of the DCS staff.
Having copied the tape, it must now be loaded. This is done using the CMS TAPE command.
Procede as follows:
Loading the VM/CMS distribution
1Ready; T=0.01/0.01 14:19:22 tape load * * z Loading ... IN DOC Z1 TAPE DOC Z1 DOCS DOC Z1 End-of-file or end-of-tape Ready; T=0.08/0.30 14:20:06 fd z Ready; T=0.02/0.02 14:20:14 fd z Ready; T=0.02/0.02 14:20:39 tape load * * z Loading ... NAGLIB1 TXTLIB Z1 NAGLIB2 TXTLIB Z1 End-of-file or end-of-tape Ready; T=0.35/1.64 14:23:33 QUERY DISK LABEL VDEV M STAT CYL TYPE BLKSIZE FILES BLKS USED-(%) BLKS LEFT BLK TOTAL LIB191 191 A R/W 5 3390 4096 178 358-40 542 900 N/COM 320 C R/O 1 3390 4096 40 134-74 46 180 PLTOOL 197 G R/O 5 3390 4096 258 758-84 142 900 /P/CRN 199 P R/O 340 3390 4096 1316 26175-43 35025 61200 /Q/CRN 198 Q R/O 250 3390 4096 265 40334-90 4666 45000 S-DISK 190 S R/O 82 3390 4096 345 9191-62 5569 14760 Y-DISK 19E Y/S R/O 250 3390 4096 865 33082-74 11918 45000 NAG-16 1C0 Z R/W 100 3380 4096 5 3918-26 11082 15000 Ready; T=0.01/0.01 14:23:47 tape load * * z Loading ... EXPT FORTRAN Z1 EXPD DATA Z1 EXPR RESULTS Z1 End-of-file or end-of-tape Ready; T=0.18/0.65 14:24:21 tape load * * z Loading ... NAGA ICAFILE Z1 NAGC ICAFILE Z1 NAGD ICAFILE Z1 NAGE ICAFILE Z1 NAGF ICAFILE Z1 NAGG ICAFILE Z1 NAGH ICAFILE Z1 NAGM ICAFILE Z1 NAGP ICAFILE Z1 NAGS ICAFILE Z1 NAGX ICAFILE Z1 End-of-file or end-of-tape Ready; T=0.11/0.45 14:24:43 tape load * * z Loading ... TEXTA00 FORTRAN Z1 TEXTA02 FORTRAN Z1 TEXTC02 FORTRAN Z1 TEXTC05 FORTRAN Z1 TEXTC06 FORTRAN Z1 TEXTD01 FORTRAN Z1 TEXTD02 FORTRAN Z1 1 TEXTD03 FORTRAN Z1 TEXTD04 FORTRAN Z1 TEXTD05 FORTRAN Z1 TEXTE01 FORTRAN Z1 TEXTE02 FORTRAN Z1 TEXTE04 FORTRAN Z1 TEXTF01 FORTRAN Z1 TEXTF02 FORTRAN Z1 TEXTF03 FORTRAN Z1 TEXTF04 FORTRAN Z1 TEXTF05 FORTRAN Z1 TEXTF06 FORTRAN Z1 TEXTF07 FORTRAN Z1 TEXTF08 FORTRAN Z1 TEXTG01 FORTRAN Z1 TEXTG02 FORTRAN Z1 TEXTG03 FORTRAN Z1 TEXTG04 FORTRAN Z1 TEXTG05 FORTRAN Z1 TEXTG07 FORTRAN Z1 TEXTG08 FORTRAN Z1 TEXTG10 FORTRAN Z1 TEXTG11 FORTRAN Z1 TEXTG12 FORTRAN Z1 TEXTG13 FORTRAN Z1 TEXTH FORTRAN Z1 TEXTM01 FORTRAN Z1 TEXTP01 FORTRAN Z1 TEXTS FORTRAN Z1 TEXTX FORTRAN Z1 TEXTY07 FORTRAN Z1 TEXTY90 FORTRAN Z1 DEPM ASSEMBLE Z1 YXXLIB TXTLIB Z1 End-of-file or end-of-tape Ready; T=0.61/2.22 14:26:16 fd z Ready; T=0.02/0.03 14:26:28 tape load * * z Loading ... End-of-file or end-of-tape File * * Z not found Ready(00028); T=0.01/0.01 14:26:30 q disk z LABEL VDEV M STAT CYL TYPE BLKSIZE FILES BLKS USED-(%) BLKS LEFT BLK TOTAL NAG-16 1C0 Z R/W 100 3380 4096 60 9652-64 5348 15000 Ready; T=0.01/0.01 14:27:06 det 181 TAPE 0181 DETACHED Ready; T=0.01/0.01 14:27:09 cp log CONNECT= 02:14:38 VIRTCPU= 000:02.85 TOTCPU= 000:07.35 LOGOFF AT 16:26:42 WET MONDAY 12/05/94
The installation documentation is supplied in a single file: DOCS DOC. This can be split using the COPYFILE command, e.g. using the following EXEC.
Unpacking the documentation file
&TRACE ALL COPYFILE DOCS DOC Z UN = Z (FRL *AUN TOL *ZUN COPYFILE DOCS DOC Z LIST = Z (FRL *ALIST TOL *ZLIST COPYFILE DOCS DOC Z ESSINT = Z (FRL *AESSINT TOL *ZESSINT COPYFILE DOCS DOC Z SUMMARY = Z (FRL *ASUMMARY TOL *ZSUMMARY COPYFILE DOCS DOC Z NEWS = Z (FRL *ANEWS TOL *ZNEWS COPYFILE DOCS DOC Z REPLACED = Z (FRL *AREPLACED TOL *ZREPLACED COPYFILE DOCS DOC Z CALLS = Z (FRL *ACALLS TOL *ZCALLS COPYFILE DOCS DOC Z CALLED = Z (FRL *ACALLED TOL *ZCALLED
One should then run some tests to verify that the installation is ok. As on other systems, we run three tests, A02AAF, G05FFF and X03AAF. These tests can be found in the file EXPT FORTRAN. As was the case with the documentation file, this file can be split using the COPYFILE command, or simply with a text editor. Input data for those tests that require it can be found in the file EXPD DATA.
A02AAF
*AA02AAF * A02AAF Example Program Text * Mark 14 Revised. NAG Copyright 1989. * .. Parameters .. INTEGER NIN, NOUT PARAMETER (NIN=5,NOUT=6) * .. Local Scalars .. DOUBLE PRECISION XI, XR, YI, YR * .. External Subroutines .. EXTERNAL A02AAF * .. Executable Statements .. WRITE (NOUT,*) 'A02AAF Example Program Results' * Skip heading in data file READ (NIN,*) READ (NIN,*) XR, XI * CALL A02AAF(XR,XI,YR,YI) * WRITE (NOUT,*) WRITE (NOUT,*) ' XR XI YR YI' WRITE (NOUT,99999) XR, XI, YR, YI STOP * 99999 FORMAT (1X,2F6.1,2F9.4) END A02AAF Example Program Data -1.7 2.6
Running A02AAF
VFORT A02AAF CERNLIB NAGLIB1 NAGLIB2 FILEDEF 5 DISK A02AAF DATA Z (PERM LOAD A02AAF (NOMAP NOAUTO CLEAR START
The remaining two tests can be run in a similar manner, with the exception that G05FFF has no input data. The correct results from these programs can be found in the file EXPR RESULTS. Finally, one should modify or create the GIME NOTICE file, e.g.
Example GIME NOTICE file
--------------------------------------------------------------------------- (c)1994 Numeric Algorithms Group Ltd. NAG Fortran Library - Mark 16 The NAG software has been purchased ONLY for local usage at CERN. Please contact the CERN Program Library Office for information on the availability and licensing. See the file UN DOC * (Users' Note) for supplementary information regarding this version of the NAG Fortran Library. ---------------------------------------------------------------------------
The CERNLIB exec may also need modification to permit access to the new versions of NAGLIB. Once this has been done, the software can be announced.
VMS versions of NAGLIB are supplied on TK50. This is a problem as there are no TK50 drives on the CNLAVC, nor on VXCERN. For the time being, drives still exist on VXLDB2 node. This will not be the case for Mark 17 at which point a different method of distribution, e.g. DLT, must have been found for VMS systems.
On VMS systems, the NAG provided installation instructions should be followed. It was not possible to read the Fortran source on either AXP or VAX, but the libraries were successfully loaded.
The files were then copied to CERN:[NAG.MARK16 on VXCERN and the CNLAVC.
The tests may then be run as on other systems, e.g.
Example of running the tests on VMS
$ FORTRAN A02AAFE $ LINK A02AAFE,CERN:[NAG.MARK16]NAG$LIBRARY/LIB $ DEFINE FOR005 A02AAF.DATA $ RUN A02AAFE