IMSL Tips

IMSL Products: F90 Tips

1. F90 - compiling with interface modules
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 Architecture/OS version: Cray PROBLEM DESCRIPTION When using the Cray F90 compiler, you must specify the interface modules required by your program using the -p option. SOLUTION When using the Cray F90 compiler, you must specify the interface modules required by your program using the -p option. All IMSL interface modules can be found in the directory specified by the INTF_DIR environment variable. Thus, the compile/link step for the example rand_gen_ex1.f90 in the $VNI_DIR/examples/f90/manual directory would be as follows: $F90 -o rand_gen_ex1 -p $INTF_DIR/rand_gen_int.o $F90FLAGS rand_gen_ex1.f90 $LINK_F90


2. F90 - Solaris customized makefile
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 Architecture/OS version: Sun / Solaris PROBLEM DESCRIPTION The FORTRAN 90 MP Library distribution includes the manual example programs found in the $VNI_DIR/examples/f90/manual directory and benchmark programs in the directory $VNI_DIR/examples/f90/benchmark. The Solaris environment requires a customized makefile with the Cray F90 compiler. SOLUTION make -f Makefile. <environment_name. Specifically make -f Makefile.solaris_cs>


3. F90 - HYPPR gives invalid result when K equals M
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 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. A change request has been filed.


4. F90 2.0 - Cray CF90 compiler under Sun Solaris
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 2.0 Architecture/OS version: Cray / Sun / Solaris PROBLEM DESCRIPTION Some double precision routines are missing. SOLUTION Some of the double precision routines were deliberately omitted from this release because they were giving unreliable results during testing. This is due to differences in the machine precision between Cray and Sun, and is something which cannot be corrected.


5. F90 - Missing environment variables on RS6000
PRODUCT/PLATFORM INFORMATION Product/Version #: FNL Architecture/OS version: IBM RS6000 PROBLEM DESCRIPTION Environment variables such as LINK_F90 are not defined with iptsetup.csh. SOLUTION Because of the variety of OS and compiler levels for AIX, there are some additional shell scripts (named rs6000_1.csh to rs6000_8.csh) supplied with RS6000 that need to be run to define the missing variables. Read $VNI_DIR/notes/f90/README to determine which shell scripts need to be run for your system.


6. F90 - calling Fortran from C in Visual C++
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 Architecture/OS version: Windows NT/95; CVF 6.1 PROBLEM DESCRIPTION How do you call one of the Fortran 90 Library subroutines from C, using the Visual C++ 6.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 IMSL Fortran 90 library for Compaq Visual Fortran 6.1: cl ivprk.c -link %link_f90% dfor.lib dfconsol.lib dfor.lib and dfconsol.lib are supplied with Compaq Visual Fortran


7. F90 - Problem with DNCONF and DNCONG and mathd.h
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Windows NT/95 and Compaq Visual Fortran 6.1 PROBLEM DESCRIPTION Customer reports a problem in 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 compiler 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*) SOLUTION The customer is correct. The LOGICAL should be an integer type. On 32-bit Intel (PCs) both int and long are 4 bytes in length, so either one will work. This may change on the upcoming 64-bit Intel systems if the long is 8 bytes. FROM THE Compiler Documentation: ====================================================== A Fortran LOGICAL*2 is stored as a 1-byte indicator value (1=true, 0=false) followed by one unused byte. A Fortran LOGICAL*4 is stored as a 1-byte indicator value followed by three unused bytes. The type LOGICAL is equivalent to LOGICAL*4. To pass or receive a Fortran LOGICAL type, use an integer. Note that only the low byte is tested or used by Fortran. The C++ class type has the same layout as the corresponding C struct type, unless the class defines virtual functions or has base classes. Classes that lack those features can be passed in the same way as C structures. Temporary RESOLUTION: Change the header file maths.h to: void __stdcall NCONF(void(__stdcall *)(long*, long*, long*, float*, int*, float*, float*), long*, long*, long*, float*, long*, float*, float*, float*, long*, long*, float*, float*); or to: void __stdcall NCONF(void(__stdcall *)(long*, long*, long*, float*, long*, float*, float*), long*, long*, long*, float*, long*, float*, float*, float*, long*, long*, float*, float*);


8. F90 3.0 - FFLAGS variable not set correctly in sgi_1.csh
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: SGI PROBLEM DESCRIPTION The shell script sgi_1.csh, which must be run to set the correct environment variables for F90 3.0 for 64 bit SGI platforms, is not setting the FFLAGS environment variable correctly. It should contain the "-64" switch as the F90FLAGS variable does. The error message that occurs when you use this flag instead of the F90FLAGS is: > $FC -o fnl $FFLAGS /usr/cta/IMSL/examples/fnl/fnl.f $LINK_FNL ld32: FATAL 12: Expecting n32 objects: /usr/cta/IMSL/lib/lib.sgi_1/libimsl_mp.so is 64-bit. SOLUTION The workaround is to use the F90FLAGS instead of FFLAGS or modify the shell script sgi_1.csh and add the -64 switch to FFLAGS: setenv FFLAGS "-w -I$VNI_DIR/include -mp -mips4 -64" A change request has been filed.


9. F90 4.01 - interface for iercd missing from numerical_libraries
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Windows PROBLEM DESCRIPTION The numerical_libraries module does not contain interface code for function iercd. SOLUTION A change request has been filed.


10. F90 3.0 - creating symbolic link to library on Cray T3E
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: Cray T3E PROBLEM DESCRIPTION Linking to the F90 libraries, after creating a symbolic link to the library as described in the installation guide, Section 5.2, page 5 does not work. SOLUTION Due to a problem with the Cray loader, the library file and the file used to resolve use modules must both reside in the same directory. So if you generate a link to the library file, you must also link the MPintf.o file to the same directory. For example: ln -s $LIBS_PATH/libimsl.a . ln -s $MODULES_F90 .


11. F90 3.0 - incorrect results from LSVCR
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: all PROBLEM DESCRIPTION The results from LSVCR were tested by performing the decomposition of a complex matrix A into the matrices U, S, and V and then multiplying them back together again to get the original matrix A. The matrix A was square, with rank N. When N=16,32,64 or 128, the test failed. For other matrix sizes, the test succeeded. SOLUTION Use L2VCR as a workaround. A change request has been filed for this problem.


12. F90 4.01 - GVCGG documentation
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: n/a PROBLEM DESCRIPTION The documentation for routine GVCCG, parameter EVEC states: The J-th eigenvector, corresponding to ALPHA(J) = BETA(J), is stored in the J-th column. SOLUTION It should read : The J-th eigenvector, corresponding to ALPHA(J) / BETA(J), is stored in the J-th column.


13. F90 3.0 - Including F90 library in a Digital Visual FORTRAN 5.0 program
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: Windows NT/95 / Digital Visual Fortran 5.0 PROBLEM DESCRIPTION How do you include F90 3.0 libraries in a Digital Visual FORTRAN project? SOLUTION From the top menu bar, click on Project. Then click on Add to Project. Then click on Files. Navigate to imslnt\f90\lib and add these libraries (as needed): sstatd.lib - double precision stat routines sstats.lib - single precision stat routines smathd.lib - double precision math routines smaths.lib - single precision math routines


14. F90 3.01 - unresolved symbols with F77 compiler on SGI 64 bit machine
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: SGI / IRIX 6.4 PROBLEM DESCRIPTION Customer is trying to use the SGI 64 bit F90 3.01 library with the SGI Mipspro Fortran 77 compiler version 7.2, and gets the following unresolved symbols: 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_CS 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _PACK 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _TRANSFER 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _F90_ALLOCATE 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_S4S4 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _INQUIRE 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _RESHAPE 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _FWF 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _DEALLOC 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _DEALLOCATE 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_C4C4 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_C4S4 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_S4C4 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_CC 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_SC 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _MATMUL_SS 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _FRF 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _F90_TRIM 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _SIZE 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _FWU 1747:./fas1: rld: Error: unresolvable symbol in /usr/local/vni/lib/lib.IRIX64/libimsl_mp.so: _FRU 1747:./fas1: rld: Fatal Error: this executable has unresolvable symbols SOLUTION The F90 3.01 product was released for use with the SGI Mipspro Fortran 90 compiler version 7.2. It has not been tested with the F77 compiler, so we do not know what problems may be encountered in trying to use the product with the F77 compiler. However the unresolved symbols shown above can be found in the SGI Fortran 90 library libfortran.so. If this library is available, the symbols above can be resolved by linking the program as follows: f77 -o program $FFLAGS program.f $LINK_FNL -lfortran


