Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!haven!uvaarpa!hudson!bessel.acc.Virginia.EDU!gl8f From: gl8f@bessel.acc.Virginia.EDU (Greg Lindahl) Newsgroups: comp.lang.fortran Subject: Re: Character aliases are Satanic exten Message-ID: <1515@hudson.acc.virginia.edu> Date: 18 May 89 23:02:43 GMT References: <592@mbph.UUCP> <50500128@uxe.cso.uiuc.edu> <105003@sun.Eng.Sun.COM> <595@mbph.UUCP> Sender: news@hudson.acc.virginia.edu Reply-To: gl8f@Virginia.EDU (Greg Lindahl) Organization: Dept. of Astronomy, University of Virginia Lines: 51 In article <595@mbph.UUCP> hybl@mbph.UUCP (Albert Hybl) writes: >In an electronic mail message from Greg Lindahl >, Greg stated that Satanic >character aliases are "used by at least one big program that I know >of: AIPS, the Astronomical Image Processing System. It consists of >3/4 million lines of code, and because it adheres to such an old and >outdated standard it has no trouble running on quite a few different >supercomputer, minisuper, and minicomputer architectures." Thank you for posting my mail verbatim without asking first. I often write mail off the top of my head; before I post I double-check my information. I am not associated with the AIPS people; I have used and installed some older versions of AIPS I do not know why the AIPS people put in Satanic characters in the first place. However, checking my _Aipsletter_ vol 8 # 3, a magazine published by the AIPS people, I find that they recently did convert their Satanic characters into a different form. To quote: [with my comments in brackets] " Unfortunately, not everything will be easy. Fortran 77 is weaker than other modern languages in its handling of character strings, in that they cannot occur with other data types in, for example, commons and I/O records [ binary files ]. Thus, data structures such as the AIPS header [ which contains character data and real data ] are not allowed by the language definition. We are therefore required to define a non-standard variable type called HOLLERITH to hold character data within I/O records and commons. A few simple operations may be done on HOLLERITH variables, but mostly they will be accessed only by the two routines which convert between HOLLERITH and CHARACTER. The new AIPS uses CHARACTER variables essentially everywhere except for storage in data structures and all the old [ Satanic ] character/hollerith forms (1 or 2 per integer, or NCHPFP per floating) are eliminated. The storage in HOLLERITH variables will be 4 characters per storage unit." A preprocessor is used to convert HOLLERITH variables into whatever works on a particular implementation. For most implementations, HOLLERITH can be REAL -- Satanic characters strike again. If you can come up with an ANSI-Standard Approved Nutritious Scheme for writing character data into binary files with real numbers, or putting character data into commons with other data, let me know. Remember, we're talking Standard here: just because all the computers you use have the non-standard extension that character and other types can coexist doesn't mean that the Standard says so. ------ Greg Lindahl | Welcome to Mars, Earthling. We Martians don't like gl8f@virginia.edu | illegal aliens, so we'll just have to deport you.