Path: utzoo!attcan!uunet!mcsun!ukc!edcastle!ngse18 From: ngse18@castle.ed.ac.uk (J R Evans) Newsgroups: comp.lang.fortran Subject: Re: RE : MSFORTRAN - bugs !!!! Message-ID: <3279@castle.ed.ac.uk> Date: 14 Apr 90 07:45:38 GMT References: <1990Apr11.144430.26803@sun.soe.clarkson.edu> <1990Apr13.205055.23252@cs.dal.ca> Reply-To: ngse18@castle.ed.ac.uk (J R Evans) Organization: British Geological Survey Lines: 31 In article <1990Apr13.205055.23252@cs.dal.ca> bill@biomel.UUCP writes: >I have thousands of lines of code that do extensive >string passing, and no Fortran-77 compiler has ever choked on a >declaration of the form of: > > SUBROUTINE SUB(STRING) > CHARACTER*(*) STRING > IMHO, you are fortunate, Bill. I used to work a lot with the DEC RT-11 FORTRAN-77 compiler (and still do). This beast was ported from RSX-11 by Multiware. It will not accept CHARACTER*(*) declarations. The reason is that within the RT11 system, quoted strings are passed in null-terminated form, and there is simply no way to pass string length information across this subroutine interface without breaking something, if only the system library. The writers elected not to implement some FORTRAN-77 string handling capabilities. Since the subroutine call format is standard across all PDP-11s, I guess that the same may be true for some other PDP compilers. In defence of DEC and before somebody starts shouting that such compilers are broken, I seem to recall that the F77 standard lists specific subsets which compilers can choose to conform to and still describe themselves as partially conforming. I believe that that is all that DEC claim to offer for RT-11. My own code is littered with C#ifdef RT11 ... constructs for a preprocessor I was planning to write :-( Russ Evans British Geological Survey e_gs18@va.nmh.ac.uk (Internet/Bitnet)