15. F90 3.0 - inverse operator returns error from lower level
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: Windows NT 4.0 with Digital Visual Fortran 5.0 PROBLEM DESCRIPTION Certain matrices return the following error message, when passed to the inverse (.i.) operator in F90, version 3.0, under Digital Visual Fortran on Windows NT 4.0: Ý*** FATALÝÝÝÝ ERROR 1250 from d_error_post.Ý .i. operation has generated Ý***ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ error messages from lower-level routines SOLUTION A problem has been found in d_lin_sol_gen, which is causing this error message. A change request has been filed and the problem will be corrected in the next release. A work around is to use the ainv optional argument with lin_sol_gen. For example: call lin_sol_gen (A, B, X, nrhs=0, ainv=AINV)


16. F90 3.0 - compiler errors under OpenVMS Fortran 90 7.1
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: DEC Alpha / OpenVMS 7.1 PROBLEM DESCRIPTION Some example programs delivered with the Fortran 90, version 3.0, libraries for Alpha OpenVMS, give the following compiler errors, when compiled under the Fortran 90 version 7.1 compiler: **Internal compiler error: specification exception signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error. SOLUTION VNI supports the IMSL Fortran 90 MP Library, version 3.0, under version 7.0 of the Alpha OpenVMS operating system and version 7.0 of the Digital Fortran 90 compiler. Due to problems encountered with non-V7.0 releases of the Digital Fortran 90 compiler, the IMSL Fortran 90 MP library built with V7.0 is not object code or source code compatible with these non-V7.0 releases. Digital has been informed of the compiler problems by Visual Numerics and plans to fix them in a future release.


