Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!apple!voder!pyramid!oliveb!sun!chiba!khb From: khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) Newsgroups: comp.lang.fortran Subject: Re: FORTRAN 8x ... An intermediate standard? Summary: rebuttal Keywords: FORTRAN 8x Message-ID: <74002@sun.uucp> Date: 21 Oct 88 17:08:59 GMT References: <656@convex.UUCP> <6148@june.cs.washington.edu> <867@ncar.ucar.edu> <2874@sugar.uu.net> Sender: news@sun.uucp Distribution: comp.lang.fortran Lines: 59 It appears that my last several postings have been eaten by the local buffer monster ;-> In article <2874@sugar.uu.net>, ssd@sugar.uu.net (Scott Denham) writes: > In hindsight, it would seem that exactly such an intermediate step might > have avoided the mess that the FORTRAN standard is in now. > No. The last couple of YEARS of commitee time dealt with this at GREAT length. There has been ballot after ballot on deleting "unnecessary features". EVERY FEATURE in f88 WAS DEMANDED BY ONE GROUP or ANOTHER. f88 is not "too" ambitious. If anything it is too conservative (now that we have abstract data types and overloading(*) what do we do about overloading IO ?)) (*) Many are claiming that ADT and overloading is "not fortran...etc". FORTRAN is supposed to be FORMula TRANslator. To illustrate why these features are useful for "real" applications... When I write U*D*U**T It is understood that this means multiply an upper triangular matrix by a diagonal matrix by a lower triangular matrix (basis of Kalman filtering) The "determinstic time step" of a kalman filter requires U*D = PHI*U*D where, by convention, UD contains the "factors" as a vector of length n*(n+1)/2. PHI, of course, is a full square matrix. With overloading, and ADT, I can define a datatype UD as a special case of an upper triangular matrix. Overload * so that a square matrix * a triangular matrix, returns a triangular matrix. Now the code looks like the algorithm! How do we do this in f77 call PHIU(PHI,MAXPHI,IRPHI,JCPHI,U,N,W,IMAXW) call WGSG(W,IMAXW,IW,JW,DW,F,V,U) Now which is closer to the formula ? Which will be easier to maintain ? With generics I can even make everything work for double precision, w/o changing the code. Is it really better to have call DPHIU() call DWGSG() Which features of the proposal do you want to drop, why, and what does it do to the consistency and expressive power of f88 ? Keith H. Bierman It's Not My Fault ---- I Voted for Bill & Opus