School of Chemical Sciences University Of Illinois computing@scs.uiuc.edu
   SCS Computing Networking Electronics Staff

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 <accountname/PGFLQUOTA=300000 5. UAF exit -- you're finished. For more help, type : 4b. UAF help modify OR 4c. UAF help Then change the page file quota back to the original value after installation is complete.


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.<arch> subdirectory. 3. For CNL, the error message environmental variable must be set up to find the error message files. setenv IMSLERRPATH '<main pathname/vni/lib/lib.<arch>' 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 <math.h #include "imsl.h" /* * An example of calling IMSL FORTRAN subroutine QDAGS from * a C function. */ float fcn(float *x); main() { extern void qdags_(float (fcn)(float*), float*, float*, float*, float*, float*, float*); float result, exact, errest; float errrel = .001; float errabs = .001; float one=1.0; float zero = 0.0; /* Evaluate the integral */ (void)qdags_(fcn, &zero, &one, &errabs, &errrel, &result, &errest); /* Print the result and */ /*the exact answer */ exact = -4.0; printf("integral = %10.3f\nexact = %10.3f\n", result, exact); } float fcn(float *x) { return log(*x) }


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 <main_imsl_dir>/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.