17. F90 3.01 - unresolved symbols on IRIX 6.2
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: SGI 64 bit system / IRIX 6.2 PROBLEM DESCRIPTION Customer get unresolved symbols when linking example program for F90 3.01 under IRIX 6.2 and Fortran 90 7.2 compiler: dsm_simple_bounds mp_sug_numthreads SOLUTION The supported platform for F90 3.01 on the SGI 64 bit platform is IRIX 6.4 and SGI Mipspro Fortran 90 7.2 compiler. We have not tested this product under IRIX 6.2. We found that the unresolved symbols were located in library /usr/lib64/libmp.so on the IRIX 6.4 system. These symbols were not found in the IRIX 6.2 version of /usr/lib64/libmp.so. Also, we found that the size of this library was almost doubled between IRIX 6.2 and IRIX 6.4 IRIX 6.2 /usr/lib64/libmp.so file size is 123784 IRIX 6.4 /usr/lib64/libmp.so file size is 268368 Resolution is to upgrade to IRIX 6.4 or to downgrade to SGI Mipspro Fortran 90 7.0 compiler and install F90 3.0 for IRIX 6.2 (tape # 7051).


18. F90 3.01 - Directory checksum errors and premature EOF errors on SGI
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 or 3.01 Architecture/OS version: SGI 64 bit PROBLEM DESCRIPTION Customer is getting directory checksum errors and premature EOF errors when trying to install IMSL F90 from tape on an SGI machine. SOLUTION There are two possible workarounds for this problem: 1. Remove the "conv=swab" parameter from the dd command. For example: dd if=/dev/nrtape bs=20b | tar xBeofb - 20 2. Try to read the tape using only the tar command and no dd command. For example: tar xvf /dev/nrtape


19. F90 3.01 - custom installation from CTT 1.1 tape fails
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: Sun / Solaris 2.6 PROBLEM DESCRIPTION Custom installation from tape 7150A, CTT 1.1, failed on a Solaris 2.6 machine when F90 3.01 product for Solaris was selected. All other products were deselected. CNL 2.5 for Solaris was installed instead. SOLUTION We were not able to duplicate this problem on a Solaris 2.6 machine at VNI. However, the following workaround was found to resolve the problem at the customer site: There is a flag in the installation script, ctt.install, for determining whether the "dd" command is used in reading the tape. The flag, DD_FLAG, is always set to "TRUE". When this flag was set to false, the installation worked properly. Edit ctt.install and set DD_FLAG=false.


20. F90 3.0 - errors in PC online documentation for BCNLS
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: PC / Windows NT/95 / Digital Visual Fortran PROBLEM DESCRIPTION The argument list for BCNLS is documented incorrectly in the online documentation included with Fortran 90 MP library for Digital Visual Fortran and also for FNL 3.0 for Fortran Powerstation. The example programs are also incorrect. The online documentation for the unix products is correct. SOLUTION The online documentation reads: Usage CALL BCNLS (FCN, JAC, M, N, MCON, C, LDC, BL, BU, IRTYPE, XLB, XUB, XGUESS, X, RNORM, ISTAT) It should read : CALL BCNLS (FCN, M, N, MCON, C, LDC, BL, BU, IRTYPE, XLB, XUB, XGUESS, X, RNORM, ISTAT) In the comments section, the call to B2NLS should read as follows: CALL B2NLS (FCN, M, N, MCON, C, LDC, BL, BU, IRTYPE, XLB, XUB, XGUESS, X, RNORM, ISTAT, IPARAM, RPARAM, JAC, F, FJ, LDFJ, IWORK, LIWORK, WORK, LWORK) Here is the code for the correct example programs: Example 1: INTEGER MCON, N PARAMETER (MCON=1, N=4) c SPECIFICATIONS FOR PARAMETERS INTEGER LDC, M PARAMETER (M=5, LDC=MCON) c SPECIFICATIONS FOR LOCAL VARIABLES INTEGER IRTYPE(MCON), ISTAT, NOUT REAL BL(MCON), C(MCON,N), RNORM, X(N), XGUESS(N), XLB(N), & XUB(N) c SPECIFICATIONS FOR SUBROUTINES EXTERNAL BCNLS, SSET, UMACH, WRRRN c SPECIFICATIONS FOR FUNCTIONS EXTERNAL FCN c CALL UMACH (2, NOUT) c Define the separation between x(2) c and x(4) C(1,1) = 0.0 C(1,2) = 1.0 C(1,3) = 0.0 C(1,4) = -1.0 BL(1) = 0.05 IRTYPE(1) = 2 c Set lower bounds on variables XLB(1) = 0.0 XLB(2) = 1.0E30 XLB(3) = 0.0 XLB(4) = 1.0E30 c Set upper bounds on variables XUB(1) = -1.0E30 XUB(2) = 0.0 XUB(3) = -1.0E30 XUB(4) = 0.0 c Set initial guess to 0.0 CALL SSET (N, 0.0, XGUESS, 1) c CALL BCNLS (FCN, M, N, MCON, C, LDC, BL, BL, IRTYPE, XLB, & XUB, XGUESS, X, RNORM, ISTAT) c CALL WRRRN ('X', 1, N, X, 1, 0) WRITE (NOUT,99999) RNORM 99999 FORMAT (/, 'rnorm = ', E10.5) END c SUBROUTINE FCN (M, N, X, F) c SPECIFICATIONS FOR ARGUMENTS INTEGER M, N REAL X(*), F(*) c SPECIFICATIONS FOR LOCAL VARIABLES INTEGER I c SPECIFICATIONS FOR SAVE VARIABLES REAL H(5), T(5) SAVE H, T c SPECIFICATIONS FOR INTRINSICS INTRINSIC EXP REAL EXP c DATA T/0.05, 0.1, 0.4, 0.5, 1.0/ DATA H/2.206, 1.994, 1.35, 1.216, 0.7358/ c DO 10 I=1, M F(I) = X(1)*EXP(X(2)*T(I)) + X(3)*EXP(X(4)*T(I)) - H(I) 10 CONTINUE RETURN END Example 2: INTEGER LDC, LDFJ, M, MCON, N PARAMETER (M=5, MCON=1, N=4, LDC=MCON, LDFJ=M) c Specifications for local variables INTEGER I, IPARAM(6), IRTYPE(MCON), ISTAT, IWORK(1000), & LIWORK, LWORK, NOUT REAL BL(MCON), C(MCON,N), F(M), FJ(M,N), RNORM, RPARAM(7), & WORK(1000), X(N), XGUESS(N), XLB(N), XUB(N) REAL H(5), T(5) SAVE H, T INTRINSIC EXP REAL EXP c Specifications for subroutines EXTERNAL B2NLS, B7NLS, SSET, UMACH, WRRRN c Specifications for functions EXTERNAL B10LS, B11LS c DATA T/0.05, 0.1, 0.4, 0.5, 1.0/ DATA H/2.206, 1.994, 1.35, 1.216, 0.7358/ c CALL UMACH (2, NOUT) c Define the separation between x(2) c and x(4) C(1,1) = 0.0 C(1,2) = 1.0 C(1,3) = 0.0 C(1,4) = -1.0 BL(1) = 0.05 IRTYPE(1) = 2 c Set lower bounds on variables XLB(1) = 0.0 XLB(2) = 1.0E30 XLB(3) = 0.0 XLB(4) = 1.0E30 c Set upper bounds on variables XUB(1) = -1.0E30 XUB(2) = 0.0 XUB(3) = -1.0E30 XUB(4) = 0.0 c Set initial guess to 0.0 CALL SSET (N, 0.0, XGUESS, 1) c Call B7NLS to set default parameters CALL B7NLS (IPARAM, RPARAM) c Suppress the use of the quadratic c model, evaluate functions and c Jacobian by reverse communication IPARAM(3) = 1 IPARAM(5) = 1 IPARAM(6) = 1 LWORK = 1000 LIWORK = 1000 c Specify dummy routines for FCN c and JAC since we are using reverse c communication 10 CONTINUE CALL B2NLS (B10LS, M, N, MCON, C, LDC, BL, BL, IRTYPE, XLB, & XUB, XGUESS, X, RNORM, ISTAT, IPARAM, RPARAM, & B11LS, F, FJ, LDFJ, IWORK, LIWORK, WORK, LWORK) c c Evaluate functions if the routine c returns with ISTAT = 6 IF (ISTAT .EQ. 6) THEN DO 20 I=1, M FJ(I,1) = EXP(X(2)*T(I)) FJ(I,2) = T(I)*X(1)*FJ(I,1) FJ(I,3) = EXP(X(4)*T(I)) FJ(I,4) = T(I)*X(3)*FJ(I,3) F(I) = X(1)*FJ(I,1) + X(3)*FJ(I,3) - H(I) 20 CONTINUE GO TO 10 END IF c CALL WRRRN ('X', 1, N, X, 1, 0) WRITE (NOUT,99999) RNORM 99999 FORMAT (/, 'rnorm = ', E10.5) END


21. F90 3.01 - symbol _xlf_localtime_r not defined on RS 6000 system
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: RS 6000 / AIX 4.2 PROBLEM DESCRIPTION Customer gets the following error message from the validate program imslmp.f, after linking to F90 3.01 on an RS 6000 running AIX 4.2 abd xlf90 Fortran compiler 4.1.0.0: xlf90 -o imslmp imslmp.f $F90FLAGS $LINK_F90 ** _main === End of Compilation 1 === 1501-510 Compilation successful for file imslmp.f. # ./imslmp exec(): 0509-036 Cannot load program ./imslmp because of the following errors: 0509-023 Symbol _xlf_localtime_r in /IMSL90/CTT1.1/lib/lib.rs6000/libimsl_s.a is not defined. SOLUTION The F90 3.01 library was built with the 4.1.0.4 xlf90 Fortran compiler. According to IBM, the missing symbol xlf_localtime_r was added between versions 4.1.0.0. and 4.1.0.4 of the compiler. At this time, the only supported compiler for this product is version 4.1.0.4.


22. F90 3.01 - BCPOL resets the random number generator seed
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: all PROBLEM DESCRIPTION A customer was using BCPOL in a program which also used some of the IMSL random number generators to produce input data. The data generated was the same for each call to BCPOL. SOLUTION BCPOL also uses some random number generators and is resetting the random number generator seed. This is not documented. A change request has been filed to have this information added to the documentation. Any program which is using both a random number generator and BCPOL, should save the seed using RNGET before each call to BCPOL and use RNSET to reset the seed after each call to BCPOL.


23. F90 3.01 - CTEPR and DCTEPR workspace arrays become corrupt when LDTABL > NROW
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: all PROBLEM DESCRIPTION When LDTABL is greater than NROW, the workspace arrays become corrupt in the CTEPR/DCTEPR routine. A customer was receiving the error "invalid page faults" on his PC using Windows 95. In house on Windows NT 4.0, the routine would "hang up" . On Solaris, the result was a Segmentation Fault. The routine worked fine when LDTABL = NROW. The incorrect behavior only occurred when LDTABL > NROW. SOLUTION An error was found that was causing workspace arrays to become corrupt when LDTABL is greater than NROW. A change request has been filed. This problem will be corrected in the next release of this product.


24. F90 3.01 - iptsetup conflicts with CNL 2.0 on SGI
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: SGI 64 bit PROBLEM DESCRIPTION On a 64 bit SGI system, environment variable LINK_F90 for F90 3.01, is pointing to subdirectory lib/lib.sgi_1 rather than lib/lib.IRIX64. The subdirectory lib/lib.sgi_1 does not exist. SOLUTION This problem is caused when CNL 2.0 is installed after F90 3.01 on a 64 bit SGI system. The CNL installation replaces the IRIX64.csh and IRIX64.sh files from the F90 3.01 installation and the environment variables, supplied on the CNL tape, for the Fortran 90 product are incorrect for F90 3.01. A workaround is to install the F90 3.01 product after CNL 2.0 or replace IRIX64.csh and IRIX64.sh in the ipt/bin subdirectory with the files of the same name from the F90 3.01 installation. These files can be obtained from Technical Support. A change request has been filed on this problem.


25. F90 3.01 - How to use complex numbers in a C program calling FNL
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: all PROBLEM DESCRIPTION When calling FNL from C, some users have experienced difficulty using complex numbers. Besides defining the complex data types, the array must be transposed before making the call to an FNL routine. If the solution is provided in an array (such as with EVCRG), that solution array must be transposed as well. SOLUTION #include "imsl.h" #include <math.h> main() { extern void evcrg_ (int*, float*, int*, f_complex*, f_complex*, int*); int n = 3; float a[] = {8.0, -1.0, -5.0, -4.0, 4.0, -2.0, 18.0, -5.0, -7.0}; f_complex eval[3]; f_complex evec[9]; /* Transpose the input 2D array to FORTRAN memory order. */ imsl_f_m1ran(n, n, a, a); evcrg_(&n, a, &n, (f_complex*)&eval, (f_complex*)&evec, &n); /* Transpose the input 2D array back to C memory order. */ imsl_f_m1ran(n, n, a, a); imsl_c_write_matrix ("Eigenvalues", 1, n, eval, 0); /* Transpose the output 2D array to C memory order. */ imsls_c_m1ran(n, n, evec, evec); imsl_c_write_matrix ("Eigenvectors", n, n, evec, 0); }


26. F90 3.01 - online documentation core dumps on HPUX 11
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: HPUX 11.0 PROBLEM DESCRIPTION Customer reports that the Hyperhelp online documentation supplied with F90 3.01 for HPUX 11.0 (RISC 2.0) is not working. Error messages include : mu_edit does not exist, exit 117, memory fault. SOLUTION HP K or V class systems may require either of the following patches: PHSS_16620 X/Motif2.1 Runtime Nov 98 Periodic Patch PHSS_17422 X/Motif2.1 Runtime Jan 99 Periodic Patch ---------------------------------------------------------------------- PDF versions of the documentation are also supplied on the installation media or can be downloaded from our web site, www.vni.com. Use the PDF files as a workaround. The Adobe Acrobat Reader for HP can be downloaded from the Adobe website, www.adobe.com. Changes must be made to the installation script in order for it to work under HPUX 11.0. The following instructions were supplied by Adobe: The HP-UX 11 operating system was released after the release of Adobe Acrobat 3.0x. Both the installation and launch scripts for Acrobat Exchange and Reader check the version and match it to 9 or 10. Therefore, errors are returned when you try to install and start Acrobat Exchange or Reader on the HP-UX 11 operating systems. Acrobat Reader and Exchange will work with the HP-UX 11, but a few minor changes are needed to the installation and launch scripts so that they recognize the operating system. Error When Installing Acrobat Reader From Adobe.com After you download Acrobat Reader from Adobe.com, and then try to install the application, the system returns the error: "WARNING: The chosen configuration will not run on your current platform: (HP-UX/B.11.00). Continue installation? (n) If "n" is entered, the installation will terminate. If "y" is entered, the installation will continue." If you encounter this error, disable the error message by modifying the installation script: 1. Go to the directory where the Acrobat Reader was downloaded. 2. Open the file INSTALL in a text editor that can save in text-only format (e.g. vi). 3. Go to line 1000. The surrounding lines are: HP-UX) case "$os_release" in *09.0*|*10.*) ACRO_CONFIG=hppahpux export ACRO_CONFIG ;; 4. Change line 1000 from: *09.0*|*10.*) to read: *09.0*|*10.*|*11.*) 5. Save the INSTALL file as text only, then run the INSTALL script again.


