IMSL Products: FNL Tips
1. FNL - compile and runtime errors under IRIX 6.1 using EIAT tests
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: SGI IRIX 6.1/6.01
PROBLEM DESCRIPTION
Errors at runtime and compile time occur on the SGI running IRIX 6.1. EIAT
tests show the following results. The SGI running FNL 3.0 on SGI Power
Challenge 6.01 successfully completes all of the EIAT tests if the SGI is
forced to operate in 32 - bit mode only. Add "-mips2 -32" to the compile
options.
There are 16 permutations in the way one can link applications with the IMSL
FORTRAN Numerical Libraries. A number of these permutations fail to
correctly run all of the Environment Installation and Assurance Tests (EIAT)
in the 64 - bit IRIX v6.1 environment when linking with the 32 - bit product.
The permutations that run all of the EIAT's correctly are summarized below.
SOLUTION
The IMSL FORTRAN Numerical Libraries V3.0 have been developed and released on
the 32 - bit Silicon Graphics IRIX V5.2 operating system. Due to the number
of IMSL customers migrating to IRIX v6.1 on 64 - bit platforms, IMSL has
tested the IRIX v5.2 object code release of the FORTRAN Numerical Libraries
v3.0 using SGI 64 - bit platforms running under IRIX v6.1.
In a 64 - bit, IRIX v 6.1 environment, to compile and link programs with the
current IMSLL FORTRAN Numerical Libraries v3.0, one must add the following
switches to the f77 compile and / or link line :
-32 -mips2
This ensures compatibility with the architecture upon which the libraries
were built.
There are 16 permutations in the way one can link applications with the IMSL
FORTRAN Numerical Libraries. A number of these permutations fail to
correctly run all of the Environment Installation and Assurance Tests (EIAT)
in the 64 - bit IRIX v6.1 environment when linking with the 32 - bit product.
The permutations that run all of the EIAT's correctly are summarized below.
SCALAR Libraries :
Shared links :
Compile options which work :
Link -libimslfft.a with -libimslblas.so
Compile option which did NOT work :
-lcomplib.sgimath -lblas
-lcomplib.sgimath -libimslblas
-libimslfft -lblas
Static links :
Compile options which work :
Link -libimslfft.a with -lblas
Link -libimslfft.a with -libimslblas.a
Compile options which did NOT work :
-lcomplib.sgimath -lblas
-lcomplib.sgimath -libimslblas
PARALLEL Libraries :
Shared Link :
Link -lcomplib_sgimath with -lblas
Link -lcomplib_sgimath with -libimslblas.so
Link -libimslfft.a with -libimslblas.a
Static Link :
Link -lcomplib_sgimath with -lblas
Link -lcomplib_sgimath with -libimslblas.so
Link -libimslfft.a with -libimslblas.a
Visual Numerics has released a true 64 - bit port of the FORTRAN Numerical
Libraries. This product was tested under IRIX 6.1 on Powerchallenge XL and L.
It is recommended that customers running 64 bit SGI on IRIX 6.x obtain this
version of the software.
2. FNL - libisamstub.a does not exist on HP-UX 9.05
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: HP-UX 9.05
PROBLEM DESCRIPTION
libisamstub.a does not exist on HP running HPUX 9.05.
SOLUTION
Contact HP support or use this as a workaround for the problem:
Simply change the LINK_FNL_STATIC environment variable so as to append the
instruction to the HP linker to pick up the shared version of libisamstub
instead of the static. Add
-Wl,-E,-a,shared -lisamstub
after the IMSL library to the LINK_FNL_STATIC environment variable.
3. FNL / CNL - Compiling C and FORTRAN together
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: All
Architecture/OS version: All
PROBLEM DESCRIPTION
How do you compile and run a C routine with a call to a FORTRAN routine ?
SOLUTION
In the routine make sure the parameters passed to the FORTRAN routine follow
the C convention of passing by pointer / address and not the FORTRAN
convention of passing by value.
The compile command on Solaris 2.4 is for example :
cc -o test $CFLAGS test.c $LINK_CNL $LINK_FNL -lM77 -lF77 -lsunmath -lm
4. FNL - undefined symbol referenced from libf77.a file
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
The user gets many 'undefined symbol' errors from the loader at compile time.
Symbols appear to be from the libf77.a file from the FORTRAN language
compiler and not our FNL libraries. These undefined symbols can be first
referenced in libimsl.a or SUNWspro/SC2.0.1/libM77.a
SOLUTION
Advise the user to check the links to the FORTRAN compiler usually found in
the directory /usr/lang/SC1.0/libf77.a. This may vary with local
installation.
5. FNL - PowerStation DOS Unresolved Externals
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL / PowerStation
Architecture/OS version: MS-DOS
PROBLEM DESCRIPTION
A user is trying to compile and link a program from the FORTRAN PowerStation
compiler. He has set the path to IMSL Libraries is set in the directories
dialog box. When linking, he gets undefined symbols or unresolved externals.
SOLUTION
If the user can't link to the libraries, it is usually because he has not
specified the library under the LINKER options. The user needs to check
under OPTIONS/PROJECT/[ LINKER ] and add to the CUSTOM field, the name of the
library they are trying to link to. This is usually something like
MATHS.LIB.
6. FNL / Inverse of a complex and symmetrical Toeplitz matrix
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
A user needs to find the inverse of a Toeplitz matrix that is both complex
and symmetric.
SOLUTION
Enhancement request has been submitted to Product Development.
7. FNL - VMSINSTAL-E-BADSPEC, TIME.TLB cannot be parsed
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: OpenVMS
PROBLEM DESCRIPTION
User tried to install the IMSL source on an Dec alpha 1000, OpenVMS 6.1 ( see
below )with the same following result... * Do you want to run the IVP after
the installation [YES]?
%VMSINSTAL-I-RESTORE, Restoring product save set B ...
%VMSINSTAL-E-BADSPEC, File spec TIME.TLB cannot be parsed
%VMSINSTAL-E-INSFAIL, The installation of IMSLALPS V3.0 has failed.
This can also occur with operating system versions less than OpenVMS 6.1
SOLUTION
The directory where the files are to be put via the installation process must
exist prior to invoking the installation. So, you either need to make sure
you are entering a directory that exists or else you must stop the
installation and create the directory. One other thing to note is that the
directory path provided during the installation must be a complete path.
This path must include the disk drive as well (e.g., DKA0:[CBASE.IMSL]).
If the user is running an operating system which is earlier than OpenVMS 6.1
then the user will have to upgrade to OpenVMS 6.1.
8. FNL - Page file quota exceeded installing on VMS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: OpenVMS
PROBLEM DESCRIPTION
During installation of the products on a VMS system, the installation will
fail with the message that the page file quota / process quota has been
exceeded.
SOLUTION
During installation only :
To change the PAGE FILE QUOTA :
1. login as SYSTEM
2. set def sys$system
3. type : run authorize
4. UAF modify
9. FNL / CNL - Compatibility of IMSL libraries with HP workstations
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL, CNL
Architecture/OS version: HP
PROBLEM DESCRIPTION
What is the compatibility of different HP / Hewlett Packard workstations with
the FNL / CNL / Installation of the IMSL Libraries.
SOLUTION
TYPE IN THE WORD AT THE COMMAND LINE ON THE HP : model
TO GET THE MODEL NUMBER OF THE PLATFORM. VNI SUPPORTS ANY HP WHICH IS A
1.1 (THE TRAILING LETTER DOESN'T MATTER)
VERSION A.00.04
600 1.0 PA7000
635 1.0 PA7000
645 1.0 PA7000
700 1.1 PA7000
705 1.1a PA7000
715 1.1b PA7100
710 1.1a PA7000
712 1.1c PA7100LC
720 1.1a PA7000
722 1.1c PA7100LC
725 1.1b PA7100
730 1.1a PA7000
735 1.1b PA7100
743 1.1b PA7100
745 1.1b PA7100
747 1.1b PA7100
750 1.1a PA7000
755 1.1b PA7100
800 1.0 PA7000
806 1.1c PA7100LC
807 1.1a PA7000
808 1.0 PA7000
815 1.0 PA7000
816 1.1c PA7100LC
817 1.1a PA7000
822 1.0 PA7000
825 1.0 PA7000
826 1.1c PA7100LC
827 1.1a PA7000
832 1.0 PA7000
834 1.0 PA7000
835 1.0 PA7000
837 1.1a PA7000
840 1.0 PA7000
842 1.0 PA7000
845 1.0 PA7000
845 1.0 PA7000
847 1.1a PA7000
850 1.0 PA7000
852 1.0 PA7000
855 1.0 PA7000
857 1.1a PA7000
860 1.0 PA7000
865 1.0 PA7000
867 1.1a PA7000
870 1.0 PA7000
877 1.1a PA7000
887 1.1b PA7100
890 1.0 PA7000
897 1.1b PA7100
900 1.0 PA7000
F10 1.1a PA7000
F20 1.1a PA7000
H20 1.1a PA7000
F30 1.1a PA7000
G30 1.1a PA7000
H30 1.1a PA7000
I30 1.1a PA7000
G40 1.1a PA7000
H40 1.1a PA7000
I40 1.1a PA7000
G50 1.1b PA7100
H50 1.1b PA7100
I50 1.1b PA7100
G60 1.1b PA7100
H60 1.1b PA7100
I60 1.1b PA7100
G70 1.1b PA7100
H70 1.1b PA7100
I70 1.1b PA7100
E25 1.1c PA7100LC
E35 1.1c PA7100LC
E45 1.1c PA7100LC
E55 1.1c PA7100LC
10. FNL - Error writing tar file during installation
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: All
Architecture/OS version: All
PROBLEM DESCRIPTION
While installing the libraries the error message from the system is cannot
write tar file. This first occurred on an NFS mounted disk partition. This
can be a permissions problem. The user may be trying to install as root.
SOLUTION
Solution 1 : Remount the NFS mounted with root privileges so the tar file can
be written.
Solution 2 : have the user make a separate directory as a normal user.
Perform the installation here as a normal user and not as root. Make sure
this is a networked account.
11. FNL / CNL / EXPONENT GRAPHICS - IPT install problems
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL,CNL,EXPONENT GRAPHICS
Architecture/OS version: HP-UX 10.x
PROBLEM DESCRIPTION
The installation of the libraries FNL, CNL, and EG from tape number 6075 does
not proceed or finish correctly. The libraries and EG are unusable. This is
on an upgraded system, HP UX 10.x.
SOLUTION
Use tape 6075A.
12. FNL - specifying the number of cpu's for the parallel libraries
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: SGI
PROBLEM DESCRIPTION
How do you specify the number of cpu's for the parallel libraries running on
an SGI ( Silicon Graphics ) ?
SOLUTION
There is an environmental variable which is set : NCPUS . The user must
consult the system administrator, and the help files for its use. This will
allow the user to specify the number of cpu's to run a parallel routine.
13. FNL - Cray platform compatibility
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: Cray
PROBLEM DESCRIPTION
There are many Cray platforms. Which object libraries are compatible across
the Cray platforms ?
SOLUTION
From Cray:
An object library compiled for the Y-MP cannot be used on a T90. It can be
used on a C90, if TARGET=cray-ymp is used to compile the driver program on
the C90. Similarly, an object
library compiled for the C90 can be used on a T90 (non-IEEE) if
TARGET=cray-c90 is used to compile the driver program on the T90. These
statements assume that the user is using Programming Environment 2.0 under
the "modules" facility. Still, it is safest (and most convenient for the
user) to have IMSL libraries for each of the following platforms:
Cray Y-MP, Cray C90, Cray T90
Below is a chart that may be useful. In answer to the question, no object
library is usable for both the Y-MP and T90.
***********************************************************************
A *.o or *.a file built for:
-------------------------------------------
| | YMP EL J90 M90 D90 C90 T90 |
-------------------------------------------
| | |
| YMP | * * * * |
| | |
can be used in | EL | * * * * |
a link here: | | |
| J90 | * * * * |
| | |
| M90 | * * * * |
| | |
| D90 | 1 1 1 1 * * |
| | |
| C90 | 1 1 1 1 * * |
| | |
| T90 | 1 1 * |
| | |
-------------------------------------------
1 = yes if driver program is compiled with
TARGET variable set to target of origin
An executable file built for:
-------------------------------------------
| | YMP EL J90 M90 D90 C90 T90 |
-------------------------------------------
| | |
| YMP | * * * * |
| | |
can be used | EL | * * * * |
directly on: | | |
| J90 | * * * * |
| | |
| M90 | * * * * |
| | |
| D90 | * * * * * * |
| | |
| C90 | * * * * * * |
| | |
| T90 | * * * |
| | |
-------------------------------------------
Note: A *.o or *.a file built on any (non-MPP, non-Cray2)
Cray computer architecture with environmental variable
TARGET set to "B" can be used in the link step on the
Cray computer architecture "B" (non-MPP, non-Cray2).
***********************************************************************
14. FNL / CNL - making runtime executables for distribution
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL, CNL
Architecture/OS version: All
PROBLEM DESCRIPTION
What are the technical issues about distributing runtime ( run time )
executables for an application using the FNL, and or the CNL ( FORTRAN, c ) ?
A user wants to develop programs to be distributed around their site, and
they need to use the libraries as stand alone executables.
SOLUTION
Here are the technical requirements :
1. All executables must be compiled and linked STATICALLY. This includes all
the IMSL libraries as well as any other libraries that the customer might use
in his program. The entire library is then built into the executable at
compile time instead of being loaded only at run-time. Use, for example :
LINK_FNL_STATIC
2. For CNL, all the executables must be distributed with the IMSL error files :
imslerr.bin and imsls_e.bin Note : these two error message files are
located in the lib/lib. subdirectory.
3. For CNL, the error message environmental variable must be set up to find
the error message files.
setenv IMSLERRPATH ''
4. All the platforms must be supported platforms as defined in the Supported
Computing Platform list.
5. All of the computers which will run the executable must be networked
together, so that the executable can find the license.dat file. If there is
a computer which is not on the network, then a separate softkey and
license.dat file must be generated.
6. There are two license environmental variables which must be set in order
to find the license.dat file : LM_LICENSE_FILE, LICENSE_DIR
7. The user must have a run time license.
15. FNL 2.0 - IDF Interactive Documentation Facility, User permissions
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 2.0
Architecture/OS version: VAX VMS
PROBLEM DESCRIPTION
The IMSL FNL (FORTRAN Numerical Library) Interactive documentation facility
will only let an account with system privileges run the IDF. Users without
the system privileges cannot run the IDF; these users can only see the first
menu.
SOLUTION
Inside the IDF_LOGNAMES.COM file, there are logicals set up that give the
user system privileges so that the user can use the IDF. However the
logicals are setup by the IDF_LOGNAMES.COM and to run this COM file system
privileges are necessary. From the documentation (114620-18A) VAX VMS
Installation Guide VAX VMS Systems VAX FORTRAN : The IMSL FORTRAN Numerical
Libraries Interactive Documentation Facility pages 6 - 7.
The Interactive Documentation Facility can be accessed from anywhere in the
system by typing the symbol IMSL_IDF. The installation procedure creates a
file, named IDF_LOGNAMES.COM, in the directory specified during installation.
This file contains the logical name and symbol definitions necessary to
access the Interactive Documentation Facility.
The two logical names IMSL_IDF$PATH and IMSL_IDF$DIR, as well as the symbol
IMSL_IDF, are defined in IDF_LOGNAMES.COM. IMSL_IDF$PATH is used by the
Interactive Documentation Facility as a base pathname to access the various
subdirectories containing the data files. IMSL_IDF$DIR translates to the
directory in which the Interactive Documentation Facility was installed.
IMPORTANT : The contents of the file IDF_LOGNAMES.COM is to be included in
the system startup command file to enable all users of your system to access
the IDF. Note that the installation procedure iteratively translates system
logical names that reference disk drives to the literal device name. If you
change the device on which the IDF resides at a later time, you will need to
edit IDF_LOGNAMES.COM to reflect this change.
Note : These logicals will take effect for any user who logs in after the
system runs this IDF_LOGNAMES.COM file. Have any user who needs them login
after these are set, or logout and the log back in.
IMPORTANT : To set the protections on the IDF files so that they are
completely accessible type : set prot=(s:wred,o:rwed,g:rwed,w:rwed)
[...]*.*;*
This command recursively traces down the directory tree to change the
protections on each of the files. Once this is done then the protections
must be changed on the top most directory of the IDF. set
prot=(s:wred,o:rwed,g:rwed,w:rwed) IMSL_IDF$DIR where IMSL_IDF$DIR is the
system logical which translates to the directory in which the IDF was
installed.
16. FNL 3.0 - IBM RS6000 problems, limitations, differences
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: IBM RS6000
PROBLEM DESCRIPTION
IBM RS/6000 specific problems, limitations, and differences. When displaying
HyperHelp (the on-line documentation viewer) on an RS/6000 with the High
Performance 3D Color Graphics Processor (Sabine graphics adapter), text will
sometimes overwrite the previous page of text. Additionally, if there is
more text on a page than will fit within the current window, you will not see
the additional text when you scroll the page.
SOLUTION
Both problems can be resolved by resizing the window which will force a
screen update to occur, thus redrawing the text correctly. The problem with
text scrolling has also been seen on a Gt4xi when the -wm (set the backing
store resource to WhenMapped) option is specified to the X server.
17. FNL / F90 - SLPRS returns terminal error of invalid row or column index
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL/F90
Architecture/OS version: All
PROBLEM DESCRIPTION
SLPRS is terminating with the following error message:
TERMINAL ERROR 18 from s17rs. Either the row index (%(i1)) or the column
index (%(i2)) is out of range.
Here is a traceback of subprogram calls in reverse order:
s17rs
s20rs
s2prs
s1prs
SOLUTION
This is a possible bug. It has been referred to Product Development for
verification.
18. FNL 3.0 - Solaris compiler compatibility
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: Sun / Solaris
PROBLEM DESCRIPTION
Sun4/SPARC SunOS and Solaris specific problems, limitations, and
differences.
The version of the IMSL FORTRAN Numerical Libraries that are installed by
default work with the SPARCompiler FORTRAN 2.0.1. If you use the Sun FORTRAN
1.4 compiler instead, you must run the following commands to exchange the
symbolic links for the libraries:
SOLUTION
The version of the IMSL FORTRAN Numerical Libraries that are installed by
default work with the SPARCompiler FORTRAN 2.0.1. If you use the Sun FORTRAN
1.4 compiler instead, you must run the following commands to exchange the
symbolic links for the libraries:
cd $VNI_DIR/lib/lib.sun4
rm libimsl.* imslfnl.dat
ln -s SC1.0/* .
19. FNL - HYPPR gives invalid result when K equals M
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
The subroutine HYPPR returns a probability of 1 when K equals M. This result
is incorrect.
SOLUTION
There is a check inside this routine which sets the probability to 1 when
K=M, which is wrong. The proper check should be: if K=M and N=L, then the
probability is 1. Change request 01084-030797.
20. FNL - +ppu compiler option on HP
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: HP
PROBLEM DESCRIPTION
Is there is a version of the libraries on the HP that were compiled with the
+ppu switch. This would fix the problem of our libraries and the HP system
Library having duplicate routine names.
SOLUTION
No, but a set of wrapper LIBs was developed by Computational Technology group
as a special project to take care of the problem of the duplicate names.
Customers should check with their salesperson for additional information and
availability.
21. FNL 2.0 - License Manager code error from for_imsl under DOS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 2.0
Architecture/OS version: DOS
PROBLEM DESCRIPTION
On the old license managed DOS version of IMSL, many users are getting the
following error when trying to generate their magic number using the for_imsl
program:
Error - For each machine, host name and host id must be given
SOLUTION
The for_imsl program will try to process any line in the file, private.lif,
including the last one with the carriage returns and / or line feed. The way
to get around this is, edit the file as you normally would and then put your
cursor at the end of the last line:
Paid up
Password =
Machines =1
Suresh 0d6c0235_ <----- cursor
Then hold down the delete key to get rid of all blank spaces and carriage
returns. When you hear the machine clicking you will know you have deleted
them all. Then you can save the file. Finally, run the for_imsl program on
this file and send in the generated number.
22. FNL - conflicting attributes for psect ERCOM on VMS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: VMS
PROBLEM DESCRIPTION
The messages :
"LINK-W-MULPSC, conflicting attributes for psect ERCOM1
in module E1PSH file SYSPUB$ROOT:[IMSL:ADTVNI.LIB.VAXVMS]IMSLIB.OLB;1
LINK-W-MULPSC, conflicting attributes for psect ERCOM2
in module E1PSH file SYSPUB$ROOT:[IMSL:ADTVNI.LIB.VAXVMS]IMSLIB.OLB;1" etc.
Indicate that there is a problem with the attribute definitions. This is
because the linking needs to be modified to include IMSLPSECT. (axpvms,
vaxvms)
SOLUTION
The following commands will compile and link the application program fnl.f
for IEEE floating point format using the shared library:
FORTRAN/NOLIST/FLOAT=IEEE FNL.F
LINK/NOMAP FNL.OBJ, IMSLIEEE_SHARE/OPT, IMSLPSECT/OPT
The following commands will compile and link the application program fnl.f
for IEEE floating point format using the static library:
FORTRAN/NOLIST/FLOAT=IEEE FNL.F
LINK/NOMAP FNL.OBJ, IMSLIEEE_STATIC/OPT,IMSLPSECT/OPT
The following commands will compile and link the application program fnl.f
for G_FLOAT floating point format using the shared library:
FORTRAN/NOLIST/FLOAT=G_FLOAT FNL.F
LINK/NOMAP FNL.OBJ, IMSLIBG_SHARE/OPT, IMSLPSECT/OPT
The following commands will compile and link the application program fnl.f
for G_FLOAT floating point format using the static library:
FORTRAN/NOLIST/FLOAT=G_FLOAT FNL.F
LINK/NOMAP FNL.OBJ, IMSLIBG_STATIC/OPT, IMSLPSECT/OPT
23. FNL 3.0 - IDF on a Cray.
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: Cray
PROBLEM DESCRIPTION
A customer has seen the following restrictions with the IMSL/IDF
Version:
if they are in their home directory (for example) and they
call imslidf (all the links that we recommend have been set),
they get the error message:
There was an error opening file imsl.idf/data/VARIABLES. Help can
not continue. See your system manager for more information.
The selected file does not exist, returning to current menu.
Hit return to continue
However, if they are in the directory where the executable
imslidf resides (which is /usr/local/IMSL/bin at their site),
they do not get this error since the subdirectory imsl.idf
can be found. This means that the relative path (!) imsl.idf
is used within the imslidf executable.
SOLUTION
They used a workaround to start a shell script if a user
enters imslidf. This shell script goes into the directory
/usr/local/IMSL/bin and then calls imslidf. However,
this means that the user has to give an absolute pathname
to imslidf if they want to save documentation into a file
since the user cannot write into the actual directory
(/usr/local/IMSL/bin).
They think that this could be fixed with the next release
(or have HyperText Help available with the next release). Change request has
been issued.
24. FNL - Bug in LSQRR/L2QRR
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
Incorrect result's from LSQRR in IMSL FORTRAN Libs V3.0.
SOLUTION
Obtain new versions of L2QRR and DL2QRR which were fixed on October 1995.
25. FNL 2.0 - FORTRAN Powerstation 4.0 / IFNAN
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 2.0
Architecture/OS version: Windows 95
PROBLEM DESCRIPTION
The IFNAN subroutine delivered with FORTRAN Powerstation 4.0 produces
incorrect results under Windows 95.
SOLUTION
FNL version 2.0 was delivered with FORTRAN Powerstation 4.0. This problem has
been corrected in FNL version 3.
26. FNL - Cray installation checksum errors
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: Cray
PROBLEM DESCRIPTION
Installation of FNL 3.0 on Cray using 4mm tape produces checksum errors.
SOLUTION
The installation and testing guide for Cray C90 UNICOS System CF77 FORTRAN
has instructions for installation which are valid only for 9 track and 3480
cartridge tapes. You cannot use these instructions for installation from 4 mm
tape. The reason for this is that the 4mm tape was created on a Unix system
other than Cray, and you cannot use the tpmnt command on it. To install from
4 mm, you must tar the files to disk using the tar command and a norewind
device. You can then use a modified version of the shell script with no tar
commands and no tape commands to install it in place of lib_install. There is
a copy of this script in /home/archer/solutions/cray/lib_install.from_disk.
Customers should send email to support@houston.vni.com to obtain a copy of
the script.
27. FNL - DTNDF limitations
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
TNDF/DTNDF returns a probability of zero for large values of IDF.
SOLUTION
The computations in this subroutine are limited by machine precision in the
following way:
For single precision:
if DELTA*SQRT(IDF/(IDF+T*T)) 12.8817 (on Solaris 2.3)
For double precision:
if DELTA*SQRT(IDF/(IDF+T*T)) 36.6872 (on Solaris 2.3)
When this limitation is exceeded the probability will be returned as zero.
This limitation is not documented and no error message is output when it is
exceeded.
28. FNL 3.0 Source - Extracting source modules from VMS installation tape
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: VMS
PROBLEM DESCRIPTION
How can a source module be extracted from the VMS installation tape without
compiling and linking the libraries?
SOLUTION
There are two savesets on the installation tape, IMSLCLGS030.A and
IMSLCLGS030.B. Extract files SPLIT.COM and SPLIT.FOR from saveset A. The
files on saveset B are named as COMBAB.FOR, which contains the source for
routines beginning with the letters A-B, COMBCD.FOR, which contains the
source for routines beginning with the letters C-D, etc. Extract the file
desired from saveset B. Then use SPLIT to extract the files.
bac/list tape:imslclgs030.a/select=(split.com,split.for) []
(where tape is the name of the tape device)
bac/list tape:imslclgs030.b/select=(combcd.for) []
for split
link split
@split
name of file to split: combcd.for
name of list file: combcd.list
29. FNL 2.0 - generating DLL from static library with STOP statement
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 2.0
Architecture/OS version: All
PROBLEM DESCRIPTION
Cannot link IMSL static library with DLL because of STOP statements in the
code on PC with MS FORTRAN 5.1.
SOLUTION
The following has been suggested as a possible workaround but several
customers have tried this with no success. They have gotten the error message
": error L2029: '_exit' : unresolved external" when linking this program. The
only other workaround that has been suggested is for the customer to obtain
the source code for the routines that have the stop statement. Customers must
contact sales for information on obtaining source code.
---------------------------------
To generate a DLL file from FORTRAN code that makes a call to the IMSL
version 2.0 static library, you have to include in the link, object code that
will handle the _exit statement in the error routines. First compile the
attached code FIX.FOR into an object module FIX.OBJ. Then compile your own
code:
FL /c /Aw /Gw my_code.for
then link:
LINK my_code.obj+fix.obj,my_code.dll,nul, /NOD ldllfew.lib + math1.lib,
my_code.def
This is just an example. You will need to modify the link statement to
include the libraries you need.
interface to subroutine exit[alias:' FFsSTOP']()
end
interface to integer*2 function PostAppMessage[pascal]
+ (htask, msg, wparam, lparam)
integer*2 htask[value]
integer*2 msg[value]
integer*2 wparam[value]
integer*4 lparam[value]
end
interface to integer*2 function GetCurrentTask[pascal]
end
interface to integer*2 function MessageBox[pascal]
+ (hwnd, boxtext, caption, boxtype)
integer*2 hwnd[value]
character*1 boxtext[reference]
character*1 caption [reference]
integer*2 boxtype[value]
end
subroutine exit
integer*2 in
character buffer1*120, buffer2*80
integer*2 i, WM_QUIT, PostAppMessage, GetCurrentTask, MessageBox
WM_QUIT = #12
buffer1 =
+'************** DLL issued STOP Statement ************'//
+'\n Application will terminate. Save contents of windows NOW'c
buffer2 = 'DLL STOP 'c
i = MessageBox(0, buffer1, buffer2, 0)
i = PostAppMessage(GetCurrentTask(), WM_QUIT, in, 0)
return
end
30. FNL 3.0 - questionable results from CBYS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: All
PROBLEM DESCRIPTION
The second kind Bessel function should be continuous except at Z=0,
but the calculation from DCBYS is not continuous at Z=25. When
the argument (Z) is purely real and larger than 25, the results also
show a very large imaginary part.
SOLUTION
It may be possible to use the results from DCBIS and DCBKS to produce the
correct results, using the algorithm shown in DCBYS documentation.
Change request has been issued for CBYS.
31. FNL - Problem withDNCONF and DNCONG and mathd.h
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 2.0
Architecture/OS version: Windows
PROBLEM DESCRIPTION
Customer reports :
I found a bug in the Microsoft IMSL Mathematical and
Statistical Libraries version 2.0 for Microsoft Windows NT(R) and the
FORTRAN
PowerStation 32 Professional Development System for Windows NT. It concerns
the declaration of the functions DNCONF, D2ONF, DNCONG and DN2ONG in the
file mathd.h. The declaration of the user-defined functions FCN and GRAD in
their argument lists read
void(__stdcall *)(long*, long*, long*, double*, double*, double*, double*),
void(__stdcall *)(long*, long*,long*, long*, double*, double*, double*,
double*, double*,double*)
However, in the FORTRAN source, the argument named ACTIVE is of the type
LOGICAL, which, according to MS Visual C/C++ V.2.0 documentation is to be
converted to the type int / long (=INTEGER*4), not double in the mixed
language programs as you have it. The correct declarations are
void(__stdcall *)(long*, long*, long*, double*, long*, double*, double*),
void(__stdcall *)(long*, long*, long*, long*, double*, long*, double*,
double*, double*, double*)
I have used DNCONG and found the bug after much frustration, when DNCONG
never crashed, but was producing funny results.
I did not check the single precision functions nor other functions that may
possibly involve variables of the type LOGICAL.
SOLUTION
Fix pending future release
32. FNL 3.0 - undefined symbols on SunOS compilation
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: Sun / SunOS
PROBLEM DESCRIPTION
SunOS FORTRAN compile and link gives this error:
ld: Undefined symbol
___i_len
___s_cmp
___s_stop
___s_copy
___do_f_out
___e_wsfe
___s_wsFe
___ansi_fflush
___d_mod
___i_conv_c
___c_conv_i
___i_indx
___i_sign
Compilation failed
SOLUTION
The wrong version of the libraries is being used for the link. There are two
versions of the libraries delivered. One is for SPARC compiler and the other
is for Sun compiler. When you get this error, you are using the Sparc
libraries with the Sun compiler. Switch to the Sun libraries which are
delivered under subdirectory lib.sun4/SC1.0. This is documented in the
installation guide 5287B on page 15.
33. FNL - DEC OSF doublesize compiler option
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: DEC Alpha / OSF
PROBLEM DESCRIPTION
Do we have a version of FNL 3.0 that is compiled using
the -double_size 128 compiler option on the DEC Alpha.
SOLUTION
No.
34. FNL 3.0 - SGI 64 Bit - unresolved symbol on static link
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: All
Architecture/OS version: All
PROBLEM DESCRIPTION
When trying to statically link a program under SGI 64 bit libraries with this
command:
f77 $FFLAGS_MP program.f $LINK_FNL_MP
gives this error:
ld64: ERROR 33: Unresolved text symbol "cset_" -- 1st referenced by
./libimslblas_mp.a(chemv.o).
ld64: INFO 60: Output file removed because of error.
SOLUTION
Link with this command as a workaround:
f77 $FFLAGS_MP program.f $LINK_FNL_MP $LIBS_PATH/libimsl_mp.a
35. FNL 3.0 Source - DEC OSF 4.0 - errors in generating shared library libimsl.so
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: All
Architecture/OS version: All
PROBLEM DESCRIPTION
After installing source code, user gets the following error message when
trying to link the example program to the shared library:
# $FC -o fnl $FFLAGS fnl.f $LINK_FNL
ld:
Object file format error in: /usr/local/vni/lib/lib.axposf/libimsl.so:
read_cur_obj_info: bad file magic number
fort: Severe: Failed while trying to link.
Also, the following kinds of error messages will appear in the
src_install.output file:
Building the shared library
ld:
Warning: shared object not found in registry
/usr/local/vni/lib/lib.axposf/libimsl.a(a1cos.o): writeat_outbuf: Position
0x0 not in buffer pd_outbuf
/usr/local/vni/lib/lib.axposf/libimsl.a(a1cosh.o): writeat_outbuf: Position
0x40 not in buffer pd_outbuf
/usr/local/vni/lib/lib.axposf/libimsl.a(a1exp.o): writeat_outbuf: Position
0x80 not in buffer pd_outbuf
SOLUTION
The -x switch in the link command (see make_shared_library) is causing these
errors. Regenerate the shared library with the following command:
cd lib/lib.axposf
ld -o libimsl.so -shared -all libimsl.a -expect_unresolved '*'
-check_registry /usr/shlib/so_locations
36. FNL - Linking c program calling FORTRAN on RS6000
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: IBM RS6000
PROBLEM DESCRIPTION
How does one link a c program which is calling a FORTRAN subroutine from our
FNL library on RS6000. Typical unresolved references would be :
.#FSO
.#FOITEM
.#FEO
.#ATESTOP
.#FIO
.#FCODER2
SOLUTION
These symbols are found in library libxlf.a. Other unresolved references may
be found in libxlf90.a.
Use this command to link:
cc -o program program.c -L/yourdir/lib/lib.rs6000 -limsl -lxlf -lxlf90 -lc
-lm
37. FNL - Online documentation (IPTDOC) crashes on OpenVMS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: OpenVMS
PROBLEM DESCRIPTION
Online doc, IPTDOC, which runs hyperhelp crashes under OpenVMS with an access
violation. Traceback module names may include names beginning with DECW$.
SOLUTION
IPTDOC on OpenVMS requires an X terminal and DEC Windows. If you are running
from a remote terminal, you must set the display with this command:
$ SET DISPLAY/CREATE/TRANSPORT=TCPIP/NODE=tcpipaddress
where tcpipaddress is the tcp/ip address of the machine from which you are
running the x term. This is supposed to work with a transport of DECNET also,
but we have not tested this option.
38. FNL - Source for IEGFRE and IEMORM
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL source code version
Architecture/OS version: All
PROBLEM DESCRIPTION
Customer cannot find the source code for IEGFRE and IEMORM subroutines.
SOLUTION
These routines are in work.c.
39. FNL - CPU id on IBM MVS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: IBM MVS
PROBLEM DESCRIPTION
On an MVS system, does the IMSL libraries check for the CPU id?
SOLUTION
No, we do not check for the CPU id.
40. FNL - EIAT / execute and ckeiat jcl files corrupt
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: IBM MVS
PROBLEM DESCRIPTION
The JCL files EXECUTE and CKEIAT were corrupt when extracted from the EIAT
tape for FNL 3.0.
SOLUTION
These files are located on /home/archer/solutions/ibm/mvs. Customers needing
these files should send email to support@houston.vni.com.
41. FNL - IVPRK returning incorrect trial step size
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
When you try to force the step size to a constant value by inputting an equal
minimum and maximum step size (HMIN and HMAX), the returned trial step size
(HTRIAL) is sometimes half the input step size.
SOLUTION
The step size is apparently being halved in the final step only. The code is
checking in the last step that the stepsize is not more than the distance to
the end, and sets the stepsize to half if it is less. There appears to be
some sort of rounding error occurring which is causing it to think the step
size is more than the distance to the end in the last step, when it actually
is not. When this rounding error occurs, the final stepsize is set to half
the previous stepsize.
42. FNL / CNL - Online Documentation / Creating a man page for compiling
-
and linking instructions
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL/CNL
Architecture/OS version: All
PROBLEM DESCRIPTION
Is there any online documentation containing the compilation and linking
instructions for FNL and CNL?
SOLUTION
This is not contained in the online documentation supplied with IPTDOC. It is
possible to add the README files to the man pages under Unix using the
following instructions:
Here is a method for creating a man page from our README file:
The man pages are usually located in either /usr/share/man or /usr/man or you
may have defined a separate directory for customized man pages on your
system. It depends on how your system is set up and may depend on the
environment variable MANPATH.
Let's say for example that you want to create a man page called imslfnl for
help on how to compile and link to the FORTRAN libraries. The easiest way to
do this is to copy the README file into /usr/share/man/man1:
cp $VNI_DIR/notes/fnl/README /usr/share/man/man1/imslfnl
Likewise, if you want to create a man page from the CNL README file, called
imslcnl:
cp $VNI_DIR/notes/cnl/README /usr/share/man/man1/imslcnl
Then to use it you would enter either "man imslfnl" or "man imslcnl".
Obviously you can call it whatever you want. If you have a separate directory
on your system for customized man pages, you would probably want to copy into
that directory instead of /usr/share/man. You can consult a Unix manual or
"man man" for additional information on this.
43. FNL - Problem running EIATS under SGI with 7.0 compiler
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: SGI
PROBLEM DESCRIPTION
USER is having problems getting all of the EIATS to run under the SGI 7.0
(or 7.1) compiler. Most of the test are OK but some give error messages
that are similar to:
"va1g.f", line 34: error(2085): declaration conflicts with previous
specifications
COMPLEX CMPLX
SOLUTION
The supported compiler for this release is version 6.1, for which the libraries
were built. The bug that is causing the problem was introduced into the
version 6.2 compiler. It was supposed to be fixed in version 7.0 but was
not fixed in either the 7.0 or 7.1 release. It has supposedly been fixed
in the 7.2 release of the compiler. The problem is only in the EIATS and not the
libraries themselves. We have not done an official test, but a contact of
ours at Cray modified the EIATS to account for the errors and ran them
against the 7.0 and the test came out OK. This is not our official position
but the contact at Cray is very knowledgeable and he says that they were OK.
We will not officially release until we have done the test for ourselves.
44. FNL - CTGLM produces singular covariance matrix
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
Im fitting a logistic regression of 2 predictors + "INTCP=1"
ie 3 parameters are being estimated
The parameter estimates themselves are reproducing the program settings,BUT
the 3 x 3 covariance matrix estimated by DCTGLM, COV, is sometimes SINGULAR.
Standard maximum likelihood theory gives :
If p=exp(u)/(1+exp(u)) and u= a1.x1+a2.x2+a3.x3, where x1=1 always
then d lnL
_____ = sigma { - x .x .p (1-p ) } L = likelihood fn
k=1,n ki kj k k
da da
i j
-1
from which Covariance matrix(a) = VPIL = [- d lnL/da da ]
~ i j
Comparing my estimate VPIL with estimate COV, all values are equal except
VPIL(1,1) NE COV(1,1)
VPIL doesn't have singularity problems.
SOLUTION
CTGLM is using a different method to produce the covariance matrix. Detailed
research would be required to determine what the differences in the methods
are and why our method sometimes produces a singular and ill-conditioned
covariance matrix. This research has not been done at the time of this
solution. See CR 01050-020397.
45. FNL 3.0 - Calling FNL from C on Solaris
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: Sun / Solaris
PROBLEM DESCRIPTION
User wants to be able to call FNL from C on a Solaris machine.
SOLUTION
The following makefile will compile and link the test file, test.c to the FNL
libraries.
CC_COMPILER = /opt/SUNWspro/SC3.0.1/bin/cc
test:
$(CC_COMPILER) test.c $(CFLAGS)
$(LINK_FNL_STATIC) -L/opt/SUNWspro/SC3.0.1/lib
-lF77 -lV77 -lM77 -lsunmath -lm -o $@
or to compile and link from the command line:
cc -o test test.c $LINK_FNL -lM77 -lF77 -lsunmath -lm
TEST.C:
#include
46. FNL - Linking to FNL libraries from developer studio
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: Windows
PROBLEM DESCRIPTION
How do you link to the FNL libraries that are delivered with FPS 4.0 from the
Developer Studio?
SOLUTION
1. After you have created your project, select Files Into Project" from the
"Insert" pulldown menu at the top of the Developer Studio dialog box.
2. The Insert Files Into Project dialog box will appear. At the bottom, under
List Files of Type, select "Library Files (*.lib)". Then select the drive on
which you have installed FORTRAN Powerstation. From directories, select the
directory in which FORTRAN Powerstation is installed. Then select the LIB
subdirectory under that.
3. Then choose one or more of the following library files from that
directory:
maths.lib if you are using single precision math subroutines
mathd.lib if you are using double precision math subroutines
stats.lib if you are using single precision statistical
subroutines
statd.lib if you are using double precision statistical
subroutines
4. Click OK.
5. You are then ready to build the application.
47. FNL - problems installing as root
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: All
PROBLEM DESCRIPTION
Users want to know why they cannot install as root
SOLUTION
As a blanket solution, we have advised all users to install as a normal user.
The reason for this is system administrators can set their systems up in a
variety of ways. In some system setups, our installation program calls some
system installations that are located in a directory that is not accessible
by root. The most notable example is Frame utility.
48. FNL - calling Fortran from C in Visual C++
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL
Architecture/OS version: Windows NT / Windows 95
PROBLEM DESCRIPTION
How do you call one of the Fortran Numerical Library subroutines from C,
using the Visual C++ 4.0 compiler on Windows NT or Windows 95?
SOLUTION
This is an example program using subroutine IVPRK:
#include maths.h /* use this statement or the "extern void __stdcall IVPRK" below */
void __stdcall fcn (long *neq, float *t, float y[], float yprime[]);
main()
{
/* extern void IVPRK ();*/
/* extern void __stdcall IVPRK (long *, long *, void * , float *, float *,
float *, float *, float *); use this statement if the "#include maths.h"
statement above is omitted
change "extern" to "extern "C" " if the program is written in C++*/
long neq = 2, ido=1, istep; /* Number of ode's */
float t = 0.0; /* Initial time */
float tend ; /* Final time */
float tol=.0005, param[50];
float y[] = {1.0, 3.0}; /* Initial condition */
void *state;
/* Initialize the ODE solver */
for (istep=0; istep<50; istep++) param[istep] = 0.0;
for (istep=1; istep<11; istep++)
{
tend = istep;
IVPRK (&ido, &neq, fcn, &t, &tend, &tol, param, y);
printf ("%d %f %f %f\n", istep, t, y[0], y[1]);
if ( istep == 10) ido=3;
}
}
void __stdcall fcn (long *neq, float *t, float y[], float yprime[])
{
int n;
n = *neq;
yprime[0] = 2.0 * y[0] - 2.0*y[0]*y[1];
yprime[1] = -y[1] + y[0]*y[1];
}
-------------
This is the DOS command used to compile and link this program with
the single precision math library which is bundled with Microsoft
Fortran Powerstation 4.0:
cl ivprk.c -link \msdev\lib\maths.lib libf.lib
Substitute "\msdev\lib" with the corresponding directory name on
your machine. Substitute "maths.lib" with the appropriate library
name if you are using a statistical or double precision library or
one of the FNL 3.0 libraries.
libf.lib is supplied with FPS 4.0.
--------------
This is the DOS command used to compile and link this program with
the math library for Digital Visual Fortran 5.0:
cl ivprk.c -link %link_f90% dfor.lib dfconsol.lib
dfor.lib and dfconsol.lib are supplied with Digital Visual Fortran
49. FNL 3.0 -iptsetup sets default compiler path to SC3.0.1/lib on Solaris
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: Sun / Solaris
PROBLEM DESCRIPTION
The iptsetup.csh shell script installed from IPT 2.0 tape is adding the
default compiler path of SUNWspro/SC3.0.1/lib to LD_LIBRARY_PATH. If the
customer is using another version of the compiler, such as version 4,
then this path will be incorrect.
SOLUTION
This product, as released on the IPT 2.0 tape, was tested and is supported
for the SPARC Fortran compiler version 3.0.1 only. If a customer wishes to
try to use the product with another verison of the compiler, solaris.csh
may be edited to reflect the correct path.
50. FNL 3.0 - EIAT fails on HP from IPT 2.0 installation tape
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: HP / HPUX 10.x
PROBLEM DESCRIPTION
The EIAT build fails on HP running HPUX 10.x, when installed from IPT 2.0 tape 7861.
The build fails at the first compilation step with this message in the
build_eiat.output file:
Make: Don't know how to make va1.o. Stop.
Also, the shell script vall.sh does not execute properly, because it executes a.out
rather than ./a.out.
SOLUTION
There is a difference in the file Makefile_eiat between IPT 1.2 and IPT 2.0
installation tapes. The Makefile_eiat from installation tape IPT 1.2 (6075A) is
intended to be used only on systems running HPUX 10.x. The Makefile_eiat from
installation tape IPT 2.0 (7861) is intended to be used only on systems running
HPUX 9.x.
Workaround : install eiat from tape 6075A.
51. FNL 3.0 - bug in DBSJ1 (Bessel function)
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: all
PROBLEM DESCRIPTION
Bessel function routine: DBSJ1 assigns an incorrect sign to
some results. This error is platform independent.
This is a single and double precision work-around.
A change request has been submitted.
SOLUTION
This FORTRAN code illustrates the problem with DBSJ1. The code
also illustrates a double precision work-around using the routine
DBSJNS. BSJ1 is the single precision work-around.
double precision x_dbl,dbdj1,bs(2)
real x_real,bdj1
integer k
external dbdj1,bdj1,dbsjns
parameter (k=2)
x_real = -4.5
x_dbl = -4.5d0
write(*,1) x_real, bsj1(x_real) ! correct result
write(*,2) x_dbl ,dbsj1(x_dbl) ! wrong result
call dbsjns(x_dbl,k,bs) ! work-around for
write(*,3) x_dbl ,bs(2) ! double precision
1 format(//5x,' bdj1(',f7.4,') = ',f7.4)
2 format(/ 5x,' dbdj1(',f7.4,') = ',f7.4,2x,'<-- WRONG')
3 format(/ 5x,'dbsjns(',f7.4,') = ',f7.4//)
stop
end
Output:
bdj1(-4.5000) = .2311
dbdj1(-4.5000) = -.2311 <-- WRONG SIGN
dbsjns(-4.5000) = .2311
52. FNL 3.0 / CNL 2.0 - Bessel bugs: bessel_Jx and CBJS/DCBJS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
CNL 2.0
Architecture/OS version: all
PROBLEM DESCRIPTION
The CNL routine bessel_Jx and the FNL routine CBJS/DCBJS give
incorrect results for complex numbers with modulus > 25.
A change request has been submitted.
SOLUTION
The CNL routine bessel_Jx produces incorrect results for
complex numbers (z=x+yi) where |z| = sqrt(x*x + y*y) > 25.
Note: |z| = modulus of z, where z is a complex number.
There in no workaround in CNL for this error.
The FNL routine DCBJS exhibits the same error described above.
DCBJNS appears to produce correct results and can be
used as a workaround when Bessel functions of integer
order are sufficient.
This code shows the error in DCBJS and shows how to use
DCBJNS as a workaround for Bessel functions of order 0.
This example uses complex numbers with imaginary part
equal to zero to clearly illustrate the bug in DCBJS.
double precision xnu,x
double precision real_1,imag_1,real_2,imag_2
double complex output1,output2,z
integer n
xnu=0.0d0
n=1
write(*,3)
write(*,2)"|z| dcbjs output dcbjns output "
write(*,2)" real imag real imag"
do x=24d0,26d0,0.5d0
z=dcmplx(x,0.0d0)
call dcbjs(xnu,z,n,output1)
real_1=dreal(output1)
imag_1=dimag(output1)
call dcbjns(z,n,output2)
real_2=dreal(output2)
imag_2=dimag(output2)
write(*,1)cdabs(z),real_1,imag_1,real_2,imag_2
enddo
write(*,3)
1 format(5x,f6.1,4(f12.6))
2 format(6x,a51)
3 format(//)
stop
end
Output:
|z| dcbjs output dcbjns output
real imag real imag
24.0 -.056230 .000000 -.056230 .000000
24.5 .023697 .000000 .023697 .000000
25.0 .096267 .000000 .096267 .000000
25.5 .000000 .064860 .144062 .000000
26.0 .000000 -.012045 .155999 .000000
Note: The output shown above from DCBJS is wrong when |z| > 25.
The output from DCBJNS is correct.
53. FNL 3.0 - EIAT fails to execute compile step on RS6000
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: RS6000 AIX 4.1
PROBLEM DESCRIPTION
The EIAT build_eiat produces the following errors when run on RS6000 AIX 4.1:
( make -kf Makefile_eiat_ab FFLAGS="-w -qcharlen=4000" CFLAGS="")
rm -f *.o
rm -f *.f
rm -f *.c
tar xf /system/dest/rs_aix32/imsl/011/vni/eiat/lib.rs6000/eclgab.a
ls *.o > SIZETEST 2>/dev/null
make: The error code from the last command is 2.
(continuing)
rm -f *.o
rm -f *.f
rm -f *.c
Target "all" did not make because of errors.
make: The error code from the last command is 2.
Stop.
unarchiving /system/dest/rs_aix32/imsl/011/vni/eiat/lib.rs6000/libeclgab.a
ar: No such file or directory
ar: 0707-100 libeclgab.a does not exist.
unarchiving /system/dest/rs_aix32/imsl/011/vni/eiat/lib.rs6000/libeclgcd.a
ar: No such file or directory
ar: 0707-100 libeclgcd.a does not exist.
................................
SOLUTION
The compilation step of the make file is not being executed
using the ALL step. A workaround is to modify Makefile_eiat
to execute each step individually as follows:
ALL: eiat
eiat:
( $(MAKE) -kf Makefile_eiat_ab FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_ab FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_cd FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_cd FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_ef FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_ef FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_gh FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_gh FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_ij FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_ij FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_kl FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_kl FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_mn FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_mn FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_op FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_op FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_qr FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_qr FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_st FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_st FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_uv FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_uv FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_wx FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_wx FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_yz FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_yz FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
( $(MAKE) -kf Makefile_eiat_other FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP1)
( $(MAKE) -kf Makefile_eiat_other FFLAGS="$(UNOPT_FFLAGS)" CFLAGS="$(UNOPT_CFLAGS)" STEP2)
54. FNL 3.0 - KSTWO cannot free workspace memory
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: HP / SOLARIS / CRAY
PROBLEM DESCRIPTION
With 50 and 200 observations for samples 1 and 2 respectively,
KSTWO returns the following error when trying to free workspace
memory:
*** TERMINAL ERROR 1 from IEGFRE. Memory has been corrupted.
Here is a traceback of subprogram calls in reverse order:
Routine name Error type Error code
------------ ---------- ----------
IEGFRE 5 1 (Called
internally)
KSTWO 0 0
USER 0 0
SOLUTION
Use K2TWO and supply the workspace explicitly. A change request
has been filed.
55. FNL 3.0 - Install problem in OpenVMS 7.1 with CD 5641
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: OpenVMS 7.1
PROBLEM DESCRIPTION
1) Install script reports the environment as OpenVMS 6.1 rather than 7.1.
2) The install script fails when reinstalling products in a new directory.
That is, if FNL is installed in directory A then a subsequent attempt
to install in directory B will cause the install script to bomb.
SOLUTION
1) This is not a problem. Continue with the installation.
However, if user de-selects 6.1 and proceeds with the installation,
the script seems to run, but libraries will not be installed correctly.
Delete the directories created and restart the installation.
2) Directory A must be deleted before starting an installation in directory B.
A bug report has been submitted.
56. FNL - Workspace allocation
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: all
PROBLEM DESCRIPTION
How does FNL allocate workspace?
Can the user explicitly allocatate workspace used by an FNL routine?
What is a 2-level routine?
SOLUTION
FORTRAN subroutines that work with arrays as input and output often
require extra arrays for use as workspace while doing computations or
moving around data. IMSL routines generally do not require the user
explicitly to allocate such arrays for use as workspace. On most
systems the workspace allocation is handled transparently. The only
limitation is the actual amount of memory available on the system.
On some systems the workspace is allocated out of a stack that is
passed as a FORTRAN array in a named common block WORKSP. For
compatibility with older versions of the IMSL Libraries, space is
allocated from the COMMON block, if possible.
The arrays for workspace appear as arguments in lower-level routines.
For example, the IMSL routine LSARG, needs arrays for workspace.
LSARG allocates arrays from the common area, and passes them to the
lower-level routine L2ARG which does the computations. In the
"Comments" section of the documentation for LSARG, the amount of
workspace is noted and the call to L2ARG is described. This scheme
for using lower-level routines is followed throughout the IMSL Libraries.
The names of these routines have a "2" in the second position (or in
the third position in double precision routines having a "D" prefix).
The user can provide workspace explicitly and call directly the "2-level"
routine, which is documented along with the main routine. In a very few
cases, the 2-level routine allows additional options that the main
routine does not allow.
Prior to returning to the calling program, a routine that allocates
workspace generally deallocates that space so that it becomes available
for use in other routines.
57. FNL 3.0 - Line search error with NCONF and NCONG
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: all
PROBLEM DESCRIPTION
What does the error message "Line search took more than 5 function
calls" mean?
SOLUTION
This means is that the algorithm arbitrarily decides that it cannot
find a minimum in a "line search" directed between two points. In
practical terms, for customers, this is a fatal exception. It means
they must start over again, at a different point, or else use another code.
58. FNL 3.0 - Bug in LSLZG, LFTZG, LFSZG (sparse complex linear systems)
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: all
PROBLEM DESCRIPTION
There is a bug in LSLZG (equivalent to calling LFTZG then LFSZG).
The routine has a memory (?) problem that causes the routine to
crash in some cases. Explicitly allocating workspace does not
always help solve the problem.
SOLUTION
Workaround 1: The routine LSACG can be used. This is a dense complex
linear system solver that can be used for sparse problems (unless the
problem is really huge).
Workaround 2: The CNL routine, lin_sol_gen_coordinate, is designed
for sparse complex linear systems and is more robust than the equivalent
FNL routine.
A bug report has been submitted.
59. FNL 3.0 - Bug in CTGLM, categorical data analysis routine
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: all
PROBLEM DESCRIPTION
CTGLM crashes for some data sets.
For example, CTGLM will process 10000 x 11 data set, but crashes on a 16000 x 11 data set.
SOLUTION
CTGML uses M1RAN to compute the transpose of a matrix with NRA rows and
NCA columns.
If (NRA*NCA) is greater than IMACH(5)/NRA, or if (NRA*NCA) is greater
than IMACH(5)/NCA then the algorithm used by M1RAN will fail. The routine
crashes, but does not issue an error message.
Workaround: Use CNL instead. A similar problem has already been
fixed in the equivalent CNL routine, categorical_glm.
A bug report has been submitted.
60. FNL 3.0 - environment variables for FNL, CNL and F90 on SGI 64 bit system
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0, CNL 2.0, F90 3.0
Architecture/OS version: SGI 64 bit
PROBLEM DESCRIPTION
To resolve this, the user should copy the following files:
arch, IRIX64.csh, and fnl3.0_sgi64.csh into their directory
/ipt/bin. The files are located in /home/archer/solutions/sgi
or may be obtained by contacting Technical Support. If the user
installed FNL last then they should also copy the file iptsetup.csh
and manually set the VNI_DIR variable. Then source the iptsetup.csh
file as usual. Then the following commands should be used to compile
and link programs:
FOR CNL:
$CC -o a.out $CFLAGS cmath.c $LINK_CNL
FOR F77:
$FC -o a.out $FFLAGS_MP fnl.f $LINK_FNL_MP
FOR F90:
$F90 -o a.out $F90FLAGS fnl.f $LINK_F90
The F90 product is installed into the lib.sgi_1 subdirectory
The CNL product is installed into the lib.IRIX64 subdirectory
The FNL product is installed into the lib.sg64xp subdirectory
61. FNL 3.0 - eiat fails in VST16 test on IBM MVS
-
PRODUCT/PLATFORM INFORMATION
Product/Version #: FNL 3.0
Architecture/OS version: IBM mainframe
PROBLEM DESCRIPTION
The eiat for FNL 3.0 on IBM mainframe fails in module VST16. Here are some
typical error messages from an MVS system:
AFB210I VFNTH : PROGRAM INTERRUPT - OPERATION EXCEPTION
VFNTH : PSW 478D000085D47DEA
VFNTH : LAST EXECUTED FORTRAN STATEMENT IN PROGRAM VS1TP (OFFSET
00033FDA).
TRACEBACK OF CALLING ROUTINES; MODULE ENTRY ADDRESS = 05D00440.
------------------------------------------------------------------------
-----
VS1TP (05D13E10) CALLED BY VSCTP (05D03F00) AT ISN 35 AT OFFSET
0000105E.
NO ARGUMENTS PASSED TO SUBROUTINE.
------------------------------------------------------------------------
-----
VSCTP (05D03F00) CALLED BY VST16 (05D00948) AT ISN 8 AT OFFSET
0000018C.
NO ARGUMENTS PASSED TO SUBROUTINE.
------------------------------------------------------------------------
-----
VST16 (05D00948) CALLED BY MAIN# (05D00440) AT ISN 1 AT OFFSET
000001BC.
NO ARGUMENTS PASSED TO SUBROUTINE.
------------------------------------------------------------------------
-----
MAIN# (05D00440) CALLED BY OPERATING SYSTEM.
------------------------------------------------------------------------
-----
STANDARD CORRECTIVE ACTION TAKEN. EXECUTION CONTINUING.
AFB240I VABEX : ABEND CODE IS: SYSTEM 0C1, USER 0.
VABEX : PSW=478D000085D47DEA ENTRY POINT=05D00440.
VABEX : REGS 0 - 3 00000000 05D140C4 05D15A5C 05D13F18
VABEX : REGS 4 - 7 009F2940 05D15A1E 00984FF8 FD000000
VABEX : REGS 8 -11 009FD040 809EB4E0 00000000 009F71A8
VABEX : REGS 12-15 05D158D0 05D13F18 85D15A28 05D47DE8
VABEX : FRGS 0 & 2 411CCCCC CCCCCCCD 41100000 00000000
VABEX : FRGS 4 & 6 40FFFFFC 00000000 417FFFF9 00000000
VABEX : ABEND IN MODULE VS1TP (OFFSET 00033FDA).
VABEX : DATA AT PSW ADDR(05D47DE4) = 00000000 02000000 000000EC
SOLUTION
VST16 contains the tests for routines in Chapter 16 of the Statistical
Library. These are line printer graphics routines, which are a leftover from
much older versions of the Fortran Library and are not likely to be used today.
Probably the line printer setup is incompatible with what is expected by our
subroutine.
Omit VST16 from the eiat.