"David B. Serafini" <[log in to unmask]> wrote:o | | The missing tool I ran into today was something to generate a | listing of what routines are called by every routine in a program | (known as a "who calls" list, among other names). | | As is typical in Fortran tools these days, this used to be quite easy | to do years ago but seems impossible now. | | Does such a tool exist for F90 for any of IBM, Sun, Cray, NAG, SGI, or HP | compilers? Does said tool handle disambiguating generics? Does it handle | modules? Does it handle the => renaming capability of USE? Does it handle | library archives? Can it tell which of multiple definitions of a routine in | different object files/libraries will be included by the linker? | | Anyone who says that Fortran90 development tools are readily available (and the | ones that aren't require only a simple perl script to build) are either | woefully lacking in undersstanding of the complexities of real Fortran90 usage. | | If I get any helpful responses, I'll be both surprised and eternally grateful. | | | -David | FORTRAN90-lint is a static source analysis tool designed to process entire applications as a unit. It provides both systax and sematic checking on variable usage, common block inconsistencies, subroutine and function argument, module interface, wasteful and non-portable code, unused variables or routines, and much more. As part of the analysis, FORTRAN90-lint generates comprehensive call trees and detailed cross reference tables. The call tree shows calls/ called by relationships in a tree diagram. The cross reference table also shows every routines in the application and provides a quick glimpse of who it calls and who it is called by. FORTRAN90-lint runs on all the aforementioned platforms and supports the local compiler extensions for most compiler vendors; DEC Fortran (both UNIX, OpenVMS and soon WindowsNT), Cray CF90, SGI, SUN, EPC, and IBM. Reader beware, shameless plug ahead: :) In a recent test I performed with FORTRAN90-lint, I processed an application that is 199 MB in Fortran source. FORTRAN90-lint ran through the entire source in about five minutes on a new DEC ALPHA workstation - without crashing I might add. Richard Shapiro <[log in to unmask]> replied: | | I think fortran90-lint might do this. We (SGI) are also working on a tool | for this, and I think ftnlint (or cflint on the PVP platforms) may also | have alot of this functionality. fortran90-lint is available from IPT | corporation (www.iptweb.com), and their tool at least makes a good demo. | We offer a fully functional product for a time limited evaluation period to those who are interested. Regards,