27. F90 3.01 - error message file not found on HP RISC 2.0
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: HPUX 11.0 / RISC 2.0 PROBLEM DESCRIPTION The following error message appears when running the validate example program for F90 3.01 on HP with RISC 2.0: ../imslmp X 1 - 5 9.320E-01 7.865E-01 5.004E-01 5.535E-01 9.672E-01 *** TERMINAL ERROR 1 from USER. Unable to open the Fortran 90 MP Library *** Error message file! SOLUTION The environment variable VNI_F90_MSG is used to determine the location of the message files. The definition of this environment variable was omitted from the setup shell scripts. This definition should be added as follows: Add the following line to files ctt/bin/ hps700_1.csh and ctt/bin/hps700_2.csh : setenv VNI_F90_MSG "$CTT_DIR/bin/$LIB_ARCH" Add the following two lines to ctt/bin/hps700_1.sh and ctt/bin/hps700_2.sh : VNI_F90_MSG="$CTT_DIR/bin/$LIB_ARCH" export VNI_F90_MSG A change request has been filed to have this corrected in the next release.


28. F90 3.01 -calling Fortran from C on SGI
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: SGI IRIX 6.5 PROBLEM DESCRIPTION How would you call a Fortran routine from C on an SGI system? SOLUTION Following are two examples for calling a Fortran routine from C on an SGI 64 bit system using F90 3.01. The following line was used to compile and link: cc -o sgi1 $F90FLAGS sgi1.c $LINK_F90 -lm -lfortran -lftn ---------sgi1.c----------------------------------------------------------- /* sgi1.c This example transposes a two-dimensiona1 matrix * and prints it out. */ #include <string.h> double a[2] [3] = {11., 12., 13., 21., 22., 23.}; char title[] = "2x3 matrix"; main () { extern void dtrnnr_(), dwrrrn_(); /* external IMSL subroutines */ int nra=3, nca=2, lda=3; /* matrix a is nra by nca */ int nrb=2, ncb=3, ldb=2; /* matrix b is nrb by ncb */ int itring=0, lstr=10; /* triangle option */ double b[3][2]; /* transpose matrix a and save the result n matrix b */ dtrnrr_ (&nra, &nca, a, &lda, &nrb, &ncb, b, &ldb); /* write the matrix b with a title */ dwrrrn_ (title, &nrb, &ncb, b, &ldb,&itring, lstr); } -------------sgi2.c----------------------------------------------- #include <stdio.h> #include <math.h> double myfunc (x) double *x; { double exp (); return (*x * exp (*x)); } main () { extern void dqdng_(); double exp(), fabs(), myfunc(); double lower=0.e3, upper=2.e0, errabs=0.e0, errrel=1.e-7; double result, errest, exact; char title[] = "2x3 matrix"; double b[3] [2] = {11., 12., 13., 21., 22., 23.}; int nrb=2, ncb=3, ldb=2; /* matrix b is nrb by ncb */ int itring=0; /* IMSL QDNG integrates a smooth function using * a nonadaptive rule. */ dqdng_ (myfunc, &lower, &upper, &errabs, &errrel, &result, &errest); printf ("IMSL dqdng = %8.5f\n", result); }


29. F90 4.0 - installation fails with cannot create imslfnl.dat
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.0 Architecture/OS version: AIX 4.3 / Solaris 2.6 PROBLEM DESCRIPTION Installation of F90 4.0 for Solaris from tape 7963 terminates with this error, after uncompressing files. ...../CTT2.0/lib/lib.solaris/imslfnl.dat : cannot create the specified file Installation of F90 4.0 for AIX from tape 7999 terminates with this error, after uncompressing files. ...../CTT2.0/lib/lib.rs6x4p/imslfnl.dat : cannot create the specified file SOLUTION The problem seems to occur only with license numbers other than the default 999999. A workaround is to install using the default license number 999999. Then edit file ../CTT2.0/lib/lib.solaris/imslfnl.dat or ../CTT2.0/lib/lib.rs6x4p/imslfnl.dat, using a text editor. Change the 999999 on the last line to the customer's license number. A change request has been filed.


30. F90 3.01 - SGI blas libraries not working with IMSL routines
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.01 Architecture/OS version: SGI 64 bit PROBLEM DESCRIPTION EIAT hangs with an infinite loop in example 3 of test vgmres, using the SGI BLAS library. SOLUTION This product was built on IRIX 6.4 with version 7.2 of the SGI Mipspro Fortran 90 compiler. The SGI BLAS library being used may be an older version. Use the IMSL Blas library as a workaround.


31. F90 4.0 - validate example program does not work
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.0 Architecture/OS version: unix PROBLEM DESCRIPTION Compiling the example program, phello.f90, in the validate directory produces link errors with the command shown in the README file. SOLUTION The instructions in the validate README file assume that the customer has MPI. Customers who do not have MPI may try some or all of the examples in the manual directory as an alternative. A change request has been filed to include instructions in the validate README for customers who do not have MPI.


32. F90 3.0 - unresolved external when using the USE IMSL, ONLY: statement
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 bundled with Digital Visual Fortran Architecture/OS version: Windows NT/95 PROBLEM DESCRIPTION When using the USE IMSL, ONLY: statment to resolve the routines in the libraries, RNNOF and DRNNOF are UNRESOLVED EXTERNALS. This routine should be included in the Numerical_Libraries.MOD file which is called when using the USE IMSL statement. The routine is left out of the Numerical_Libraries.MOD file for the Digital Visual Fortran product, and thus RNNOF/DRNNOF cannot be found when using either the USE IMSL or USE Numerical_Libraries statements in the program. The following are test programs that shows the problem: USE IMSL, ONLY: DRNNOF X = DRNNOF() WRITE(*,*) X END The above program will produce an internal compiler error. USE IMSL, ONLY: X = DRNNOF() WRITE(*,*) X END This program will produce an UNRESOLVED EXTERNAL for DRNNOF. SOLUTION The routine is included in the DFIMSL.MOD file. The user must use the USE DFIMSL statement instead of USE IMSL to resolve the problem. The following is an example program that works: USE DFIMSL, ONLY: DRNNOF X = DRNNOF() WRITE(*,*) X END


