Release Notes for KAP for DEC Fortran Version 3.1 on Digital UNIX[R] Version 3.2[*] and Version 4.0b[*] Version 3.1 k271615 961104 December 1996 1 Purpose of Release Notes These release notes provide information about this version of KAP for DEC Fortran software and user documentation. Please read before using this product. This version supports Digital UNIX Version 3.2 and Version 4.0b and Digital Fortran 77 Version 4.1. This release of KAP Fortran is not supported on versions of Digital Fortran prior to Version 4.1. The purpose of this release is to support Digital Fortran Ver- sion 4.1 and to fix several problems found in the Version 3.0 release. 2 Changes Since KAP for DEC Fortran Version 3.0 When the KAP driver, kf77, parallelizes code for SMP systems, it now uses the Digital UNIX default linker switch selection -call_ shared. The -call_shared switch causes the image to be linked with shared libraries instead of with archive libraries. In pre- vious releases the driver overrode -call_shared by setting the linker switch -non_shared which caused the image to be linked with archive libraries. This change enables programs to use the versions of libraries on whatever system the program runs on without the need to relink. This is particularly important for the case of the DECthreads library, which changes with each minor and major revision of the operating system. For example, programs built on Digital UNIX 4.0 can run on Digital UNIX 4.0b. IMPORTANT Due to differences in the DECthreads library between Digi- tal UNIX Version 3.2 and Version 4.0b, parallelized appli- cations built on Digital UNIX Version 4.0b will not run on Digital UNIX Version 3.2. However, parallelized applica- tions built on Digital UNIX 3.2 will run on Digital UNIX Version 4.0b. ___________________ [*] Digital UNIX V3.2 and V4.0b are X/Open UNIX 93 branded products. The KAP kit nolonger includes the DECthreads archive library libpthread.a. Although Digital recommends that you use the DECthreads shared library default, you can link an image to the DECthreads archive library libpthread.a, by using the -non_ shared linker switch and one of the following procedures based on your version of Digital UNIX: o Digital UNIX Version 4.0: If you are upgrading from KAP Version 3.0 to 3.1, you should have performed the following installation steps: 1. Copy /usr/opt/KPFBASE300/libpthread.a, to a private area, for example, /usr/users/tmp/libpthread.a 2. Remove KPFBASE300 as follows: /usr/sbin/setld -d KPFBASE300 3. Install KPFBASE310 as follows: /usr/sbin/setld -i KPFBASE310 4. Create a link to the saved libpthread.a as follows: ln -sf /usr/users/tmp/libpthread.a /usr/lib/libpthread.a 5. Use the following command when you build your program: kf77 -fkapargs='-conc' -non_shared myprog.f o Digital UNIX Version 4.0a: Version 4.0a does not contain libpthread.a. Your choices are as follows: 1. Upgrade to Version 4.0b and use the method for that ver- sion. 2. Downgrade to Version 4.0 and use the method for that version. 3. Use the Digital UNIX -call_shared default linker switch which links an image with the DECthreads shared library /usr/shlib/libpthread.so. o Digital UNIX Version 4.0b: You should have installed the CMPDEVENH subset (Development Enhancements for Digital UNIX) from the Digital UNIX 4.0b operating system CD-ROM. The DECthreads archive library is at the following location: /usr/opt/alt/user/lib/threads/libpthread.a To link to libpthread.a when you are building a parallel program, use the following command: kf77 fkapargs='-conc' -non_shared \ /usr/opt/alt/usr/lib/threads/libpthread.a myprog.f 2 Version 3.1 of KAP for DEC Fortran, KAP Fortran 90, and KAP for C use identical parallel libraries. If you use different languages within a parallelized program, you should use Version 3.1 of all the KAP products. Changes have been made to the switch defaults set by the kf77 driver to optimize those defaults to the Digital Fortran 77 Version 4.0 compiler. Those changes are as follows: o The linker switch -call_shared is set by default when the KAP switch -concurrent or -minconcurrent has been set. o A new parallel processing directive has been added: C*$* ASSERT DO (CONCURRENT CALL) The effect of this directive is the same as if the following two directives had been used: C*$* ASSERT DO (CONCURRENT) C*$* ASSERT CONCURRENT CALL The new directive was added so that users who found them- selves frequently using the combination of the two directives listed above, could replace them with a single directive. 3 Known Problems o The error message returned when your threaded application has run out of stack space has changed. The Digital UNIX Version 4.0b message is as follows: DECthreads Last Chance handler: thread 1 exiting on status exception 0x177db005 Exception: Invalid memory address (dce / thd) If this happens, try unlimiting your process quotas using the cshell unlimit command. o When using standalone KAP, kapf, turn off loop unrolling (-ur=1) if you will be setting the Digital Fortran Compiler's optimization to level 5 (-O5). The KAP driver, kf77, will do this for you automatically. AlphaGeneration, Digital Fortran 77, DECthreads, Digital, and the DIGITAL logo are trademarks of Digital Equipment Corpora- tion. KAP is a trademark of Kuck & Associates, Inc. UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. All other trademarks and registered trademarks are the property of their respective holders. (c) Digital Equipment Corporation. 1996. All Rights Reserved. 3