Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!ucsfcgl!seibel From: seibel@cgl.ucsf.edu (George Seibel) Newsgroups: comp.lang.fortran Subject: Re: FORTRAN standards checker Message-ID: <11636@cgl.ucsf.EDU> Date: 7 Jun 89 04:18:30 GMT References: <248@pvi.UUCP> Sender: daemon@cgl.ucsf.edu Reply-To: seibel@hegel.mmwb.ucsf.edu (George Seibel) Distribution: usa Organization: Computer Graphics Lab, UCSF Lines: 37 In article <248@pvi.UUCP> karenk@.com() writes: >Does anyone know of a program that does FORTRAN standards checking and >runs on VAX/VMS, or Sun, or HP-9000? Ideally, it would: > >1. flag all non-standard constructs (e.g. mixed character and non-character > in a common block, non-standard characters like '!'). > >2. check for agreement between called and calling subroutines in number and > type of parameters. > >It would also be nice if it could check for unused variables, variables set but >never used, and variables used but never set. You might try Flint, a "FORTRAN 77 reliability, complexity, portability and 8X compatibility checking tool" (their description) from: Programming Research Ltd., King's Avenue House, King's Avenue, New Malden, Surrey, KT3 4BY, UK Flint will do all this stuff. You might also want ot look at TOOLPAK. it's public domain, available for free via anon. ftp from somewhere... I'm pretty sure it does at least some of these things, I know that it does a lot of other nice stuff. I have never seen a tool like what you are asking for that was as easy to use as I think it ought to be. On VAX/VMS, use FORTRAN/STANDARD. It's pretty good at catching non-ANSI constructs. The Convex compilers from 4.0 on will catch accesses of uninitialized variables. I can't tell you how useful this is. Sun and SGI compilers will flag mismatched common block lengths, but not uninitialized variables. BSD f77 will find variables declared but unused (if explicitly typed). A lot of compilers catch statement labels that are defined but unreferenced. I would certainly like it if I could get all of the above plus argument checking built in to one compiler; I realize the difficulty that independantly compiled modules present, but when all the modules are there, why not do a cursory argument check? Any vendors listening out there? George Seibel, UCSF