33. F90 4.0 - LD_LIBRARY_PATH not set correctly
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.0 Architecture/OS version: Sun / Solaris PROBLEM DESCRIPTION The shell script solaris.csh is setting the search directory in environment variable LD_LIBRARY_PATH to $CTT_DIR/lib/lib.solaris. When an executable is linked against the shared library, the library cannot be found at run time. SOLUTION There is an error in the shell script solaris.csh and solaris.sh. References to lib.solaris should be changed to lib.$LIB_ARCH. In solaris.csh, change : if ( $?LD_LIBRARY_PATH ) then echo $LD_LIBRARY_PATH | fgrep -s "$CTT_DIR/lib/lib.solaris" if ( $status ) setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:$CTT_DIR/lib/lib.solaris" echo $LD_LIBRARY_PATH | fgrep -s "/opt/SUNWspro/SC4.2/lib" if ( $status ) setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/opt/SUNWspro/SC4.2/lib" echo $LD_LIBRARY_PATH | fgrep -s "/usr/openwin/lib" if ( $status ) setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/usr/openwin/lib" else setenv LD_LIBRARY_PATH "$CTT_DIR/lib/lib.solaris:/opt/SUNWspro/SC4.2/lib:/usr/openwin/lib" endif to: if ( $?LD_LIBRARY_PATH ) then echo $LD_LIBRARY_PATH | fgrep -s "$CTT_DIR/lib/lib.$LIB_ARCH" if ( $status ) setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:$CTT_DIR/lib/lib.$LIB_ARCH" echo $LD_LIBRARY_PATH | fgrep -s "/opt/SUNWspro/SC4.2/lib" if ( $status ) setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/opt/SUNWspro/SC4.2/lib" echo $LD_LIBRARY_PATH | fgrep -s "/usr/openwin/lib" if ( $status ) setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/usr/openwin/lib" else setenv LD_LIBRARY_PATH "$CTT_DIR/lib/lib.$LIB_ARCH:/opt/SUNWspro/SC4.2/lib:/usr/openwin/lib" endif ----------------------------------- In solaris.sh, change: if [ -n "$LD_LIBRARY_PATH" ] ; then echo $LD_LIBRARY_PATH | fgrep -s "$CTT_DIR/lib/lib.solaris" [ $? -ne 0 ] && LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$CTT_DIR/lib/lib.solaris" echo $LD_LIBRARY_PATH | fgrep -s "/opt/SUNWspro" [ $? -ne 0 ] && LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/SUNWspro/SC4.2/lib" echo $LD_LIBRARY_PATH | fgrep -s "/usr/openwin/lib" [ $? -ne 0 ] && LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/openwin/lib" else LD_LIBRARY_PATH="$CTT_DIR/lib/lib.solaris:/opt/SUNWspro/SC4.2/lib:/usr/openwin/lib" fi to: if [ -n "$LD_LIBRARY_PATH" ] ; then echo $LD_LIBRARY_PATH | fgrep -s "$CTT_DIR/lib/lib.$LIB_ARCH" [ $? -ne 0 ] && LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$CTT_DIR/lib/lib.$LIB_ARCH" echo $LD_LIBRARY_PATH | fgrep -s "/opt/SUNWspro" [ $? -ne 0 ] && LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/SUNWspro/SC4.2/lib" echo $LD_LIBRARY_PATH | fgrep -s "/usr/openwin/lib" [ $? -ne 0 ] && LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/openwin/lib" else LD_LIBRARY_PATH="$CTT_DIR/lib/lib.$LIB_ARCH:/opt/SUNWspro/SC4.2/lib:/usr/openwin/lib" fi


34. F90 4.01 or 3.01 - use modules not found
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 or 3.01 Architecture/OS version: Sun / Solaris PROBLEM DESCRIPTION When compiling the validate program on Solaris with the Sun Workshop Fortran 90 2.0 compiler, the following error messages appear: use rand_gen_int ^ "imslmp.f90", Line = 3, Column = 12: ERROR: "RAND_GEN_INT" is specified as the module name on a USE statement, but the compiler cannot find it. use show_int ^ "imslmp.f90", Line = 4, Column = 12: ERROR: "SHOW_INT" is specified as the module name on a USE statement, but the compiler cannot find it. type (s_options) :: iopti(2)=s_options(0,zero) ^ "imslmp.f90", Line = 10, Column = 14: ERROR: Derived type "S_OPTIONS" is used, but it does not have any components defined for it. call show(x,text=' X') ^ "imslmp.f90", Line = 21, Column = 24: ERROR: An actual argument keyword is being used when an explicit interface is not known. SOLUTION These products were built with Sun Workshop Fortran 90 1.2. A change was made in the way module files are handled between versions 1.2 and 2.0. F90 3.01 cannot be used with the 2.0 compiler. Use Sun Workshop Fortran 90 1.2. There are two versions of F90 4.01 for Sun Workshop. One is for Sun Workshop Fortran 90 1.2. The other is for Sun Workshop Fortran 90 2.0. Both versions are delivered on the CTT3.0 CD, part number 8201.


35. F90 4.0 - problems with VERML and VERSL
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.0 Architecture/OS version: unix platforms PROBLEM DESCRIPTION When calling routine VERML, the following error appears: *** TERMINAL ERROR 2 from VERML. The IMSL data file *** /usr/local/vni/lib/lib.solaris/imslfnl.dat *** could not be found. Contact your computer system administrator. The directory location for imslfnl.dat should contain an additional level, CTT2.0. For example: /usr/local/vni/CTT2.0/lib/lib.solaris/imslfnl.dat SOLUTION There is a note about this in the README files for the CTT1.1 product. The problem has been corrected in the CTT2.1 release. Use the same solution as indicated in the README file in the ..../CTT1.1/notes/f90 directory (Part 4, under Global Problems). Before calling either VERML or VERSL use the following command: setenv VNI_DIR $CTT_DIR


36. F90 4.0 - environment variables set incorrectly on Solaris
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.0 Architecture/OS version: Solaris PROBLEM DESCRIPTION Environment variables which point to the F90 4.0 library directory are set to lib.solaris, but the files are located in directory lib.slrsxp. SOLUTION This problem occurs when CNL 3.0 is installed after F90 4.0, in the same top level directory. The CNL libraries are installed in the lib.solaris subdirectory. The F90 libraries are installed in the lib.slrsxp subdirectory. During the installation process, both products create shell scripts solaris.csh and solaris.sh in the ctt/bin subdirectory. These shell scripts define the environment variables needed for both products. For the F90 product, environment variable LIB_ARCH is defined to be slrsxp, but for the CNL product, LIB_ARCH is defined to be solaris. When CNL 3.0 is installed after F90 4.0, it overwrites the solaris.csh shell script, and the definition of LIB_ARCH is then incorrect for F90 4.0. A workaround is to copy or move the files from lib.slrsxp to lib.solaris, and leave solaris.csh as it is delivered with CNL 3.0. The environment variable F90FLAGS must be changed from: setenv F90FLAGS "-M$VNI_DIR/include/$LIB_ARCH -I$MPI_DIR/mpich/include" to setenv F90FLAGS "-M$CTT_DIR/include/slrsxp -I$MPI_DIR/mpich/include" There will be a similar problem if F90 4.0 is installed after CNL 3.0. In this case, copy or move the files from lib.slrsxp to lib.solaris, and edit solaris.csh as delivered with F90 4.0 to redefine LIB_ARCH as solaris, rather than slrsxp. The environment variable F90FLAGS must be changed from: setenv F90FLAGS "-M$CTT_DIR/include/$LIB_ARCH -I$MPI_DIR/mpich/include" to setenv F90FLAGS "-M$CTT_DIR/include/slrsxp -I$MPI_DIR/mpich/include" This problem was corrected with the release of F90 4.01 and CNL 3.01.


37. F90 4.01 - cannot link imslmpi example on Dec Unix
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Dec Unix PROBLEM DESCRIPTION When trying to build the validate example program imslmpi on Dec Unix for F90 4.01 with MPI version 1.1.2, customer gets the following error message: ld: Object file format error in: imslmpi.f90: read_cur_obj_info: bad file magic number fort: Severe: Failed while trying to link. SOLUTION The IMSL Fortran 90 4.01 library for Dec Unix was built and tested with MPI version 1.1.0. All of the environment variables, set by cttsetup.csh, are defined on the asumption that you are using this version of MPI. In order to use the product with MPI 1.1.2, the environment variables must be changed as follows: 1. Change the definition of environment variable MPIF90, as follows: setenv MPIF90 mpif90 2. Change the definition of environment variable LINK_MPI as follows: setenv LINK_MPI "$CTT_DIR/lib/lib.axposf/libimsl.a -L$CTT_DIR/lib/lib.axposf -limsl_blas -limslp_err"


38. F90 4.01 - MPI process cannot find license file
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: unix PROBLEM DESCRIPTION This error message appears when an MPI process is executed, using more than one processor: At least one of the processes cannot find the license file. If the root process is able to find the license file while other are not, MPI error messages may result. SOLUTION The environment variable LM_LICENSE_FILE must be defined on each processor, and the license file to which it points must be accessible from each processor. If you are using a c shell, execute the cttsetup.csh shell script at login time to define this variable, by adding it to a system login file, .cshrc in the home directory, or the corresponding file for your system. MPI is using rsh to activate processes on the non-root processor. There is no comparable workaround for the korn shell to define LM_LICENSE_FILE, since .profile is not executed by rsh. If you are using the korn shell, place a copy of the license.dat file in the directory /usr/local/flexlm/licenses.


39. F90 4.01 - permission denied from mpi validate example
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: unix PROBLEM DESCRIPTION The validate example for mpi produces the following error message: > mpirun -np 4 imslmpi Permission denied. > ctrl-c p0_6811: p4_error: interrupt SIGINT: 2 bm_list_9084: p4_error: interrupt SIGINT: 2 SOLUTION The "permission denied" message may be coming from the rsh command, which is used by MPI. First try to run the program with one processor: mpirun -np 1 imslmpi If this test is successful, check with your system administrator to verify that the login account you are using has permission to use the "rsh" command. A test file, tstmachines, is supplied with MPI to test this. Additional information may be found in the MPI user's guide.


40. F90 4.01 - manual examples shell script run_single does not work
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Dec unix PROBLEM DESCRIPTION The shell script for running the manual examples for Dec unix platform does not work. It references non-existent environment variables. SOLUTION The shell script references environment variables DNFLFLAGS and LINK_DNFL. These should be F90FLAGS and LINK_F90 respectively. Edit run_single and Makefile_benchlibs, and replace DNFLFLAGS with F90FLAGS. Replace LINK_DNFL with LINK_F90. A change request has been filed.


41. F90 4.01 - errors in cttsetup shell scripts
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: HPUX 11.0 PROBLEM DESCRIPTION Executing cttsetup.sh for F90 4.01, HPUX 11.0 , installed from tape 8129, produces the following error: ksh: syntax error 'else' unmatched SOLUTION There are errors in the cttsetup files delivered on tapes 8129 and 8130. The corrected files are shown below. Edit the first line to reflect the correct installation directory if it is other than the default of /usr/local/vni. A change request has been filed. cttsetup.csh --------------------------------------------------------------------------------------------------------------- setenv VNI_DIR "/usr/local/vni" setenv CTT_DIR "$VNI_DIR/CTT2.1" setenv VNI_ARCH hps800 setenv LIB_ARCH hp64xs setenv MPI_DIR /opt/mpi1.4_3 setenv CTT_EXAMPLES "$CTT_DIR/examples/$LIB_ARCH" setenv F90FLAGS "-w +DA2.0 +U77 -I$CTT_DIR/include/$LIB_ARCH -I$MPI_DIR/include" setenv FFLAGS "-w +DA2.0 +U77" setenv FC "f90" setenv F90 "f90" setenv MPIF90 "$MPI_DIR/bin/mpif90" setenv VNI_F90_MSG "$CTT_DIR/bin/$LIB_ARCH" setenv LINK_F90_STATIC_IMSL "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslblas -limslmpistub -limsl -limsls_err -limslblas -limslmpistub /usr/lib/libdld.sl" setenv LINK_F90_SHARED_IMSL "-Wl,-a,shared -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslblas /usr/lib/libdld.sl" setenv LINK_F90_STATIC_VECLIB "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslmpistub -limsl -limsls_err -limslmpistub /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" setenv LINK_F90_STATIC "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslmpistub -limsl -limsls_err -limslmpistub /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" setenv LINK_F90_SHARED_VECLIB "-Wl,-a,shared -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -Wl,-a,archive -Wl,-L, /opt/mlib/lib/pa2.0/ -lveclib /usr/lib/libdld.sl" setenv LINK_F90_SHARED "-Wl,-a,shared -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -Wl,-a,archive -Wl,-L, /opt/mlib/lib/pa2.0/ -lveclib /usr/lib/libdld.sl" setenv LINK_MPI_IMSL "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limslblas -limsl -limslp_err -limslblas /usr/lib/libdld.sl" setenv LINK_MPI_VECLIB "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limsl -limslp_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" setenv LINK_MPI "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limsl -limslp_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" setenv LINK_MPIS_IMSL "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslblas -limsl -limsls_err -limslblas /usr/lib/libdld.sl" setenv LINK_MPIS_VECLIB "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limsl -limsls_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" setenv LINK_MPIS "-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limsl -limsls_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" setenv LINK_F90 "$LINK_F90_SHARED" setenv LINK_FNL "$LINK_F90_SHARED" setenv LINK_F90_VECLIB "$LINK_F90_SHARED_VECLIB" setenv LINK_FNL_STATIC_VECLIB "$LINK_F90_STATIC_VECLIB" setenv LINK_FNL_SHARED_VECLIB "$LINK_F90_SHARED_VECLIB" setenv LINK_FNL_STATIC "$LINK_F90_STATIC_VECLIB" setenv LINK_FNL_SHARED "$LINK_F90_SHARED_VECLIB" setenv LINK_FNL_VECLIB "$LINK_F90_SHARED_VECLIB" # VNI License Manager environment setenv LICENSE_DIR "$VNI_DIR/license" if ( $?LM_LICENSE_FILE == 1 ) then setenv LM_LICENSE_FILE "$LICENSE_DIR/license.dat:$LM_LICENSE_FILE" else setenv LM_LICENSE_FILE $LICENSE_DIR/license.dat endif alias LMDOWN $LICENSE_DIR/bin/lmdown alias LMHOSTID $LICENSE_DIR/bin/lmhostid alias LMREMOVE $LICENSE_DIR/bin/lmremove alias LMSTAT $LICENSE_DIR/bin/lmstat alias LMREREAD $LICENSE_DIR/bin/lmreread alias LMSWITCHR $LICENSE_DIR/bin/lmswitchr alias VNI_ENTER_SOFTKEY $LICENSE_DIR/bin/validate alias VNI_LICENSE_MGR $LICENSE_DIR/bin/start_license ----------------------------------------------------------------------------------------------------------------- cttsetup.sh ----------------------------------------------------------------------------------------------------------------- VNI_DIR="../../usr/local/vni" CTT_DIR="$VNI_DIR/CTT2.1" VNI_ARCH=hps800 LIB_ARCH=hp64xs MPI_DIR=/opt/mpi1.4_3 CTT_EXAMPLES="$CTT_DIR/examples/$LIB_ARCH" F90FLAGS="-w +DA2.0 +U77 -I$CTT_DIR/include/$LIB_ARCH -I$MPI_DIR/include" FFLAGS="-w +DA2.0 +U77" FC="f90" F90="f90" MPIF90="$MPI_DIR/bin/mpif90" VNI_F90_MSG="$CTT_DIR/bin/$LIB_ARCH" LINK_F90_STATIC_IMSL="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslblas -limslmpistub -limsl -limsls_err -limslblas -limslmpistub /usr/lib/libdld.sl" LINK_F90_SHARED_IMSL="-Wl,-a,shared -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslblas /usr/lib/libdld.sl" LINK_F90_STATIC_VECLIB="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslmpistub -limsl -limsls_err -limslmpistub /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" LINK_F90_STATIC="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslmpistub -limsl -limsls_err -limslmpistub /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" LINK_MPI_IMSL="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limslblas -limsl -limslp_err -limslblas /usr/lib/libdld.sl" LINK_F90_SHARED="-Wl,-a,shared -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -Wl,-a,archive -Wl,-L, /opt/mlib/lib/pa2.0/ -lveclib /usr/lib/libdld.sl" LINK_F90_SHARED_VECLIB="-Wl,-a,shared -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -Wl,-a,archive -Wl,-L, /opt/mlib/lib/pa2.0/ -lveclib /usr/lib/libdld.sl" LINK_MPI_VECLIB="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limsl -limslp_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" LINK_MPI="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limsl -limslp_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" LINK_MPIS_IMSL="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limslblas -limsl -limsls_err -limslblas /usr/lib/libdld.sl" LINK_MPI_IMSL="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limslp_err -limslblas -limsl -limslp_err -limslblas /usr/lib/libdld.sl" LINK_MPIS_VECLIB="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limsl -limsls_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" LINK_MPIS="-Wl,-a,archive -Wl,-L,$CTT_DIR/lib/lib.$LIB_ARCH -limsl -limsls_err -limsl -limsls_err /opt/mlib/lib/pa2.0/libveclib.a /usr/lib/libdld.sl" LINK_F90="$LINK_F90_SHARED" LINK_FNL="$LINK_F90_SHARED" LINK_F90_VECLIB="$LINK_F90_SHARED_VECLIB" LINK_FNL_STATIC_VECLIB="$LINK_F90_STATIC_VECLIB" LINK_FNL_SHARED_VECLIB="$LINK_F90_SHARED_VECLIB" LINK_FNL_STATIC="$LINK_F90_STATIC_VECLIB" LINK_FNL_SHARED="$LINK_F90_SHARED_VECLIB" LINK_FNL_VECLIB="$LINK_F90_SHARED_VECLIB" export VNI_DIR CTT_DIR VNI_ARCH LIB_ARCH MPI_DIR F90FLAGS FFLAGS export FC F90 MPIF90 VNI_F90_MSG CTT_EXAMPLES LINK_FNL export LINK_F90_STATIC LINK_F90_STATIC_VECLIB LINK_MPI LINK_MPI_VECLIB export LINK_MPIS LINK_MPIS_VECLIB LINK_F90 LINK_F90_VECLIB export LINK_FNL_STATIC_VECLIB LINK_FNL_SHARED_VECLIB export LINK_FNL_STATIC LINK_FNL_SHARED LINK_FNL_VECLIB export LINK_F90_SHARED LINK_F90_STATIC_IMSL LINK_MPI_IMSL export LINK_MPIS_IMSL LINK_F90_SHARED_VECLIB LINK_F90_SHARED_IMSL # VNI License Manager environment LICENSE_DIR="$VNI_DIR/license" if [ "$LM_LICENSE_FILE" = "" ] ; then LM_LICENSE_FILE="$LICENSE_DIR/license.dat" else LM_LICENSE_FILE="$LICENSE_DIR/license.dat:$LM_LICENSE_FILE" fi LMDOWN() { $LICENSE_DIR/bin/lmdown ; } LMHOSTID() { $LICENSE_DIR/bin/lmhostid ; } LMREMOVE() { $LICENSE_DIR/bin/lmremove ; } LMSTAT() { $LICENSE_DIR/bin/lmstat ; } LMREREAD() { $LICENSE_DIR/bin/lmreread ; } LMSWITCHR() { $LICENSE_DIR/bin/lmswitchr ; } VNI_ENTER_SOFTKEY() { $LICENSE_DIR/bin/validate ; } VNI_LICENSE_MGR() { $LICENSE_DIR/bin/start_license ; } export LICENSE_DIR LM_LICENSE_FILE


42. F90 - QAND argument MAXFCN cannot exceed 2**31
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: any PROBLEM DESCRIPTION The MAXFCN argument of QAND is documented to have a maximum value of 256**N. Why does a problem with N=15 fail to converge within 2147483647 function evaluations? SOLUTION In fact, since the largest value that an integer variable can hold is 2**31-1, MAXFCN can never be greater than this. So for N greater than 3, the limit of MAXFCN is 2**31-1 and not 256**N. A change request has been filed.


43. F90 4.01 -installation from tape 8069 asks for second tape
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: HP PROBLEM DESCRIPTION Tar command, using tape 8069, gives the following message: Tar: end of tape Tar: to continue, enter device/file name when ready or null string to quit SOLUTION Enter null string to quit and proceed with the installation. A CR has been filed for this problem.


44. F90 4.01 - tape 8069 contains incorrect validate example programs
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: HP PROBLEM DESCRIPTION The validate example program delivered from tape 8069, F90 4.01 for HP, produces the following error message: fatal error from mpi_init SOLUTION The example program delivered with the tape assumes that MPI is installed. Use one of the example programs in the manual directory as an alternative, or install example programs from the CTT2.1 CD.


45. F90 - USE DFIMSLMS - error when trying to use UVMIF example
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 3.0 Architecture/OS version: Windows / Digital Visual Fortran PROBLEM DESCRIPTION When using the command USE DFIMSLMS in the code to compile and link the example for routine UVMIF , it produces an error message as follows: --------------------Configuration: DummyProject - Win32 Debug-------------------- Compiling Fortran... D:\Biol506\DummyProject\UVMIFTest.f90 D:\Biol506\DummyProject\UVMIFTest.f90(16) : Error: This actual argument must not be the name of a procedure. [F] CALL UVMIF (F, XGUESS, STEP, BOUND, XACC, MAXFN, X) ------------------^ Error executing df.exe. UVMIFTest.obj - 1 error(s), 0 warning(s) use DFIMSL C Declare variables INTEGER MAXFN, NOUT REAL BOUND, F, STEP, X, XACC, XGUESS EXTERNAL F, UMACH, UVMIF C Initialize variables XGUESS = 0.0 XACC = 0.001 BOUND = 100.0 STEP = 0.1 MAXFN = 50 C C Find minimum for F = EXP(X) - 5X CALL UVMIF (F, XGUESS, STEP, BOUND, XACC, MAXFN, X) FX = F(X) C Print results CALL UMACH (2, NOUT) WRITE (NOUT,99999) X, FX C 99999 FORMAT (' The minimum is at ', 7X, F7.3, //, ' The function ' & , 'value is ', F7.3) C END C Real function: F = EXP(X) - 5.0*X REAL FUNCTION F (X) REAL X C REAL EXP INTRINSIC EXP C F = EXP(X) - 5.0E0*X C RETURN END SOLUTION There is an error in dfimslms.f90 and thus dfimslms.mod is also incorrect. The original (see line 3388 of dfimslms.f90) looks like the following: ! ! Chapter 8: Optimization ! interface subroutine uvmif (f, xguess, step, bound, xacc,maxfn, x) integer maxfn real f, xguess, step, bound, xacc, x end subroutine end interface The dfimslms.f90 needs to be corrected as follows: interface subroutine uvmif (f, xguess, step, bound, xacc,maxfn, x) integer maxfn real xguess, step, bound, xacc, x interface real function f(x) real x end function end interface end subroutine end interface Once the corrections have been made to DFIMSLMS.F90, the .mod file needs to be generated with the following command: df -c dfimslms.f90 The user will need to replace the old dfimslms.mod file with the new ..mod file produced. Contact Technical Support for an already corrected .f90 copy and compiled .mod.


46. F90 - PCRCG documentation example incorrect
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: any PROBLEM DESCRIPTION The data statement for PRECND in example 2 of the routine PCGRC does not match the data described in the problem. The data needs to be changed to match the problem description. SOLUTION Here is the correct data statement: c Set PRECND in band symmetric form data precnd/0.0, 4.0, -1.0, 4.0, -1.0, 4.0, -1.0, 4.0, -1.0, 4.0, & -1.0, 4.0, -1.0, 4.0, -1.0, 4.0, -1.0, 4.0/


47. F90 4.01 - invalid error message from LSLXD
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Windows / Digital Visual Fortran PROBLEM DESCRIPTION The short program below returns this error message from routine LSLXD on Digital Visual Fortran: *** TERMINAL ERROR 10 from L3FXD. There is a row with no nonzeros in the *** coefficient matrix. Here is a traceback of subprogram calls in reverse order: Routine name Error type Error code ------------ ---------- ---------- L3FXD 5 10 (Called internally) L2FXD 0 0 (Called internally) L2LXD 0 0 (Called internally) LSLXD 0 0 USER 0 0 The error message is not valid as there is no row with no nonzeros. The result should be : x 1 2 3 4 1.000 2.000 3.000 4.000 ---------------------- INTEGER N, NZ PARAMETER (N=4, NZ=5) C INTEGER IROW(NZ), JCOL(NZ), ITWKSP REAL A(NZ), B(N), X(N) C DATA A/4., 4., 4., 4., 2./ DATA B/12., 8., 12., 18./ CALL LSLXD (N, NZ, A, IROW, JCOL, B, ITWKSP, X) C Print results CALL WRRRN (' x ', 1, N, X, 1, 0) END SOLUTION The development staff identified a problem in a lower level routine. A change request has been filed. Object code fixes for DVF are available from Technical Support. The problem does not appear on unix platforms.


48. F90 4.01 - error from validate example program on Digital Visual Fortran
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Windows / Digital Visual Fortran PROBLEM DESCRIPTION The following error message is output from the imslmp example program in examples\i386\validate: program(%IMSLNT_F90%\examples\i386\validate\imslmp.f90). *** TERMINAL ERROR 2 from VERML. The IMSL data file *** e:\vni\imslnt\f90\imsllibs.ini could not be found. Contact *** your computer system administrator. However, the file mentioned (imsllibs.ini) does exist. SOLUTION The error message is very misleading. The problem seems to be that the installation procedure does not prompt for the customer's license number. To correct it, edit the file imsllibs.ini and add the customer's license number to the line SerialNumber= For example: SerialNumber=987651 A Change Request has been filed for this problem.


49. F90 4.01 - access violation from BS1GD
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: N/A PROBLEM DESCRIPTION Program hangs or terminates with access violation after a call to BS1GD. SOLUTION The sixth argument, NCOEF, to BS1GD is documented as being an input only argument. In fact, BS1GD is resetting NCOEF even though the value is not being changed. If NCOEF is declared in a PARAMETER statement, the error occurs when BS1GD tries to reset NCOEF. The workaround is to treat NCOEF as an input/output argument. Use an integer variable which is not declared in a PARAMETER statement. A change request has been filed for this problem.


50. F90 4.01 - instructions for running benchmark examples
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: unix platforms PROBLEM DESCRIPTION The README file in the examples/ <platform> /f90/benchmark incorrectly indicates that you can run build_single to build one example. What is the procedure for running one example? SOLUTION The build_single shell script requires libbench.a, which is created by build_bench. So build_bench must be run. Since build_bench builds all of the examples, there is then no need to run build_single to build a single example. To run one example, follow these steps: ../build_bench ../time_xxx where xxx is the benchmark desired


51. F90 4.01 - error in build_single shell script on SGI
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: SGI PROBLEM DESCRIPTION build_bench returns the following error messages on SGI: f90 ERROR: file does not exist: time_eig_gen.f f90 ERROR: file does not exist: time_dft.f f90 ERROR: file does not exist: time_eig_self.f f90 ERROR: file does not exist: time_geig_gen.f .. .. .. .. SOLUTION There is an error in the build_single shell script. Edit build_single and change $F90 -o $1 $F90FLAGS $1.f libbench.a $LINK_F90 to $F90 -o $1 $F90FLAGS $1.f90 libbench.a $LINK_F90 A change request has been filed.


52. F90 4.01 - drnunf missing from imsl use module
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Windows NT/95 PROBLEM DESCRIPTION DRNUNF is missing from the IMSL use module. SOLUTION DRNUNF needs to be included in the NUMERICAL_LIBRARIES use module which is referenced by the IMSL use module. Use DFIMSL as a workaround. A change request has been filed.


53. F90 4.01 - CTTWO returns incorrect result for Fisher's exact two-tailed test
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: n/a PROBLEM DESCRIPTION CTTWO returns an incorrect result for Fisher's exact two-tailed test. Results for the one-tailed test are correct. SOLUTION CTTWO may return incorrect results for Fisher's exact two-tailed test when the probability of the "other side" is greater than the probability of the observed table. A Change Request has been filed.


54. F90 4.01 - linking a C program with F90 on Solaris
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Solaris PROBLEM DESCRIPTION What is the command on Solaris to compile and link a c program, which calls a routine from the IMSL F90 library? The compiler is Sun Workshop 5.0. SOLUTION These are the required Fortran libraries from Sun Workshop 5.0: cc -o program program.c $LINK_F90 -lfui -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfsu -lsunmath -lm


55. F90 4.01 - pde example compilation errors on SGI
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: SGI PROBLEM DESCRIPTION Example program pde_ex01 gives the following error when compiled with the SGI Mipspro 7.3 compiler: f90 -c -w -mp -mips4 -64 pde.f90 CALL PDE_1D_MG (T0, TOUT, IDO, U,& ^ f90-389 f90: ERROR PDE_1D_MG_EX01, File = pde.f90, Line = 50, Column = 17 No specific match can be found for the generic subprogram call "PDE_1D_MG". f90: MIPSpro Fortran 90 Version 7.3 (f61) Tue May 30, 2000 12:22:00 f90: 99 source lines f90: 1 Error(s), 0 Warning(s), 0 Other message(s), 0 ANSI(s) cf90: "explain cf90-message number" gives more information about each message SOLUTION The supported compiler for SGI is SGI Mipspro Fortran 90 7.2.1. We are investigating the possibility that something was changed in the 7.3 release of the compiler to cause this error. A workaround is to replace the generic routine name "pde_1d_mg" with the specific name "d_pde_1d_mg_matrix" . Also note that this example may not work with MPT 1.4. The following errors may occur with MPT 1.4: ../run_single pde_ex01 ld64: INFO 171: Multigot invoked. Gp relative region broken up into 4 separate regions. MPI: MPI_COMM_WORLD rank 0 has terminated without calling MPI_Finalize() MPI: aborting job The supported version of MPT is MPT 1.2. A change request has been filed.


56. F90 4.01 - documentation of PW parameter in IVPAG
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: n/a PROBLEM DESCRIPTION The documentation of parameter PW in IVPAG/I2PAG states that PW is used to store the Jacobian and as workspace. How can the Jacobian be obtained from this parameter? SOLUTION The documentation is misleading. PW is strictly a workspace parameter. While PW is used to store the Jacobian in intermediate computations, it does not contain the Jacobian on output. The Jacobian is not available as an output parameter. A Change Request has been filed to have the documentation corrected.


57. F90 4.01 - mpi example program hangs on Solaris
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Solaris 2.6 PROBLEM DESCRIPTION Example program imslmpi.f90 hangs when run with np greater than 1. There is no output, no error message, and no termination. It is OK with np equal to 1. Version of MPI used is 1.2. SOLUTION The supported version of MPI is 1.1. We duplicated the problem with MPI 1.2, so assume that some change has occurred in the later version of MPI to cause this problem. A Change Request has been filed to evaluate this product with MPI 1.2. In the meantime, the workaround is to use MPI 1.1.


58. F90 4.01 - compatibility with SuSE linux
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: SuSE Linux PROBLEM DESCRIPTION Is F90 4.01, for Red Hat linux and Portland group compiler, compatible with SuSE linux? SOLUTION Yes. The product has been tested successfully on SUSE-linux version 2.95. The installation procedure differs from that on Red Hat in that the installer must login as root to mount the CD.


59. F90 4.01 - USE IMSL,ONLY produces out of memory error
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Compaq Fortran 6.5 PROBLEM DESCRIPTION The statement "USE IMSL, ONLY:EYE" produces an out of memory error message from the F90 4.01 product that is bundled with Compaq Visual Fortran 6.5 Professional Edition. SOLUTION This error can be reproduced using example program operator_ex08.f90. Compaq confirmed that this was a problem with the 6.5 compiler. They have corrected module files on their ftp site: ftp.compaq.com/pub/products/fortran/vf/supp/CVF65-IMSL-MODFILES.zip


60. F90 4.01 - results of validate example on Cray
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Cray SV1 PROBLEM DESCRIPTION The results of the validate example for F90 4.01 on Cray SV1 do not match those documented in the readme file. SOLUTION The results of imslmp.f90 are documented incorrectly in the readme file. The expected results on Cray SV1 are: 1 - 5 2.757E-02 3.836E-01 1.556E-01 3.065E-01 9.858E-02


61. F90 4.01 - pfs_mount giving up on HP
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: HP PROBLEM DESCRIPTION On HP, attempt to mount CTT3.0 cd with pfs_mount command produces this error message: pfs_mount: giving up on /cdrom SOLUTION The pfs_mount command requires running daemons. Check to be certain that these daemons have been started. If not, these commands may be used to start them: # nohup /usr/sbin/pfs_mountd & # nohup /usr/sbin/pfsd &


62. F90 4.01 - Portland Group 3.2-3 compiler on linux
PRODUCT/PLATFORM INFORMATION Product/Version #: F90 4.01 Architecture/OS version: Linux PROBLEM DESCRIPTION F90 4.01 for Portland Group 3.1-2 compiler on Linux does not work with 3.2-3 compiler: $F90 $F90FLAGS -o imslmp imslmp.f90 $LINK_F90 PGF90-S-0004-Incompatible or Old Module file /usr/local/vni/CTT3.0/include/linux/rand_gen_int.mod (imslmp.f90: 8) PGF90-F-0004-Compile source file with the same compiler rand_gen_i