home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / fortran-faq < prev    next >
Internet Message Format  |  1997-01-04  |  227KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.mathworks.com!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!venus.sun.com!news2me.EBay.Sun.COM!engnews2.Eng.Sun.COM!engnews1.Eng.Sun.COM!usenet
  2. From: Keith Bierman QED <keith.bierman@eng.sun.com>
  3. Newsgroups: comp.lang.fortran,comp.answers,news.answers
  4. Subject: Fortran FAQ
  5. Followup-To: comp.lang.fortran
  6. Date: 03 Jan 1997 14:14:22 -0800
  7. Organization: SunSoft
  8. Lines: 6368
  9. Sender: khb@chiba
  10. Approved: news-answers-request@MIT.Edu
  11. Expires: 1 March 1997
  12. Message-ID: <tazybeae79d.fsf@eng.sun.com>
  13. NNTP-Posting-Host: chiba.eng.sun.com
  14. Archive-name: fortran-faq
  15. Frequency: mostly bi-monthly
  16. X-Newsreader: Gnus v5.2.25/XEmacs 19.14
  17. Xref: senator-bedfellow.mit.edu comp.lang.fortran:45566 comp.answers:23463 news.answers:91141
  18.  
  19. Last-Modified: 97/01/03
  20.  
  21. Fortran FAQ
  22.  
  23.  Here are some answers to frequently asked questions. The "author", as is
  24.  the custom, has appropriated posted responses as seemed apt. I have tried
  25.  to leave attributions in, as correctly as possible. To anyone who has been
  26.  offended by omission or otherwise, my apologies. I shall give priority to
  27.  corrections regarding attribution.
  28.  
  29.  No one takes responsibility for any of this text, neither the employer of
  30.  the "author", the "author", friends of the "author", pets of the "author"
  31.  nor anyone else.
  32.  
  33.  Your mileage WILL vary.
  34.  
  35.  A good place to look for FAQ's is:
  36.  
  37.     host:       rtfm.mit.edu
  38.     directory:  /pub/usenet
  39.  
  40.  If you have comments/suggestions/edit proposals please send them to me
  41.  (keith.bierman@eng.sun.com). I do not promise to accept 'em. I encourage
  42.  others to make better FAQ lists, so I can retire this one.
  43.  
  44.  The structure of the current list has been modified from previous versions
  45.  in an attempt to group related questions according to their topic, and to
  46.  maintain consistency with the new order.  Let the author know if any
  47.  inconsistencies have been introduced by the revision. <William B. Clodius
  48.  contributed the reorganization> A more recent reorganization, and htmlization
  49.  (which is what this ascii text is derived from) thanks to Abraham Agay.
  50.  
  51.      ,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,
  52.      ;;                                       ;;
  53.      ;;    Numbering convention:              ;;
  54.      ;;    '''''''''''''''''''''              ;;
  55.      ;;    l)         General Category:       ;;
  56.      ;;      l.m)     Topic:                  ;;
  57.      ;;        l.m.n) Question:               ;;
  58.      ;;                                       ;;
  59.      `;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'
  60.  
  61.  
  62.     SUMMARY OF CHANGES
  63.     ==================
  64.  
  65. C      1.2.4   Added
  66. C      2.      Updated
  67. C      +  misc other updates (bad bookkeeping)
  68.  
  69.        1.2.1   Updated
  70.  
  71.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  72.  
  73.  
  74.  
  75. 1) GENERAL INTEREST:
  76.  
  77.  
  78.   1.1) The language and its development
  79.  
  80.  
  81.     1.1.0) How should one spell FORTRAN/Fortran? 
  82.  
  83.     1.1.1) Where can I learn more about the history of Fortran? 
  84.  
  85.     1.1.2) How does Fortran 90 relate to FORTRAN '77 and what is Fortran 90? 
  86.  
  87.     1.1.3) Is Fortran 90 a Standard? Where can I get a copy of the Fortran 90
  88.            Standard? How about electronic copies? (getting other standards) 
  89.  
  90.     1.1.4) Who creates these silly standards anyway? 
  91.  
  92.     See also:
  93.  
  94.            2.1.5) Tell me about Parallel Fortran dialects, what are they, etc. 
  95.  
  96.  
  97.   1.2) Learning Fortran and its style
  98.  
  99.  
  100.     1.2.1) What are good books on Fortran? 
  101.  
  102.     1.2.2) Where can I find a f90 tutorial or course? 
  103.  
  104.     1.2.3) What constitutes good FORTRAN style? 
  105.  
  106.     1.2.4) What is a good subset of Fortran? 
  107.  
  108.  
  109.   1.3) General Fortran (particularly Fortran 90) resources
  110.  
  111.  
  112.     1.3.1) f90.faq from Michel Olagnon 
  113.  
  114.     1.3.2) f90 "market" announcement from walt brainerd 
  115.  
  116.  
  117. 2) TOOLS:
  118.  
  119.  
  120.   2.1) Compilers
  121.  
  122.  
  123.     2.1.1) Where can I get a free (FORTRAN 77) compiler? 
  124.  
  125.     2.1.2) What is the best (FORTRAN 77) compiler for a PC? 
  126.  
  127.     2.1.3) What is the best Fortran for... 
  128.  
  129.     2.1.4) What Fortran 90/95 compilers/translators are available? 
  130.  
  131.     2.1.5) Tell me about Parallel Fortran dialects, what are they, etc. 
  132.  
  133.     See also:
  134.  
  135.            2.2.6) What is preprocessing, how can it help? How can it hurt? 
  136.  
  137.            3.1.4) For whatever reasons, I want to translate my Fortran into C.
  138.                   What tools are available? 
  139.  
  140.  
  141.   2.2) Other tools (pretty printers, lints, converters, etc.)
  142.  
  143.  
  144.     2.2.1) I have heard of fortran "lints"; what are they, and where can
  145.            I get one? 
  146.  
  147.     2.2.2) Are there pretty printers for FORTRAN? Flowchart generators? 
  148.  
  149.     2.2.3) Is there a WEB for Fortran (and what is WEB anyway)? 
  150.  
  151.     2.2.4) Fortran text editors? 
  152.  
  153.     2.2.5) How can I convert an existing FORTRAN 77 program
  154.            to the free form source of Fortran 90? 
  155.  
  156.     2.2.6) What is preprocessing, how can it help? How can it hurt? 
  157.  
  158.  
  159.   2.3) Fortran Packages and libraries
  160.  
  161.  
  162.     2.3.1) Where can I get "foo" (some random package), older posts
  163.        to comp.lang.fortran etc  
  164.  
  165.     2.3.2) Where can I find coded BLAS (and what are coded BLAS?) 
  166.  
  167.     2.3.3) Where can I get mathematical software? 
  168.  
  169.     2.3.4) What Interval Arithmetic packages are avaliable? 
  170.  
  171.     2.3.5) FLIB announcement 
  172.  
  173.  
  174. 3)  TECHNICAL QUESTIONS:
  175.  
  176.  
  177.   3.1) Fortran and other languages (essentially C)
  178.  
  179.  
  180.     3.1.1) "Why do people use FORTRAN? C is so much better" 
  181.  
  182.     3.1.2) Why are there aimless debates? 
  183.  
  184.     3.1.3) How do I call f77 from C (and visa versa) 
  185.  
  186.     3.1.4) For whatever reasons, I want to translate my Fortran into
  187.            C. What tools are available? 
  188.  
  189.     3.1.5) For whatever reasons, I want to translate my existing C code
  190.            into Fortran. What tools are available? 
  191.  
  192.  
  193.   3.2) System differences
  194.  
  195.  
  196.     3.2.1) My compiler is mis-behaving; who enforces the standard? 
  197.  
  198.     3.2.2) My F77 program compiled ok on a <system1>, but gives me heaps
  199.            of syntax errors on a <system2>. What's wrong? 
  200.  
  201.     3.2.3) My F77 program ran ok on a <system1>, but on a <system2>
  202.            it just gives me strange results. What's wrong? 
  203.  
  204.     3.2.4) How can I read my VAX binary data somewhere else? 
  205.  
  206.  
  207.   3.3) Language extensions
  208.  
  209.  
  210.     3.3.1) How common is DO ... END DO? 
  211.  
  212.     3.3.2) What are ENCODE and DECODE statements, and how are they translated
  213.            to standard Fortran? How can I convert numbers to character strings
  214.            (and vice-versa)? 
  215.  
  216.  
  217.   3.4) .......
  218.  
  219.  
  220.     3.4.1) What is involved in parsing Fortran? 
  221.  
  222.  
  223. 4)  WWW SOFTWARE/FORTRAN
  224.  
  225.  
  226.    4.1.1) WWW and Fortran 
  227.  
  228.  
  229.  Start of contents 
  230.  
  231.  
  232.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  233.  
  234.  
  235. 1.1) The language(s) and its(their) development
  236.  
  237.  
  238. 1.1.0) How should one spell FORTRAN/Fortran?
  239.  
  240.        FORTRAN is generally the preferred spelling for discussions
  241.        of versions of the language prior to the current one ("90").
  242.        Fortran is the spelling chosen by X3J3 and WG5.
  243.        In this document a feeble effort has been made to capitalize
  244.        accordingly (e.g. vast existing software ... FORTRAN vs.
  245.        generic Fortran to mean all versions of the standard,
  246.        and specifically the modern dialect, ISO 1539:1991).
  247.  
  248.  
  249.        ---------------------------------------
  250.        ~From: walt@fortran.com (Walt Brainerd)
  251.        ---------------------------------------
  252.  
  253.        There was an effort to "standardize" on spelling of programming
  254.        languages just after F77 became a standard.  The rule: if you say
  255.        the letters, it is all caps (APL); if you pronounce it as a word,
  256.        it is not (Cobol, Fortran, Ada).  See, for example the definitive
  257.        article describing Fortran 77 in the Oct 1978 issue of the Comm.
  258.        of the ACM.  The timing was such that FORTRAN got put on the
  259.        standard itself, though many always after that have referred to
  260.        it as Fortran 77.  Of course, there are those who think it is
  261.        not truly Fortran if not written with all caps.
  262.  
  263. <ed note>
  264.  
  265.        ISO 1539:1991 and its ANSI counterpart X3.198-1992 consistently
  266.        employ the spelling "Fortran" to refer to the language being
  267.        defined. Reference(s) to the older version employ "small caps"
  268.        for the "ORTRAN" characters.
  269.  
  270.  
  271.    __________________________________________________________________________
  272.                                        
  273.  
  274.  
  275. 1.1.1) Where can I learn more about the history of Fortran?
  276.  
  277.        -------------------------------------------------
  278.        ~From: metcalf@apofort.cern.ch (Michael Metcalf )
  279.        -------------------------------------------------
  280.  
  281.        The history of Fortran is documented in:
  282.  
  283.        Annals of History of Computing,
  284.           6, 1, January, 1984 (whole issue)
  285.  
  286.        Programming Systems and Languages
  287.           (S. Rosen ed.),
  288.           McGraw Hill, 1967,
  289.           pp 29-47 (this is Backus's original paper)
  290.  
  291.        History of Prorammining Languages
  292.           (R.L. Wexelblat ed.),
  293.           Academic Press, 1981,
  294.           pp 25-74
  295.  
  296.  
  297.        A summary appears in:
  298.  
  299.           Encyclopedia of Science and Technology,
  300.              Academic Press, 1986,
  301.              vol. 5, under 'Fortran'
  302.  
  303.        and in:
  304.  
  305.           Fortran 90 Explained
  306.              (Oxford, 1990).
  307.              Chapter 1 of
  308.  
  309.  
  310.    __________________________________________________________________________
  311.                                        
  312.  
  313.  
  314. 1.1.2) How does Fortran 90 relate to FORTRAN '77?
  315.  
  316.        With a few minor exceptions, Fortran 90 is a superset of
  317.        X3.9-1978 FORTRAN.
  318.  
  319.        But this does not mean that all "77" codes will port sans changes.
  320.        Many (if not most) programmers employed constructs beyond the '77
  321.        standard, or rely on unspecified behavior (say, assuming that an
  322.        OPEN of an existing file will position the file pointer to just
  323.        past the last record already written) which has changed (that is
  324.        to say, has become specified).
  325.  
  326.        This leads to the obvious question, what is new in Fortran 90?
  327.  
  328.        A complete answer would require considerable text.
  329.        Some of the most obvious additions are:
  330.  
  331.           1) array notation (operators, etc.)
  332.           2) dynamic memory allocation
  333.           3) derived types and operator overloading
  334.           4) keyword argument passing, INTENT (in, out, inout)
  335.           5) modules
  336.           6) modern control structures
  337.           7) free format source code form
  338.           8) other stuff
  339.  
  340.        While it is always tricky to characterize the motives of
  341.        a large group of people, I <khb> am inclined to try
  342.        as follows:
  343.  
  344.        '90 incorporates two sets of improvements:
  345.  
  346.           (1) relatively minor fixups that *could* have been
  347.               done earlier
  348.  
  349.           (2) relatively major changes to enable better software
  350.               engineering practices.
  351.  
  352.        Sometimes a "minor" fixup has major effect, such as addition
  353.        of free form source form combined with canonization of the
  354.        MIL-STD 1753 INCLUDE.
  355.  
  356.        I further go off on a limb and assert that it was the goal
  357.        of the *committee* to evolve Fortran in a fashion to enable
  358.        it to continue to be the premier language for scientific
  359.        computation.
  360.  
  361.  
  362.    __________________________________________________________________________
  363.                                        
  364.  
  365.  
  366. 1.1.3) Is it a Standard? Where can I get a copy of the Fortran 90
  367.        Standard? How about electronic copies?
  368.  
  369.        Fortran 90 was adopted as an International Standard by ISO
  370.        in July, 1991.  It was published by them as ISO/IEC 1539:1991,
  371.        and is obtainable directly for 185 Swiss francs from:
  372.  
  373.            ISO Publications
  374.               1 rue de Varembe
  375.               Case postale 56
  376.               CH-1211 Geneva 20
  377.               Switzerland
  378.               Fax:  + 41 22 734 10 79
  379.  
  380.        or from:
  381.  
  382.            American National Standards Institute
  383.               Attn: Customer Service
  384.               11 West 42nd Street
  385.               New York, NY 10036
  386.               Phone: (212)642-4900 8:45-4:45 (EST)
  387.               Fax:   (212)302-1286
  388.  
  389.            BSI
  390.               2 Park Street
  391.               London W1A 2BS
  392.  
  393.            DIN
  394.               Burggrafenstrasse 6
  395.               Postfach 1107
  396.               D-1000 Berlin 30
  397.  
  398.            AFNOR
  399.               Tour Europe
  400.               Cedex 7
  401.               92049 Paris La Defence
  402.  
  403.            SCC
  404.               1200-45 O'Connor
  405.               Ottawa
  406.               Ontario  K1P 6N7
  407.  
  408.  
  409.        You can obtain copies for $225 through:
  410.  
  411.            Global Engineering Documents
  412.               2805 McGaw Ave.
  413.               Irvine, CA. 92714
  414.               (714) 261-1455
  415.               (800) 854-7179
  416.  
  417.  
  418.        In accordance with an official agreement with the International
  419.        Standards Organization, Unicomp is now able to distribute
  420.        electronic versions of the Fortran 90 standard:
  421.  
  422.           ISO/IEC 1539 : 1991,
  423.           Information technology--Programming languages--Fortran
  424.  
  425.        The money received from this effort will go partly to fund ISO
  426.        activities and partly to recover the costs incurred by Unicomp
  427.        in preparing and typesetting the standard document.
  428.        The prices are set by ISO.
  429.  
  430.        The document can be obtained in three versions:
  431.  
  432.           1. An ASCII version suitable for viewing on a computer
  433.              terminal using any kind of editor.  Cost: USD 125.
  434.  
  435.           2. A PostScript version with a license allowing the
  436.              purchaser to print n paper copies.  Cost: USD 125 + 10n.
  437.  
  438.           3. Complete source in ditroff with macros and software to
  439.              extract and create the annexes.  The source constitutes
  440.              a fairly high level marked-up document; for example,
  441.              each program beginning and ending is marked and there
  442.              are few low-level typographic commands such as size
  443.              and font changes.  Cost USD 1000.
  444.  
  445.        I am quite enthused especially about version (2).  If you want
  446.        to have 10 copies for your organization, and it costs $10 to
  447.        make a printed copy, then the cost to make the 10 copies would
  448.        be $125 + $200, or just $32.50 per copy, which is a substantial
  449.        savings over purchasing paper copies.
  450.  
  451.        Versions (1) and (3) will be accompanied by a license restricting
  452.        use to one CPU and prohibiting copying, except for backup purposes,
  453.        etc. The version (2) license will prohibit distributing any of the
  454.        printed copies outside of the purchasing organization.
  455.  
  456.        If you have special requirements, such as wanting to distribute
  457.        a copy with each version of your compiler or using the source
  458.        as a part of your documentation, we can make special arrangements,
  459.        subject to the approval of the ISO.  Please advise me of your
  460.        requirements and we can work up a proposal together.
  461.  
  462.        ISO and Unicomp think this will provide the oft requested access
  463.        to the standard in electronic form. This is the first time this
  464.        is being tried, so we hope that organizations will be careful to
  465.        observe the rules and encourage the continued availability of
  466.        this and other standards in electronic form.
  467.  
  468.        Payment can be made by Visa or MasterCard, or with a check on
  469.        a US Bank in US funds.  We <unicomp> will accept a purchase
  470.        order only if the amount is $500 or more.
  471.  
  472.           Walter S. Brainerd; Unicomp;
  473.           phone:  505-275-0800.
  474.           email:  Walt Brainerd <walt@fortran.com>
  475.  
  476.  
  477. ;;; Additional note.
  478.  
  479.        X3J3 working papers are often available via
  480.        ftp from:
  481.  
  482.           host:       ftp.ncsa.uiuc.edu
  483.           directory:  x3j3
  484.  
  485. rpc wrote:
  486.  
  487.        It has been a few years since I last ordered a MIL-STD, so my
  488.        information might be out-of-date.  At that time, the address
  489.        to write for MIL-STDs was:
  490.  
  491.           Naval Publications and Forms Center, Code 3015
  492.           5801 Tabor Ave
  493.           Philadelphia, PA 19120
  494.  
  495.           Phone:  1-(215)-697-4834
  496.  
  497.        Use form DD1425, if possible (they will send you a copy with
  498.        your first order).
  499.  
  500.        MIL-STD 1753 is a short document (about 10 pages).
  501.  
  502.        And finally, note that the FORTRAN 77 standard is online at
  503.        the Fortran Market:
  504.  
  505.           http://www.fortran.com/fortran/market.html
  506.           http://www.fortran.com/walt/fortran
  507.  
  508.  
  509.  
  510.    __________________________________________________________________________
  511.                                        
  512.  
  513.  
  514. 1.1.4) Who creates these silly standards anyway?
  515.  
  516.        Typically X3J3. X3J3 is an ANSI subcommittee dedicated to Fortran.
  517.        WG5 is the ISO counterpart. WG5 owns responsibility for Fortran
  518.        on an international basis. WG5 has previously tasked X3J3 to do
  519.        the work. This arrangement continues.
  520.  
  521.        WG5 is composed of Fortran users, vendors, and academics
  522.        from several ISO supporting nations. Delegates represent
  523.        *their*countries* not their companies; so several delegates
  524.        from a single company is permitted.
  525.  
  526.        ANSI rules prohibit multiple voting delegates from the same company.
  527.        X3J3 is composed of users (aerospace, government labs, military,
  528.        DECUS, railroads, oil to name a few), vendors (IBM, CRI, Sun,
  529.        Convex, DEC, UNISYS, to name a few) and the odd academic
  530.        (oxford, yale, liverpool, to name a couple).
  531.        Members need not be US citizens nor must their company be US
  532.        domiciled.  Being a member of a standards group is typically
  533.        involves non-trivial work.
  534.        To be effective, one should plan on at least 8 weeks of time
  535.        per year (those who are really doing the hard work do far more).
  536.        This time commitment is typically far more expensive than the
  537.        travel and membership costs.
  538.  
  539.        X3J3 meetings are open to the public. There are typically 4
  540.        meetings a year, typically 3 are in the US and 1 *may* be
  541.        overseas (to precede or follow the WG5 plenary session).
  542.        Membership fees are levied by ANSI, and are on the near order
  543.        of $600 ($300ish cast as an ISO "tax", but mandatory for all).
  544.        In addition, attendees to a particular X3J3 meeting pay a
  545.        "meeting fee" which covers reproduction costs, snacks and etc.
  546.        The meeting fee has been about $100 for the last several meetings.
  547.  
  548.        WG5 has established various goals and targets for future work.
  549.        Roughly speaking 5yrs rather than 13years are the targets for
  550.        future work.
  551.  
  552.        Current work projects include cleanup and interpretations
  553.        of Fortran (90), features for future versions of the standard
  554.        (e.g.  parallel processing, "object-oriented" technologies, etc.).
  555.        In addition to work done directly by X3J3, there is work on
  556.        standardized modules, and OS bindings taking place in other
  557.        organizations. X3J3 would like to keep track of such efforts,
  558.        those involved are invited to inform X3J3 early in their
  559.        development efforts if possible. X3J3 is currently working
  560.        with X3H5, DIN (varying string character) and tracking the
  561.        efforts of HPFF.
  562.  
  563.        New members are always welcome. Visitors are also; though it
  564.        is very hard to get a good grip on things in only one meeting!
  565.  
  566.        Contact the X3J3 chair for more information:
  567.  
  568.           email:  jwagener@trc.amoco.com      (chair)
  569.  
  570.        Upcoming meeting is:  5 Feb - 9 Feb   Las Vegas
  571.  
  572.        papers are often available via ftp from:
  573.  
  574.           host:       ftp.ncsa.uiuc.edu
  575.           directory:  x3j3
  576.  
  577.  
  578.    __________________________________________________________________________
  579.                                        
  580.  
  581.  
  582. B) Learning Fortran
  583.  
  584.  
  585. 1.2.1) What are good books on Fortran?
  586.  
  587.        Don't know if they are good. Inclusion in the list
  588.        is not endorsement.
  589.  
  590. On Fortran 90:
  591.  
  592.    English:
  593.  
  594.        Fortran 90
  595.           Counihan,
  596.           Pitman, 1991,
  597.           ISBN 0-273-03073-6.
  598.  
  599.        Fortran 90 Explained
  600.           Metcalf and Reid,
  601.           Oxford University Press, 1990,
  602.           ISBN 0-19-853772-7,
  603.           about $30.
  604.  
  605.           This book is a complete, audited description of the language
  606.           in a more readable style than the standard itself.
  607.           It is kept up-to-date on each printing with X3J3 and WG5's
  608.           latest interpretations.
  609.           It has seven Appendices, including an extended example program
  610.           that is available by ftp, and a comprehensive Index.
  611.  
  612.        Fortran 90/95 Explained
  613.           Michael Metcalf and John Reid,
  614.           Oxford University Press, Oxford and New York, 1996,
  615.           ISBN 0 19 851888 9
  616.           (about $US33 or 16.95 pounds sterling).
  617.  
  618.           Sequel to 90 explained.
  619.  
  620.        Fortran 90 for Scientists and Engineers
  621.           Brian D.  Hahn, Edward Arnold, 1994,
  622.           ISBN 0-340-60034-9.
  623.  
  624.        Fortran 90 Handbook
  625.           Adams, Brainerd, Martin, Smith and Wagener,
  626.           McGraw-Hill, 1992,
  627.           ISBN 0-07-000406-4.
  628.  
  629.        Fortran 90 Language Guide
  630.           Gehrke,
  631.           Springer, London, 1995,
  632.           ISBN 3-540-19926-8
  633.  
  634.        Fortran 95 Language Guide
  635.           Gehrke,
  636.           Springer, London, 1996,
  637.           ISBN 3-540-76062-8
  638.  
  639.        Fortran-90-Nachschlagewerk
  640.           Gehrke,
  641.           RRZN, 1993
  642.  
  643.        Fortran 90 Programming
  644.           Ellis, Philips, Lahey,
  645.           Addison Wesley, Wokingham, 1994,
  646.           ISBN 0-201-54446-6.
  647.  
  648.        Migrating to Fortran 90
  649.           James F.  Kerrigan,
  650.           O'Reilly Associates,
  651.           1993, ISBN 1-56592-049-X.
  652.  
  653.        Programmer's Guide to Fortran 90, second edition
  654.           Brainerd, Goldberg and Adams,
  655.           Unicomp, 1994.
  656.  
  657.        Programming in Fortran 90
  658.           Morgan and Schonfelder,
  659.           Alfred Waller, Oxfordshire, 1993,
  660.           ISBN 1-872474-06-3.
  661.  
  662.        Programming in Fortran 90
  663.           I.M. Smith,
  664.           Wiley,
  665.           ISBN 0471-94185-9.
  666.  
  667.        Fortran 90,
  668.           Loren P.  Meissner (U. of San Francisco) (c) 1995,
  669.           PWS Publishing Co.,
  670.           ISBN 0-534-93372-6
  671.  
  672.        Fortran 90:  A Reference Guide
  673.           Luc Chamberland,
  674.           Prentice-Hall, 1995,
  675.           ISBN 0-13-397332-8
  676.  
  677.        Introducing Fortran 90
  678.           Ian Chivers and Jane Sleightholme
  679.           Springer Verlag,
  680.           ISBN 3-540-19940-3
  681.  
  682.    Chinese:
  683.  
  684.        Programming Language FORTRAN 90
  685.           He Xingui, Xu zuyuan, Wu gingbao and Chen mingyuan,
  686.           China Railway Publishing House, Beijing,
  687.           ISBN 7-113-01788-6/TP.187, 1994.
  688.  
  689.    Dutch:
  690.  
  691.        Fortran 90
  692.           W.S.  Brainerd, Ch.H. Goldberg, and J.C. Adams,
  693.           translated by J.M. den Haan,
  694.           Academic Service, 1991,
  695.           ISBN 90 6233 722 8.
  696.  
  697.    French:
  698.  
  699.        Fortran 90; Approche par la Pratique
  700.           Lignelet,
  701.           Se'rie Informatique E'ditions, Menton, 1993,
  702.           ISBN 2-090615-01-4.
  703.  
  704.        Fortran 90.  Les concepts fondamentaux,
  705.           the translation of "Fortran 90 Explained" M. Metcalf, J.  Reid,
  706.           translated by M. Caillet and B. Pichon,
  707.           AFNOR, Paris,
  708.           ISBN 2-12-486513-7.
  709.  
  710.        Fortran 90; Initiation a` partir du Fortran 77
  711.           Aberti,
  712.           Se'rie Informatique E'ditions, Menton, 1992,
  713.           ISBN 2-090615-00-6.
  714.  
  715.        Les specificites du Fortran 90,
  716.           DUBESSET, M. et VIGNES, J.,
  717.           editions Technip, 1993.
  718.           ISBN 2-7108-0652-5
  719.  
  720.        Manuel complet du langage Fortran 90, et guide d'application,
  721.           LIGNELET, P.,
  722.           S.I. editions, Jan. 1995.
  723.           ISBN 2-909615-02-2
  724.  
  725.        Programmer en Fortran 90,
  726.           DELANNOY, C.,
  727.           Eyrolles, 1992.
  728.           ISBN 2-212-08723-3
  729.  
  730.        Savez-vous parler Fortran,
  731.           AIN, M.,
  732.           Bibliotheque des universites (de Boeck), 1994.
  733.           ISBN 2-8041-1755-3
  734.  
  735.        Support de cours Fortran 90 IDRIS
  736.           Corde, P. & Delouis, H.
  737.           anonymous ftp from:
  738.  
  739.              host:       ftp.ifremer.fr
  740.              directory:  pub/ifremer/fortran90/
  741.              file:       f90_cours_4.ps.gz
  742.  
  743.        Traitement de donnees numeriques avec Fortran 90,
  744.           Olagnon, M.
  745.           Masson, 1996.
  746.           ISBN 2-225-85259-6
  747.  
  748.           was just published this week. Though it is in French,
  749.           the example programs
  750.  
  751.              http://www.ifremer.fr/ditigo/molagnon/livref90.html
  752.  
  753.           are in Fortran 90. One of them, CVIBM, deals with
  754.           conversions between IEEE and former IBM format,
  755.           and may be of some use to you.
  756.           Anonymous ftp from:
  757.  
  758.              host:       ftp.ifremer.fr
  759.              directory:  pub/ifremer/ditigo/fortran90/livremo/
  760.              file:       cvibfl.f90
  761.  
  762.  
  763.    German:
  764.  
  765.  
  766.        Fortran 90
  767.           B.Wojcieszynski and R.Wojcieszynski,
  768.           Addison-Wesley, 1993,
  769.           ISBN 3-89319-600-5.
  770.  
  771.        Fortran 90: eine informelle Einf"hrung
  772.           Heisterkamp,
  773.           BI-Wissenschaftsverlag, 1991,
  774.           ISBN 3-411153-21-0.
  775.  
  776.        Fortran 90, Lehr- und Arbeitsbuch fuer das erfolgreiche Programmieren
  777.           W.S.  Brainerd, C.H. Goldberg, and J.C. Adams,
  778.           translated by Peter Thomas and Klaus G. Paul,
  779.           R. Olbenbourg Verlag, Muenchen, 1994,
  780.           ISBN 3-486-22102-7.
  781.  
  782.        Fortran 90 Lehr- und Handbuch
  783.           T. Michel,
  784.           BI-Wissenschaftsverlag, 1994.
  785.  
  786.        Fortran 90 Referenz-Handbuch: der neue Fortran-Standard
  787.           Gehrke,
  788.           Carl Hansen Verlag, 1991,
  789.           ISBN 3-446163-21-2.
  790.  
  791.        Programmierung in Fortran 90
  792.           Schobert,
  793.           Oldenburg, 1991.
  794.  
  795.        Software Entwicklung in Fortran 90
  796.           U"berhuber and Meditz,
  797.           Springer Verlag, 1993,
  798.           ISBN 0-387-82450-2.
  799.  
  800.    Japanese:
  801.  
  802.        Fortran 90 Explained
  803.           Metcalf and Reid,
  804.           translated by H. Nisimura, H. Wada, K.  Nishimura, M. Takata,
  805.           Kyoritsu Shuppan Co., Ltd., 1993,
  806.           ISSN 0385-6984.
  807.  
  808.  
  809. On Fortran in general:
  810.  
  811.        Author                         Title                               Year
  812.        ------                 -----------------------------               ----
  813.        Kruger                 Efficient Fortran Programming               1990
  814.        Mojena/Ageloff         FORTRAN 77                                  1990
  815.        Boyle                  FORTRAN 77 PDQ                              1989
  816.        Bezner                 FORTRAN 77                                  1989
  817.        Tremblay               PROGRAMMING IN FORTRAN 77                   1988
  818.        Salmon                 ENGINEERS & SCIENTISTS WITH FORTRAN 77      1988
  819.        Nyhoff/Leestma         FORTRAN 77 FOR ENGINEERS & SCIENTISTS       1988
  820.        McCracken/Salmon       ENGINEERS & SCIENTISTS WITH FORTRAN 77      1988
  821.        Davis/Hoffman          FORTRAN 77: A STRUCTURED DISCIPLINED STYLE  1988
  822.        Barnard/Skillicorn     FORTRAN 77 FOR ENGINEERS AND SCIENTISTS     1988
  823.        Gregory A. Moses       Engineering Applications Software Develop.. 1988
  824.        Gehrke                 PC-FORTRAN-Handbuch                         1988
  825.        Mashaw                 PROGRAMMING STRUCTURED FORTRAN 77           1987
  826.        Cole                   FORTRAN 77: A STRUCTURED ... APPROACH       1987
  827.        Boillot                UNDERSTANDING FORTRAN-77                    1987
  828.        Gehrke                 FORTRAN-77-Handbuch                         1987
  829.        Starkey/Ross           FUNDAMENTAL PROGRAMMING WITH FORTRAN 77     1986
  830.        Rouse/Bugnitz          INTRODUCTION TO FORTRAN 77                  1986
  831.        Ratzer                 FORTRAN 77 COURSE                           1986
  832.        Page                   FORTRAN 77 FOR HUMANS                       1986
  833.        Lehman                 SOCIAL SCIENCES: ALGORITHMS & FORTRAN 77    1986
  834.        Smith                  FORTRAN 77: A PROBLEM-SOLVING APPROACH      1985
  835.        Shelly                 FORTRAN 77: AN INTRODUCTION                 1985
  836.        Nickerson              FUNDAMENTALS OF FORTRAN 77 PROGRAMMING      1985
  837.        Metcalf                EFFECTIVE FORTRAN 77                        1985
  838.        Metcalf                FORTRAN Optimization                        1985
  839.        McKeown                STRUCTURED PROGRAMMING USING FORTRAN 77     1985
  840.        Hume                   FORTRAN 77 FOR SCIENTISTS & ENGINEERS       1985
  841.        Dillman                PROBLEM SOLVING WITH FORTRAN 77             1985
  842.        Brainerd               FORTRAN 77 FUNDAMENTALS AND STYLE           1985
  843.        Borse                  FORTRAN 77&NUMERICAL METHODS FOR ENGINEERS  1985
  844.        Adman                  FORTRAN 77 SOLUTIONS NON-SCIENTIFIC PROBS.  1985
  845.        Etter                  PROBLEM SOLVING WITH STRUCTURED FORTRAN 77  1984
  846.        Etter                  PROBLEM SOLVING USING FORTRAN 77             ?
  847.        Dyck                   FORTRAN 77: A STRUCTURED APPROACH ...       1984
  848.        Chivers/Clark          FORTRAN 77: A HANDS ON APPROACH             1984
  849.        Adman                  FORTRAN 77 FOR NON-SCIENTISTS               1984
  850.        Willamson/Levesque     A GUIDEBOOK TO FORTRAN ON SUPERCOMPUTER     1989
  851.        Rule                   FORTRAN 77: A PRACTICAL APPROACH            1983
  852.        Rouse/Bugnitz          PROGRAMMING THE IBM PC: FORTRAN 77          1983
  853.        Nyhoff/Leestma         PROBLEM SOLVING WITH FORTRAN 77             1983
  854.        Marateck               FORTRAN 77                                  1983
  855.        Lehmnkuhl              FORTRAN 77                                  1983
  856.        Law                    ANSI FORTRAN 77: INTRO. TO SOFTWARE DESIGN  1983
  857.        Holoien/Behforooz      ... STRUCTURED PROGRAMMING WITH FORTRAN 77  1983
  858.        Grout                  FUNDAMENTAL..PROGRAMMING USING FORTRAN 77   1983
  859.        Fleming/Redish         THE U. S. MC MASTER GLOSSARY OF FORTRAN-77  1983
  860.        Cole                   ANSI FORTRAN IV WITH FORTRAN 77 EXTENSIONS  1983
  861.        Wu                     ANSI FORTRAN IV & 77 AND BUSINESS PROGRAMS  1982
  862.        Pollack                STRUCTURED FORTRAN 77 PROGRAMMING           1982
  863.        Katzan                 FORTRAN 77                                  1982
  864.        Gibson/Young           INTRO TO PROGRAMMING USING FORTRAN 77       1982
  865.        Ellis                  STRUCTURED APPROACH FORTRAN 77 PROGRAMMING  1982
  866.        Durgin                 FORTRAN 77                                  1982
  867.        Nanney                 A PROBLEM-SOLVING APPROACH USING FORTRAN77  1981
  868.        Merchant               FORTRAN 77: LANGUAGE AND STYLE              1981
  869.        Khailany               BUSINESS PROGRAMMING FORTRAN IV/ANSI F..    1981
  870.        Ashcroft               PROGRAMMING WITH FORTRAN 77                 1981
  871.        Gehrke                 FORTRAN-77-Sprachumfang                     1981
  872.        Wagener                FORTRAN 77                                   ?
  873.        Wagener                PRINCIPLES OF FORTRAN 77 PROGRAMMING        1980
  874.        Meissner/Organick      FORTRAN77 FEATURING STRUCTURED PROGRAMMING  1980
  875.        Hume/Holt              PROGRAMMING FORTRAN 77                      1979
  876.        Balfour                PROGRAMMING IN STANDARD FORTRAN 77          1979
  877.  
  878.  
  879.        A free Fortran 77 book
  880.        ----------------------
  881.  
  882.        This excellent book is offered to the public by the
  883.        author:
  884.  
  885.           Clive G. Page,
  886.           Professional Programmer's Guide to Fortran 77
  887.           Pitman, 1988
  888.           122 pages (including index)
  889.  
  890.  
  891.        It can be found at the anonymous FTP site:
  892.  
  893.           Host:       ftp.star.le.ac.uk
  894.           Directory:  /pub/fortran/
  895.           File:       prof77.ps.gz
  896.  
  897.        There is also a Latex version available.
  898.  
  899.  
  900.        -----------------------------------------------
  901.        ~From: Z.W.T.Mason@sussex.ac.uk (Zebedee Mason)
  902.        -----------------------------------------------
  903.  
  904.        Jeffrey Templon (templon@studbolt.mit.edu) wrote:
  905.        : Hi,
  906.        :
  907.        : I just discovered this one and don't remember seeing it pointed
  908.        : to here. It's a PS copy of an out-of-print book by Clive Page,
  909.        : "Professional Programmer's Guide to Fortran 77" and what I've
  910.        : seen of it looks real good.
  911.        :
  912.        :                                                JT
  913.  
  914.        I bought it when it was in print, never needed to buy another
  915.        one since. Why can't all programming books be this short and
  916.        to the point?
  917.  
  918.           Zeb.
  919.  
  920.  
  921.  
  922.        Another free Fortran 77 book
  923.        ----------------------------
  924.  
  925.        Interactive Fortran 77: A Hands on Approach (second edition)
  926.           Ian D Chivers and Jane Sleightholme
  927.           Ellis Horwood, 1990
  928.           Series in Computers and their Applications
  929.           ISBN: 0-13-466764-6
  930.  
  931.        Copyright (C) Ian D Chivers and Jane Sleightholme.
  932.  
  933.        Legal comments:
  934.  
  935.           Unless otherwise specified, Ian D Chivers and Jane Sleightholme
  936.           hold all rights, including copyright and retains such rights.
  937.           This work may be distributed in its entirety provided the work
  938.           is distributed as a whole with this copyright notice intact.
  939.  
  940.           This work may not be distributed in hard copy or other machine
  941.           readable form, redistributed, transmitted or translated without
  942.           prior written authorization from Ian D Chivers and Jane Sleightholme.
  943.  
  944.           Commercial use can only be allowed by specific license agreements.
  945.           The accuracy of this document cannot be guaranteed. Ian D Chivers
  946.           and Jane Sleighthome make no warranty, either express or implied,
  947.           with respect to the use of any information and assumes no liabilities
  948.           for loss or damage, whether such loss or damage is caused by error
  949.           or omission.
  950.  
  951.           If this electronic book is made available anywhere other than the
  952.           original system, Ian Chivers or Jane Sleigtholme must be notified
  953.           in writing (email is acceptable) and the copyright notice must
  954.           retain intact.
  955.  
  956.        PDF version:
  957.  
  958.           http://www.kcl.ac.uk/kis/support/cc/fortran/f77book.pdf
  959.  
  960.        Unix compressed postscript version:
  961.  
  962.           http://www.kcl.ac.uk/kis/support/cc/fortran/f77book.ps.Z
  963.  
  964.        PC pkzip postscript version:
  965.  
  966.           http://www.kcl.ac.uk/kis/support/cc/fortran/f77ps.zip
  967.  
  968.  
  969.    __________________________________________________________________________
  970.                                        
  971.  
  972.  
  973. 1.2.2) Where can I find a f90 tutorial or course?
  974.  
  975.        Copyright but freely available course material is available
  976.        from Manchester Computer Centre on the World Wide Web with
  977.        the URL:
  978.  
  979.           http://www.hpctec.mcc.ac.uk/hpctec/courses/Fortran90/F90course.html
  980.  
  981.        The ftp address is:
  982.  
  983.           host:       ftp.mcc.ac.uk
  984.           directory:  /pub/mantec/Fortran90
  985.  
  986.  
  987.  
  988.        A complete Tutorial is available under WWW with
  989.        the URL:
  990.  
  991.           http://asis01.cern.ch/CN/CNTUT/f90/Overview.html
  992.  
  993.        or via anonymous ftp from:
  994.  
  995.           host:       cernvm.cern.ch
  996.           directory:  cnl.200
  997.           file:       f90tutor.ps
  998.  
  999.        An ASCII copy of this material as a set of slides for a
  1000.        six-hour course is available from:
  1001.  
  1002.           metcalf@cern.ch.
  1003.  
  1004.  
  1005.  
  1006.    Courses are available from:
  1007.  
  1008.  
  1009.        Walt Brainerd, a member of X3J3,
  1010.           also on HPF
  1011.           email:  walt@fortran.com
  1012.  
  1013.        PSR (see above);
  1014.  
  1015.        CETech, Inc. (also on HPF)
  1016.           8196 SW Hall Blvd., Ste. 304,
  1017.           Beaverton, Oregon 97008, USA.
  1018.           Phone:  (503)644-6106
  1019.           Fax:    (503)643-8425
  1020.           Email:  cetech@teleport.com).
  1021.  
  1022.     Some European companies offering courses and conversion
  1023.     consultancy are:
  1024.  
  1025.        IT Independent Training Limited,
  1026.           113 Liscombe, Birch Hill,
  1027.           Bracknell, Berkshire, RG12 7DE, UK
  1028.           tel:  +44 344 860172
  1029.           fax:  +44 344 867992
  1030.  
  1031.  
  1032.        Simulog, attn. Mr. E.Plestan,
  1033.           1 rue James Joule,
  1034.           F-78286 Guyancourt Cedex, France
  1035.           tel:  +33 1 30 12 27 00
  1036.           fax:  +33 1 30 12 27 27
  1037.  
  1038.  
  1039.        CTS,
  1040.           Prinz-Otto Str. 7c,
  1041.           D-85521 Ottobrunn , Germany
  1042.           tel:  +49-89-6083758
  1043.           fax:  +49-89-6083758
  1044.  
  1045.  
  1046.    __________________________________________________________________________
  1047.                                        
  1048.  
  1049.  
  1050. 1.2.3) What constitutes good FORTRAN style?
  1051.  
  1052.        One rendition of a FORTRAN 77 style guide is available through
  1053.        anonymous ftp from ics.uci.edu (128.195.1.1).  To retrieve
  1054.        (please note that it's not really "anonymous", that's just
  1055.        the Name that you'll be using):
  1056.  
  1057.           % ftp ics.uci.edu
  1058.           anonymous <enter your e-mail address at Password: prompt>
  1059.           cd pub/levine
  1060.           ascii
  1061.           get F77_Style_Guide
  1062.           bye
  1063.  
  1064.        If you can't access this site directly, please send an e-mail
  1065.        request to:
  1066.  
  1067.           INTERNET:   levine@ics.uci.edu
  1068.           BITNET:     levine@uci
  1069.           UUCP:       ...!uunet!ucivax!levine
  1070.  
  1071.  
  1072.    __________________________________________________________________________
  1073.                                        
  1074.  
  1075.  
  1076. 1.2.4) What are good Subsets of Fortran?
  1077.  
  1078. One is F:
  1079.  
  1080.        Announcing the first book on the F programming language
  1081.        -------------------------------------------------------
  1082.  
  1083.        "The F programming Language", by Michael Metcalf and John Reid,
  1084.        Oxford University Press, Oxford and New York, 1996,
  1085.        ISBN 0-19-850026-2, (about $US30 or 16.95 pounds sterling).
  1086.  
  1087.        The F programming language is a dramatic new development in
  1088.        scientific programming. Building on the well-established strengths
  1089.        of the Fortran family of languages, it is carefully crafted to be
  1090.        both safe and regular, whilst retaining the enormously powerful
  1091.        numerical capabilities of its parent language, Fortran 90, as well
  1092.        as its data abstraction capability. Thus, an array syntax becomes
  1093.        available as part of a medium-size, widely-available language for
  1094.        the first time. In this respect, the language is clearly superior
  1095.        to older ones such as Pascal, C, and Basic.
  1096.  
  1097.        F is ideally suited for teaching as a first programming language,
  1098.        and provides a smooth path into both Fortran 90 and High Performance
  1099.        Fortran (it is a subset of both).
  1100.  
  1101.        In the absence of a formal standard for F, this book is the defining
  1102.        document for the language, setting out the complete syntax and
  1103.        semantics of the language in a readable but thorough way.
  1104.        It is essential reading for all F practitioners.
  1105.  
  1106.        Compilers for F are available from Imagine1 for Windows 95, Linux
  1107.        and some Unix platforms, with Windows NT, Macintosh PowerPC and 68K
  1108.        families coming shortly. The compilers are based on technology from
  1109.        Absoft,  Fujitsu, and NAG. For details see:
  1110.  
  1111.           http://www.imagine1.com/imagine1 or contact info@imagine1.com.
  1112.  
  1113.  
  1114.           Table of Contents:
  1115.           1.  Why F? . . . . . . . . . . . . . . . .  1
  1116.           2.  Language elements  . . . . . . . . .    7
  1117.           3.  Expressions and assignments  . . . .   29
  1118.           4.  Control constructs   . . . . . . . .   49
  1119.           5.  Program units and procedures   . . .   61
  1120.           6.  Array features   . . . . . . . . . .   89
  1121.           7.  Specification statements   . . . . .  113
  1122.           8.  Intrinsic procedures   . . . . . . .  131
  1123.           9.  Data transfer  . . . . . . . . . . .  151
  1124.           10. Operations on external files   . . .  175
  1125.           Appendix A.  Intrinsic procedures  . . .  185
  1126.           Appendix B.  The statements of F . . . .  191
  1127.           Appendix C.  Diffences from Fortran 90 .  195
  1128.           Appendix D.  Pointer example   . . . . .  201
  1129.           Appendix E.  The terms of F  . . . . . .  211
  1130.           Appendix F.  Solutions to exercises  . .  221
  1131.           Index  . . . . . . . . . . . . . . . . .  233
  1132.  
  1133.  
  1134.        Michael Metcalf works at CERN, Geneva. He is the author of a
  1135.        range of publications, including the books "Effective Fortran 77"
  1136.        and "Fortran 90/95 Explained" (with John Reid) (Oxford University
  1137.        Press), and "Fortran Optimization" (Academic Press).
  1138.        He was Editor of the Fortran 90 standard.
  1139.  
  1140.        John Reid works for the Rutherford Appleton Laboratory and
  1141.        is well known as a numerical analyst; he is a co-author of
  1142.        "Direct Methods for Sparse Matrices" and "Fortran 90/95 Explained"
  1143.        (Oxford University Press). He served as Secretary of X3J3 and
  1144.        played a leading role in the development of Fortran 90.
  1145.  
  1146.  
  1147.    Ordering information:
  1148.  
  1149.        1) N. America: Order Department, Monday-Friday, 8:15am-5:00pm (EST)
  1150.  
  1151.              Phone:   1-800-451-7556
  1152.              Fax:     1-919-677-1303
  1153.              Post:    Order Department
  1154.                       Oxford University Press
  1155.                       2001 Evans Road
  1156.                       Cary, NC 27513
  1157.              E-mail:  orders@oup-usa.org
  1158.              WWW:     http://www.oup-usa.org/
  1159.  
  1160.        2) UK: send order and payment to:
  1161.  
  1162.              CWO Department, OUP,
  1163.              FREEPOST NH 4051, Corby, Northants
  1164.              NN18 9BR - no stamp required
  1165.  
  1166.              Phone: with a credit card, the 24-hour credit
  1167.                     card hotline is:  +44 (0)1536 454534
  1168.  
  1169.              Postage and packing for UK orders:
  1170.                     - under #20 - add #2.06,
  1171.                       over #20 - add #3.53,
  1172.                       over #50 - add #4.70.
  1173.  
  1174.              WWW: http://www.oup.co.uk/
  1175.  
  1176.        3) Eire, Europe, and the rest of the world,
  1177.           send order and payment to:
  1178.  
  1179.             CWO Dept, OUP,
  1180.             Saxon Way West, Corby,
  1181.             Northants NN18 9ES, UK
  1182.  
  1183.           Fax:  credit card sales: +44 1536 746337
  1184.  
  1185.           Postage and packing for non-UK orders:
  1186.             add 10% of the total price of the books.
  1187.  
  1188.        4) Imagine1
  1189.           11930 Menaul NE, Suite 106
  1190.           Albuquerque, NM 87112
  1191.           Toll free phone number: 1 888 323 1758.
  1192.           See also Imagine1's e-mail address and WWW URL above.
  1193.  
  1194.    Demos available (and free for linux)
  1195.  
  1196.           ftp  swcp.com
  1197.           login as anonymous and give e-mail address as password
  1198.           cd  ~ftp/pub/walt/Fbin
  1199.           get f_linux.tar.Z  (or f_solaris1.tar.Z or f_solaris2.tar.Z)
  1200.  
  1201.        Please send problems or questions to
  1202.        info@imagine1.com.
  1203.        --------
  1204.  
  1205. Another subset is ELF,
  1206.  
  1207.        Lahey has a native LF90 compiler for Windows and DOS:
  1208.  
  1209.           sales@lahey.com
  1210.           http://www.lahey.com
  1211.  
  1212.        It is particularly well optimized on the Pentium.
  1213.  
  1214.        Also on offer is elf90, a subset language that does not have old
  1215.        features like storage association, is designed for teaching, and is
  1216.        very cheap.  Also "Prof. Loren Meissner" <meissner@usfca.edu>
  1217.        can provide information, and possibly a textbook on this dialect.
  1218.        But in a nutshell, elf90 is said to be f90 sans What's not in Elf90
  1219.  
  1220.        To promote a more efficient and modern programming language the
  1221.        Fortran  statements listed below are not supported by the Elf90
  1222.        language. If you use  a Fortran 90 feature that is not supported, an
  1223.        on-screen error message is  provided.
  1224.  
  1225.           ALLOCATABLE*        ASSIGN              BLOCK DATA
  1226.           COMMON              CONTINUE            DATA DIMENSION*
  1227.           DO LABEL            DOUBLE PRECISION    END
  1228.           END BLOCK DATA      ENTRY               EQUIVALENCE
  1229.           EXTERNAL            GO TO (COMPUTED)    GO TO (ASSIGNED)
  1230.           IMPLICIT            INCLUDE             INTENT*
  1231.           INTRINSIC           OPTIONAL            PARAMETER*
  1232.           POINTER*            SAVE*               TARGET*
  1233.  
  1234.        *Note: The ALLOCATABLE, TARGET, POINTER, INTENT, PARAMETER,
  1235.        DIMENSION, and  SAVE attributes are declared in type declaration
  1236.        statements.
  1237.  
  1238.        <khb note: elf90 is, as I understand it, available on Intel
  1239.        processors only. F is said to be (or soon to be) available on a
  1240.        variety of processors, including Intel, SPARC and Macintosh.>
  1241.  
  1242.  
  1243.    __________________________________________________________________________
  1244.                                        
  1245.  
  1246.  
  1247. 1.3) General Fortran (particularly Fortran 90) resources
  1248.  
  1249.  
  1250.  
  1251. 1.3.1) f90.faq
  1252.  
  1253.  
  1254.        Michel Olagnon's Fortran 90 List
  1255.        --------------------------------
  1256.  
  1257.        F90 FAN's : Fortran 90 Frequently Asked about News.
  1258.        A Fortran 90 addition to the Fortran FAQ.
  1259.  
  1260.        Michel Olagnon - October 1st, 1993.
  1261.        Last updated - November 29th, 1996.
  1262.  
  1263.        Send flames and suggestions for improvement to:
  1264.  
  1265.           email:  Michel.Olagnon@ifremer.fr
  1266.           WWW:    http://www.ifremer.fr/ditigo/molagnon/molagnon.html
  1267.  
  1268.        The current updated version of this FAQ is available
  1269.        from:
  1270.  
  1271.           ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/engfaq
  1272.  
  1273.        It can be found on WWW at URLs:
  1274.  
  1275.           http://www.mols.susx.ac.uk/eggen/Fortran90/f90-faq.html
  1276.           (thanks to Bernd Eggen),
  1277.  
  1278.           http://www.kcl.ac.uk/kis/support/cc/fortran/engfaq.html
  1279.           (thanks to Ian Chivers),
  1280.  
  1281.           http://lenti.med.umn.edu/~mwd/f90-faq.html
  1282.           (thanks to Mark Dalton),
  1283.  
  1284.           http://www.uni-karlsruhe.de/~Fortran90/olagnon-faq.html
  1285.           (thanks to Michael Hennecke),
  1286.  
  1287.           http://www.ifremer.fr/ditigo/molagnon/fortran90/engfaq.html
  1288.  
  1289.  
  1290.        Contents :
  1291.        ----------
  1292.  
  1293.        1. Fortran 90 and Fortran 77
  1294.        2. Available in Fortran 90:
  1295.  
  1296.           2.1. Compilers
  1297.           2.2. Code re-structurers and converters
  1298.           2.3. Libraries and utilities
  1299.           2.4. Tests and Benchmarks
  1300.           2.5. Examples and repositories
  1301.           2.6. Courses and Consultancy
  1302.  
  1303.        3. Documentation:
  1304.  
  1305.           3.1. Standards
  1306.           3.2. Glossary
  1307.           3.3. Journals
  1308.           3.4. Tutorials and other documents
  1309.           3.5. Books
  1310.           3.6. Articles
  1311.           3.7. WWW-Mosaic pages
  1312.  
  1313.        4. Fortran 90 Benchmarking
  1314.        5. Announced, foreseen, and rumours
  1315.        6. Workshops, seminars, conferences
  1316.        7. Developments, related languages
  1317.  
  1318.           7.1. Standard
  1319.           7.2. HPF
  1320.           7.3. PVM
  1321.           7.4. MPI
  1322.           7.5. Parallel Programming
  1323.  
  1324.        8. Addresses
  1325.  
  1326.  
  1327.    1.0 Fortran 90 and Fortran 77:
  1328.    ------------------------------
  1329.  
  1330.        Fortran 90 is, with very few exceptions, a superset of Fortran 77.
  1331.        The FAQ of the Usenet group Comp.lang.fortran deals with both
  1332.        standards, and may be obtained, like any FAQ, via anonymous ftp
  1333.        from:
  1334.  
  1335.           ftp://rtfm.mit.edu/pub/usenet/comp.lang.fortran/Fortran_FAQ
  1336.  
  1337.           host:       rtfm.mit.edu
  1338.           directory:  pub/usenet/comp.lang.fortran
  1339.           file:       Fortran_FAQ
  1340.  
  1341.        It is also available on the WWW:
  1342.  
  1343.           http://www.cis.ohio-state.edu/hypertext/faq/usenet/
  1344.                                          fortran-faq/faq.html
  1345.  
  1346.        The present document is an attempt to supplement that FAQ with
  1347.        some specific Fortran 90 information.
  1348.  
  1349.        Anyone interested is also invited to join the mailbase list
  1350.        comp-fortran-90, by sending an e-mail message to:
  1351.  
  1352.           mailbase@mailbase.ac.uk
  1353.  
  1354.        containing the only line:
  1355.  
  1356.           join comp-fortran-90 firstname  lastname
  1357.  
  1358.        more info on URL:
  1359.  
  1360.           http://www.mailbase.ac.uk/lists-a-e/comp-fortran-90/
  1361.  
  1362.  
  1363.  
  1364.        The main extensions of Fortran 90 over Fortran 77 are:
  1365.        ------------------------------------------------------
  1366.  
  1367.        o  array notation (for instance, X(1:N)=R(1:N)*COS(A(1:N)))
  1368.        o  dynamic memory allocation (ALLOCATE, DEALLOCATE, ...)
  1369.        o  derived types and operator overloading
  1370.        o  better declarations, and prototyping possible
  1371.        o  MODULES, allowing users to create ``storage pools'',
  1372.           or to define environment
  1373.        o  more of modern control structures (SELECT CASE, EXIT, ...)
  1374.        o  more of useful intrinsics (date, precision, arrays, ...)
  1375.        o  free format source code form
  1376.  
  1377.  
  1378.        ``Pure'' Fortran 77 is F90 compatible. Yet, it is better to convert
  1379.        it to a ``mixed'' format, acceptable both as free and fixed source
  1380.        form Fortran 90, which only requires replacing C by ! as the comment
  1381.        character, to use & as the continuation line character, and to
  1382.        append it to the continued line, to remove blanks embedded inside
  1383.        constants or identifiers, and to check some intrinsics usage. Most
  1384.        of this can be done automatically.
  1385.  
  1386.        Fortran 90 allows the Fortran 77 programmer to write code faster,
  1387.        to make it more legible, and to avoid many bugs. For a newcomer to
  1388.        programming, it is an opportunity to learn a modern language, with
  1389.        most recommended features, and yet to be in line with scientific
  1390.        and industrial engineering communities where Fortran is and is
  1391.        going to remain for a good while THE favourite language.
  1392.  
  1393.  
  1394.  
  1395.    2.0 Available in Fortran 90:
  1396.    ----------------------------
  1397.  
  1398.        2.1 Compilers
  1399.        -------------
  1400.  
  1401.        There is presently no free full F90 compiler. However, some
  1402.        compilers restricted to modern subsets of the language are free.
  1403.        These are:
  1404.  
  1405.           ELF90 from Lahey
  1406.              for DOS 3.3 or higher, Windows 95, or Windows NT:
  1407.  
  1408.              http://www.lahey.com/"
  1409.  
  1410.  
  1411.           F from Imagine1 for Linux:
  1412.  
  1413.              http://www.imagine1.com/imagine1
  1414.  
  1415.        Compilers for these subsets are also available for other
  1416.        platforms, but presently not for free.
  1417.  
  1418.  
  1419.  
  1420.        Absoft's version of CF90
  1421.           for:  Power Mac
  1422.           URL:  http://www.absoft.com
  1423.  
  1424.        ACE f90 and HPF
  1425.           for:  Parsytec PowerPC-based machines
  1426.           URL:  http://www.ace.nl/
  1427.  
  1428.        Apogee - highly optimizing Apogee-Fortran 90, C-DAC Fortran 90
  1429.           (comes with debugger).
  1430.           Both compilers are for SPARC architectures.
  1431.           URL:  http://www.apogee.com/
  1432.  
  1433.        APR xHPF 2.1 - HPF compiler
  1434.           ([Cray]T3D,
  1435.            [IBM]SP-2,
  1436.            [Intel]Paragon,
  1437.            [Dec Alpha]3000/900 275Mhz,
  1438.            [SGI Power Challenge]MIPS R8000,
  1439.            [Sun SPARC]2000 40Mhz)
  1440.  
  1441.        CRAY CF90
  1442.           for:  Crays YMP and YMP-C90,
  1443.                 Superserver 6400
  1444.                 Sparc Solaris 2.3
  1445.           plans for HP, SGI
  1446.           URL:  http://www.cray.com/PUBLIC/product-info/craysoft/
  1447.                                                   Fortran_90.html
  1448.  
  1449.        DEC Fortran 90 V2.0
  1450.           for:  Digital UNIX Alpha
  1451.                 OpenVMS Alpha,
  1452.           UNIX version including full HPF support, Digital Parallel
  1453.           Software Environment (PSE), companion product on UNIX for
  1454.           HPF programming.
  1455.           URL:  http://www.digital.com/info/hpc/f90
  1456.  
  1457.        EPC Fortran 90
  1458.           for:  Sparc Solaris 1.X and 2.X,
  1459.                 IBM RS/6000,
  1460.                 Intel 3/486 (SVR3&4, Solaris 2.x),
  1461.                 SGI,
  1462.                 Motorola 88000/100/100 (SVR3&4),
  1463.                 MIPS
  1464.  
  1465.        Fujitsu full compiler
  1466.           for:  Sparc Solaris 1.1 and 2.x
  1467.           next: Sun Sparc (MP) 3Q/95,
  1468.                 HP PA-RISC 4Q/95
  1469.                 MIPS ABI 4Q/95,
  1470.                 SGI 4Q/95,
  1471.                 Windows 1Q/96
  1472.  
  1473.        HP, HP Fortran 90 - full compiler
  1474.           for:  HP-UX 10.20,
  1475.                       10.10,
  1476.                       10.01
  1477.                 SPP-UX
  1478.           URL:  http://www.hp.com/go/hpfortran
  1479.  
  1480.        IBM XLF V3 full compiler
  1481.           for:  RISC System/6000 + KAP preprocessor
  1482.           from KAI, for AIX V3.2 and V4.1
  1483.           URL:  http://www.torolab.ibm.com:80/ap/fortran/xlfortran/
  1484.  
  1485.        Imagine1 F - educational subset
  1486.           (dusty features removed, for inexpensive F90 learning)
  1487.           URL:  http://www.imagine1.com/imagine1
  1488.  
  1489.        Lahey LF90
  1490.           for:  DOS,
  1491.                 Windows including Pentium optimizations and
  1492.                    Interacter Kit.
  1493.           URL:  http://www.lahey.com/
  1494.  
  1495.        Lahey ELF90 - educational subset
  1496.           (dusty features removed, for inexpensive F90 learning)
  1497.  
  1498.        Microsoft Fortran Powerstation V4.0
  1499.           for:  Windows NT 3.5
  1500.                 Windows 95
  1501.           URL:  http://www.microsoft.com/fortran
  1502.  
  1503.        MicroWay
  1504.           for:  DOS,
  1505.                 OS/2,
  1506.                 Unix,
  1507.                 Linux.
  1508.  
  1509.        NA Software F90+
  1510.           for:  OS/2,
  1511.                 DOS/Windows3.1,
  1512.                 Windows NT,
  1513.                 Sun,
  1514.                 Inmos T800
  1515.                 PC Linux, also HPF for Linux.
  1516.           Cost-effective personal version for Windows95
  1517.           URL:  http://www5.informatik.tu-muenchen.de/sci-comp/info/
  1518.                                                software/fortran.html
  1519.  
  1520.        NAG/ACE Optimizing f90 - release 1.0
  1521.           for:  Sparc Solaris 2.
  1522.           URL:  http://www.nag.co.uk/nagware/ACE/Info.html
  1523.  
  1524.        NAGWare f90
  1525.           uses C as intermediate language, now at rel:2.2,
  1526.           includes HPF extensions and exists in Linux version.
  1527.           URL:  http://www.nag.co.uk/nagware/NCNJNKNM.html
  1528.  
  1529.        NEC FORTRAN90/SX
  1530.           for its supercomputer SX series.
  1531.  
  1532.        Pacific Sierra VAST/f90
  1533.           uses F77 as intermediate language,
  1534.           for:  Unix
  1535.                 VMS
  1536.                 Convex
  1537.           URL:  http://www.psrv.com/vast/vastf90.html
  1538.  
  1539.        Parasoft
  1540.           uses F77 as intermediate language
  1541.           URL:  http://www.parasoft.com/f90.html
  1542.  
  1543.        PGI f90/HPF compiler,
  1544.           for:  SGI,
  1545.                 IBM SP2,
  1546.                 HP/Convex
  1547.           URL:  http://www.pgroup.com/
  1548.  
  1549.        Salford FTN90
  1550.           PC implementation of NAG f90, direct generation
  1551.           of object code.
  1552.           URL:  http://www.salford.ac.uk/docs/ss.html
  1553.  
  1554.        SGI
  1555.           under IRIX 6.1 on R8000 machines:
  1556.              Power Challenge,
  1557.              Power Indigo 2,
  1558.              Power Onyx
  1559.           URL:  http://www.sgi.com/
  1560.  
  1561.        SPARCompiler Fortran 90
  1562.           Sun's Cray-compatible compiler.
  1563.           URL:  http://www.sun.com/sunsoft/Products/Developer-products
  1564.  
  1565.        Stern C. S. CF90
  1566.           Cray-compatible for DEC OSF/1 (Digital UNIX).
  1567.  
  1568.  
  1569.        NOTE:  Some vendors, such as Convex on their machines, offer
  1570.               a number of F90 extensions, for instance array syntax
  1571.               or ALLOCATE instruction.
  1572.  
  1573.  
  1574.  
  1575.        Code re-structurers and converters
  1576.        ----------------------------------
  1577.  
  1578.        Pacific-Sierra VAST/77to90
  1579.           (see article by JKP in Fortran Journal 5/4)
  1580.           URL:  http://www.psrv.com/vast/vast77to90.html
  1581.  
  1582.        LOFT90, by NA Software
  1583.           (available also under Linux)
  1584.  
  1585.        FORESYS 1.4
  1586.           GUI based High Performance Global Analysis,
  1587.           F77->F90 conversion, and parallelization.
  1588.           URL:  http://www.cais.net/s2i/www/general/foresys.html
  1589.  
  1590.        FORGE Explorer 2.0
  1591.           Distributed and shared memory Parallelizer,
  1592.           Applied Parallel Research, Inc.
  1593.           URL:  http://www.infomall.org/apri/
  1594.  
  1595.        NAGWare f90 tools
  1596.           pretty-printer,
  1597.           declarations standardiser,
  1598.           precision standardiser,
  1599.           names changer.
  1600.           URL:  http://www.nag.co.uk/nagware/NENF.html
  1601.  
  1602.        CONVERT, conversion to F90 free format
  1603.           proposed by Mike Metcalf via anonymous ftp
  1604.           on:
  1605.              host:       jkr.cc.rl.ac.uk (130.246.8.23)
  1606.              directory:  pub/MandR/
  1607.              file:       convert.f90
  1608.           URL:  ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90
  1609.  
  1610.        ftof90.c
  1611.           minimal F77 -> F90 conversion.
  1612.           URL:  ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/ftof90.c.gz
  1613.  
  1614.        f90ppr
  1615.           F90 pre-processor similar to cpp.
  1616.           URL:  ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/f90ppr.f90.gz
  1617.  
  1618.        flecs90
  1619.           FLECS to F90 translator.
  1620.           URL:  ftp://odin.mda.uth.tmc.edu/pub/source/flecs90.tar.Z
  1621.  
  1622.        HPF mapper
  1623.           for PVM or Parmacs,
  1624.           on Sun clusters: NA software.
  1625.  
  1626.  
  1627.  
  1628.        Libraries and utilities
  1629.        -----------------------
  1630.  
  1631.        *Emacs* package free-format f90-mode
  1632.           URL:  http://www.mailbase.ac.uk/lists-a-e/comp-fortran-90/
  1633.                                                         files/f90.el
  1634.           Among the options one finds automatic matching and completion
  1635.           of all end-blocks (for example, indenting a line starting with
  1636.           end, finds the corresponding if/do/module... and checks/fills
  1637.           in the right kind of block and a possible name), it has an
  1638.           automatic fill-function which breaks a line and inserts
  1639.           &-signs (two if inside a string) when a line gets too long,
  1640.           different coloring for different features which is updated
  1641.           with every indent of a line.
  1642.           The most common commands are available via a menu.
  1643.  
  1644.        Performance Library
  1645.           LAPACK, BLAS, FFTPACK, VFFTPACK et LINPACK
  1646.           optimized for SPARC (Sun Performance Workshop).
  1647.           URL:  http://www.sun.com/sunsoft/Products/Developer-products
  1648.  
  1649.        INTERACTER
  1650.           graphics library for Lahey LF90 and Salford FTN90,
  1651.           on 386/486/pentium + DOS Extenders (Int. Soft. Serv.).
  1652.           URL:  http://www.demon.co.uk/issltd/
  1653.  
  1654.        Lahey has F90 components (manual, array intrinsics, front end,...)
  1655.           that they would like to license to others.
  1656.  
  1657.        NAG fl90, numerical and statistical library,
  1658.           Sun 4, Sgi, DECstation, and IBM RISC System/6000.
  1659.  
  1660.        NAG tool components
  1661.           (parser, semantic analyser, tree modification library
  1662.           and tree flattener).
  1663.  
  1664.        Numerical recipes
  1665.           URL:  http://nr.harvard.edu/nr/nrf90_blurb.html
  1666.           (Others give caveats:  http://math.jpl.nasa.gov/nr !)
  1667.  
  1668.        Cray LibSci(tm),
  1669.           numerical library for Crays and Sparc Solaris 2.3
  1670.  
  1671.        MPFUN
  1672.           (Multiple Precision Floating Point Computation Package)
  1673.           by David W. Bailey, for Cray CF-90.
  1674.           URL:  ftp://ftp.irisa.fr/pub/netlib/mpfun/
  1675.  
  1676.        MSL library (Visual Numerics)
  1677.  
  1678.        Syntax verifier extracted from NAG compiler,
  1679.           put into public domain by NAG for Sun 3, Sun 4, Sgi.
  1680.           Interactive checking of user's code over www at:
  1681.           URL:  http://www.nag.co.uk/0/Forms/f90_interface.html
  1682.  
  1683.        ISF and PKF modules
  1684.           shareware from Garnatz and Grovender, Inc
  1685.           ISAM/VSAM/btree file structure, and Positional Key file structure
  1686.           URL:  http://www.winternet.com/~gginc
  1687.  
  1688.        XLIB interface
  1689.           from Garnatz and Grovender also.
  1690.           URL:  http://www.winternet.com/~gginc
  1691.  
  1692.        CADNA,
  1693.           by professeur Vignes from Universite Pierre et Marie Curie,
  1694.           implements stochastic arithmetic in Fortran 90, and
  1695.           enables monitoring of precision loss and/or numerical
  1696.           instabilities during execution. (Control of Accuracy
  1697.           and Debugging for Numerical Aplications in Fortran)
  1698.           More information available from AERO (see also articles
  1699.           by J. Vignes), or Pr. Chesneaux (chesneaux@masi.ibp.fr).
  1700.  
  1701.        ISO/IEC 1539-2 (Auxiliary standard)
  1702.           Variable length character strings in Fortran
  1703.           (with a demonstration of implementation at URL:
  1704.            ftp://ftp.liv.ac.uk/pub/fortran_std/is1539-2.html)
  1705.  
  1706.        LAPACK,
  1707.           (minimaly) translated by myself (M.O.), successfully
  1708.           passed all its tests with NAg-f90 2.0.
  1709.           I aggressively translated single precision Blas, and
  1710.           intend to do the same with other Blas as soon as I
  1711.           have time.
  1712.           Steve Moulton works on LAPACK conversion.
  1713.  
  1714.        StopWatch
  1715.           Measurement of execution times by W.F Mitchell
  1716.           URL:  http://math.nist.gov/acmd/Staff/WMitchell/StopWatch.html
  1717.  
  1718.        F90 makedepend
  1719.           perl script by Kate Hedstrom
  1720.           URL:  http://marine.rutgers.edu/po/perl.html
  1721.  
  1722.        Automatic differentiation with Fortran programs
  1723.           URL:  http://www.mcs.anl.gov/Projects/autodiff/AD_Tools
  1724.  
  1725.  
  1726.  
  1727.        Tests and Benchmarks
  1728.        --------------------
  1729.  
  1730.        Lahey Test suite
  1731.           F77 & F90 (license agreement)
  1732.  
  1733.        NAGware Test suite
  1734.           tests for compilers (same as U_F90_TS)
  1735.  
  1736.        U_F90_TS Test suite
  1737.           from Dr. Brian Smith (University of New Mexico),
  1738.           marketed by Unicomp and NAG.
  1739.  
  1740.        SHAPE Test suite
  1741.           3400 tests of array instructions,
  1742.           from Spackman & Hendrickson, Inc.
  1743.  
  1744.        Parasoft Test suite
  1745.           1500 tests for compilers
  1746.  
  1747.        Quetzal Benchmark
  1748.           from John K. Prentice.
  1749.           URL:  http://www.swcp.com/~quetzal/access.html
  1750.  
  1751.        Benchmark of Syracuse University
  1752.           via anonymous ftp on:
  1753.              host:       minerva.npac.syr.edu
  1754.              directory:  old_pub
  1755.           URL:  ftp://minerva.npac.syr.edu/old_pub/
  1756.  
  1757.        Channel benchmark
  1758.           by John D. McCalpin, via anonymous ftp on:
  1759.              host:       perelandra.cms.udel.edu
  1760.              directory:  bench/channel.
  1761.           URL:  ftp://perelandra.cms.udel.edu/bench/channel
  1762.  
  1763.  
  1764.  
  1765.        Examples and repositories
  1766.        -------------------------
  1767.  
  1768.        Nag has set up a repository for contributed code:
  1769.           WWW:  http://www.nag.co.uk/1/nagware/Examples
  1770.  
  1771.        The Fortran Market has established itself on the World Wide Web.
  1772.           "ONE place to find all information, products,
  1773.           and services related to Fortran"
  1774.           WWW:  http://www.fortran.com/fortran/market.html
  1775.  
  1776.        Lahey Computer Systems
  1777.           downloadable F90 public domain code.
  1778.           URL:  http://www.lahey.com/other.htm
  1779.  
  1780.        11,000 lines offered by Richard Maine via anonymous ftp on:
  1781.           host:       ftp.dfrf.nasa.gov
  1782.           directory:  pub/fdas/f90sample/
  1783.           file:       fdas.tar.Z
  1784.  
  1785.        Many of the example codes and problem solutions from:
  1786.           NUMERICAL METHODS FOR DIFFERENTIAL EQUATIONS -
  1787.           A computational approach, by John R. Dormand
  1788.           have been coded in F.
  1789.           URL:  ftp://ftp.tees.ac.uk/pub/j.r.dormand/F-files
  1790.  
  1791.        STEJOI, statistical package for joint occurrence events,
  1792.           on Sun, including source code and everything,
  1793.           via anonymous ftp on:
  1794.           host:       ftp.ifremer.fr
  1795.           directory:  ifremer/ditigo/fortran90/
  1796.           file:       f90dvl.tar.Z
  1797.  
  1798.        Module unsigned_32
  1799.           for definition and use of unsigned 32 bits integers,
  1800.           also via anonymous ftp on:
  1801.           host:       ftp.ifremer.fr
  1802.           directory:  ifremer/ditigo/fortran90/
  1803.           file:       unsi32.f90.Z
  1804.  
  1805.        f90split, experimental version,
  1806.           similar to Unix BSD fsplit, but for free source form,
  1807.           also via anonymous ftp on:
  1808.           host:       ftp.ifremer.fr
  1809.           directory:  ifremer/ditigo/fortran90/
  1810.           file:       f90split.f90.gz
  1811.  
  1812.        Algorithm 999 by A.G. Buckley
  1813.           for unconstrained nonlinear minimization,
  1814.           via anonymous ftp on:
  1815.           host:       ftp.royalroads.ca
  1816.           directory:  pub/software/bbuckley/alg999/
  1817.           file:       source
  1818.  
  1819.  
  1820.  
  1821.        Courses and Consultancy
  1822.        -----------------------
  1823.  
  1824.        IT Independent Training Limited, UK
  1825.  
  1826.        CTS, Germany
  1827.  
  1828.        Unicomp, USA
  1829.  
  1830.        Pacific-Sierra Research Corp., USA
  1831.  
  1832.        CETech, Inc., USA
  1833.  
  1834.  
  1835.  
  1836.    3.0 Documentation:
  1837.    ------------------
  1838.  
  1839.  
  1840.        Standards
  1841.        ---------
  1842.  
  1843.        ISO/IEC 1539:1991 (E) International Standard
  1844.           Information technology - Programming langages - Fortran
  1845.           Somewhat expensive (CHF 210 ~ US$ 140 !) for instance, at ISO.
  1846.           Surprisingly enough, the identical, save for foreword and
  1847.           acknowledgements, ANSI standard X3.198-1992 is even more expensive.
  1848.  
  1849.           Walter S. Brainerd, Unicomp., offers:
  1850.  
  1851.              o  for 125 US$, an electronic ascii monouser version,
  1852.              o  for 125 + 10n US$, an electronic PostScript version,
  1853.                 and the right to make n paper copies,
  1854.              o  or for 1000 US$, an electronic ditroff monouser version.
  1855.  
  1856.           URL:  http://www.fortran.com/fortran/iso1539.html
  1857.  
  1858.           A version with French glossary is available as European norm
  1859.           NF EN 21539.
  1860.  
  1861.  
  1862.  
  1863.        Glossary
  1864.        --------
  1865.  
  1866.        Fortran terminology glossary
  1867.           by Ken Hawick hawick@npac.sys.edu
  1868.           URL:  http://www.npac.syr.edu/hpfa/fortgloss/fortgloss.html
  1869.  
  1870.  
  1871.  
  1872.        Journals
  1873.        --------
  1874.  
  1875.        Fortran Journal
  1876.           ISSN 1060-0221
  1877.           Enquiries: Walt Brainerd  (email:  walt@fortran.com)
  1878.           Subscriptions:  Fortran Users Group
  1879.                           P.O. Box 4201
  1880.                           Fullerton, CA 92634
  1881.           (about $30/year individual, $100/year company,
  1882.            ~$50/$150 outside the USA, call 1 (714) 441 2022)
  1883.  
  1884.        Fortran Forum
  1885.           edited by Loren Meissner (email:  meissner@usfca.edu)
  1886.           Subscriptions:  ACM membership services
  1887.                           email:  acmhelp@acm.org
  1888.                           10$ members, 20$ non members
  1889.           More info:  http://www.acm.org/
  1890.  
  1891.  
  1892.  
  1893.        Tutorials and other documents
  1894.        -----------------------------
  1895.  
  1896.        University of Liverpool on-line tutorial
  1897.           URL:  http://www.liv.ac.uk/HPC/HTMLFrontPageF90.html
  1898.  
  1899.        P. Corde and H. Delouis
  1900.           ``Support de cours Fortran 90 IDRIS''.
  1901.           This is a very complete reference (224 pp.), in French,
  1902.           for which the authors have agreed to give free access.
  1903.           URL:  http://www.idris.fr/data/cours/lang/f90/F90_cours4.ps
  1904.  
  1905.        Prof. Loren Meissner has written an ELF subset
  1906.           (Essential Lahey Fortran) textbook, from his PWS book,
  1907.           and offers it on a royalty basis of $1.00 per copy,
  1908.           with advance royalty payment for 100 copies
  1909.           (email:  LPMeissner@msn.com).
  1910.  
  1911.        Copyright but freely available course material
  1912.           is available from Manchester Computer Centre.
  1913.           URL:  http://www.hpctec.mcc.ac.uk/hpctec/courses/Fortran90/
  1914.                                                        F90course.html
  1915.  
  1916.        Bo Einarsson and Yurij Shokin
  1917.           have written a tutorial on the transition from
  1918.           Fortran 77 to Fortran 90, with the title:
  1919.              "Fortran 90 for the Fortran 77 programmer"
  1920.           URL:  http://www.nsc.liu.se/f77to90.html
  1921.  
  1922.        Michel Goossens has now installed a Fortran 90 tutorial
  1923.           on the World Wide Web (WWW), with the title:
  1924.              "F90 Tutorial/Overview"
  1925.           There is no copyright on this material.
  1926.           URL:  http://wwwcn.cern.ch/asdoc/f90.html
  1927.  
  1928.        There is a Fortran (90) tutorial on the net that might
  1929.           be of some use (from the University of New Mexico).
  1930.           URL:  ftp://mycroft.plk.af.mil/pub/Fortran_90/Tutorial/
  1931.  
  1932.        See also:
  1933.  
  1934.           URL:  http://www.nsc.liu.se/~boein/fortran.html
  1935.  
  1936.           URL:  http://www.kcl.ac.uk/kis/support/cc/fortran/f90home.html
  1937.  
  1938.           Digital Equipment Corporation (DEC)
  1939.              URL:  http://www.digital.com:80/info/hpc/f90/users.html#tutorial
  1940.  
  1941.           Computational Science Education Project (CSEP)
  1942.              Oak Ridge National Laboratory (ORNL)
  1943.              URL:  http://csep1.phy.ornl.gov/pl/pl.html
  1944.  
  1945.           URL:  ftp://ftp.th-darmstadt.de/pub/thd/fortran/f90/
  1946.  
  1947.           The University of Liverpool
  1948.              URL:  http://www.liv.ac.uk/HPC/F90page.html
  1949.  
  1950.           Belfast
  1951.              URL:  http://www.pcc.qub.ac.uk/tec/courses/courselist.html
  1952.  
  1953.           Univ. of New Mexico
  1954.              URL:  http://www.arc.unm.edu/workshop/fortran90/f90-main.html
  1955.  
  1956.           Syracuse Univ.
  1957.              URL:  http://www.npac.syr.edu/EDUCATION/PUB/hpfe/
  1958.  
  1959.           Pacific-Sierra Research mini-tutorial about converting
  1960.              Fortran 77 programs to High Performance Fortran
  1961.              URL:  http://www.psrv.com/77toHPF
  1962.  
  1963.           EPCC Writing Data parallel programs with High Performance Fortran
  1964.              URL:  http://www.epcc.ed.ac.uk/epcc-tec/package.html
  1965.  
  1966.           Leicester
  1967.              URL:  ftp://ftp.star.le.ac.uk/pub/fortran/
  1968.  
  1969.  
  1970.  
  1971.        Books
  1972.        -----
  1973.  
  1974.    * in English,
  1975.  
  1976.        Adams, Brainerd, Martin, Smith.
  1977.           Fortran Top 90 - Ninety Key Features of Fortran 90,
  1978.           Unicomp, Sept. 1994.
  1979.  
  1980.        Adams, Brainerd, Martin, Smith, Wagener.
  1981.           Fortran 90 Handbook,
  1982.           McGraw-Hill, 1992.
  1983.           ISBN 0-07-000406-4
  1984.  
  1985.        Brainerd, W., Goldberg, and Adams.
  1986.           Programmer's guide to Fortran 90,
  1987.           2nd edition, Unicomp, 1994.
  1988.           ISBN 0-07-000248-7
  1989.  
  1990.        Chamberland, Luc.
  1991.           Fortran 90 : A Reference Guide,
  1992.           Prentice Hall.
  1993.           ISBN 0-13-397332-8.
  1994.  
  1995.        Chivers, I. and Sleightholme, J.
  1996.           Introducing Fortran 90,
  1997.           Springer-Verlag, Sept. 1995.
  1998.           ISBN 3-540-19940-3
  1999.           URL:  http://www.kcl.ac.uk/kis/support/cc/fortran/
  2000.  
  2001.        Counihan,
  2002.           Fortran 90,
  2003.           Pitman, 1991.
  2004.           ISBN 0-273-03073-6
  2005.  
  2006.        Einarsson, B., Shokins, Y.
  2007.           Fortran 90 for the Fortran 77 programmer
  2008.           HTML-book.
  2009.           URL:  http://www.nsc.liu.se/~boein/fortran.html
  2010.  
  2011.        Ellis, T.M.R, Lahey, T. and Philips, I.
  2012.           Fortran 90 Programming,
  2013.           Addison Wesley, 1994,
  2014.           ISBN 0-201-54446-6
  2015.           With examples in URL:
  2016.              ftp://aw.com/aw.computer.science/Ellis.F90
  2017.  
  2018.        Gehrke, W.
  2019.           Fortran 95 Language Guide,
  2020.           Springer-Verlag, 1996.
  2021.           ISBN 3-540-76062-8 (Softcover)
  2022.  
  2023.        Hahn, B.D., Edward Arnold.
  2024.           Fortran 90 for Scientists and Engineers,
  2025.           1994.
  2026.           ISBN 0-340-60034-9
  2027.  
  2028.        Kerrigan, J.
  2029.           Migrating to Fortran 90,
  2030.           O'Reilly and Associates, 1993 (2nd ed. Sept.94),
  2031.           ISBN 1-56592-049-X
  2032.           With examples in URL:
  2033.              ftp://uunet.uu.net/nutshell/fortran90/fortran90.tar.Z
  2034.  
  2035.        Charles H. Koelbel, David B. Loveman, Robert S. Schreiber,
  2036.           Guy L. Stelle Jr., Mary E. Zosel
  2037.           High Performance Fortran Handbook,
  2038.           MIT Press, 349 pages, 1994.
  2039.           ISBN 0-262-61094-9  $24.95 in paper back
  2040.           ISBN 0-262-11185-3  $45 for hard cover
  2041.  
  2042.        Mayo, W.E. and Cwiakala, M.
  2043.           Schaum's Outline of Theory and Praxis
  2044.           -- Programming in Fortran 90,
  2045.           Mc Graw Hill, 1996.
  2046.           ISBN 0-07-041156-5
  2047.  
  2048.        Meissner, L.
  2049.           Fortran90,
  2050.           PWS Kent, Boston, 1995.
  2051.           ISBN 0-534-93372-6
  2052.  
  2053.        Metcalf, M. and Reid, J.
  2054.           Fortran 90/95 Explained,
  2055.           Oxford University Press, 1996.
  2056.           ISBN 0-19-851888-9
  2057.  
  2058.        Metcalf, M. and Reid, J.
  2059.           The F programming Language,
  2060.           Oxford University Press, 1996.
  2061.           ISBN 0-19-850026-2
  2062.  
  2063.        Morgan and Schonfelder,
  2064.           Programming in Fortran 90,
  2065.           Alfred Waller Ltd., 1993.
  2066.           ISBN 1-872474-06-3
  2067.  
  2068.        Redwine, C.,
  2069.           Upgrading to Fortran 90,
  2070.           Springer, 1995
  2071.           ISBN 0-387-97995-6
  2072.  
  2073.        Schick W., Silverman Gordon,
  2074.           Fortran90 and engineering computations,
  2075.           John Wiley and sons, 1995
  2076.           ISBN 0-471-58512-2
  2077.  
  2078.        Smith, I.M.
  2079.           Programming in Fortran 90,
  2080.           Wiley,
  2081.           ISBN 0-471-94185-9
  2082.           With examples in URL:
  2083.              ftp://golden.eng.man.ac.uk/pub/fe/smithf90.zip
  2084.  
  2085.        Vowels, R.
  2086.           Introduction to Fortran 90/95, Algorithms and
  2087.           Structured Programming
  2088.           ISBN 0-9596384-8-2
  2089.           URL:  http://www.cs.rmit.edu.au/~rav/FORTRAN.html
  2090.  
  2091.  
  2092.    * in French,
  2093.  
  2094.  
  2095.        Aberti, C.
  2096.           Fortran 90: Initiation a partir du Fortran 77,
  2097.           S.I. E'ditions, 1992.
  2098.           ISBN 2-909615-00-6
  2099.  
  2100.        Ain, M.
  2101.           Savez-vous parler Fortran,
  2102.           Bibliotheque des universites (de Boeck), 1994.
  2103.           ISBN 2-8041-1755-3
  2104.  
  2105.        Delannoy, C.
  2106.           Programmer en Fortran 90,
  2107.           Eyrolles, 1992.
  2108.           ISBN 2-212-08723-3
  2109.  
  2110.        Dubesset, M. et Vignes, J.
  2111.           Les spe'cificites du Fortran 90,
  2112.           E'ditions Technip, 1993.
  2113.           ISBN 2-7108-0652-5
  2114.  
  2115.        Lignelet, P.
  2116.           Fortran 90: Approche par la Pratique,
  2117.           S.I. E'ditions, 1993.
  2118.           ISBN 2-909615-01-4
  2119.  
  2120.        Lignelet, P.
  2121.           Manuel complet du langage Fortran 90 et Fortran 95,
  2122.           Calcul intensif et ge'nie logiciel,
  2123.           Masson, 1996.
  2124.           ISBN 2-225-85229-4
  2125.  
  2126.        Lignelet, P.
  2127.           Structures de Donne'es (et leurs algorithmes) en Fortran 90/95
  2128.           Masson, 1996.
  2129.           ISBN 2-225-85373-8
  2130.           URL:  http://www.ifremer.fr/ditigo/molagnon/fortran90/livrepl2.html
  2131.  
  2132.        Metcalf, M. et Reid, J.
  2133.           (translated by M. Caillet and B. Pichon)
  2134.           Fortran 90: Les concepts fondamentaux,
  2135.           AFNOR Editions, 1993.
  2136.           ISBN 2-12-486513-7
  2137.  
  2138.        Olagnon, M.
  2139.           Traitement de donne'es nume'riques avec Fortran 90
  2140.           Masson, 1996.
  2141.           ISBN 2-225-85259-6
  2142.           URL:  http://www.ifremer.fr/ditigo/molagnon/livre.html
  2143.  
  2144.  
  2145.    * in Chinese,
  2146.  
  2147.  
  2148.        He Xingui, Xu Zuyuan, Wu Gingbao and Chen Mingyuan
  2149.           Programming Language FORTRAN 90,
  2150.           China Railway Publishing House, Beijing, 1994.
  2151.           ISBN 7-113-01788-6/TP.187
  2152.  
  2153.  
  2154.    * in German,
  2155.  
  2156.  
  2157.        Brainerd, W.S., Goldberg Ch.H., Adams J.C.,
  2158.           (translated by Peter Thomas and Klaus G. Paul)
  2159.           Fortran 90, Lehr- und Arbeitsbuch fuer das erfolgreiche Programmieren
  2160. ,
  2161.           R. Olbenbourg Verlag, Muenchen, 1994,
  2162.           ISBN 3-486-22102-7
  2163.  
  2164.        Gehrke.
  2165.           Fortran 90 Referenz-Handbuch,
  2166.           Carl Hansen Verlag, 1991.
  2167.           ISBN 3-446163-21-2
  2168.  
  2169.        Heisterkamp.
  2170.           Fortran 90: Eine Informelle Einfuehrung,
  2171.           BI-Wissenschaftsverlag, 1991.
  2172.           ISBN 3-411153-21-0
  2173.  
  2174.        Langer.
  2175.           Programmieren in Fortran,
  2176.           Springer Verlag, 1993.
  2177.           ISBN 0-387-82446-4
  2178.  
  2179.        Michel, T.
  2180.           Fortran 90 Lehr- und Handbuch,
  2181.           BI-Wissenschaftsverlag, 1994.
  2182.  
  2183.        Schobert, Oldenburg.
  2184.           Programmierung in Fortran 90,
  2185.           1991.
  2186.  
  2187.        Ueberhuber, C., Meditz, P.
  2188.           Software-Entwicklung in Fortran 90,
  2189.           Springer Verlag, 1993.
  2190.           ISBN 3-211-82450-2
  2191.  
  2192.        Wojcieszynski, B, Wojcieszynski, R.
  2193.           Fortran 90 Programmieren mit dem neuen Standard,
  2194.           Addison-Wesley, 1993.
  2195.           ISBN 3-89319-600-5
  2196.  
  2197.  
  2198.    * in Dutch,
  2199.  
  2200.  
  2201.        Brainerd, W.S., Goldberg Ch.H., Adams J.C.,
  2202.           (transl. by J.M. den Haan)
  2203.           Fortran 90,
  2204.           Academic Service, 1991.
  2205.           ISBN 90-6233-722-8
  2206.  
  2207.  
  2208.    * in Swedish,
  2209.  
  2210.  
  2211.        Blom, K.
  2212.           Fortran90 - en introduktion
  2213.           Studentlitteratur, Lund, 1994.
  2214.           ISN 91-44-47881-X
  2215.           URL:  http://www.studli.se/publishing/MBok/M004750/M004788/
  2216.                                                          T004788.html
  2217.  
  2218.        Einarsson, B., Shokins, Y.
  2219.           Fortran 90 for the Fortran 77 programmer
  2220.           HTML-book.
  2221.           URL:  http://www.nsc.liu.se/~boein/fortran.html
  2222.  
  2223.  
  2224.    * in Russian,
  2225.  
  2226.  
  2227.        Einarsson, B., Shokins, Y.
  2228.           Fortran 90 for the Fortran 77 programmer
  2229.           Printed book.
  2230.           URL:  http://www.nsc.liu.se/~boein/fortran.html
  2231.  
  2232.        Metcalf, Reid
  2233.           (translated by P.Gorbounov)
  2234.           Fortran 90 Explained.
  2235.           Mir Publishers, Moscow, 1995.
  2236.           ISBN 5-03-001426-8
  2237.           Russian customers: Mr. A.S.Popov, E-mail asp@mir.msk.su
  2238.           European residents: Petr.Gorbounov@cern.ch
  2239.  
  2240.  
  2241.  * in Japanese
  2242.  
  2243.  
  2244.        Metcalf, Reid
  2245.           (translated by H.Nisimura, H.Wada, K.Nishimura, M.Takata)
  2246.           Fortran 90 Explained,
  2247.           Kyoritsu Shuppan Co., Ltd., 1993
  2248.           ISSN 0385-6984.
  2249.  
  2250.  
  2251.        Articles
  2252.        --------
  2253.  
  2254.  
  2255.        Appleby, D.,
  2256.           FORTRAN First in a six-part series on languages
  2257.           that have stood the test of time
  2258.           -- BYTE, Sep. 1991, 147-150
  2259.  
  2260.        Baker, S.,
  2261.           Complying with Fortran90; How does the current crop
  2262.           of Fortran90 compilers measure up to the standard?
  2263.           -- Dr. Doff's Journal (Jan. 1995) p68-76
  2264.  
  2265.        Bernheim, M.,
  2266.           Fortran Mode d'emploi - Fortran 90
  2267.           -- Intereditions (1991) 163-176
  2268.  
  2269.        Brankin, R.W., Gladwell, I.,
  2270.           A Fortran 90 Version of RKSUITE: An ODE Initial Value Solver,
  2271.           -- Annals of Numerical Mathematics, Vol 1, 1994, in press.
  2272.  
  2273.        Buckley, A. G.,
  2274.           Conversion to Fortran 90: A Case Study
  2275.           -- ACM TOMS Vol20 n 3 Sept.1994 308-353
  2276.  
  2277.        Buckley, Albert G.,
  2278.           Algorithm 999: A Fortran 90 code for unconstrained
  2279.           non linear minimisation
  2280.           -- ACM TOMS Vol20 n 3 Sept.1994 354-372
  2281.           URL:  ftp://ftp.royalroads.ca/pub/software/bbuckley/alg999
  2282.  
  2283.        Chesneaux, J.M.,
  2284.           Description d'utilisation du logiciel CADNA_F
  2285.           -- MASI 92.32 (1992) Institut Blaise Pascal, Paris
  2286.  
  2287.        Corde, P., Girou, D.,
  2288.           Fortran 90: la nouvelle norme
  2289.           -- Tribunix Dossiers calculateurs, Vol 8. No. 41 (1992) 12-17
  2290.  
  2291.        Craig, C., Slishman G.,
  2292.           Variants of Matrix Multiplication for Fortran90
  2293.           -- SIGNUM Newsletter Vol 29 N 2 Apr. 1994 4-6
  2294.  
  2295.        Delves L.M, Schonfelder J.L, Craven P.
  2296.           Fortran90; an Overview
  2297.           -- Oct.1993 IASC
  2298.  
  2299.        Delves M,
  2300.           N.A Performance of Fortran90 Compilers
  2301.           -- Nov. 1994
  2302.  
  2303.        Digital Corporation,
  2304.           Evolving from Fortran77 towards Fortran90,
  2305.           -- Fall Decus 1993, San Francisco
  2306.  
  2307.        Dodson Z.,
  2308.           A Fortran90 Tutorial
  2309.           -- Nov.1993
  2310.  
  2311.        Dongarra, J., Du Croz J., Hammarling S., Wasniewski J., Zemla A.,
  2312.           LAPACK90 The Fortran90 Interface for LAPACK,
  2313.           -- PARA95, Copenhagen 1995
  2314.              Lecture Notes Springer Verlag, to be published.
  2315.  
  2316.        Du Croz, Jeremy J.,
  2317.           Building Libraries with Fortran 90
  2318.           -- Fortran Journal 4/5, Sep./Oct 1992
  2319.  
  2320.        Du Croz, J.
  2321.           The Nag Fortran90 library
  2322.           -- Nagua 14 april 1994 Oxford
  2323.  
  2324.        Gehrke, Wilhelm
  2325.           Fachwoerterliste Englisch-Deutsch fuer Fortran 90
  2326.           -- SPR.F90 2, RRZN, 18 pp., 1995
  2327.              URL:  http://www.rrzn.uni-hannover.de/Umdrucke/SPR.F90.2.ps
  2328.  
  2329.        Gehrke, Wilhelm
  2330.           Fortran 90-Syntax: Eisenbahnschienen-Diagramme
  2331.           -- SPR.F90 3, RRZN, 48 pp., 1994
  2332.              URL:  http://www.rrzn.uni-hannover.de/Umdrucke/SPR.F90.3.ps
  2333.  
  2334.        Gehrke, Wilhelm
  2335.           Fachwoerterliste Englisch-Deutsch fuer Fortran 95
  2336.           -- SPR.F95 2, RRZN, 19 pp., 1995
  2337.              URL:  http://www.rrzn.uni-hannover.de/Umdrucke/SPR.F95.2.ps
  2338.  
  2339.        Gehrke, Wilhelm
  2340.           Fortran 95-Syntax: Eisenbahnschienen-Diagramme
  2341.           -- SPR.F95 3, RRZN, 50 pp., 1995
  2342.              URL:  http://www.rrzn.uni-hannover.de/Umdrucke/SPR.F95.3.ps
  2343.  
  2344.        Glassy, L.,
  2345.           Tiny-Ninety: A subset of F90 for beginning programmers
  2346.           -- Fortran Journal 4/3, May/Jun. 1992, 2-6
  2347.  
  2348.        Hanson, R.J.,
  2349.           A design of high-performance Fortran 90 Libraries
  2350.           -- IMSL technical report series No. 9201 (1992)
  2351.  
  2352.        Hanson, R.J.,
  2353.           Operator and Function Modules with FORTRAN90
  2354.           -- VNI Technical Report series No 9305
  2355.  
  2356.        Hanson, R.J.,
  2357.           Matrix multiplication in Fortran 90 using Strassen's algorithm
  2358.           -- Fortran Journal 4/3, May/Jun. 1992, 6-7
  2359.  
  2360.        Hennecke, M.,
  2361.           A Fortran 90 interface to random Number Generation
  2362.           -- Computer Physics Communications, in press
  2363.              URL:  http://www.uni-karlsruhe.de/~Michael.Hennecke/
  2364.                                               Publications/#CPC95
  2365.  
  2366.        Iles, Robert,
  2367.           Fortran 90: The First Two Years
  2368.           -- Unicom Seminar on Fortran and C in Scientific Computing, 1993.
  2369.  
  2370.        Iles, R., Palant, L.,
  2371.           Fortran 90: 2 ans deja
  2372.           -- Tribunix No. 49 Mai/Juin 1993, 32-37.
  2373.  
  2374.        Hann, R.
  2375.           Nagware Fortran90 tools
  2376.           -- Nagua 14 april 1994 Oxford
  2377.  
  2378.        Hill J.M.D
  2379.           The high performance Fortran library in Fortran90: sorting
  2380.           -- Technical Report LPA7/TR02.9408 The London parallel
  2381.              applications center August 1994 (revise 9/1/1995)
  2382.  
  2383.        Joubert, A.W
  2384.           The high performance Fortran library in Fortran90: prefix
  2385.           and suffix scans
  2386.           -- Technical Report LPA7/TR01.9408 The London parallel
  2387.              applications center August 1994
  2388.  
  2389.        Kearfott, R.B
  2390.           Algorithm 737: INTLIB: A Portable Fortran77 Interval
  2391.           Standard-Function Library
  2392.           -- ACM TOMS Vol20 n% 4, Dec. 1994 447-459
  2393.  
  2394.        Kearfott, R.B
  2395.           A Fortran 90 environment for research and prototyping of
  2396.           enclosure algorithms for canstrained and unconstrained
  2397.           non linear equations
  2398.           -- ACM TOMS Vol 21, 1 , Juin 1995 63-78
  2399.  
  2400.        Lahey, T.,
  2401.           Fortran 90 is coming !
  2402.           -- Programmer's Journal, Mar/Apr 1991.
  2403.  
  2404.        Lignelet, P.,
  2405.           Fortran -- Les Techniques de l'ingenieur,
  2406.           -- H2120, Dec 1993.
  2407.  
  2408.        Mc Calpin, John D.
  2409.           Optimization of Fortran90 array notation : A Case Study
  2410.           -- Internal report College of Marine Studies, Univ. of
  2411.              Delaware submitted to "Scientific Programming" Jan. 1995
  2412.              URL:  ftp://(perelandra.cms.udel.edu:/models/Papers/f90.ps
  2413.  
  2414.        Maine, R.,
  2415.           Review of NAG Fortran 90 translator
  2416.           -- Fortran Journal 3/6, Nov/dec 1991.
  2417.  
  2418.        Marshall,A.C,
  2419.           Comparison between Sun, EPC and NAg Fortran 90 Compilers
  2420.           -- The University of Liverpool (Dec. 1996).
  2421.              URL:  http://www.liv.ac.uk/HPC/FortranCompilerStudyHTML/
  2422.                                         FortranCompilerStudyHTML.html
  2423.  
  2424.        Marshall,A.C,
  2425.           Fortran 90 derived types, User defined operators, Modules
  2426.           and Object Oriented Facilities
  2427.           -- The University of Liverpool BCS seminar 1994
  2428.              (12 Sep. 1992), 30-33
  2429.  
  2430.        Metcalf, M.,
  2431.           Recent progress in Fortran standardization
  2432.           -- Computer Physics Communications 57 (1989) 78-83.
  2433.  
  2434.        Metcalf, M.,
  2435.           Fortran 90 - A summary
  2436.           -- Int. Journal of modern Physics C, Vol. 1,
  2437.              Nos. 2&3 (1990) 193-206.
  2438.  
  2439.        Metcalf, M.,
  2440.           A derived data type for data analysis
  2441.           -- Computers in Physics, Nov/Dec 1991, 599-604.
  2442.  
  2443.        Metcalf, M.,
  2444.           A first encounter with Fortran 90
  2445.           -- Fortran Journal 4/1, Jan/Feb 1992, 2-7.
  2446.  
  2447.        Metcalf, M.,
  2448.           An encounter with F90
  2449.           -- Particle World 3/3 (1993), 130-134.
  2450.  
  2451.        Metcalf, M.,
  2452.           Fortran 90 Tutorial
  2453.           -- CERN Computer Newsletter,
  2454.              Nos. 206/207/208/209/210/211 (1992-1993).
  2455.  
  2456.        Metcalf, M.,
  2457.           Using the f90 compiler as a software tool
  2458.           -- CERN Computer Newsletter, No. 209 (1992).
  2459.  
  2460.        Metcalf, M.,
  2461.           Still programming after these years
  2462.           -- New Scientist, (12 Sep. 1992), 30-33
  2463.  
  2464.        Morgan, S.,
  2465.           Fortran90 An outline of the ISO standard
  2466.           -- BCS seminar 1994
  2467.  
  2468.        Olagnon, M.,
  2469.           Experience with NagWare f90
  2470.           -- Fortran Journal 4/6, Nov/dec 1992, 2-5.
  2471.  
  2472.        Olagnon, M.,
  2473.           f90ppr A Fortran90 Pre-processor A Fortran 90 Pretty- printer,
  2474.           -- Fortran Journal  Vol 7 n2 Mar/Apr 1995 pp8-14
  2475.  
  2476.        de Polignac, Christian,
  2477.           Du Fortran VAX au Fortran 90
  2478.           -- Decus, Paris, 7 Avril 1993.
  2479.  
  2480.        de Polignac, Christian,
  2481.           Interfacing a Fortran77 multiple precision package
  2482.           using Fortran90
  2483.           -- Nagua, Oxford, 14 april 1994.
  2484.  
  2485.        Prentice, John K.,
  2486.           Fortran 90 benchmark results
  2487.           -- Fortran Journal 5/3, May/June 1993.
  2488.  
  2489.        Prentice, John K.,
  2490.           Performance benchmarks for Fortran90 compilers
  2491.           -- Mathematech Vol1 n1 1994, 66-73
  2492.  
  2493.        Prentice, John K., Ameko, A.K.,
  2494.           Performance benchmarks for selected Fortran90 compilers
  2495.           (to appear in Fortran Journal)
  2496.  
  2497.        Reid, John,
  2498.           The Fortran 90 Standard -- Programming environments for
  2499.           high level scientific problem solving,
  2500.           -- Gaffney ed., IEEE Trans., North-Holland (1992), 343-348.
  2501.  
  2502.        Reid, John,
  2503.           Fortran 90, the language for scientific computing in
  2504.           the 1990s
  2505.           -- Unicom Seminar on Fortran and C in Scientific Computing, 1992
  2506.  
  2507.        Reid, John,
  2508.           The advantages of Fortran 90
  2509.           -- Computing 48, 219-238.
  2510.  
  2511.        Reid, John.
  2512.           Fortran90: the future
  2513.           -- Nagua 14 april 1994 Oxford
  2514.  
  2515.        de Roeck, Yann-Herve, Plessix, Rene-Edouard,
  2516.           Combining F90 and PVM to construct synthetic seismograms
  2517.           by ray-tracing
  2518.           -- proc. IEEE Oceans 94.
  2519.  
  2520.        Robin, F.,
  2521.           Fortran 90 et High Performance Fortran,
  2522.           -- Bulletin technique CEA, Oct. 1992, 3-7.
  2523.  
  2524.        Sawyer, M.,
  2525.           A summary of Fortran 90
  2526.           -- EPCC-TN92-04, Univ. of Edinburgh, (1992).
  2527.  
  2528.        Schonfelder, J.L.,
  2529.           Semantic extension possibilities in the proposed
  2530.           new Fortran
  2531.           -- Software practice and experience, Vol.19, (1989), 529-551.
  2532.  
  2533.        Schonfelder, J.L., Morgan, J.S.,
  2534.           Dynamic strings in Fortran 90
  2535.           -- Software practice and experience, Vol.20(12), (1990), 1259-1271.
  2536.  
  2537.        Schonfelder, J.L.
  2538.           High Performance Fortran and Fortran95
  2539.           -- University of Liverpool Nov. 1994
  2540.  
  2541.        Scott, Kilpatrick and Maley
  2542.           The formal specification of abstract data types and their
  2543.           implementation in Fortran 90
  2544.           -- Computer Physics Communications 84 (1994) 201-225.
  2545.  
  2546.        Sipelstein, J.M., Blelloch, G.E.,
  2547.           Collection-oriented languages
  2548.           -- Proceedings of the IEEE, Vol. 79, No. 4, (1991), 504-530.
  2549.  
  2550.        Vignes, Jean,
  2551.           Vers un calcul scientifique fiable : l'arithmetique stochastique
  2552.           -- La Vie des Sciences, Comptes rendus, serie generale,
  2553.              tome 10, 1993, No 2, 81-101.
  2554.  
  2555.        Vignes, Jean,
  2556.           A stochastic arithmetic for reliable scientific computation
  2557.           -- MATCOM 940 - Mathematics and Computers in Simulation
  2558.              35 (1993) 233-261.
  2559.  
  2560.        Walker, D.W.,
  2561.           A Fortran 90 code for magnetohydrodynamics.
  2562.           Part I: banded convolution
  2563.           -- Oak Ridge National Lab. report TM-12032 (1992).
  2564.  
  2565.        Walter, W.,
  2566.           Fortran 90: Was bringt der neue Fortran-Standard fuer das
  2567.           numerische Programmieren ?
  2568.           -- Jahrbuch Ueberblicke Mathematik Vieweg, (1991) 151-174.
  2569.  
  2570.        Walter W.V
  2571.           Fortran XSC: A portable Fortran90 module library for accurate
  2572.           and reliable scientific computing
  2573.           -- Computing Supplementum 9, 265-286
  2574.  
  2575.        Wampler, K. Dean,
  2576.           The Object-Oriented programming Paradigm and Fortran programs
  2577.           -- Computers in Physics, Jul/Aug 1990, 385-394.
  2578.  
  2579.        Ward, T.
  2580.           The world's first Fortran90 compiler.
  2581.           -- PROGRAM NOW March 1992, 67-69
  2582.  
  2583.        Willhoft, Robert G.,
  2584.           Comparison of the functional Power of APL2 and Fortran 90
  2585.           -- APL Quote Quad, 1991
  2586.  
  2587.        Fortran90 at NAS: Perceptions and plans
  2588.           -- RND-93-001
  2589.              URL:  http://www.nas.nasa.gov/NAS/TechReports/
  2590.  
  2591.  
  2592.  
  2593.        3.6 - Other places for Help on Fortran 90
  2594.        -----------------------------------------
  2595.  
  2596.        Fortran 90 Tutorials:
  2597.           http://wwwcn.cern.ch/asdoc/f90.html
  2598.  
  2599.        Programmer's Guide to Fortran 90:
  2600.           http://www.fortran.com/fortran/Books/gd.html
  2601.  
  2602.        Fortran Market:
  2603.           http://www.fortran.com/fortran/market.html
  2604.  
  2605.        Karlsruhe University:
  2606.           http://www.uni-karlsruhe.de/~Fortran90/
  2607.  
  2608.        King's College London:
  2609.           http://www.kcl.ac.uk/kis/support/cc/fortran/f90home.html
  2610.  
  2611.        Fortran FAQ:
  2612.           http://www.cis.ohio-state.edu/hypertext/faq/usenet/
  2613.                                          fortran-faq/faq.html
  2614.  
  2615.        Fortran90 interface modules for INTLIB interval computations:
  2616.           ftp://interval.usl.edu/pub/interval_math/www/kearfott.html
  2617.  
  2618.        FTP-able fortran90 Tutorial from ftp.cs.unm.edu:
  2619.           ftp://ftp.cs.unm.edu/pub/smith-quetzal/Fortran90_Tutorial/
  2620.  
  2621.        Free Software:
  2622.           http://www.fortran.com/fortran/free.html
  2623.  
  2624.        How to get Fortran 90 Standard documentation:
  2625.           http://www.fortran.com/fortran/iso1539.html
  2626.  
  2627.        Free Code - At Lahey:
  2628.           http://www.lahey.com/other.htm
  2629.  
  2630.        Free Compilers/tools List - At Cern:
  2631.           http://cuiwww.unige.ch/cgi-bin/freecomp
  2632.  
  2633.        Programming Languages research - At Indiana University:
  2634.           http://www.cs.indiana.edu/inds/proglang.html
  2635.  
  2636.        Other languages - At CMU:
  2637.           http://www.cs.cmu.edu/Web/computing.html#language
  2638.  
  2639.        - At UNM:
  2640.           http://www.arc.unm.edu/workshop/fortran90/f90-7.html
  2641.  
  2642.        - The F programming language:
  2643.           http://www.imagine1.com/imagine1/
  2644.  
  2645.  
  2646.  
  2647.    4.0 - Fortran 90 Benchmarking
  2648.    -----------------------------
  2649.  
  2650.        An interesting article by John K. Prentice appeared in the
  2651.        May/June 93 issue of Fortran Journal.
  2652.        He also gave a new one in the Nov/Dec 94 issue.
  2653.  
  2654.        I made some tests myself with LAPACK, and got a ratio of 10
  2655.        between Sun f77 and Nag f90 2.0 when no source change was performed.
  2656.        With an aggressive rewriting, especially using array instructions
  2657.        and intrinsics, the ratio gets down to 2, which is also that of a
  2658.        f77 [sd]axpy to a C one.
  2659.  
  2660.        On actual applications, this ratio seems to be much closer to 1,
  2661.        and even sometimes in favor of Fortran 90.
  2662.        On Sept. 7th, 1993, John wrote "I think there is in fact beginning
  2663.        to be a quite large body of evidence to suggest that most of the
  2664.        efficiency fears about F90 are unfounded."
  2665.  
  2666.        For Nag f90 on workstations, the effect of the underlying C
  2667.        compiler (gcc, vendor, etc...) seems very limited (less than 4%).
  2668.  
  2669.        With more recent F90 compilers, performance seems at least as good
  2670.        and often better than with the corresponding F77 compiler, for old
  2671.        F77 code. For instance, Lahey reports improvement from 8.5 to 14.1
  2672.        Mflops with linpack on a pentium between EM/32 and their F90 compiler.
  2673.  
  2674.  
  2675.  
  2676.    5.0 Announced, foreseen, and rumours
  2677.    ------------------------------------
  2678.  
  2679.        F: a carefully crafted subset of Fortran 90, meant for both
  2680.           teachers and professional programmers, by Imagine1 Inc.,
  2681.           NAG Inc., Fujitsu Limited, and Absoft Corp.
  2682.           F will be available on Unix and Linux platforms, the 68k
  2683.           or PowerPC Macintosh, and PCs running either Windows 95
  2684.           or Windows NT.
  2685.  
  2686.        FORTNER Research (formerly Laguage Systems Corp) expects to
  2687.           deliver f90 for Macintoshes in 1996.
  2688.  
  2689.        Digital Windows NT (Alpha) compiler
  2690.           URL:  http://www.digital.com/info/hpc/f90
  2691.  
  2692.  
  2693.        MATLAB compatibility with PowerStationFortran 90 (1st quarter 96)
  2694.  
  2695.  
  2696.  
  2697.    6.0 Workshops, seminars, conferences
  2698.    ------------------------------------
  2699.  
  2700.        SEL-HPC:
  2701.           the London and South-East centre for High Performance Computing
  2702.           URL:  http://www.lpac.ac.uk/SEL-HPC/
  2703.  
  2704.        NAG Seminars:
  2705.           URL:  http://www.nag.co.uk/other/seminars.html
  2706.  
  2707.  
  2708.  
  2709.    7.0 - Developments, related languages
  2710.    -------------------------------------
  2711.  
  2712.        7.1 - Standard
  2713.        --------------
  2714.  
  2715.        Work did not stop with the publication of the Fortran 90 standard.
  2716.        A new release is scheduled for 1996 (called 95), mainly devoted to
  2717.        clarifications, corrections and interpretations. It is currently
  2718.        being circulated as a draft for comments. A more important
  2719.        revision is scheduled for 2000 (or 2001 ? called F2k though C.Burley's
  2720.        F00 is a pleasant alternative).
  2721.  
  2722.        Some interim features are to be processed as "technical reports" and
  2723.        incorporated in the next major upgrade, now known as "Fortran 2000"
  2724.        and planned for release around the year 2000. The features for which
  2725.        interim technical reports have been proposed are the following:
  2726.  
  2727.           o  Floating-point exception handling
  2728.           o  Interoperability with C
  2729.           o  Parammeterized derived types and allocatable components
  2730.  
  2731.        However, the last of these lacks support in some quarters.
  2732.  
  2733.        The ISO working group devoted to the evolution of Fortran is WG5.
  2734.  
  2735.           URL:  http://www.etrc.ox.ac.uk/wg5.html
  2736.  
  2737.        Inputs are received from the National bodies (X3J3 in the USA).
  2738.        Documents related to the work of X3J3 can be found via anonymous
  2739.        ftp on ftp.ncsa.uiuc.edu, directory x3j3.
  2740.  
  2741.  
  2742.        7.2 - HPF
  2743.        ---------
  2744.  
  2745.        High Performance Fortran (HPF) is a language for programming
  2746.        massively parallel architectures. It lets the user insert
  2747.        directives for code and data distribution among the processors
  2748.        in the (Fortran 90) code.
  2749.  
  2750.           URL:  http://www.erc.msstate.edu/hpff/home.html
  2751.  
  2752.        Electronic copies of HPF draft specification are available by
  2753.        anonymous FTP from the following sources:
  2754.  
  2755.           Machine name            File name
  2756.           ---------------------   ----------------------------------------
  2757.           titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar
  2758.           titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar.Z
  2759.           titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps
  2760.           titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps.Z
  2761.           think.com               public/HPFF/hpf-v10-final.ps.Z
  2762.           ftp.gmd.de              hpf-europe/hpf-v10-final.ps.Z
  2763.           theory.tc.cornell.edu   pub/hpf-v10-final.ps.Z
  2764.           minerva.npac.syr.edu    public/hpf-v10-final.tar.Z
  2765.  
  2766.  
  2767.        on-line tutorial from University of Liverpool:
  2768.           URL:  http://www.liv.ac.uk/HPC/HTMLFrontPageHPF.html
  2769.  
  2770.        course on HPF is freely available from Edinburgh:
  2771.           URL:  http://www.epcc.ed.ac.uk/epcc-tec/course-packages/
  2772.                                              HPF-Package-form.html
  2773.  
  2774.        Other sources of information:
  2775.  
  2776.           Karlsruhe University:
  2777.              http://www.uni-karlsruhe.de/~HPF/
  2778.  
  2779.           Liverpool University:
  2780.              http://www.liv.ac.uk/HPC/HPCpage.html
  2781.  
  2782.           www.lpac.ac.uk/SEL-HPC:
  2783.              http://www.lpac.ac.uk/SEL-HPC/
  2784.  
  2785.  
  2786.        7.3 - PVM
  2787.        ---------
  2788.  
  2789.        Parallel Virtual Machine consists of a library and a run-time
  2790.        environment which allow the distribution of a program over a network
  2791.        of (even heterogeneous) computers. It works with Fortran 77,
  2792.        C and to some extent Fortran 90. One can refer to the article
  2793.        by Y-H de Roeck and R-E Plessix, and a set of example wrapper
  2794.        routines for the PVM calls is available as:
  2795.  
  2796.           URL:  ftp://ftp.ifremer.fr/ifremer/ditigo/fortran90/pvm2f90.tar.gz
  2797.  
  2798.        There is a usenet comp.parallel.pvm group, and the FAQ for it
  2799.        can be found via anonymous ftp on:
  2800.  
  2801.           host:       rtfm.mit.edu
  2802.           directory:  /pub/usenet/comp.parallel.pvm
  2803.  
  2804.  
  2805.        7.4 - MPI
  2806.        ---------
  2807.  
  2808.        MPI (Message Passing Interface) is the standard for multicomputer
  2809.        and cluster message passing introduced by the Message Passing
  2810.        Interface Forum in April 1994.
  2811.  
  2812.           URL:  http://www.erc.msstate.edu/mpi/
  2813.  
  2814.  
  2815.        7.5 - Parallel Programming
  2816.        --------------------------
  2817.  
  2818.        An interesting report can be obtained via anonymous ftp on:
  2819.  
  2820.          host:      bulldog.wes.army.mil
  2821.          directory: pub/
  2822.          file:      report.ps.Z
  2823.  
  2824.        for a large review of products related to parallel systems
  2825.        programming.
  2826.  
  2827.  
  2828.  
  2829.    8.0 - Addresses
  2830.    ---------------
  2831.  
  2832.        3ip,
  2833.           104, rue Castagnary,
  2834.           F-75015 Paris, France
  2835.           tel:  +33 1 48 56 23 33,
  2836.           fax:  +33 1 48 56 23 44
  2837.  
  2838.        Absoft,
  2839.           2781 Bond Street Rochester Hills,
  2840.           MI 48309 USA
  2841.           URL:    http://www.absoft.com
  2842.           tel:    (810) 853-0050 ,
  2843.           Fax:    (810) 853-0108
  2844.           email:  fortran@absoft.com
  2845.  
  2846.        ACE,
  2847.           Van Eeghenstraat 100,
  2848.           1071 Gl Amsterdam, Netherlands
  2849.           URL:  http://www.ace.nl/
  2850.           tel:  +31 20 6646416,
  2851.           fax:  +31 20 6750389
  2852.  
  2853.        AERO, Mr. Berthon,
  2854.           3 av. de l'opera. F-75001 Paris,
  2855.           France
  2856.           tel:  +33 1 44 55 30 80,
  2857.           fax:  +33 1 40 15 95 54
  2858.  
  2859.        AFNOR,
  2860.           Tour Europe,
  2861.           Cedex 7,
  2862.           F-92049 Paris la Defense,
  2863.           France
  2864.           tel:  +33 1 42 91 55 55
  2865.  
  2866.        Apogee Software Inc.,
  2867.           1901 S.Bascom Ave.,
  2868.           Suite 325,
  2869.           Campbell,
  2870.           CA 95008-2207, USA
  2871.           URL:    http://www.apogee.com/
  2872.           tel:    (408) 369-9001,
  2873.           fax:    (408) 369-9018,
  2874.           email:  info@apogee.com
  2875.  
  2876.        Applied Parallel Research, Inc.,
  2877.           550 Main St.,
  2878.           Placerville,
  2879.           CA 95667
  2880.           URL:    http://ftp.netcom.com/pub/forge/home.html
  2881.           tel:    (916) 621-1600,
  2882.           fax:    (916) 621-0593,
  2883.           email:  support@apri.com
  2884.  
  2885.        CETech, Inc.,
  2886.           8196 SW Hall Blvd.,
  2887.           Ste. 304, Beaverton,
  2888.           Oregon 97008, USA.
  2889.           tel:    (503) 644-6106,
  2890.           fax:    (503) 643-8425,
  2891.           email:  cetech@teleport.com
  2892.  
  2893.        Cray Research,Inc.,
  2894.           655 Lone Oak Drive,
  2895.           Eagan, MN  55121
  2896.           URL:  http://www.cray.com/
  2897.  
  2898.        CTS,
  2899.           Prinz-Otto Str. 7c,
  2900.           D-85521 Ottobrunn,
  2901.           Germany
  2902.           tel:  +49 89 6083758,
  2903.           fax:  +49 89 6083758
  2904.  
  2905.        DEC (Digital Equipment Corporation)
  2906.           URL:    http://www.digital.com/info.html
  2907.           email:  f90@digital.com
  2908.  
  2909.           DEC Fortran 90 home page:
  2910.              http://www.digital.com/info/hpc/f90
  2911.  
  2912.        EPC,
  2913.           17 Alva St. Edinburgh,
  2914.           EH2 4PH, United Kingdom
  2915.           URL:    http://www.epc.co.uk/
  2916.           tel:    +44-31-225-6262,
  2917.           fax:    +44-31-225-6644,
  2918.           email:  support@epc.ed.ac.uk
  2919.  
  2920.        EPC,
  2921.           20 Victor Square,
  2922.           Scotts Valley,
  2923.           California 95066
  2924.           tel:    (408) 438-1851,
  2925.           fax:    (408) 438-3510,
  2926.           email:  info@epc.com
  2927.  
  2928.        Fortran Journal,
  2929.           P.O. Box 4201,
  2930.           Fullerton,
  2931.           CA 92634, USA
  2932.           fax:  (714) 441-2022
  2933.  
  2934.        Fujitsu Open Systems Solutions, Inc.,
  2935.           3055 Orchard Drive,
  2936.           San Jose,
  2937.           CA 95134 USA
  2938.           URL:    http://www.fortran.com/fortran/Fujitsu/fuji.html
  2939.           tel:    (408) 456-7809,
  2940.           fax:    (408) 456-7050,
  2941.           email:  info@ossi.com
  2942.  
  2943.        Garnatz et Grovender Inc.,
  2944.           5301 26th Avenue South,
  2945.           Mineapolis MN 55417-1923 USA
  2946.           tel:    (612) 722-3094,
  2947.           email:  gginc@winternet.com
  2948.  
  2949.        HP
  2950.           URL:  http://www.hp.com/go/workstations
  2951.  
  2952.        IBM
  2953.           URL:  http://www.torolab.ibm.com:80/ap/fortran/xlfortran/
  2954.  
  2955.        ICHOR,
  2956.           27 rue Linne,
  2957.           F-75005 Paris,
  2958.           France
  2959.           tel:  +33 1 43 37 02 02
  2960.  
  2961.        IDRIS,
  2962.           B.P. 167,
  2963.           F-91403 Orsay Cedex,
  2964.           France
  2965.  
  2966.        Imagine1,
  2967.           11930 Menaul Blvd. NE,
  2968.           Suite #106, Albuquerque,
  2969.           NM 87112, USA
  2970.           URL:    http://www.imagine1.com/imagine1
  2971.           fax:    (505) 323-1759,
  2972.           tel:    (505) 323-1758,
  2973.           email:  info@imagine1.com
  2974.  
  2975.        ISO,
  2976.           1 rue de Varembe,
  2977.           Case postale 56,
  2978.           CH-1211 Geneve 20,
  2979.           Switzerland
  2980.           fax:  +41 22 734 10 79
  2981.  
  2982.        Interactive Software Services Ltd.,
  2983.           25 St Michaels Close,
  2984.           Penkridge,
  2985.           Stafford ST19 5AD, UK
  2986.           tel:    +44 1785 715588,
  2987.           fax:    +44 1785 714913,
  2988.           email:  support@issltd.demon.co.uk
  2989.  
  2990.        IT Independent Training Limited,
  2991.           113 Liscombe,
  2992.           Birch Hill, Bracknell,
  2993.           Berkshire, RG12 7DE, UK
  2994.           tel:  +44 344 860172,
  2995.           fax:  +44 344 867992
  2996.  
  2997.        KAI (Kuck & Associates),
  2998.           Champaign, IL USA
  2999.           tel:    (217) 356-2288,
  3000.           fax:    (217) 356-5199,
  3001.           email:  katy@kai.com
  3002.  
  3003.        Lahey Computer Systems, Inc.,
  3004.           865 Tahoe Blvd.,
  3005.           P.O. Box 6091,
  3006.           Incline Village,
  3007.           NV 89450, USA
  3008.           URL:    http://www.lahey.com/
  3009.           tel:    (702) 831-2500,
  3010.           fax:    (702) 831-8123,
  3011.           email:  sales@lahey.com
  3012.  
  3013.        Microsoft
  3014.           URL:  http://www.microsoft.com/fortran
  3015.  
  3016.        Microway,
  3017.           Research Park, Box 79,
  3018.           Kingston, MA 02364, USA
  3019.           tel:    (508) 746-7341,
  3020.           fax:    (508) 746-4678,
  3021.           email:  nina@microway.com
  3022.  
  3023.        NA Software Ltd,
  3024.           Roscoe House,
  3025.           62 Roscoe St.,
  3026.           Liverpool L1 9DW, UK
  3027.           tel:    +44 51 7094738,
  3028.           fax:    +44 51 7095645,
  3029.           email:  f90doc@nasoftwr.demon.co.uk
  3030.  
  3031.        NAG Ltd.,
  3032.           Wilkinson House,
  3033.           Jordan Hill Road,
  3034.           Oxford, OX2 8DR, UK
  3035.           URL:    http://www.nag.co.uk/
  3036.           tel:    +44 1865 311744,
  3037.           fax:    +44 1865 311755,
  3038.           email:  infodesk@nag.co.uk
  3039.  
  3040.        NAG Inc.,
  3041.           1400 Opus Place,
  3042.           Suite 200, Downers Grove,
  3043.           IL 60515-5702, USA
  3044.           tel:    (708) 971-2345,
  3045.           fax:    (708) 971-2346,
  3046.           email:  infodesk@nag.com
  3047.  
  3048.        NAG GmbH.,
  3049.           Schleissheimerstr. 5,
  3050.           D-85748 Garching, Germany
  3051.           tel:  +49 89 3207395,
  3052.           fax:  +49 89 3207396
  3053.  
  3054.        NAG Office,
  3055.           Espace III,
  3056.           62 Boulevard Frederic Arnaud,
  3057.           09200 Saint Girons
  3058.           (Toulouse, France)
  3059.  
  3060.        NAG Users Association,
  3061.           PO Box 426,
  3062.           Oxford, OX2 8SD, UK
  3063.           tel:    +44 1865 311102,
  3064.           fax:    +44 1865 310139,
  3065.           email:  nagua@nag.co.uk
  3066.  
  3067.        Pacific-Sierra Research Corp.,
  3068.           2901 28th Street,
  3069.           Santa Monica, CA 90405
  3070.           URL:    http://www.psrv.com
  3071.           tel:    (310) 314-2300,
  3072.           fax:    (310) 314-2323,
  3073.           email:  info@psrv.com
  3074.  
  3075.        ParaSoft Corporation,
  3076.           2500 E. Foothill Blvd,
  3077.           Pasadena, CA 91107, USA
  3078.           tel:    (818) 792-9941,
  3079.           email:  f90-info@parasoft.com
  3080.  
  3081.        PGI, The Portland Group,
  3082.           9150 S.W Pioneer Ct.,
  3083.           Suite H Wilsonville,
  3084.           OR 97070 ,USA
  3085.           URL:    http://www.pgroup.com/
  3086.           tel:    (503) 682-2806,
  3087.           fax:    (503) 682-2637
  3088.           email:  sales@pgroup.com
  3089.  
  3090.        Quetzal Computational Associates,
  3091.           3200 Carlisle N.E.,
  3092.           Albuquerque,
  3093.           NM 87110-1664, USA
  3094.           tel:    (505) 889-4543,
  3095.           fax:    (505) 889-4598,
  3096.           email:  quetzal@aip.org
  3097.  
  3098.        Salford Software,
  3099.           Adelphi House, Adelphi Street,
  3100.           Salford M3 6EN, UK
  3101.           tel:    +44 161 8342148,
  3102.           fax:    +44 161 8342454,
  3103.           email:  sales@salfsoft.demon.co.uk
  3104.  
  3105.        S.I. editions,
  3106.           9 av. Prince Hereditaire Albert,
  3107.           MC-98000, Monaco
  3108.           tel:  +33 92 05 35 51,
  3109.           fax:  +33 92 05 35 04
  3110.  
  3111.        Simulog,
  3112.           1 rue James Joule,
  3113.           F-78286 Guyancourt Cedex, France
  3114.           tel:    +33 1 30 12 27 00,
  3115.           fax:    +33 1 30 12 27 27,
  3116.           email:  plestan@simulog.fr  (Mr. E. Plestan)
  3117.  
  3118.        Spackman & Hendrickson, Inc.,
  3119.           13708 Krestwood Drive,
  3120.           Burnsville,
  3121.           MN 55337,  USA
  3122.           tel:  (612) 892-5847,
  3123.           fax:  (612) 892-5844
  3124.  
  3125.        Sun Micro Systems
  3126.           URL:  http://www.sun.com/
  3127.  
  3128.        Unicom Seminars Ltd.,
  3129.           Brunel Science Park,
  3130.           Cleveland Road, Uxbridge,
  3131.           Middlesex, UB8 3PH, UK
  3132.           URL:    http://www.demon.co.uk/unicom/
  3133.           tel:    +44 895 256484,
  3134.           fax:    +44 895 813095,
  3135.           email:  unicom@unicom.demon.co.uk
  3136.  
  3137.        Unicomp, Inc.,
  3138.           1874 San Bernardino Ave NE,
  3139.           Albuquerque, NM 87122, USA
  3140.           tel:    (505) 275-0800,
  3141.           fax:    (505) 856-1501,
  3142.           email:  walt@fortran.com
  3143.  
  3144.        Visual Numerics,
  3145.           URL:    http://www.vni.com/
  3146.           email:  mktg@houston.vni.com
  3147.  
  3148.  
  3149.        I am always pleased to receive informations.
  3150.        Thanks to all those who sent some to me, and that I can not cite
  3151.        all because I lost some of their names and addresses :-)
  3152.  
  3153.        Michel
  3154.  
  3155.  
  3156.        | Michel OLAGNON            | email : Michel.Olagnon@ifremer.fr  |
  3157.        | Centre de Brest - B.P. 70 | phone : +33 2 98 22 41 44          |
  3158.        | F-29280 PLOUZANE - FRANCE | fax   : +33 2 98 22 41 35          |
  3159.        | WWW: http://www.ifremer.fr/ditigo/molagnon/molagnon.html       |
  3160.  
  3161.        IFREMER: Institut Francais de Recherches pour l'Exploitation de la Mer
  3162.  
  3163.           URL:  http://www.ifremer.fr
  3164.  
  3165.        De'partement Ge'nie Oce'anique
  3166.  
  3167.           URL:  http://www.ifremer.fr/ditigo/ditigo.uk.html
  3168.  
  3169.        Cellule Oce'ano-Me'te'o
  3170.  
  3171.           URL:  http://www.ifremer.fr/ditigo/com/com.html
  3172.  
  3173.  
  3174.    __________________________________________________________________________
  3175.                                        
  3176.  
  3177.  
  3178. 1.3.2) Fortran Market
  3179.  
  3180.        ------------------------------------------
  3181.        ~Subject: (SC22WG5.609) Fortran Market/WWW
  3182.        ------------------------------------------
  3183.  
  3184.        I hope all of you will be pleased to learn that the Fortran Market
  3185.        has established itself on the World Wide Web.  Our goal is nothing
  3186.        short of providing one place to find all information, products,
  3187.        and services related to Fortran.  The URLs are:
  3188.  
  3189.           http://www.fortran.com/fortran/market.html
  3190.           http://www.fortran.com/walt/fortran
  3191.  
  3192.        The Market is under construction (and probably always will be),
  3193.        but there is already some free software available (just some
  3194.        simple, but perhaps useful, things so far).  There are pointers
  3195.        to other locations containing relevant information, so you now
  3196.        need to remember only one place to find it all.  Much more
  3197.        information, particularly about products and servies will be
  3198.        available in the near future, but I thought you might want to
  3199.        have a Sneak Preview of what things will look like.
  3200.  
  3201.        Come visit the Market and let me know what you think of it.
  3202.  
  3203.           Thanks. <walt>
  3204.  
  3205.  
  3206.  
  3207.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3208.  
  3209.  
  3210.  
  3211. 2.1) Compilers and preprocessors
  3212.  
  3213.  
  3214. 2.1.1) Where can I get a free (FORTRAN 77) compiler?
  3215.  
  3216.        There are few such in wide distribution:
  3217.  
  3218.           o  f2c + any C compiler
  3219.           o  f2c combined with djgpp
  3220.           o  A combination of (f2cx + gcc + djgpp extender)
  3221.           o  GNU's g77
  3222.           o  BC-F77
  3223.  
  3224.  
  3225. ;; One such is f2c:
  3226.  
  3227.        -----------------------------------------
  3228.        ~From: mwm@a.gp.cs.cmu.edu (Mark Maimone)
  3229.        -----------------------------------------
  3230.  
  3231.        Since there have been several requests for a Fortran to C translator
  3232.        in the past week, I'm reposting the announcement about f2c.
  3233.        The short answer is you can get f2c by anonymous ftp
  3234.        from:
  3235.  
  3236.           host:       netlib.att.com
  3237.           directory:  dist/f2c.
  3238.  
  3239.        -----------------------------------------------------------------
  3240.  
  3241.        Source for f2c, a Fortran 77 to C translator jointly developed by
  3242.        folks from Bell Labs, Bellcore, and Carnegie Mellon, is now freely
  3243.        available.
  3244.  
  3245.        F2c was derived from the original UNIX operating system's f77(1),
  3246.        and the generated C follows f77's calling conventions; on some
  3247.        machines, the resulting object files are interchangeable with
  3248.        (and behave indistinguishably from) objects compiled by f77.
  3249.  
  3250.        The main "advantage" of f2c is that it converts ANSI standard
  3251.        Fortran 77 into C without manual intervention, at least when
  3252.        invoked by a suitable script or makefile (that may need to
  3253.        exercise an f2c option to ensure that COMMON blocks are defined
  3254.        just once).
  3255.  
  3256.        The main "problems" are that f2c does no code restructuring
  3257.        (e.g., gotos are preserved) and that Fortran I/O gets converted
  3258.        into a bunch of calls; thus the translated C code doesn't look
  3259.        too pretty, and in general one would need to maintain the Fortran
  3260.        rather than its translation into C.  [F2c is not meant to displace
  3261.        the services of commercial vendors whose business is to convert
  3262.        Fortran into maintainable C.]
  3263.  
  3264.        There is a plethora of options, many of which exist to support
  3265.        different compilation environments for the translated C (e.g.,
  3266.        ANSI C or C++ compatibility, different type sizes, separate files
  3267.        for COMMON blocks to appease "smart" linkers).
  3268.  
  3269.        So far f2c (and f2c-generated source) has compiled successfully
  3270.        on many machines: Sun, Vax, IBMRT, Apollo, SGI, MIPS, and Cray
  3271.        to name a few.
  3272.  
  3273.        F2c has been under test by the net community for over a year and
  3274.        has been verified on the NBS tests, several large math libraries,
  3275.        floating point tests, even code for laying cable on the ocean floor!
  3276.  
  3277.        To find out about f2c, send the following E-mail message
  3278.        to netlib (netlib@research.att.com  or  research!netlib):
  3279.  
  3280.           send index from f2c
  3281.  
  3282.        Your message will be answered automatically (by a program --
  3283.        see CACM vol.  30 #5 (May, 1987), pp. 403-407).
  3284.  
  3285.        You will receive a reply explaining how to automatically acquire f2c
  3286.        source  (about 600K), f2c library source (130K), and supporting info
  3287.        (man page, etc).  Or you can anonymous-FTP to:
  3288.  
  3289.           research.att.com
  3290.  
  3291.        and look in directory dist/f2c at these files:
  3292.  
  3293.           all.Z --               250K compressed shar file for f2c
  3294.           f2c.ps.Z --            24 page tech report describing f2c
  3295.           index --               general info about files
  3296.           libf77.Z, libi77.Z --  compressed shar files for libraries
  3297.  
  3298.  
  3299.        ******************************
  3300.                 DISCLAIMER
  3301.        ******************************
  3302.         Careful! Anything free comes with no guarantee.
  3303.  
  3304.        ---
  3305.        Mark Maimone                            phone: (412) 268 - 7698
  3306.        Carnegie Mellon Computer Science        email: mwm@cs.cmu.edu
  3307.                                                       cmcspt!mwm@cs.cmu.edu
  3308.  
  3309.        Notes:  f2c accepts only fairly vanilla FORTRAN; vendor supplied
  3310.                f77's usually produce better quality code, and accept a
  3311.                wider variety of codes.
  3312.  
  3313.  
  3314.  
  3315.    More about f2c from Judah Milgram
  3316.    ---------------------------------
  3317.  
  3318.        I recently asked about running f2c with djgpp. Turns out to be
  3319.        easy and together they make a good Fortran compiler for PC's.
  3320.        Here's a summary.
  3321.  
  3322.        I started with f2c dated Nov. 1994 (netlib.att.com in netlib/f2c).
  3323.        djgpp was v. 1.12 (omnigate.clarkson.edu in pub/msdos/djgpp.)
  3324.  
  3325.        Use the pre-compiled msdos f2c executable that comes with the
  3326.        f2c release. Compile the libraries with djgpp, making the changes
  3327.        listed below. They aren't necessarily the most sensible changes,
  3328.        but they worked for me. Write if you have a better idea.
  3329.  
  3330.        Thanks to all net people who helped, especially Dr. James Lupo.
  3331.  
  3332.           Judah Milgram
  3333.           milgram@glue.umd.edu
  3334.        _______________________________________________
  3335.  
  3336.  
  3337.           libf77/makefile:
  3338.  
  3339.              change:       CC = cc
  3340.              to:           CC = gcc
  3341.              comment out:  ld -r -x -o $*.xxx $*.o
  3342.                            mv $*.xxx $*.o
  3343.  
  3344.           libf77/s_paus.c:
  3345.  
  3346.              change:       extern int getpid(void), isatty(int), pause(void);
  3347.              to:           extern int getpid(void), isatty(int);
  3348.                            #ifndef _djgpp_std_h
  3349.                            extern int pause(void);
  3350.                            #endif
  3351.  
  3352.           libi77/makefile:
  3353.  
  3354.              change:       CC = cc
  3355.              to:           CC = gcc
  3356.              comment out:  ld -r -x -o $*.xxx $*.o
  3357.                            mv $*.xxx $*.o
  3358.  
  3359.           libi77/fio.h:
  3360.  
  3361.              add to top of file:  #ifdef abs
  3362.                                   #undef abs
  3363.                                   #endif
  3364.  
  3365.           libi77/rawio.h:
  3366.  
  3367.              comment out entire block:  #ifdef MSDOS
  3368.                                         #include "io.h"
  3369.                                         #define close _close
  3370.                                         #define creat _creat
  3371.                                         #define open _open
  3372.                                         #define
  3373.                                         read _read
  3374.                                         #define write _write
  3375.                                         #endif
  3376.  
  3377.           Easiest way to build libf2c.a is to go into
  3378.           the f2c/ directory and do:
  3379.  
  3380.              ar r libf2c.a libf77/*.o libi77/*.o
  3381.              ranlib libf2c.a
  3382.  
  3383.           (If you do it this way you can delete libf77/libf77.a
  3384.            and libi77/libi77.a)
  3385.  
  3386.           Then copy libf2c.a into djgpp/lib and copy f2c.h into djgpp/include
  3387.           And remember to run the executable with 'go32 foo'.
  3388.           Or, do 'coff2exe foo' to produce a .exe file which
  3389.           you can run in the usual manner.
  3390.  
  3391.  
  3392.        ---------------------------------------------
  3393.        ~From: Greg Lindahl <gl8f@fermi.clas.virginia.edu>
  3394.        ---------------------------------------------
  3395.  
  3396.        f2c is quite free.
  3397.  
  3398.  
  3399.  
  3400.  A ready to use package (F2CX + GCC + DJGPP) from Clive Page:
  3401.  
  3402.        I have packaged up a free Fortran77 system for MS-DOS into two
  3403.        files which are each just under 1.4 MB (to fit on 2 floppy disks).
  3404.  
  3405.        This isn't actually a compiler but relies on the F2CX translator
  3406.        to convert Fortran77 into C, and then GNU's GCC compiler plus the
  3407.        DOS-extender of DJGPP to get a flat 32-bit address space on MS-DOS.
  3408.  
  3409.        This sounds awkward to use, but works surprisingly well on most
  3410.        Fortran code that I have used.  Warning: this is free software,
  3411.        no warranties at all, but it works for me and some of my colleagues
  3412.        also say it works for them.
  3413.  
  3414.        The files are available by anonymous FTP from:
  3415.  
  3416.           host:       ftp.star.le.ac.uk in
  3417.           directory:  pub/fortran
  3418.           files:
  3419.                       ff77.tex        Instructions for installation and use,
  3420.                                       Latex format (22k)
  3421.                       ff77.ps         Ditto, but in Postscript (99k)
  3422.                       ff77.000        First binary file (1.4 MB)
  3423.                       ff77.001        Second binary file (1.1 MB)
  3424.                       tar.exe         DOS version of Unix TAR, needed to
  3425.                                       extract s/w (52k)
  3426.  
  3427.        Transfer the ff77.tex (or .ps) file in ASCII mode, the others
  3428.        need BINARY mode.
  3429.  
  3430.        In the same directory you will also find an electronic copy of
  3431.        a Fortran77 book which I wrote some years ago.  It's available
  3432.        in Latex and Postscript form in compressed (gzip) files
  3433.  
  3434.            prof77.tex.gz  (113 kbytes)
  3435.            prof77.ps.gz   (224 kbytes)
  3436.  
  3437.        Enjoy.
  3438.  
  3439.  
  3440.  
  3441. ;; gnu g77:
  3442.  
  3443.        -----------------------------------------------------
  3444.        ~From: zrzm0111@helpdesk.rus.uni-stuttgart.de (MUFTI)
  3445.        -----------------------------------------------------
  3446.  
  3447.        The FSF has a f77 front end integrated with the gcc back end.
  3448.  
  3449.        "A mailing list exists for those interested in the Fortran
  3450.        front end for GCC. To subscribe, ask:
  3451.  
  3452.           info-gnu-fortran-request@prep.ai.mit.edu
  3453.  
  3454.        Or try:
  3455.  
  3456.           finger -l fortran@gate.gnu.ai.mit.edu
  3457.  
  3458.        There is no FSF project to do a f90 front end. The author
  3459.        of the g77 front end is willing, if anyone will fund it.
  3460.  
  3461.  
  3462.        --------------------------------------------------------
  3463.        ~From Bill Thorson <thorson@typhoon.atmos.colostate.edu>
  3464.        --------------------------------------------------------
  3465.  
  3466.        GNU Fortran (g77) Copyright (C) 1995 Free Software Foundation, Inc.
  3467.  
  3468.        GNU Fortran (g77) Version 0.5.13 is now available to the
  3469.        public for beta testing in the usual GNU locations.
  3470.        The distribution is named:
  3471.  
  3472.           g77-*.tar.gz.  Where the '*' is the current version number.
  3473.           g77 requires that you also have a recent distribution of gcc.
  3474.           This compiler currently builds and installs it's own version
  3475.           of the f2c libraries (libf2c.a).
  3476.  
  3477.        See g77 documentation for list of features or bugs.
  3478.  
  3479.        Most GNU software is packed using the GNU `gzip' compression
  3480.        program.  Source code is available on most sites distributing
  3481.        GNU software.
  3482.  
  3483.        For information on how to order GNU software on tape, floppy
  3484.        or cd-rom, or printed GNU manuals, check the file etc/ORDERS
  3485.        in the GNU Emacs distribution or in GNUinfo/ORDERS on prep,
  3486.        or e-mail a request to:
  3487.  
  3488.           gnu@prep.ai.mit.edu
  3489.  
  3490.  
  3491. ;; gnu update on g77:
  3492.  
  3493.        --------------------------------------------------
  3494.        Sender: Michael.Taeschner@Student.Uni-Magdeburg.DE
  3495.        --------------------------------------------------
  3496.  
  3497.        Hi,
  3498.  
  3499.        since I read question 2.1.1 at least once a week in this newsgroup,
  3500.        I  would like to refer the asking (usually students, who need
  3501.        fortran for some  kind of project, but do not want to spend a
  3502.        lot of money) to your FAQ  like others do.
  3503.  
  3504.        Unfortunately I think that the info in this section is somewhat
  3505.        rather old. I would encourage you to make additions regarding
  3506.        the availibility of g77:
  3507.  
  3508.           1. g77 is now at version 0.5.18, it should be used with
  3509.              gcc-2.7.2, because of some improvements in both.
  3510.              It works quite stable and allows (in difference to f2c/gcc)
  3511.              the debugging at source code level (with gdb, newer versions).
  3512.  
  3513.           2. There are binaries in many linux-distributions,
  3514.              so you are not required to compile it yourself
  3515.              (which is not too difficult, but some work)
  3516.  
  3517.           3. Michael Holzapfel provided OS/2 binaries using the
  3518.              emx-port of gcc. He wrote, that he will try to keep
  3519.              them up-to-date for the next two years.
  3520.              These can be found for instance at:
  3521.  
  3522.                 ftp.leo.org
  3523.  
  3524.              but many other os/2-mirrors carry them too,
  3525.              one might use archie.
  3526.  
  3527.              Because most students search a compiler for MS-DOS,
  3528.              I want to emphasize, that these are running fine
  3529.              under DOS and take advantage of all available memory.
  3530.              With the additional rsx-package they run also
  3531.              with win3.1, win/nt and win95.
  3532.  
  3533.           4. I tried the recommended  bcf for DOS some time ago and
  3534.              was not able to run any fortran code. (maybe I'm stupid)
  3535.              The system seems to be mainly for teaching fortran and
  3536.              is rather limited.
  3537.  
  3538.              Anyone who wants to compile and run real applications
  3539.              should g77 give a try, it's worth every cent.
  3540.  
  3541.  
  3542. BC-F77:
  3543.  
  3544.        ------------------------------------------
  3545.        ~from: Kurt Jaeger pi@rus.uni-stuttgart.de
  3546.        ------------------------------------------
  3547.  
  3548.        Someone asked for a cheap MS-DOS Fortran compiler for students.
  3549.        The bcf77 by Andreas Koesterli has a free student version.
  3550.        The student version may not be used in a comercial enviroment
  3551.        or to solve commerical problems.
  3552.  
  3553.        It's a version that writes a non-standard object format
  3554.        and requires 640KB.  If all input is in UPPERCASE, it
  3555.        supports the full Fortran 77 standard.
  3556.  
  3557.        The site is:  ftp.uni-stuttgart.de
  3558.  
  3559.        the compiler can be found in:
  3560.  
  3561.           /pub/systems/pc/lang/fortran/compiler/bcf77.zip
  3562.  
  3563.        It can be accessed via:  ftpmail@ftp.uni-stuttgart.de
  3564.  
  3565.        for those of you without ftp.
  3566.  
  3567.  
  3568.        -----------------------------------------
  3569.        ~From: barbee@noir.llnl.gov (Troy Barbee)
  3570.        -----------------------------------------
  3571.  
  3572.        In article <1991Dec11.160531@IASTATE.EDU>, cfrandal@IASTATE.EDU
  3573.        (Charles F Randall) writes:
  3574.  
  3575.        |> Note that the .txt file for this NOT in English:
  3576.        |> |> BC-FORTRAN77 Version.b besteht aus Compiler, Linker,
  3577.        |> Modulbibliothek und einem residenten Laufzeitsystem, das
  3578.        |> u.a. einen einfachen Debugger enthaelt. Diese Version
  3579.        |> laeuft auf einem MS-DOS Rechner mit 640kB RAM.  Eine
  3580.        |> Festplatte ist nicht erforderlich. Hiermit soll in
  3581.        |> einfacher Weise ein Compiler fuer Programmierkurse
  3582.        |> zur Verfuegung stehen. Dem kommt entgegen, dass
  3583.        |> entsprechende Compiler fuer ATARI ST und AMIGA existieren.
  3584.        |> |> Anfragen nach Zusendung einer anderen oder neueren Version
  3585.        |> werde ich nur noch beantworten, wenn DM 20.- (Schein oder
  3586.        |> Scheck) Aufwandsentschaedigung (Diskette, Umschlag, Porto
  3587.        |> und Zeit) beigefuegt sind. Ich versende ausschliesslich
  3588.        |> 3 1/2 Zoll Disketten.
  3589.        |> |> Anybody willing to translate?
  3590.  
  3591.        Here's a quick and dirty translation (i.e., I didn't look in my
  3592.        dictionary, so the sentences in [] are just rough translations)
  3593.  
  3594.           BC-FORTRAN77 Version b consists of a compiler, linker,
  3595.           module library, and a resident runtime system that contains
  3596.           (among other things) a simple debugger.
  3597.           This version runs on a MS-DOS computer with 640KB RAM.
  3598.           A hard disk is not required.
  3599.           [The intent is to provide a compiler for programming
  3600.           courses in a simple manner. Similar compilers exist
  3601.           for the ATARI ST and the AMIGA.]
  3602.  
  3603.        Requests for another or a newer version will only be answered
  3604.        if they are accompanied by DM 20.- (check or cash) to defray
  3605.        costs (diskette, envelope, postage, and time).
  3606.        I can only send 3 1/2 inch diskettes.
  3607.  
  3608.  
  3609.        ----------------------------------------
  3610.        ~From: pmh2962@zeus.tamu.edu (Pat Hayes)
  3611.        ----------------------------------------
  3612.  
  3613.        "BC-FORTRAN 1.3b, is a FORTRAN compiler from Germany.
  3614.        The documentation is in German. Sample source code is included.
  3615.        The compiler generates big, inefficient EXE programs and is
  3616.        offered only because there are no other pd/shareware
  3617.        FORTRAN compilers available.
  3618.        700K of disk space is required."
  3619.  
  3620.  
  3621.        ------------------------------------------------------
  3622.        ~From: PVT Joe Snuffy <DOYLECM@ROSEVC.Rose-Hulman.Edu>
  3623.        ------------------------------------------------------
  3624.  
  3625.        I am sort of asking for your help here.
  3626.  
  3627.        I translated the documentation for BC-F77 and am willing
  3628.        to make it available to people.  However, my newsreader
  3629.        will not let me post with distribution wider than our local
  3630.        site (or at least, that appears to be what is going on).
  3631.  
  3632.        Could you do me a favor and post the text that follows?
  3633.        You might also tell those others who write to you that
  3634.        this translation is available.
  3635.  
  3636.           Chris Doyle
  3637.           DoyleCM@RoseVC.Rose-Hulman.Edu
  3638.  
  3639.  
  3640.        Stuff to be posted starts below this line.  Adjust
  3641.        header/newsgroup/etc as appropriate.  Thanks!
  3642.  
  3643.  
  3644.           ------------------------------------
  3645.           ~From: doylecm@HYDRA.ROSE-HULMAN.EDU
  3646.           ------------------------------------
  3647.  
  3648.           For those people who FTP this thing and want to be able to
  3649.           read the documentation, I have translated the README file
  3650.           into English and will let you have a copy of the translation
  3651.           upon request. Translation is about 400 lines long.
  3652.  
  3653.           BCF77 (FORTRAN 77 compiler, written by Andre Koestli) distribution.
  3654.           This compiler/linker/run-time module and supporting files are
  3655.           available via anonymous FTP from:
  3656.  
  3657.              host:       uni-stuttgart.de
  3658.              directory:  /soft/pc/lang/fortran/compiler/
  3659.              file:       bcf77.zip
  3660.  
  3661.  
  3662.        -------------------------------------------------------------
  3663.        ~From: alan@dmsmelb.mel.dms.CSIRO.AU Wed Jan 26 12:27:49 1994
  3664.        -------------------------------------------------------------
  3665.  
  3666.        BCF is available by ftp from many places.
  3667.        For instance, it is in the directory  fortran  on simtel (see q3).
  3668.        I did  `archie bcf'  and found it is also in directory:
  3669.  
  3670.           host:       src.doc.ic.ac.uk
  3671.           directory:  /usenet/comp.archives/languages/fortran
  3672.  
  3673.        ...  There have been many complaints about bcf - but it is free.
  3674.        I recommend Lahey's Personal Fortran PF77L to those who have been
  3675.        disappointed with bcf.  I believe it costs US$99.
  3676.  
  3677.  
  3678.    __________________________________________________________________________
  3679.                                        
  3680.  
  3681.  
  3682. 2.1.2) What is the best (FORTRAN 77) compiler for a PC?
  3683.  
  3684.        There are many products, some are quite good. Few are free.
  3685.        f2c and gcc can be had for the PC environment.
  3686.  
  3687.        Popular ones are:
  3688.  
  3689.           Lahey (very fast compilation; excellent reputation for support)
  3690.  
  3691.           Watcom (touted for good optimization)
  3692.  
  3693.           MicroWay (support for odd floating point units)
  3694.  
  3695.           LPI (multi-platform support)
  3696.  
  3697.           MicroSoft (various good hooks into windows and such)
  3698.  
  3699.           Absoft (multi-platform support)
  3700.  
  3701.        It is beyond the scope of a faq to provide a commercial endorsement.
  3702.  
  3703.  
  3704.    __________________________________________________________________________
  3705.                                        
  3706.  
  3707.  
  3708. 2.1.3) What is the best Fortran for...
  3709.  
  3710.        Such recommendations are, at best, personal opinions.
  3711.        I've <khb> tracked some of the discussions and it
  3712.        would appear that:
  3713.  
  3714.           a) For the mac, Language Systems
  3715.  
  3716.              Language Systems Corp.
  3717.              100 Carpenter Drive
  3718.              Sterling, VA 20164
  3719.  
  3720.              tel:  800-252-6479 (inside US and Canada)
  3721.                    703-478-0181
  3722.              fax:  703-689-9593
  3723.              BBS:  703-709-0134
  3724.  
  3725.              langsys         (Applelink)
  3726.              langsys         (America Online)
  3727.              langsys@aol.com (Internet)
  3728.  
  3729.           b) For the PC it is harder. Many like Lahey
  3730.  
  3731.              Lahey Computer Systems, Inc.
  3732.              865 Tahoe Blvd.
  3733.              P.O. Box 6091
  3734.              Incline Village, Nevada 89450
  3735.  
  3736.              Phones: (800) 548-4778
  3737.                      (702) 831-2500
  3738.              Fax:    (702) 831-8123
  3739.              BBS:    (702) 831-8023.
  3740.              UUNET: Sales        sales@lahey.com
  3741.                     Tech support support@lahey.com
  3742.  
  3743.              Good code generation, good diagnostics, fast compilation,
  3744.              and good support are often quoted as reasons why folks
  3745.              liked LCS.
  3746.  
  3747.  
  3748.    __________________________________________________________________________
  3749.                                        
  3750.  
  3751.  
  3752. 2.1.4) What Fortran 90/95 compilers/translators (math libs) are available?
  3753.  
  3754.    A fortran 95 compiler
  3755.    ---------------------
  3756.  
  3757.        ------------------------------------------------
  3758.        ~From: David Vallance <DMV@salford-software.com>
  3759.        ------------------------------------------------
  3760.  
  3761.        (16 December 1996)
  3762.  
  3763.        FULL F95 COMPILER AVAILABLE FROM SALFORD SOFTWARE LTD
  3764.        =====================================================
  3765.  
  3766.        Salford Software Ltd announces FTN95, a full Fortran 95
  3767.        compliant compiler for Extended DOS, Windows 3.1 and
  3768.        Win32 (NT and 95).  The compiler is delivered as a bundle
  3769.        comprising a Win32 Edition and an Extended DOS/Windows 3.1
  3770.        edition.  FTN95 compilers are supplied with fully-featured
  3771.        IDE, debugger, comprehensive compiler library (which
  3772.        includes graphics, operating system access, low-level file
  3773.        management, bit-manipulation, sorting, etc.), built-in 32
  3774.        bit assembler, linker and Salford ClearWin+ (Salford's
  3775.        Windows GUI development library and tools).  Salford FTN95
  3776.        will ship in Q1 1997.
  3777.  
  3778.        Selected Salford-specific features
  3779.        ==================================
  3780.  
  3781.        o  Full support for REAL*10, COMPLEX*20
  3782.  
  3783.        o  Compatibility with Salford FTN77:
  3784.  
  3785.           - Inline Mnemonic Assembler using CODE ... EDOC.
  3786.  
  3787.           - Supports all 'deleted' Fortran 95 features (e.g.  REAL
  3788.             DO-loop indices).
  3789.  
  3790.        Shipping:
  3791.        ========
  3792.  
  3793.        Beta: early January 1997
  3794.  
  3795.        First customer ship: Q1 1997
  3796.  
  3797.        Beta Testers Wanted
  3798.        ===================
  3799.  
  3800.        Salford FTN95 will ship in Q1 1997 and will be available to
  3801.        selected users for beta test from early January 1997.
  3802.  
  3803.        If you would like to apply for a beta copy of FTN95 please
  3804.        contact Ivan Lucas at:
  3805.  
  3806.           ftn95beta@salford-software.com
  3807.  
  3808.        stating your affiliation (e.g.   WG5 member), full mailing
  3809.        address and whether you would like to try either or both of
  3810.        the Win32 or Extended DOS editions.  The beta editions are
  3811.        supplied on (a small number of) 3.5" diskettes.
  3812.  
  3813.        FTN95 is a registered trademark of Salford Software Ltd.
  3814.  
  3815.           David M Vallance
  3816.  
  3817.        Salford Software Ltd      Tel: +44 (0) 161 834 2454
  3818.        Adelphi House             Fax: +44 (0) 161 834 2148
  3819.        Adelphi Street            WWW: http://www.salford.ac.uk/ssl/ss.html
  3820.        Salford, M3  6EN
  3821.        UK
  3822.  
  3823.  
  3824.    Fortran 90 compilers
  3825.    --------------------
  3826.  
  3827.        Apogee
  3828.           compiler for SPARC architectures (info@apogee.com).
  3829.           Used on the Meiko CS-2HA.
  3830.  
  3831.        APR
  3832.           Useful tools, like FORGE90 are available (forge@netcom.com).
  3833.           A source form convertor, convert.f90, is obtainable by
  3834.           ftp from:
  3835.  
  3836.              host:       jkr.cc.rl.ac.uk
  3837.              directory:  /pub/MandR.
  3838.  
  3839.        Cray Research
  3840.           has a native compiler that is being marketed by them
  3841.           and Visual Numerics for workstations, starting with
  3842.           Suns (solaris 2.3+) (craysoft@cray.com).
  3843.           Absoft will market a PC version (486,Pentium and Macintosh PowerPC)
  3844.           (fortran@absoft.com).
  3845.  
  3846.        DEC
  3847.           has been shipping a native compiler, including HPF,
  3848.           from June 1994.  It is for OSF/1 AXP, with probably 
  3849.           Windows NT AXP following. It has no plans for VAX systems.
  3850.  
  3851.        EPC
  3852.           Native compilers for Sun, RS/6000, SGI, MIPS and, soon,
  3853.           x86 are available (info@epc.com or support@epc.ed.ac.uk).
  3854.  
  3855.        Fujitsu
  3856.           is marketing a native Fortran 90 Workbench for
  3857.           Solaris 1.1 and 2.x.
  3858.           Contact Unicomp (walt@fortran.com) or Fujitsu (info@ossi.com).
  3859.  
  3860.           Fujitsu Fortran is fully compliant with the Fortran 90
  3861.              (ISO/IEC = 1539:1991), the FORTRAN 77 (ANSI X3.9-1978),
  3862.              and the FORTRAN 66 (ANSI X3.9-1966) standards.
  3863.              Language extensions include support for Sun, Cray, VAX, and IBM.
  3864.              Fujitsu Fortran delivers faster performing FORTRAN 77 code
  3865.              while improving developer productivity of your Fortran 90 code.
  3866.              <tay@fsc.fujitsu.com>
  3867.  
  3868.           SSL2 is a complete library of optimized mathematical routines.
  3869.              Initially created for supercomputers and mainframes,
  3870.              Fujitsu SSL2 delivers maximum performance to your workstation.
  3871.              Through joint development with universities, these numerical
  3872.              algorithms provide the accuracy and reliability you require
  3873.              in your applications. For additional information please see:
  3874.              http://www.adtools.com/lpg/fortranhp.htm
  3875.              <Todd, Office: tay@adtools.com, Home todd@yancey.com>
  3876.  
  3877.        HP
  3878.           announced on Nov. 11, 1996 its full ISO Fortran 90 compiler,
  3879.           featuring:
  3880.  
  3881.              o  Front End by Edinburgh Portable Compilers (EPC)
  3882.  
  3883.              o  Industry standard language extensions: Cray pointers,
  3884.                 INTEGER*8, REAL*16 and DEC structures.
  3885.  
  3886.              o  Scalability - The same compiler runs on all
  3887.                 high-performance HP computers.
  3888.  
  3889.              o  Binary compatability with f77 - object modules compiled
  3890.                 with f77 and f90 can be mixed (same I/O libraries).
  3891.  
  3892.              o  Supports HP MPI (Message Passing Interface) for parallel
  3893.                 application development. Support for HPF through Portland
  3894.                 Group HPF package
  3895.  
  3896.              o  EUC and multibyte character support.
  3897.  
  3898.           Comes with a preprocessor, graphical-task-oriented debugger
  3899.           that can debug optimized code (except at the highest level),
  3900.           performance analyzer and incremental linker (links only
  3901.           modified modules).
  3902.  
  3903.           User licenses are priced at $1,495 per user license.
  3904.           The HP exemplar server user license is priced at $3,000.
  3905.  
  3906.           Additional information on HP Fortran 90 is available at:
  3907.  
  3908.              http://www.hp.com/go/hpfortran
  3909.  
  3910.  
  3911.        IBM
  3912.           has been shipping its optimizing, native compiler for the
  3913.           RS/6000, xlf Version 3, as of 31 December, 1993.
  3914.  
  3915.        IMSL (now Visual Numerics, mktg@houston.vni.com)
  3916.           are beginning to offer f90 versions of their maths libraries
  3917.           that take full advantage of the language's library building
  3918.           capabilities.
  3919.  
  3920.        Lahey
  3921.           has been shipping a native LF90 compiler for DOS
  3922.           since 29 August, 1994 (sales@lahey.com).
  3923.           It is particularly well optimized on the Pentium.
  3924.  
  3925.        Microsoft
  3926.           is working on a compiler, release date unknown, for
  3927.           Windows NT 3.5 and Windows 95 (Chicago) (fortran@microsoft.com).
  3928.  
  3929.        Microway
  3930.           NDP Fortran 90 for 386/486, Pentium and 860 is available
  3931.           (tel. (508) 746-7341).
  3932.  
  3933.        NAG
  3934.           A compiler is available for most unix platforms, VMS and PCs
  3935.           (including Linux) from NAG (infodesk@nag.com or infodesk@nag.co.uk).
  3936.           This was the first f90 compiler, released in 1991.
  3937.           The current version is 2.1.
  3938.           For more information see:  http://www.nag.co.uk/1h/nagware.html
  3939.  
  3940.           NAG are beginning to offer f90 versions of their maths libraries
  3941.           that take full advantage of the language's library building
  3942.           capabilities.
  3943.           NAG contact info: NAG FL90 from  infodesk@nag.com,
  3944.                                            infodesk@nag.co.uk
  3945.                        and  http://www.nag.co.uk/1h/numeric.
  3946.  
  3947.        NA Software
  3948.           supplies Fortran 90 Plus on 386/486, SPARC and T800
  3949.           and T9000 transputers (marketing@nasoftwr.demon.co.uk).
  3950.           They also supply a F77 to f90 convertor, LOFT90, and HPF.
  3951.  
  3952.        PSR
  3953.           VAST/f90 is a complete f90 compiler, including a vectorizer,
  3954.           for unix, VMS and Convex (info@psrv.com).
  3955.           PSR also supplies VAST/77to90 to convert FORTRAN 77 programs
  3956.           into Fortran 90 syntax.
  3957.  
  3958.        ParaSoft
  3959.           A compiler is available (f90-info@parasoft.com).
  3960.  
  3961.        PGI
  3962.           has released a subset Fortran 90/HPF compiler,
  3963.           in particular for SGI (sales@pgroup.com).
  3964.  
  3965.        Salford Software
  3966.           A PC version of the NAG compiler is also available
  3967.           from Salford Software (ppatel@cix.compulink.co.uk).
  3968.           A Windows NT version is planned.
  3969.  
  3970.        SofTech
  3971.           has a licence to sell its own versions of
  3972.           DEC's HPF/f90 compiler.
  3973.  
  3974.        Stern Computing Systems
  3975.           offers CF90, a Cray-compatible compiler for use
  3976.           on DEC OSF/1 platforms (pipeline@acri.fr).
  3977.  
  3978.        Sun (to be precise, the Developer Products group of SunSoft)
  3979.           has announced a native f90 compiler. It is available as the
  3980.           "Performance Workshop for Fortran 90" and includes the first
  3981.           release of the SPARCompiler Fortran 90 that is based on the
  3982.           CF90 product from Cray.
  3983.           Also included is SunSoft Performance Library (tuned versions
  3984.           of BLAS[123], LAPACK, FFTPACK, VFFTPACK, licensed from DSS),
  3985.           and the usual programming environment addons (debugger,
  3986.           performance analyzer, group source code management etc.).
  3987.           f77 and C compilers are also provided in the Performance Workshop.
  3988.           30 day free demos are available. For more information see:
  3989.              http://www.sun.com/sunsoft/Products/Developer-products.
  3990.  
  3991.        Linux compilers and related information:
  3992.           http://marie.mit.edu/~templon/fortran.html
  3993.  
  3994.        Visual Analyzer
  3995.           Visual Analyzer is a set of development tools to graphically
  3996.           display source analysis of your Fortran and C code.
  3997.           The Visual Analyzer includes the Source Analyzer and
  3998.           Node Coverage tools to make code migration, performance
  3999.           tuning and code maintenance simple.
  4000.           And, Visual Analyzer can be used with other Fortran and
  4001.           C compilers available for the Microsoft Windows 95/NT
  4002.           and SPARC environment.
  4003.  
  4004.        Visual Numerics
  4005.           see IMSL
  4006.  
  4007.  
  4008.    __________________________________________________________________________
  4009.                                        
  4010.  
  4011.  
  4012. 2.1.5) Tell me about Parallel Fortran dialects, what are they,etc.
  4013.  
  4014.        -------------------------------------
  4015.        ~From: lfm@pgroup.com (Larry Meadows)
  4016.        -------------------------------------
  4017.  
  4018.        spencer@glint.mcc.com (Steve Spencer) writes:
  4019.  
  4020.        >We are trying to decide what parallel FORTRAN environment
  4021.        >to port to a MIMD multiprocessor that we are building
  4022.        >for ARPA. We are looking for information on the follwing
  4023.        >environments:
  4024.        >       FORTRAN90
  4025.        >        HPF (High Performance FORTRAN from Rice U. I think)
  4026.        >       FORTRAN D
  4027.        >        PVM (works with F77 to provide a parallel env.)
  4028.  
  4029.        >Does anyone know where we can get information on the
  4030.        >above programming environments or any others that may
  4031.        >be appropriate?
  4032.  
  4033.        Fortran90 is an ANSI and an ISO standard.  The usual reference
  4034.        is Fortran 90 Handbook, published by McGraw Hill.  Several vendors
  4035.        provide Fortran 90 translators and/or compilers.
  4036.  
  4037.  
  4038. HPF
  4039. ---
  4040.  
  4041.          High Performance Fortran (HPF) is a language for programming
  4042.        massively parallel architectures. It lets the user insert directives
  4043.        for code and data distribution among the processors in the (Fortran
  4044.        90) code.
  4045.  
  4046.        Electronic copies of HPF draft specification are available
  4047.        by anonymous FTP from the following sources:
  4048.  
  4049.        Machine name            File name
  4050.        -----------------       -----------------------------------
  4051.        titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar
  4052.        titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar.Z
  4053.        titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps
  4054.        titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps.Z
  4055.        think.com               public/HPFF/hpf-v10-final.ps.Z
  4056.        ftp.gmd.de              hpf-europe/hpf-v10-final.ps.Z
  4057.        theory.tc.cornell.edu   pub/hpf-v10-final.ps.Z
  4058.        minerva.npac.syr.edu    public/hpf-v10-final.tar.Z
  4059.  
  4060.        Fortran D is a precursor to HPF; as a commercial product it
  4061.        has been superceded by HPF, but several academic projects
  4062.        still exist that target Fortran D.
  4063.  
  4064.        PVM is a message passing library and run-time environment;
  4065.        as such, it exists at a lower level than the previous items.
  4066.        One might imagine an HPF processor that produced FORTRAN77
  4067.        with calls to PVM.
  4068.        There is a newsgroup on PVM.  It is available through netlib,
  4069.        and possibly from Oak Ridge as well.
  4070.  
  4071.           Hope this
  4072.           helps.
  4073.           --
  4074.           Larry Meadows           The Portland Group
  4075.           lfm@pgroup.com
  4076.  
  4077.  
  4078.        ----------------------------------------
  4079.        From: gale@hpc.pko.dec.com (Israel Gale)
  4080.        ----------------------------------------
  4081.  
  4082.        Keith,
  4083.  
  4084.        Here is a suggestion for your "Parallel Fortran dialects"
  4085.        question (Q30) (2.1.5) on your (very useful) Fortran FAQ.
  4086.  
  4087.        Larry Meadows' information on HPF is largely correct (except
  4088.        for his saying "massively" parallel -- massively parallel is
  4089.        the one major parallel architecture for which HPF is not yet
  4090.        available), but I thought I'd contribute a few words about
  4091.        compiler availability:
  4092.  
  4093.        High Performance Fortran (HPF) is an extended version of
  4094.        Fortran 90 for parallel programming.  It lets the user insert
  4095.        directives into Fortran 90 code which specify the distribution
  4096.        of data across processors.
  4097.  
  4098.        Currently, most HPF products are not true compilers, but
  4099.        source-to-source translators.  Source-to-source translators
  4100.        are pre-processors that translate HPF code so that it can be
  4101.        compiled by a compiler without native HPF capability.
  4102.        They typically output FORTRAN77 source code, with calls to
  4103.        a message-passing library such as PVM or MPI.
  4104.  
  4105.        Compilers, on the other hand, produce object modules containing
  4106.        calls to either a standard message-passing library like PVM or MPI
  4107.        (as in the PREPARE compiler currently under development in Europe),
  4108.        or to a customized message-passing environment (as in Digital's
  4109.        HPF compiler).
  4110.  
  4111.        As of May, 1995, the following vendors offered HPF products:
  4112.  
  4113.        Compilers                         Source-to-Source Translators
  4114.        --------------------------------  -----------------------------
  4115.        *Digital
  4116.                                          Applied Parallel Research
  4117.                                          Hitachi
  4118.                                          Intel
  4119.                                          Kuck and Associates
  4120.                                          Meiko
  4121.                                          Motorola
  4122.                                          NA Software
  4123.        NEC
  4124.                                          Pacific Sierra Research
  4125.        *PGI
  4126.        SofTech
  4127.  
  4128.        The first versions of HPF offered a partial implementation known
  4129.        as "Subset HPF".  Beginning in 1995, a small number of vendors
  4130.        began offering implementations of the full HPF specification.
  4131.        Currently, only the vendors marked with an asterisk (*) offer
  4132.        full HPF support; all the others support Subset HPF.
  4133.  
  4134.        The runtime performance of HPF codes varies widely from vendor
  4135.        to vendor.  The best-performing HPF products achieve performance
  4136.        comparable to hand-optimized PVM code.
  4137.  
  4138.  
  4139.    __________________________________________________________________________
  4140.                                        
  4141.  
  4142.  
  4143. 2.2) Other tools (pretty printers, lints, etc.)
  4144.  
  4145.  
  4146.  
  4147. 2.2.1) I have heard of fortran "lints" what are they, and where can
  4148.        I get one?
  4149.  
  4150.        A small "table of contents":
  4151.  
  4152.           o  What are Fortran "lints"?
  4153.           o  A partial list of "lints"
  4154.           o  More info on "lints"
  4155.           o  TOOLPACK
  4156.           o  NAGWare f77 Tools
  4157.           o  NAGWare f90 Tools
  4158.           o  lgrind
  4159.  
  4160.  
  4161.    What are Fortran "lints"?
  4162.    -------------------------
  4163.        Fortran compilers are not required (and most do not) to protect
  4164.        users from themselves, that is to say:
  4165.  
  4166.           call sub(1)
  4167.           ...
  4168.           subroutine sub(i)
  4169.           i=i+10
  4170.           return
  4171.           end
  4172.  
  4173.        Is non-standard complying but the compiler need not tell you
  4174.        about it. Arguably worse, the compiler can produce any result
  4175.        it deems fit, up to and including the start of world war III
  4176.        (assuming the right optional hardware has been installed).
  4177.  
  4178.        Fortran lint programs focus on searching out programming errors
  4179.        (or likely errors) and alerting the user.
  4180.  
  4181.        There are a wide variety of commercial and pd products.
  4182.  
  4183.  
  4184.  
  4185.    A partial list of Fortran "lints"
  4186.    ---------------------------------
  4187.  
  4188.        FORCHECK
  4189.           from Leiden University ND 31 71 276804
  4190.  
  4191.           "Announcing: The demo of FORCHECK a Fortran development tool.
  4192.           The MS-Windows (or WABI) based demo of FORCHECK, a Fortran
  4193.           development tool, is now available at simtel as:
  4194.  
  4195.              pub/msdos/fortran/fckdemo1.zip  (SimTel Software Repository)
  4196.  
  4197.           (primary site oak.oakland.edu).
  4198.           (Note: directory names, such as SimTel, are case sensitive.)
  4199.  
  4200.           If you are a Fortran programmer it will be a great asset
  4201.           in developing portable and reliable code.
  4202.  
  4203.              Leiden University
  4204.              email: forchk@Rullf2.LeidenUniv.NL
  4205.           " end quote
  4206.  
  4207.           Actually contrary to the posters claim, this isn't a demo,
  4208.           its a hypertext file.  Useful, helpful, but not a demo in
  4209.           the usual sense of the word ;> <khb>
  4210.  
  4211.        Forwarn
  4212.           from quibus 719 527 1384.
  4213.  
  4214.        FTNCHEK from netlib.
  4215.           One may receive FTNCHEK by mailing
  4216.           to:                     netlib@ornl.gov
  4217.           the following message:  send ftnchek from fortran
  4218.  
  4219.        Glenbrook House
  4220.           1/11 Molesey Road
  4221.           Hersham
  4222.           Surrey, KT12 4RH
  4223.           Tel:    0932 88 80 80
  4224.           Fax:    0932 88 80 81
  4225.           E-mail: les_hatton@prqa.co.u
  4226.  
  4227.        HP
  4228.           provides a syntax checking facility with their
  4229.           Fortran 77 product.
  4230.  
  4231.        IPT FORTRAN lint
  4232.           1096 East Meadow Circle,
  4233.           Palo Alto, CA 94303,
  4234.           415/494-7500.
  4235.  
  4236.        QA-FORTRAN
  4237.           from PRL Programming Research Ltd
  4238.  
  4239.  
  4240.        Sun
  4241.           provides a syntax checking facility (triggered by Xlist)
  4242.           with their Fortran 77 product (3.0.1 and beyond).
  4243.  
  4244.        ..................................................
  4245.        .  Other vendors (than HP and Sun) also provide  .
  4246.        .   syntax checking facilities too, no doubt.    .
  4247.        ..................................................
  4248.  
  4249.  
  4250.  
  4251.    More info on "lints"
  4252.    --------------------
  4253.  
  4254.        -------------------------------------------------
  4255.        ~from: Ajay Shah, (213)749-8133, ajayshah@usc.edu
  4256.        -------------------------------------------------
  4257.  
  4258.        You may want to mention f2c followed by an ANSI C compiler as
  4259.        a great free fortran lint.  I could not have survived writing
  4260.        fortran if it were not for f2c.  You need to know some C to
  4261.        deal with the error messages,  but that's not a bad price to pay.
  4262.  
  4263.  
  4264.        ---------------------------------------------
  4265.        ~From: atae@spva.ph.ic.ac.uk (Ata Etemadi)...
  4266.        ---------------------------------------------
  4267.  
  4268.        A very kind soul who wishes to remain anonymous sent
  4269.        me the answer below.  ...
  4270.  
  4271.        1. There is a prettyprinter (called TIDY) available via
  4272.           FTP from the SimTel Software Repository (primary site
  4273.           oak.oakland.edu).  It's in the directory SimTel/msdos/fortran
  4274.           (Note: the directory name SimTel is case sensitive.)
  4275.  
  4276.           Capsule review:
  4277.           does an ok job, sometimes has trouble with newer extensions
  4278.           (and even some Fortran 77 standard features).  Not too
  4279.           bright about making good continuation-line break decisions.
  4280.           Free, and available via FTP, so probably the quickest solution.
  4281.           Includes source (in Fortran).
  4282.  
  4283.        2. Greg Flint (afc@klaatu.cc.purdue.edu) at Purdue distributes
  4284.           a program called CLEAN77.  Pretty good (higher quality than
  4285.           #1 above), also free, but must be obtained from Purdue (not
  4286.           available via FTP, not redistributable).
  4287.           Available for assorted systems: PC, UNIX, etc.
  4288.           In Fortran, comes with source.
  4289.  
  4290.        3. There is an excellent prettyprinter in TOOLPACK - probably
  4291.           has more options than any other.  Has trouble with extensions,
  4292.           such as long variable names.
  4293.           Free, comes in source form, in Fortran.
  4294.           TOOLPACK as a whole is pretty huge, and requires some work
  4295.           to install, but it might be worth it if you stick to pretty
  4296.           much standard Fortran. Distributed commercially for a fee
  4297.           by NAG, who may have a new, improved version that is better
  4298.           than the free one - I don't really know.
  4299.           Available via ftp (see archie for locations)
  4300.  
  4301.        4. SPAG, formerly sold by OTG Systems (about $1000 for MS-DOS,
  4302.           more for Unix). Its main function is to restructure GOTOs
  4303.           into IF-THEN-ELSEs, but it also prettyprints.
  4304.           (I think they renamed this within the past year).
  4305.  
  4306.  
  4307.              plusFORT  : a suite of tools for FORTRAN programmers
  4308.                        : comprising SPAG, GXCHK, QMERGE, CMAKE and others.
  4309.              Platforms : MS-DOS, Windows, Unix (various), VMS, NT
  4310.              Pricing   : Commercial - from 700 or $1000 :
  4311.                        : Educational 40% discount
  4312.  
  4313.              Pretty-printer: Many options. Can insert declarations for
  4314.                            : implicitly typed symbols. Dead code & redundant
  4315.                            : variable removal. Symbol name-change option.
  4316.                            : Can use case to highlight symbol type.
  4317.                            : Also many F66F77F90 conversions.
  4318.              Restructuring : Re-organises spaghetti code using block IF,
  4319.                            : DO WHILE etc.
  4320.                            : Moves code-blocks to minimise control jumps.
  4321.                            : Can duplicate code where this helps.
  4322.                            : Before & after complexity metrics.
  4323.              Static Anal.  : Comprehensive global COMMON block & argument
  4324.                            : checks. Identifies globally unused, used but
  4325.                            : not set & set but not used. System documentation
  4326.                            : & call-tree.
  4327.                            : Interactive access to static analysis database.
  4328.              Dynamic Anal. : Insert probes in source code to detect the use
  4329.                            : of unassigned variables, array elements & char
  4330.                            : substrings at run-time.
  4331.              Coverage Anal.: Inserts probes in source code to identify
  4332.                            : execution hot-spots, & untested code.
  4333.                            : Accumulates usage over a series of runs.
  4334.                            : Annotates source files.
  4335.              CMAKE         : A bit like make, but doesn't need a make-file.
  4336.                            : Automatically works out INCLUDE file dependencies.
  4337.              QMERGE        : Tool for dealing with system-dependent code.
  4338.  
  4339.              Polyhedron Software Ltd.
  4340.              Linden House
  4341.              93 High St.               Tel:        +44(0)1865-300579
  4342.              Standlake                 Fax:        +44(0)1865-300232
  4343.              WITNEY                    Compuserve: 100013,461
  4344.              OX8 7RH                   Internet:   John@polyhdrn.demon.co.uk
  4345.              United Kingdom
  4346.  
  4347.        5.  FOR-STRUCT, sold by Cobalt Blue.  Also a GOTO restructurer
  4348.            that prettyprints.  About $700 for MS-DOS.  Available from
  4349.            most of the big PC software dealers (Programmer's Paradise, etc...)
  4350.  
  4351.            (They now have a "budget" version that costs about $250 but
  4352.            has program-size limitations.)
  4353.            http://www.cobalt-blue.com/ sales@cobalt-blue.com
  4354.            (also marketing@cobalt-blue.com)
  4355.  
  4356.        6.  PRETTY, sold by Quibus Enterprises, Inc.  Restructures GOTOs,
  4357.            also indents, relabels, moves Formats, etc. $149 for MS-DOS,
  4358.            $500 for Unix workstations.  Call (719) 527-1384 for more info.
  4359.  
  4360.  
  4361.  
  4362.    TOOLPACK
  4363.    --------
  4364.  
  4365.        -------------------------------------------------------------
  4366.        ~From: "John D.  McCalpin" <mccalpin@perelandra.cms.udel.edu>
  4367.        -------------------------------------------------------------
  4368.  
  4369.        Not too many people use it, but you might want to add TOOLPACK
  4370.        to the list of FORTRAN "lint" packages.  Here is the blurb that
  4371.        I send to people who are interested:
  4372.  
  4373.        TOOLPACK is a large set of utilities written in FORTRAN to do
  4374.        FORTRAN code analysis and transformation.
  4375.  
  4376.        TOOLPACK begins by actually parsing the program with a fully
  4377.        FORTRAN- compliant parser and then does all the code transformations
  4378.        on the parse and comment trees.
  4379.  
  4380.        This means that you cannot confuse TOOLPACK by silly FORTRAN-isms
  4381.        that can easily overwhelm more naive utilities (such as ftnchek).
  4382.        For example, TOOLPACK correctly handles statements such as:
  4383.  
  4384.              D O U B L E  P R E C I S I O N A(100,100)
  4385.              doubleprecision fred
  4386.  
  4387.              DO I = 1.2
  4388.              READ(I,J) = 10.
  4389.  
  4390.  
  4391.        The usual interface to TOOLPACK is a set of 'csh' scripts that
  4392.        run the various TOOLPACK utilities to do specific tasks.
  4393.  
  4394.        The ones you will find most useful are: pol, polx, apt, dapt,
  4395.        decs, getlst, and discard.  These are the prettyprinter,
  4396.        precision converter, declaration standardizer, and some
  4397.        necessary utilities. See below for more details.
  4398.  
  4399.        By aware that TOOLPACK is *very* rigorous about the FORTRAN-77
  4400.        standard.  You may or may not consider this an advantage.
  4401.  
  4402.        The scripts are described by the 'scripts' script, which delivers
  4403.        the following:
  4404.        -----------------------------------------------------------------
  4405.        In the Toolpack script summaries below, the section numbers refer
  4406.        to the Unix environment Users' Guide where more detailed information
  4407.        can be found.  To obtain on-line information about a script's usage,
  4408.        type its name without any arguments.
  4409.  
  4410.  
  4411.        FORTRAN Analysis Facilities
  4412.  
  4413.           getlst   Produce a listing showing statement and token numbers.
  4414.                    Report lexical scanning warnings and errors. (3.1.1)
  4415.  
  4416.           syn     Report errors and warnings detected by lexical scanning,
  4417.                   parsing, and examining a set of symbol attributes. (3.1.2)
  4418.  
  4419.           sem     Report errors and warnings detected by lexical scanning,
  4420.                   parsing, and examining an extended set of symbol attributes.
  4421.                   (3.1.3)
  4422.  
  4423.           pfort   Report errors and warnings detected by lexical scanning,
  4424.                   parsing, examining an extended set of symbol attributes,
  4425.                   checking for unsafe references, and checking conformance
  4426.                   to a portable subset of FORTRAN. (3.1.4)
  4427.  
  4428.           statdoc In a user-supplied report template, place information
  4429.                   derived from static analysis to assist in documenting
  4430.                   the program.  Examples of information the user may
  4431.                   request are COMMON block usage, symbol attributes,
  4432.                   and a graph of subprogram calls. (3.1.5)
  4433.  
  4434.           inst    Instrument a FORTRAN program so that the instrumented
  4435.                   program, when executed, produces information about
  4436.                   program execution. (3.2.1)
  4437.  
  4438.           rundoc  Execute a program instrumented by inst and, in a
  4439.                   user-supplied report template, place information
  4440.                   derived from dynamic analysis to assist in documenting
  4441.                   the program.  For example, the user may determine the
  4442.                   frequency of execution of program segments. (3.2.2)
  4443.  
  4444.  
  4445.        FORTRAN Transformation Facilities
  4446.  
  4447.           pol     Format a FORTRAN program under control of user-supplied
  4448.                   options in a Polish option file. (4.1.1)
  4449.  
  4450.           polx    Construct a Polish option file via a menu-driven editor.
  4451.                   (4.1.2)
  4452.  
  4453.           decs    Rebuild the declarative part of a FORTRAN program. (4.2.1)
  4454.  
  4455.           apt     Transform a single-precision version of a FORTRAN program
  4456.                   to double precision or vice versa.  (4.3.1)
  4457.  
  4458.           dapt    Convert precision and rebuild the declarations, combining
  4459.                   the functions of apt and decs. (4.3.2)
  4460.  
  4461.           cname   Change the names in a FORTRAN program that satisfy
  4462.                   conditions derived from information in either the lexical
  4463.                   token stream or the symbol table or both. (4.4.1)
  4464.  
  4465.           lname   Transform a FORTRAN program containing long names to a
  4466.                   program with standard names. (4.4.2)
  4467.  
  4468.           stf     Rebuild the flow of control in a FORTRAN program to
  4469.                   standardized form. (4.5.1)
  4470.  
  4471.           ucs     Transform nests of DO loops matching certain paradigms
  4472.                   so that the transformed code executes more efficiently
  4473.                   on vector machines. (4.6.1)
  4474.  
  4475.  
  4476.        Miscellaneous Facilities
  4477.  
  4478.           fdiff   Compare two FORTRAN programs at the lexical token
  4479.                   level. (5.1.1)
  4480.  
  4481.           dac     Compare two data files, neglecting certain formatting
  4482.                   differences and numerical differences smaller than a
  4483.                   given tolerance. (5.1.2)
  4484.  
  4485.           vcon    Create, edit, and retrieve versions of a file contained
  4486.                   in a version file. (5.2.1)
  4487.  
  4488.           discard Remove unneeded files created by the above scripts. (5.3.1)
  4489.  
  4490.           scripts Print this summary of the scripts.  (5.4.1)
  4491.  
  4492.        ---------
  4493.  
  4494.        TOOLPACK can be obtained by anonymous ftp from:
  4495.  
  4496.           host:       perelandra.cms.udel.edu
  4497.           directory:  pub/Lang/Toolpack/
  4498.  
  4499.        The UNIX version is in the file:  toolpack.tar.Z
  4500.  
  4501.        Serious hackers will want the versions in the Distrib directory.
  4502.  
  4503.        The package is known to compile on Silicon Graphics and Sun
  4504.        machines, though the Makefile is reasonably braindamaged.
  4505.  
  4506.        You will need about 16 MB for the stripped executables on an
  4507.        SGI machine.  Figure on double that for compiling the package.....
  4508.  
  4509.           Have fun!
  4510.           --
  4511.           John D. McCalpin
  4512.           mccalpin@perelandra.cms.udel.edu
  4513.           Assistant Professor
  4514.           mccalpin@brahms.udel.edu
  4515.           College of Marine Studies, U. Del.
  4516.           John.McCalpin@mvs.udel.edu
  4517.  
  4518.  
  4519.    NAGWare f77 Tools
  4520.    -----------------
  4521.  
  4522.        The NAGWare f77 Tools are a development of Toolpack/1 that raises
  4523.        it from a public domain distribution service to a fully supported
  4524.        NAG product.
  4525.  
  4526.        Large parts of the software have been completely rewritten and
  4527.        considerable new functionality added, although all the old
  4528.        functionality of the analysis and transformational tools is
  4529.        still there.
  4530.  
  4531.        First released in 1991, the current version,
  4532.        Release 2 contains:
  4533.  
  4534.           nag_apt     - Arithmetic precision transformation.
  4535.           nag_chname  - Token based name changer.
  4536.           nag_decs    - Declaration standardiser (can generify intrinsics).
  4537.           nag_fcalls  - Call tree generator.
  4538.           nag_fxref   - Variable cross-referencer.
  4539.           nag_libdoc  - Interface lister.
  4540.           nag_lvi     - Local variable initialiser.
  4541.           nag_metrics - Software metrics.
  4542.           nag_pfort   - Portability verifier.
  4543.           nag_polish  - Pretty printer.
  4544.           nag_polopt  - Polish option file editor.
  4545.           nag_struct  - Restructurer.
  4546.           nag_profile - Profiler and report generator.
  4547.  
  4548.        The tools are available for most Unix and VMS.
  4549.  
  4550.        These are just some of the many improvements and enhancements that
  4551.        we have made:
  4552.  
  4553.           1. The US Military standard extensions (DO WHILE, ENDDO,
  4554.              IMPLICIT NONE, INCLUDE etc.) have been added to the
  4555.              familiar Toolpack/1 language definition, but analyser
  4556.              tools still report all extensions to the ANSI standard.
  4557.  
  4558.           2. The tools have been substantially rewritten to increase
  4559.              the execution speed.  Notably the lexer and parser have
  4560.              been 100% rewritten to operate faster and give very much
  4561.              better error messages and error recovery.
  4562.  
  4563.           3. The user interfaces for the tools are integrated well with
  4564.              the target operating systems. Access is via Unix scripts
  4565.              (or VMS command language) that carry out complete tasks.
  4566.  
  4567.              e.g. To invoke the Portability Verifier for a mixture of
  4568.              Fortran and Attribute files, with lower case character
  4569.              warnings suppressed:
  4570.  
  4571.                 Unix
  4572.  
  4573.                    nag_pfort -nolcwarn a*.f b*.atr
  4574.  
  4575.                 VAX/VMS
  4576.  
  4577.                    nag_pfort/nolcwarn a*.for,b*.atr
  4578.  
  4579.              The script calls the semantic analyser for the Fortran
  4580.              files and passes the Attribute files straight to the
  4581.              Portability Verifier.
  4582.  
  4583.              Or, to call the Precision Transform and Declaration
  4584.              Standardise in one step:
  4585.  
  4586.                 Unix
  4587.  
  4588.                    nag_apt -decs file.f
  4589.  
  4590.                 VAX/VMS
  4591.  
  4592.                    nag_apt/decs file.for
  4593.  
  4594.           4. User oriented documentation is based around the scripts.
  4595.              A relatively slim volume provides all the necessary
  4596.              information to run the tools.  A step by step introduction
  4597.              to each of the tools is provided, with small examples.
  4598.  
  4599.           5. The portability verifier has switches that allow groups
  4600.              of less serious messages to be suppressed. For example,
  4601.              all warnings about use of non standard characters in strings
  4602.              can be switched off.
  4603.  
  4604.           6. The portability verifier can dump its internal tables to a
  4605.              "library file" that can be loaded in a subsequent pfort run.
  4606.              This can be used to provide a definition of argument passage
  4607.              in a subroutine library to check a program that calls the
  4608.              subroutine library. Library files are more compact and more
  4609.              efficient than attribute files for this purpose.
  4610.  
  4611.           7. Include files are dealt with sensibly by default, the lexer
  4612.              knows about the MIL-STD INCLUDE statement and merges include
  4613.              files. The polisher, by default, un-includes the included text.
  4614.              Nag_decs, again by default, does not declare variables declared
  4615.              in include files.
  4616.  
  4617.           8. Tools are distributed in executable form only. The installation
  4618.              task is therefore minimal.
  4619.  
  4620.        We are developing a new option to the Portability Verifier to aid
  4621.        in porting to Fortran 90 by allowing Mil. Std. extensions, names
  4622.        up to 31 characters, etc, without the usual errors/warnings.
  4623.  
  4624.  
  4625.    NAGWare f90 Tools
  4626.    -----------------
  4627.  
  4628.        These tools make use of the front-end of the NAGWare f90 compiler.
  4629.        Currently, only a small suite of tools is offered, but development
  4630.        is on-going. Fixed format input is acceptable, but all output is
  4631.        free format. Release 2.1 contents are:
  4632.  
  4633.           - Pretty printer (polish)
  4634.           - Declaration standardiser
  4635.           - Precision standardiser (Standardises precision of
  4636.             REAL and COMPLEX)
  4637.           - Name changer
  4638.           - Call Graph Generator
  4639.           - Dependency Analyser (Generates Makefile dependencies)
  4640.           - Interface Block Builder
  4641.           - Use Statement Annotator (Adds an ONLY list to
  4642.             USE statements listing imports)
  4643.  
  4644.        Also a module builder and polish options editor are provided.
  4645.  
  4646.        Release 2.1 has a full Graphical User Interface as well as a
  4647.        command line interface.
  4648.  
  4649.        Availability: Most Unix (now).
  4650.  
  4651.           Best regards and many thanks, Ian.
  4652.  
  4653.           Ian Hounam                            Tel: +44 (0)1865 511245
  4654.              Software Engineering Group         Fax: +44 (0)1865 311205
  4655.              NAG Ltd.
  4656.              Wilkinson House
  4657.              Jordan Hill Road
  4658.              Oxford OX2 8DR
  4659.              UK
  4660.  
  4661.           NAG Ltd.                              NAG Inc.
  4662.              Wilkinson House
  4663.              1400 Opus Place
  4664.              Jordan Hill Road
  4665.              Suite 200
  4666.              Oxford OX2 8DR                     Downers Grove
  4667.              UK
  4668.              IL 60515-5702
  4669.  
  4670.           USA
  4671.              Email: infodesk@nag.co.uk          Email:  infodesk@nag.com
  4672.              Tel: +44 1865 311744               Tel:    +1 708 971 2337
  4673.              Fax: +44 1865 311755               Fax:    +1 708 971 2706
  4674.  
  4675.           NAGWare Web page:
  4676.  
  4677.              http://www.nag.co.uk/1h/nagware.html
  4678.  
  4679.  
  4680.    lgrind
  4681.    ------
  4682.  
  4683.        Aside from code reformatting, there is the other meaning
  4684.        of pretty printing ...
  4685.  
  4686.        -------------------------------------------
  4687.        ~From: James F Hall <james.f.hall@uwrf.edu>
  4688.        -------------------------------------------
  4689.        ...
  4690.  
  4691.        Second, on Q12 in the faq, about available pretty printers for
  4692.        Fortran...  Some time ago, I found a pretty printer called "lgrind",
  4693.        which converted a Fortran program into LaTeX/TeX.  This text could
  4694.        be included in a larger LaTeX/TeX file, or processed immediately.
  4695.        I chose not to use this because I found it was not the best use
  4696.        of my quota, but others may find it useful.
  4697.  
  4698.        Lgrind may be found using an archie search: archie lgrind ;;;;
  4699.  
  4700.  
  4701.    __________________________________________________________________________
  4702.                                        
  4703.  
  4704.  
  4705. 2.2.2) Are there pretty printers for FORTRAN? Flowchart generators?
  4706.  
  4707.        Yes.
  4708.  
  4709.    One such is SPAG: Authors are:
  4710.  
  4711.           Polyhedron Software Ltd.
  4712.              Linden House
  4713.              93 High St.
  4714.              Standlake
  4715.              WITNEY
  4716.              OX8 7RH
  4717.              United Kingdom
  4718.  
  4719.              Tel:         +44(0)1865-300579
  4720.              Fax:         +44(0)1865-300232
  4721.              Compuserve:  100013,461
  4722.              Internet:    John@polyhdrn.demon.co.uk
  4723.  
  4724.        it's part of their plusFORT product. See above.
  4725.  
  4726.  
  4727.    Another is Fortran development Tools from Quibus 714 527 1384
  4728.  
  4729.  
  4730.    Also FOR_STRUCT from cobalt-blue:
  4731.  
  4732.           Cobalt Blue, Inc.,
  4733.           555 Sun Valley Drive,
  4734.           Suite K-4,
  4735.           Roswell, GA 30076
  4736.  
  4737.           Tel:     (770) 518-1116,
  4738.           Fax:     (770) 640-1182
  4739.           E-Mail:  sales@cobalt-blue.com
  4740.  
  4741.        These more than pretty print, they optionally restructure your
  4742.        code (duplicating code as needed to tidy up strange GOTO lists,
  4743.        turning them into IF-THEN chains, and etc.).
  4744.  
  4745.  
  4746.    some more:
  4747.  
  4748.        ---------------------------------------
  4749.        ~From: dappel@grafted.UUCP (Dave Appel)
  4750.         uucp: ..!uunet!grafted.UUCP!dappel
  4751.        ---------------------------------------
  4752.  
  4753.        wg@cbnewsm.att.com (Bill Gieske) writes:
  4754.        > I have tons of old FORTRAN
  4755.        > code, most of it in upper case, the majority of it not indented.
  4756.        > Is there a code beautifier, either PD or $$ that I can run the
  4757.        > code through to improve the readability, hence the main-tainability?
  4758.        > Reply to me direct.  I will summarize if appropriate.
  4759.        > Bill Gieske AT&T Bell Laboratories wg%alux2@att.research.com
  4760.  
  4761.        Call "The Connection at 800-336-1166"  and ask for their
  4762.        software catalog.
  4763.  
  4764.        In their catalog that I have, Sprint 1992, there is an ad on
  4765.        page 39 from AutoCASE Technology.
  4766.        They have a product called "AutoFLOW-FORTRAN" that lists for $1,995.
  4767.        It claims to automatically document your existing source code.
  4768.        AutoCASE's number is 408-446-2273.
  4769.  
  4770.        On page 93 is an ad from POWERLINE Software Inc.  Their number
  4771.        is 800-257-5773, 206-623-9204.  They offer a product called
  4772.        SOURCE PRINT+, which they call a code management tool with
  4773.        "multi-style formatting with structured code blocking."
  4774.  
  4775.        They have a Fortran/Basic version for $169, and a Delux
  4776.        Multi-language version for $249.  This program is for
  4777.        DOS (MS-DOS presumably) Windows, and OS/2.
  4778.  
  4779.           Hope this helps.  Dave Appel
  4780.  
  4781.  
  4782.    Hindsight/Fortran Summary:
  4783.  
  4784.        Features include the ability to draw an interactive structure
  4785.        chart and display coverage, software complexity and performance
  4786.        information on the structure chart. There are also code tracing
  4787.        features, for instance 3 logic diagrams are produced.
  4788.        Common blocks can be traced through the structure charts,
  4789.        including specific variables within common blocks.
  4790.        Hindsight is excellent for documentation, code inspection,
  4791.        and bringing new software engineers up to speed on new code.
  4792.  
  4793.        For more information or a free demo copy, contact:
  4794.  
  4795.           Rich Fienberg,  National Account Manager
  4796.           Advanced Software Automation, Inc.
  4797.           3130A Coronado Dr
  4798.           Santa Clara, 95054
  4799.  
  4800.           Phone: 408 492-1668
  4801.           Fax: 408 492-1669
  4802.           Free Seminars Fridays 2-4pm
  4803.           Email:  rich@hindsight.com
  4804.  
  4805.        Alternative contact (if Dan cannot be reached:
  4806.  
  4807.           support@hindsight.com
  4808.  
  4809.  
  4810. Other tools:
  4811.  
  4812.    Refine/FORTRAN  ("re-engineering tool")
  4813.  
  4814.        Reasoning Systems Inc
  4815.        415 494 6201
  4816.        http://www.reasoning.com
  4817.  
  4818.        * The Refine Language Tool[tm] Refine/Fortran[tm].
  4819.  
  4820.        Customers use Refine/Fortran to analyze their large FORTRAN
  4821.        applications and then to better understand these applications.
  4822.        They gain enlightenment about their own software by printing
  4823.        reports and diagrams.
  4824.  
  4825.        They also apply various workbench features to online versions
  4826.        of these reports to find out more about their applications,
  4827.        including information as to how the pieces _really_ fit
  4828.        together per the semantics of FORTRAN.
  4829.  
  4830.        There are reports about coding standards violations, variables,
  4831.        variable access, subprograms and call graphs, and data flow
  4832.        via COMMON and EXTERNAL blocks.  Coming soon: control flow graphs.
  4833.  
  4834.        * Software Refinery[tm].
  4835.  
  4836.        Refine/Fortran is unique in the marketplace; it's the only
  4837.        extensible FORTRAN application analysis tool.
  4838.        A customer uses Software Refinery, a product we also sell,
  4839.        to add custom analyses or reports or online displays to
  4840.        Refine/Fortran.
  4841.  
  4842.  
  4843.    fxref:
  4844.  
  4845.        pub/fortran/fxref.tar.Z from biome.bio.ns.ca.
  4846.        create cross reference of a FORTRAN program.
  4847.  
  4848.  
  4849.    CLEAN77:
  4850.  
  4851.        CLEAN77 available from Purdue University.
  4852.        Mail Greg Flint (afc.klaatu.cc.purdue.edu) for more info.
  4853.  
  4854.  
  4855.    TIDY:
  4856.  
  4857.        There is a program called TIDY that is available via
  4858.        anonymous FTP from simtel20:
  4859.  
  4860.        host:       oak.oakland.edu
  4861.        directory:  pub/msdos/fortran/
  4862.        file:       tidy621.zip
  4863.  
  4864.  
  4865.    Cadre:
  4866.  
  4867.        ************************************************************************
  4868.        Cadre Teamwork
  4869.  
  4870.           222 Richmond
  4871.           Street
  4872.           Providence, RI 02903
  4873.           Phone (401) 351-5950   Fax (401)
  4874.           351-7380
  4875.  
  4876.        Cadre Technologies Inc.  Cadre Teamwork is a large suite
  4877.        of integrated CASE tools that run on Unix and VAX platforms.
  4878.  
  4879.        Their core products are structured analysis (with real-time extensions)
  4880.        and design, information modeling, and an integrated data dictionary.
  4881.  
  4882.        More recently, they have added many extensions, including
  4883.        a C development environment, C and Fortran reverse engineering
  4884.        (build a structure chart from source code), testing tools,
  4885.        and others.
  4886.  
  4887.  
  4888.    FORTRAN Partner:
  4889.  
  4890.        -----------------------------------------------
  4891.        ~From: lionel@quark.enet.dec.com (Steve Lionel)
  4892.        -----------------------------------------------
  4893.  
  4894.        ~Newsgroups: comp.lang.fortran
  4895.        ~Subject: Re: Code formatter for FORTRAN
  4896.        ~Date: 15 Jun 1994 15:02:38 GMT
  4897.        Organization: Digital Equipment Corporation, Nashua NH
  4898.        ~Reply-To: lionel@quark.enet.dec.com (Steve Lionel)
  4899.  
  4900.  
  4901.        In article <2tn1bf$aod@rcsuna.gmr.com>,
  4902.        jgatowsk@rinhp750.gmr.com (Jan Gatowski EN/16) writes:
  4903.  
  4904.        |> Does anyone know if there exists a (commercial or freeware)
  4905.        |> FORTRAN code indenter/formatter? A friend is faced with
  4906.        |> revamping a largely unreadable old code and could use any
  4907.        |> available tools to render it more legible.
  4908.  
  4909.        While I was at UK DECUS I attended a talk which described a product
  4910.        called The FORTRAN Partner which has as its capabilities (according
  4911.        to the documemtation I have):
  4912.  
  4913.           Screening:       automatically checking whole FORTRAN programs
  4914.                            for classes of error not detected by compiler
  4915.  
  4916.           Troubleshooting: analysing programmes interactively to expose
  4917.                            problems or inconsistencies
  4918.  
  4919.  
  4920.           Porting:         moving code to different FORTRAN environments
  4921.  
  4922.  
  4923.           Standardising:   converting code to a consistent style and
  4924.                            creating a framework for documentation
  4925.  
  4926.           Optimising:      optimising code for speed of execution
  4927.  
  4928.  
  4929.        The product is available on the following platforms:
  4930.  
  4931.  
  4932.           Alliant FX80
  4933.           Avalon Vaccelerator AP/30
  4934.           Digital VAX (OpenVMS)
  4935.           Digital Alpha AXP (OpenVMS)
  4936.           HP Risc Processors under Unix
  4937.           IBM PC and compatible systems with minimum 80386
  4938.              processor and Maths Coprocessor
  4939.           IBM Risc System 6000 under AIX
  4940.           Parsys Supernode under Idris
  4941.           Silicon Graphics MIPS processors under IRIS
  4942.           Sun SPARC and compatible under Solaris and SunOS
  4943.  
  4944.        The vendor is:
  4945.  
  4946.           Software Validation Limited
  4947.           PO Box 270
  4948.           Swindon SN4 0TQ
  4949.           England
  4950.           Tel:  +44 (0) 793 740002
  4951.           Fax:  +44 (0) 793 740974
  4952.  
  4953.        A single workstation/PC price is given as 945 Pounds.
  4954.        I don't know what a US price would be.
  4955.  
  4956.        One of the claims which impressed me was the ability to understand
  4957.        many different syntax variants and convert them to a more standard
  4958.        form.  The formatting rules are customizable.  (The optimizations
  4959.        consist of inline expansion and loop unrolling.)
  4960.  
  4961.        I have not actually tried this product (I just got a demo disc today)
  4962.        and this should in no way be considered an endorsement of the
  4963.        product by either myself or Digital Equipment Corporation.
  4964.        However, it looks like it would be worth considering for
  4965.        some applications.
  4966.        --
  4967.  
  4968.           Steve Lionel                      Mail: lionel@quark.enet.dec.com
  4969.           SDT Languages Group               WWW:  http://www.digital.com/info/s
  4970. lionel.html
  4971.           Digital Equipment Corporation
  4972.           110 Spit Brook Road, ZKO2-3/N30
  4973.           Nashua, NH 03062-2698
  4974.           "Free advice is worth every cent"
  4975.  
  4976.  
  4977.    __________________________________________________________________________
  4978.                                        
  4979.  
  4980.  
  4981. 2.2.3) Is there a WEB for Fortran (and what is web anyway)?
  4982.  
  4983.        ------------------------------------------------
  4984.        ~From: ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig)
  4985.        ------------------------------------------------
  4986.  
  4987.        FWEB is available via anonymous ftp; use archie(above)
  4988.        to determine current location(s).
  4989.  
  4990.  
  4991.    As for the more general question, what is WEB ....
  4992.  
  4993.        WEB is a  "literate" programming system created by Knuth
  4994.        (he of reference book fame, and TeX fame, and etc.).
  4995.  
  4996.        It permits the programmer to write code and documentation together.
  4997.        WEB takes the "high level code and documentation" and creates real
  4998.        publishable documentation (using TeX or LaTeX) and compilable code.
  4999.        WEB versions for many languages are available.
  5000.  
  5001.        Some features of FWEB are:
  5002.  
  5003.  
  5004.           1) FWEB is a pretty printer.  Code is pretty printed by
  5005.              sending the FWEB file through "fweave" and "TeX".
  5006.              fweave inserts TeX control characters around the code for
  5007.              pretty printing.  Fweave also collects a cross-referenced
  5008.              index of *all* identifiers and prints them at the end of
  5009.              the code listing.
  5010.  
  5011.           2) FWEB has built in macro preprocessing, which *does*
  5012.              understand FORTRAN syntax and code layout rules.
  5013.              A line extending beyond column 72 will be broken into
  5014.              proper continuation lines.
  5015.  
  5016.           3) FWEB is multilingual: it understands C,C++,f77,f90,
  5017.              and RatFor.
  5018.  
  5019.  
  5020.    __________________________________________________________________________
  5021.                                        
  5022.  
  5023.  
  5024. 2.2.4) Fortran text editors?
  5025.  
  5026.        [...]  More generally, Unipress emacs has a Fortran mode.
  5027.        There are XEDIT, BRIEF, TPU and EDT clones available on many
  5028.        common platforms these days.
  5029.  
  5030.  
  5031.        -----------------------------------------------
  5032.        ~From: ig25@rz.uni-karlsruhe.de (Thomas Koenig)
  5033.        bitnet:  ig25@dkauni2.bitnet
  5034.        -----------------------------------------------
  5035.  
  5036.        If you use EMACS, you can use M-x fortran-mode.  An extended
  5037.        version, which includes the fortran-auto-fill-mode minor mode,
  5038.        is available via anonymous ftp from:
  5039.  
  5040.           host:       hallc1.cebaf.gov [129.57.32.62]
  5041.           directory:  /emacs
  5042.  
  5043.        More generally, Unipress emacs has a Fortran mode.
  5044.        There are XEDIT, BRIEF, TPU and EDT clones available on many
  5045.        common platforms these days.
  5046.  
  5047.  
  5048.        ---------------------------------------------
  5049.        ~From: B.R.Eggen@Sussex.ac.uk (Bernd R Eggen)
  5050.        ---------------------------------------------
  5051.  
  5052.        Torbjorn Einarsson has made available Fortran 90 modes for Emacs
  5053.        19.x (and xemacs). They are available e.g. from the Mailbase list
  5054.        for Fortran 90, comp-fortran-90 from 12/Jan/1995 onwards. I would
  5055.        like to express my gratitude to Torbjorn Einarsson for making this
  5056.        valuable tool publicly accessible.
  5057.  
  5058.        Files can be retrieved either via anonymous
  5059.        ftp to:
  5060.  
  5061.           host:       mailbase.ac.uk,
  5062.           directory:  /pub/lists/comp-fortran-90/files/
  5063.  
  5064.        by Gopher and WWW (World Wide Web), URL (Universal Resource
  5065.        Locator):
  5066.  
  5067.           gopher://nisp.ncl.ac.uk/11/lists-a-e/comp-fortran-90/files
  5068.  
  5069.        or by sending an e-mail to:
  5070.  
  5071.           mailbase@mailbase.ac.uk,
  5072.  
  5073.        containing the command:
  5074.  
  5075.           send <listname> <filename>
  5076.  
  5077.        (e.g. send comp-fortran-90 f90.el).
  5078.  
  5079.  
  5080.        ---------------------------------------------------
  5081.        ~From:  John E. Davis   http://space.mit.edu/~davis
  5082.        ---------------------------------------------------
  5083.  
  5084.        In addition, JED has a Fortran mode that is very much like the
  5085.        emacs Fortran mode.  JED also has a very nice EDT emulation and
  5086.        runs on MSDOS, Unix, VMS, as well as DEC Alpha systems.
  5087.  
  5088.        JED is no longer available from amy.tch.harvard.edu.  It is now
  5089.        available in the USA from:
  5090.  
  5091.           ftp://space.mit.edu/pub/davis
  5092.  
  5093.        and in Europe from:
  5094.  
  5095.           ftp://ftp.uni-stuttgart.de:/pub/unix/misc/slang
  5096.           ftp://ftp.prz.tu-berlin.de/pub/unix/editors/jed
  5097.  
  5098.        The latest version is 0.97-14.  A .gif image of JED is also
  5099.        available from http://space.mit.edu/~davis/images/jed1.gif.
  5100.  
  5101.        Despite the fact that the version number is below 1.0, the editor
  5102.        is VERY stable--- the version is below 1.0 because I feel that the
  5103.        documentation is not quite up to 1.0 levels.
  5104.  
  5105.        Here is a partial list of features:
  5106.  
  5107.           o  runs under Unix, VMS, and IBMPC (all versions)
  5108.              X Window version also available
  5109.  
  5110.           o  emacs*, wordstar*, EDT* emulation C, Fortran*, tex*,
  5111.              text editing modes
  5112.  
  5113.           o  C-like extension language called S-Lang.
  5114.  
  5115.           o  user configurable (bind keys, write functions, etc....)
  5116.  
  5117.           o  region highlighting (even on character based terminals!)
  5118.  
  5119.           o  Syntax highlighting in Beta test (even on character based
  5120.              terminals)
  5121.  
  5122.           o  8 bit clean, edit binary files too.
  5123.  
  5124.           o  rectangular (box) cut/paste
  5125.  
  5126.           o  backup and autosave files
  5127.  
  5128.           o  full undo
  5129.  
  5130.           o  regular expressions
  5131.  
  5132.           o  GNU Emacs compatable
  5133.  
  5134.           o  info reader* calendar* mail*, elm like rmail*
  5135.              (rmail new in 0.95 version) dired directory editor*
  5136.  
  5137.           o  automatic horizontal pan/scroll (configurable)
  5138.  
  5139.           o  parenthesis matching/blinking
  5140.  
  5141.           o  filename, buffername, function name completion
  5142.  
  5143.           o  Menu driven for novice users*
  5144.  
  5145.           o  incremental search/replace*
  5146.  
  5147.           o  sorting
  5148.  
  5149.           o  no hardcoded buffer/line limits
  5150.  
  5151.           o  multiple windows and buffers
  5152.  
  5153.           o  keyboard macros with macro query feature.
  5154.  
  5155.           o  buffer mode lines are configurable, e.g., display time,
  5156.              line number, etc...
  5157.  
  5158.           o  ispell* shell commands and ``interactive'' shell*
  5159.  
  5160.        * Note:  these functions are written in the extension language.
  5161.  
  5162.           John E. Davis  internet:  davis@amy.tch.harvard.edu
  5163.                          bitnet:    davis@ohstpy
  5164.  
  5165.  
  5166.    __________________________________________________________________________
  5167.                                        
  5168.  
  5169.  
  5170. 2.2.5) How can I convert an existing FORTRAN 77 program to the free
  5171.        form source of Fortran 90?
  5172.  
  5173.        Source code conversion program from ftp
  5174.        ---------------------------------------
  5175.  
  5176.        Many people who start to code in Fortran 90 prefer to do so using
  5177.        the new, less restictive, source form. However, a problem arises
  5178.        when wanting to modify old FORTRAN 77 code while sticking to the
  5179.        new style. To help in this situation, a source code conversion
  5180.        program has been written (and well tested) and made availble by
  5181.        anonymous ftp.
  5182.  
  5183.        Apart from the conversion, the program can:
  5184.  
  5185.           o  ensure that blanks are used correctly in the code as they
  5186.              are significant with the new source form;
  5187.  
  5188.           o  indent DO-loops and IF-blocks;
  5189.  
  5190.           o  replace CONTINUE by END DO, where appropriate;
  5191.  
  5192.           o  add subprogram names to END statements;
  5193.  
  5194.           o  change non-standard length specification syntax,
  5195.              like INTEGER*2, to the Fortran 90 equivalent,
  5196.              in all contexts (type statements, FUNCTION statements,
  5197.              and IMPLICIT statements);
  5198.  
  5199.           o  produce an interface block automatically from the
  5200.              source code of a procedure - useful to the library
  5201.              developer when wishing to use this important new
  5202.              facility with an existing library.
  5203.  
  5204.        The source code can be obtained by anonymous
  5205.        ftp to:
  5206.  
  5207.           jkr.cc.rl.ac.uk (130.246.8.23)
  5208.  
  5209.        When prompted for a userid, reply with:  anonymous
  5210.        and give your name as password.
  5211.        The directory is /pub/MandR and the file name is convert.f90.
  5212.  
  5213.           Mike Metcalf  (metcalf@cernvm.cern.ch)
  5214.  
  5215.  
  5216.    __________________________________________________________________________
  5217.                                        
  5218.  
  5219.  
  5220. 2.2.6) What is preprocessing, how can it help? How can it hurt?
  5221.  
  5222.        Preprocessing often refers to usage of a Macro-prepressor
  5223.        upon ones source code prior to compilation.
  5224.  
  5225.        How can this help?
  5226.  
  5227.           It can make it easier to move code between machines.
  5228.  
  5229.        How can this hurt?
  5230.  
  5231.           It can cause difficulties in compilation of the processed code;
  5232.           most (if not all) macro-preprocessors know nothing about Fortran
  5233.           syntax and code layout rules.  So, a common problem is that after
  5234.           preprocessing some text may be lost past "sacred" column 72.
  5235.           Those working with compilers that optionally compile *past* line
  5236.           72 should probably employ that option when using a preprocessor.
  5237.  
  5238.        Common prepressors are: cpp, m4, and ratfor. Many sites have their
  5239.        own custom prepressors. Basic functions are:
  5240.  
  5241.           1) definition of a symbol
  5242.           2) conditional code selection based on a symbol
  5243.           3) substition of a symbol by its definition
  5244.  
  5245.        Traditional BSD Unix f77 processors treat a file named foo.F
  5246.        (as opposed to foo.f) as one that should be run through cpp
  5247.        prior to compilation "automatically".
  5248.  
  5249.  
  5250.  
  5251.  
  5252. 2.3) Fortran Packages and libraries
  5253.  
  5254.  
  5255.  
  5256.  
  5257. 2.3.1) Where can I get "foo" (some random package), older posts
  5258.        to comp.lang.fortran etc
  5259.  
  5260.        ----------------------------------------------------------
  5261.        ~From: mroussel@alchemy.chem.utoronto.ca (Marc R. Roussel)
  5262.        ----------------------------------------------------------
  5263.  
  5264.        Use archie.  archie is an online database of what is available
  5265.        and where on the "net". Archie can be used either via telnet
  5266.        or by mail. For information about archie send mail to:
  5267.  
  5268.           archie@archie.rutgers.edu     subject:  help
  5269.  
  5270.        And you will get back copious directions on how to use archie.
  5271.        If you prefer interactive experimentation, telnet to:
  5272.  
  5273.           archie.rutgers.edu
  5274.  
  5275.        and log in as archie.  No password will be required.
  5276.        The first thing you will be shown is a list of other archie servers.
  5277.        If one of these servers is geographically much closer to you than
  5278.        Rutgers, NJ, please disconnect (by typing 'quit') and use that one.
  5279.        To save you this step, here is a  list of archie sites:
  5280.  
  5281.           archie.rutgers.edu   128.6.18.15     (Rutgers University)
  5282.           archie.unl.edu       129.93.1.14     (University of Nebraska
  5283.                                                             in Lincoln)
  5284.           archie.sura.net      128.167.254.179 (SURAnet archie server)
  5285.           archie.ans.net       147.225.1.2     (ANS archie server)
  5286.           archie.au            139.130.4.6     (Australian server)
  5287.           archie.funet.fi      128.214.6.100   (European server in Finland)
  5288.           archie.doc.ic.ac.uk  146.169.11.3    (UK/England server)
  5289.           archie.cs.huji.ac.il 132.65.6.15     (Israel server)
  5290.           archie.wide.ad.jp    133.4.3.6       (Japanese server)
  5291.  
  5292.        I believe that all of these servers run the mail server as well
  5293.        as the telnet and archie server software.  (The archie server
  5294.        is a third way to use archie.  It's probably the best way,
  5295.        but it requires that you install software.)
  5296.  
  5297.        Once you logged into an archie server, you will want to make
  5298.        sure that all the information you will retrieve will be mailed
  5299.        to you. Type:
  5300.  
  5301.           set mailto userid@machine.foo.edu
  5302.  
  5303.        where, of course, you will substitute your own email address
  5304.        for the made-up one shown above.  You are now ready to search
  5305.        the database. If at any time you want to know what options are
  5306.        available to you, type help.  To search for a program or file,
  5307.        type:
  5308.  
  5309.           prog foo
  5310.  
  5311.        where foo is the name of the program or file required.
  5312.        Once your search is done, type 'mail' to have the output sent
  5313.        to you. (The output will almost always be several pages long.)
  5314.        Then type 'quit' to exit.
  5315.  
  5316.  
  5317.  
  5318.        comp.lang.fortran archives
  5319.        --------------------------
  5320.  
  5321.        Dejanews archives all Usenet newsgroups, a convenient "entry
  5322.        point" for browsing news is:
  5323.  
  5324.           http://www.dejanews.com/toplevel.html
  5325.  
  5326.        Older news items (more than three months) are kept separatly.
  5327.  
  5328.  
  5329.    __________________________________________________________________________
  5330.                                        
  5331.  
  5332.  
  5333. 2.3.2) Where can I find coded BLAS (and what are coded BLAS?)
  5334.  
  5335.        The BLAS (basic linear algebra software) comes in several
  5336.        flavors:  BLAS-1, -2, and -3.  These can be described as
  5337.        scalar, vector and matrix-matrix levels.
  5338.  
  5339.        "Coded" BLAS are either hand coded in assembler, or at
  5340.        least tweaked for a given machine.
  5341.  
  5342.        Some vendors provide these, some are provided on the net
  5343.        (see archie) and some are marketed by various commercial
  5344.        organizations.
  5345.  
  5346.        In addition, it should be noted that BLAS-3 is very amenable
  5347.        to parallel processing. Done cleverly, this could be done by
  5348.        a network of processors over a net.
  5349.  
  5350.        DSS markets just such an implementation. Contact the folks
  5351.        below. The following material is their marketing blurb:
  5352.  
  5353.  
  5354.           DSSLIB is the fastest BLAS[123], LAPACK, LINPACK, FFTPACK,
  5355.           and VFFTPACK available for the entire SPARC hardware and
  5356.           software line.
  5357.  
  5358.           DSSLIB is based on LAPACK 2.0, but is backward compatible with
  5359.           all previous LAPACKs.
  5360.  
  5361.           Single-CPU optimization typically yields 2x-4x over Netlib code.
  5362.           MP computation yields significantly better than that, reaching
  5363.           almost half a gigaflop on a top-of-the-line Sun MP machine and
  5364.           exceeding even that on SPARC MP supercomputers.
  5365.  
  5366.           Interfaces are shipped with DSSLIB to allow users of IMSL/Math,
  5367.           Rogue Wave's math libraries, IDL from Research Systems,
  5368.           and others to optimize and parallelize their applications
  5369.           without making source code changes.
  5370.  
  5371.           The company can be contacted at: Dakota Scientific Software, Inc.
  5372.           2241 Cedar Drive Rapid City, SD 57702-3245
  5373.  
  5374.              sales@scisoft.com
  5375.              +1.800.641.8851  voice
  5376.              +1.605.394.8851  voice
  5377.              +1.605.348.9623  fax
  5378.  
  5379.  
  5380.    __________________________________________________________________________
  5381.                                        
  5382.  
  5383.  
  5384. 2.3.3) Where can I get mathematical software
  5385.  
  5386.        There are, of course, many commerical operations which provide
  5387.        high quality software. NAG and IMSL to name just two.
  5388.  
  5389.        netlib and archie (mentioned above) can be used to good effect
  5390.        to find specific freeware (public domain, shareware or mostly
  5391.        freely distributable source).
  5392.  
  5393.        In addition, NASA's COSMIC distributes some government funded
  5394.        software.
  5395.  
  5396.        One particular bit of NASA software, MATH77 a large math library
  5397.        created by numerical analysts at JPL is available from:
  5398.  
  5399.           Language Systems Corp.
  5400.           441 Carlisle Dr.
  5401.           Herndon, VA 22070
  5402.           tel:    (800) 252-6479
  5403.           email:  langsys@aol.com
  5404.  
  5405.  
  5406.        An excellent place to look for such things is the Web page
  5407.        of Tomasz Plewa:
  5408.  
  5409.           http://tonic.physics.sunysb.edu/docs/num_meth.html
  5410.           http://www.math.psu.edu/dna/num_methods.html
  5411.           http://zar.unizar.es/www/num_meth.html
  5412.           http://www.labyrinth.net.au/~ctrans/tomasz.html
  5413.  
  5414.  
  5415.    __________________________________________________________________________
  5416.                                        
  5417.  
  5418.  
  5419. 2.3.4) What Interval Arithmetic Packages are available?
  5420.  
  5421.        --------------------------------------------
  5422.        ~From: molagnon@marathon.ifremer.fr
  5423.        (Michel Olagnon, Ifremer DITI GO, 98.22.41.4
  5424.        --------------------------------------------
  5425.  
  5426.        The CADNA package implements stochastic arithmetic (a sort of
  5427.        interval arithmetic) in Fortran 90 on the top of any standard
  5428.        Fortran 77 program.  That is, if you have a working Fortran 77
  5429.        program, you can use CADNA to see what results you get with
  5430.        stochastic arithmetic.
  5431.  
  5432.        For information on CADNA, or a demo version,
  5433.        contact:
  5434.  
  5435.           Mr. F. CHAUVET or Mr. BERTHON
  5436.           AERO
  5437.           3 Avenue de l'Opera
  5438.           75001
  5439.           PARIS
  5440.           tel:  +33 1 44 55 30 80
  5441.           fax:  +33 1 40 15 95 54
  5442.  
  5443.        For information on stochastic arithmetic (similar to interval
  5444.        arithmetic, but the intervals are the most probable error bounds
  5445.        instead of the maximum bounds), refer to:
  5446.  
  5447.        Vignes, Jean,
  5448.        A stochastic arithmetic for reliable scientific
  5449.        computation MATCOM 940
  5450.        -- Mathematics and Computers in Simulation 35 (1993) 233-261.
  5451.  
  5452.  
  5453.  
  5454.        ----------------------------------------------------
  5455.        ~From: ig25@fg30.rz.uni-karlsruhe.de (Thomas Koenig)
  5456.        ~Reply-To: Thomas.Koenig@ciw.uni-karlsruhe.de
  5457.        ----------------------------------------------------
  5458.  
  5459.        You might try the XSC series of languages developed at
  5460.        the Institute for Applied Mathematics at the University
  5461.        of Karlsruhe (look at:
  5462.  
  5463.           http://ma20.rz.uni-karlsruhe.de/~ae08/iam/html/xsc-sprachen.html
  5464.  
  5465.        if you've got access to Mosaic), or send mail to:
  5466.  
  5467.           ae08@rz.uni-karlsruhe.de
  5468.  
  5469.        (Rolf Hammer) for more information.
  5470.  
  5471.        I'm fairly sure about Pascal, C, and C++; I also believe
  5472.        IBM sells a compiler based and their VS series of compilers.
  5473.  
  5474.  
  5475.    __________________________________________________________________________
  5476.                                        
  5477.  
  5478.  
  5479. 2.3.5) FLIB Announcement ... Freeware
  5480.  
  5481.        Date: Mon, 22 May 1995 19:39:41
  5482.        Organization: Kansas State University
  5483.        Lines: 93
  5484.        Message-ID: <robs.16.0013A98D@ksu.ksu.edu>
  5485.        NNTP-Posting-Host: s20.slip.ksu.edu
  5486.        Keywords: FORTRAN Freeware
  5487.        X-Newsreader: Trumpet for Windows [Version 1.0 Rev A]
  5488.  
  5489.        Hello FORTRAN People, This is the first general announcement
  5490.        of the FORTRAN Library (FLIB).
  5491.        One of the unique aspects of this code repository is that a
  5492.        considerable amount of source code is available for non-numeric
  5493.        tasks, .e.g.,
  5494.  
  5495.            string manipulation,
  5496.            time and date functions,
  5497.            conversion of numbers to strings (and vice versa),
  5498.            etc...
  5499.  
  5500.        Many of these tasks are among the most Frequently Asked
  5501.        Questions (FAQ) in the FORTRAN usenet group.
  5502.  
  5503.        The preferred (by me) method of accessing FLIB is through the
  5504.        World Wide Web. The information and code descriptions provided
  5505.        via the web will be more up-to-date and comprehensive, and it
  5506.        will be easier for you to maintain a stable link to this code
  5507.        repository if you access it via the uniform resource locator
  5508.        (URL):
  5509.  
  5510.           http://www.engg.ksu.edu/~robs/flib/flib.html
  5511.  
  5512.        FLIB can also be reached by generic file transfer protocol (ftp).
  5513.        If you have trouble accessing FLIB via your web client,
  5514.        try using a generic ftp program to access the anonymous
  5515.        ftp server at:
  5516.  
  5517.           godiva.ne.ksu.edu
  5518.  
  5519.        Login as anonymous and enter your email address
  5520.        (e.g., robs@ksu.ksu.edu) as the password.
  5521.        The flib files are under the directory ~pub/robs/flib.
  5522.  
  5523.        The current scope of the code in FLIB is summarized below.
  5524.        Please feel free to send me an email message describing your
  5525.        opinion/experience with FLIB (remember however that this is
  5526.        freeware).
  5527.  
  5528.        Rob Stewart  robs@ksu.ksu.edu
  5529.  
  5530.        ------------------------------------------------------------
  5531.        Scope of Code Repository
  5532.  
  5533.        The FLIB routines are currently divided into five areas:
  5534.  
  5535.        CharPak
  5536.  
  5537.           This package contains approximately 50 routines to
  5538.           manipulate character strings (e.g., upper to lowercase,
  5539.           removal of specific characters from a string, macro
  5540.           substitution). convert numbers  to strings and vice versa,
  5541.           align/center text in specific columns,  plus more...
  5542.  
  5543.  
  5544.        GeomPak
  5545.  
  5546.           For now this package contains less than 10 routines; basic
  5547.           routines are provided to scale, rotate, and translate points
  5548.           between coordinate systems.  These routines are quite useful
  5549.           in a number of computer simulations involving 2 and
  5550.           3-dimensional geometries -- including graphics.
  5551.  
  5552.  
  5553.        RanPak
  5554.  
  5555.           This package contains approximately 30 routines to generate
  5556.           random numbers sample from various probability density
  5557.           functions (pdf) including a disk, plate, box, sphere, and
  5558.           unit direction vectors from arbitrarily oriented cones
  5559.           (NOTE: some routines call routines from GeomPak). All of the
  5560.           algorithms for random number genration are based on the
  5561.           discussion of Lehmer generators (circa 1951) in the article
  5562.  
  5563.           Park, S.K. and Miller, K.W.,
  5564.           Random number generators: good ones are hard to find.
  5565.           Communications of the ACM, 31, No 10 (Oct. 1988).
  5566.  
  5567.  
  5568.        TimPak
  5569.  
  5570.           A set of routines to access and manipulate the system time
  5571.           and date, compute the elapased time between two events,
  5572.           etc...  Since most of these routines are system and compiler
  5573.           dependent, you will also need to select the appropriate file
  5574.           from the Compiler Abstraction Layer (CAL) -- see below.
  5575.  
  5576.  
  5577.        Compiler Abstraction Layer (CAL)
  5578.  
  5579.           A set of stubs or wrappers for widely used but non-portable
  5580.           and non-standard system calls or routines (e.g., system time
  5581.           and date).
  5582.  
  5583.  
  5584.        Rob Stewart robs@ksu.ksu.edu --or--
  5585.        http://www.engg.ksu.edu/~robs/home.html
  5586.  
  5587.        Diplomacy: The art of saying "nice doggie" until you can find a rock.
  5588.  
  5589.  
  5590.  
  5591.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  5592.  
  5593.  
  5594.  
  5595. 3.1) Fortran and other languages (Essentially C)
  5596.  
  5597.  
  5598. 3.1.1) "Why do people use FORTRAN?, C is so much better"
  5599.  
  5600.        One should avoid such pointless arguments .... if you feel
  5601.        this way, don't subscribe to comp.lang.fortran.
  5602.  
  5603.        This sort of question always triggers off a protracted
  5604.        discussion, the highlights of which are typically:
  5605.  
  5606.        a) FORTRAN and C have different semantics. A FORTRAN optimizer
  5607.           knows more about aliasing, function interactions, and I/O.
  5608.           A C optimizer has to infer or compute such information.
  5609.           C bigots typically have neither written such optimizers nor
  5610.           worked with folks who do it for a living, and are prone to
  5611.           dismiss such arguments as being petty and neolithic.
  5612.  
  5613.           FORTRAN programmers are often a bit more in touch with high
  5614.           performance computing, and are unwilling to bet that heavily
  5615.           on compiler wizardry.
  5616.  
  5617.           <enter Peter van der Linden author of "Expert C Programming" >
  5618.  
  5619.           In addition, ANSI C section 2.1.2.3 on Program Execution
  5620.           makes it clear that associative and commutative regrouping
  5621.           of operands is only allowed if it produces the same result
  5622.           as it would if the regrouping had not been done.
  5623.           Where it makes a difference is on hardware that produces
  5624.           an exception on arithmetic overflow, and the regrouping
  5625.           either causes or avoids an exception,
  5626.           that otherwise would not/would take place.  In ANSI C
  5627.  
  5628.              a = a + 32760 + b
  5629.  
  5630.           MUST be evaluated as  (a + 32760) + b  NOT as  a +(32760 + b)
  5631.           UNLESS the overflow exception will be the same in either case.
  5632.  
  5633.           Fortran is somewhat less tightly-buttoned about this, and
  5634.           allows the compiler-writer to regroup the expression and
  5635.           evaluate it in either order. Thus, in Fortran, whether you
  5636.           get an exception or not depends on the compiler, the level
  5637.           of optimization, and the hardware.  In ANSI C, it only depends
  5638.           on the hardware.
  5639.  
  5640.           Of course, compiler options, vendor extensions and the like
  5641.           sometimes narrow the difference. Also, some Fortran compilers
  5642.           do not take advantage of all of these features of the language,
  5643.           thus narrowing the gap in the other direction.
  5644.  
  5645.           On any given code, on any given system, all bets are off.
  5646.  
  5647.        b) There is a vast body of existing FORTRAN code (much of which
  5648.           is publically available and of high quality). Numerical codes
  5649.           are particularly difficult to "vet", scientific establishments
  5650.           usually do not have large otherwise idle programming staffs, etc.
  5651.           so massive recoding into any new language is typically resisted
  5652.           quite strongly.
  5653.  
  5654.        c) Fortran tends to meet some of the needs of scientists better.
  5655.           Most notably, it has built in support for: - variable dimension
  5656.           array arguments in subroutines - a compiler-supported infix
  5657.           exponentiation operator which is generic with respect to both
  5658.           precision and type, *and* which is generally handled very
  5659.           efficiently or the commonly occuring special case
  5660.           floating-point**small-integer - complex arithmetic -
  5661.           generic-precision intrinsic functions
  5662.  
  5663.        d) Retraining staff is quite expensive.
  5664.  
  5665.        e) It is sometimes argued that: - Jonathan Thornburg <also
  5666.           responsible for misc. other fixups>
  5667.  
  5668.           Fortran tends to be easier for non-experts to learn than C,
  5669.           because its "mental model of the computer" is much simpler.
  5670.           For example, in Fortran the programmer can generally avoid
  5671.           learning about pointers and memory addresses, while these
  5672.           are essential in C.
  5673.  
  5674.           More generally, in Fortran the difference between (C notation)
  5675.           x, &x, and often even *x is basically hidden, while in C
  5676.           it's exposed.  For non-experts this makes Fortran
  5677.           a considerably simpler language.
  5678.  
  5679.           Because of this relative simplicity, for simple programming
  5680.           tasks which fall within its domain, (say writing a simple
  5681.           least-squares fitting routine), Fortran generally requires
  5682.           much less computer science knowledge of the programmer than
  5683.           C does, and is thus much easier to use.
  5684.  
  5685.  
  5686.        An interesting (pro-Fortran 90) viewpoint on this subject from
  5687.        a practical point of view can be found at:
  5688.  
  5689.           http://www.hp.com/wsg/ssa/fortran/f90prent.html
  5690.  
  5691.        It's called "Fortran 90 as a language of choice for engineering
  5692.        students", and was written by Dr. John K. Prentice from Quetzal
  5693.        Computational Associates (Email: john@quetzalcoatl.com).
  5694.  
  5695.  
  5696.    __________________________________________________________________________
  5697.                                        
  5698.  
  5699.  
  5700. 3.1.2) Why are there aimless debates?
  5701.  
  5702.        There are some persistent individuals who would like computer
  5703.        systems to work in a fashion somewhat unlike they do now.
  5704.        It seems pointless to debate with them; the debates (in
  5705.        various groups) always take the same form and never result
  5706.        in meaningful dialog.
  5707.  
  5708.        One can usually recognize such by reading a week or so's worth
  5709.        of postings. Sometimes you may have to read for a month to
  5710.        recognize such. When you do, please try to avoid triggering
  5711.        (or responding to) such individuals.
  5712.  
  5713.        Many (if not most) newsreaders support a feature entitled
  5714.        KILL files.  As you recognize individuals, you may wish to
  5715.        put them into your local kill file.
  5716.        For example, the style employed by GNUS:
  5717.  
  5718.           (gnus-kill "From" "dweeb@place.ISP")
  5719.           (gnus-kill "Subject" "test")
  5720.  
  5721.        the first kills off all postings from the named individual,
  5722.        the second kills off all postings including the beloved
  5723.        "test" string. See your local NewsGod for details suitable
  5724.        for your local system.
  5725.  
  5726.  
  5727.    __________________________________________________________________________
  5728.                                        
  5729.  
  5730.  
  5731. 3.1.3) How do I call f77 from C (and visa versa) This is quite
  5732.        platform dependent.
  5733.  
  5734.        For Suns see the FORTRAN User's Guide, Chapter 14.
  5735.  
  5736.        There is a package available from usenet which attempts
  5737.        to make this "quick and easy" for a wide range
  5738.        of platforms:
  5739.  
  5740.           Host      ftp.germany.eu.net
  5741.           Location: /newsarchive/comp.sources.misc/volume20 DIRECTORY
  5742.                                    drwxr-xr-x 512 Jul 7 1993 cfortran
  5743.  
  5744.           Host      ftp.sunet.se
  5745.           Location: /pub/usenet/comp.sources.misc/volume20 DIRECTORY
  5746.                                  drwxrwxr-x 512 May 28 1993 cfortran
  5747.  
  5748.           Host      ftp.wustl.edu
  5749.           Location: /usenet/comp.sources.misc/volume20 DIRECTORY
  5750.                            drwxr-xr-x 8192 Oct 30 15:09 cfortran
  5751.  
  5752.           Host      halcyon.com
  5753.           Location: /dec/.0/usenet/comp.sources.misc/volume20 DIRECTORY
  5754.                                      dr-xr-xr-x 512 Jul 8 1993 cfortran
  5755.  
  5756.           Host      lth.se
  5757.           Location: /pub/netnews/sources.misc/volume20 DIRECTORY
  5758.                               drwxr-xr-x 512 Jun 7 1993 cfortran
  5759.  
  5760.           Host      math.mps.ohio-state.edu
  5761.           Location: /pub/archives/comp.sources.misc/vol20 DIRECTORY
  5762.                                  drwxrwxr-x 512 Jun 2 1993 cfortran
  5763.  
  5764.  
  5765.        It is on many other sites (around the world) too.
  5766.        See archie if you need other pointers.
  5767.  
  5768.        For some systems, you have to initialize a runtime system
  5769.        explicitly if you call a different language, and stopping
  5770.        execution from the other program may not work.
  5771.  
  5772.  
  5773.        The most recent version of cfortran.h is available
  5774.        via anon. ftp from:
  5775.  
  5776.           host:  zebra.desy.de.
  5777.  
  5778. ;;;;
  5779.  
  5780.        ----------------------------------------
  5781.        ~From: vankemme@imec.be (Rudi Vankemmel)
  5782.        ----------------------------------------
  5783.  
  5784.        Yongtao Chen (yongtao@watnow.uwaterloo.ca) wrote:
  5785.        : .......
  5786.        : * How to call NAG Fortran Library with C (under Unix) ? *
  5787.  
  5788.        : We have a NAG Fortran Library on our machine but I do not
  5789.        : know how to call them in my C program.  Can anybody give
  5790.        : me some advice about how to do this?
  5791.  
  5792.        Hello, we have some programs written in C calling the NAG library
  5793.        (which is written in Fortran). There are a number of important
  5794.        things you must be aware of:
  5795.  
  5796.        1) Fortran uses a column wise storage of matrices while C stores
  5797.           them row wise. This means that when you want to parse a matrix
  5798.           from your C-program to the NAG (-fortran-) routine you must
  5799.           transpose the matrix in your program before entering the routine.
  5800.           Of course, any output from such a routine must be transposed again.
  5801.  
  5802.           If you ommit this step, then probably your program will run
  5803.           (because it has data to compute on) but it will generate wrong
  5804.           answers.
  5805.  
  5806.           B.T.W. if you have the Fortran source code (of any routine)
  5807.           then on some platforms you may use compiler directives specifying
  5808.           that the Fortran compiler must use row wise storage.
  5809.           Some platforms support these directives. However watch out with
  5810.           this if you call the same routine from another Fortran
  5811.           routine/program.
  5812.  
  5813.        2) Your Fortran compiler may add an underscore "_" to the routine
  5814.           name in the symbol table e.g. subroutine example(..,..,..)
  5815.           becomes example_ in the table.  Hence in the calling
  5816.           C-program/routine you must add a trailing underscore !
  5817.           Otherwise the loader will complain about an undefined symbol
  5818.           "example" while "example_" is loaded.
  5819.  
  5820.           However, check your compiler for this. For example the Fortran
  5821.           compiler on VAX-VMS systems does NOT add a trailing underscore
  5822.           (there watch out with the fact that the VAX-Fortran compiler
  5823.           translates everything in uppercase).
  5824.  
  5825.        3) Fortran passes its variables by reference. This means that you
  5826.           MUST give adresses in your calling C-program (i know, this is
  5827.           a stupid remark but it is too often forgotten (my experience ....)).
  5828.  
  5829.        4) Watch out especially with float's and double's. Make sure that
  5830.           the size of the variable in the calling program is identical to
  5831.           the size in the Fortran routine e.g.
  5832.  
  5833.              double <----> real*8,
  5834.              float  <----> real
  5835.  
  5836.           This is extremely important on machines with little endian byte
  5837.           ordening.  Parsing a float (C-routine) to a real*8 (Fortran)
  5838.           number will not generate SEGV but give wrong results as the data
  5839.           is parsed wrongly.
  5840.  
  5841.  
  5842.        5) Remember that the array index in Fortran starts at 1 while in C
  5843.           this is at index 0; hence a parsed array fortran_array[1:100]
  5844.           must be used in the C-routine/program as c_array[0:99].
  5845.  
  5846.           Good luck with it !!  Rudi Vankemmel
  5847.  
  5848.  
  5849.    another post:
  5850.  
  5851.  
  5852.        ---------------------------------------------------
  5853.        ~From: beardsl@mepsi.mobil.com (Reginald Beardsley)
  5854.        ---------------------------------------------------
  5855.  
  5856.        I do a lot of this.  The following is true on the following
  5857.        machines.  I cannot say about others.
  5858.  
  5859.              Sun 3 & 4 IBM
  5860.              RS/6000
  5861.              SGI
  5862.              DECstation
  5863.              Intergraph Clipper (Apogee & Green Hills compilers)
  5864.              H-P 7xx
  5865.  
  5866.        1) If possible, do not pass strings to FORTRAN from C or vice versa.
  5867.  
  5868.        2) Do not mix I/O on the same file descriptors.
  5869.  
  5870.        3) Do all your math in FORTRAN, and all the rest in C
  5871.           if at all possible.
  5872.  
  5873.        4) NEVER ever attempt to write the equivalent of a FORTRAN
  5874.           function that returns  a character variable in C.
  5875.           Life is too short for the suffering it causes.
  5876.  
  5877.        5) If you do ANY I/O in FORTRAN, you MUST use a FORTRAN mainprogram.
  5878.  
  5879.        6) FORTRAN always passes pointers. <not necessarily khb>
  5880.  
  5881.        7) FORTRAN passes string lengths BY VALUE in the order the
  5882.           strings appear in the argument list.  These do NOT appear
  5883.           in the FORTRAN argument list, but will appear in the C
  5884.           argument list.
  5885.  
  5886.        8) You will need to take care of nulls and blanks spaces
  5887.           explicitly if you ignor
  5888.  
  5889.        9) The Sun FORTRAN compiler used lex and yacc to do the conversion
  5890.           of a run time format from a character variable.  If you use
  5891.           lex and yacc either rename the variables and functions or
  5892.           partially link before you link to the FORTRAN libraries.
  5893.  
  5894.        10) FORTRAN symbols have trailing underscores appended.
  5895.            Some compilers require a compiler flag to get this.
  5896.            Use it! It makes the code more portable.
  5897.  
  5898.        11) Don't pass structures.  If you must access a structure element,
  5899.            pass a pointer through to a routine which passes back the
  5900.            element pointer.
  5901.  
  5902.        12) Don't forget that the storage orders for arrays is opposite
  5903.            and transposition is expensive.
  5904.  
  5905.        I currently have many lines of code with FORTRAN calling C calling
  5906.        FORTRAN.  It's not my choice of things to do, but it works well.
  5907.        Much better than using the wrong language for the task.  My only
  5908.        regret is that I'm forced to pass a lot of strings between the two
  5909.        languages.
  5910.  
  5911.        Reginald H. Beardsley  beardsl@dal.mobil.com
  5912.  
  5913.  
  5914.    followup to first post:
  5915.  
  5916.  
  5917.        -------------------------------------------
  5918.        ~From: andrew@rentec.com (Andrew Mullhaupt)
  5919.        -------------------------------------------
  5920.  
  5921.        In article <C9JnIF.Mzp@bernina.ethz.ch>
  5922.        brech@vision.ethz.ch (Christian Brechbue
  5923.  
  5924.        > It is important that you know what's happening when Fortran
  5925.        > and C access array elements.  But I never had to perform
  5926.        > any "transposition" step in a program.  You just have to
  5927.        > read the definitions the other way.  When the manual says
  5928.        > A(j+1,i+1) I understand this means a[i][j] in C, etc.
  5929.  
  5930.        This is true enough, but there are times when you don't want
  5931.        to modify already existing FORTRAN and C you may have to write
  5932.        a transposition wrapper.
  5933.  
  5934.        This can be advisable for reasons of clarity (i.e. keeping the
  5935.        documentation the code and the math in sync.) and for reasons
  5936.        of performance.
  5937.  
  5938.        Later,
  5939.        Andrew Mullhaupt
  5940.  
  5941. ;;;;
  5942.  
  5943.        Most vendors have surprisingly complete documentation of this sort
  5944.        of thing ... if one troubles to look for it. There is, for example,
  5945.        an entire chapter in the SunPro Fortran documentation <khb>
  5946.  
  5947.  
  5948.    __________________________________________________________________________
  5949.                                        
  5950.  
  5951.  
  5952. 3.1.4) For whatever reasons, I want to translate my Fortran into C.
  5953.        What tools are available?
  5954.  
  5955.        f90 from NAG, see above
  5956.  
  5957.        f2c see above.
  5958.  
  5959.        FORTRAN=C=FORTRIX=Rapitech Rapitech (914) 368-3000
  5960.  
  5961.        FORTRAN=C=FOR_C=Cobalt Blue  404 518 1116
  5962.                                     tel:    (770) 518-1116,
  5963.                                     Fax:    (770) 640-1182
  5964.                                     E-Mail: sales@cobalt-blue.com
  5965.  
  5966.        FORTRAN=C=PROMULA.FORTRAN=Promula (614) 263-5512
  5967.  
  5968.  
  5969.    __________________________________________________________________________
  5970.                                        
  5971.  
  5972.  
  5973. 3.1.5) For whatever reasons, I want to translate my existing C code
  5974.        into Fortran. What tools are available?
  5975.  
  5976.        Regretably none. This is indeed unfortunate, as even a limited
  5977.        translator could help with typical C header files.
  5978.  
  5979.  
  5980.    __________________________________________________________________________
  5981.                                        
  5982.  
  5983.  
  5984. 3.2) Compiler and system differences
  5985.  
  5986.  
  5987.  
  5988. 3.2.1) My compiler is mis-behaving; who enforces the standard?
  5989.  
  5990.        ANSI and ISO standards do not usually have a particular
  5991.        enforcement mechanism. Local bodies sometimes do.
  5992.  
  5993.        However, it should be borne in mind that if *your* source code
  5994.        is not standard compliant there is *NO* obligation for a FORTRAN
  5995.        ('77 and before) compiler to do *ANYTHING* in particular.
  5996.        In Fortran (90) the text in "constraints" must be tested and a
  5997.        warning produced (compiler option can be used to evade this, of course).
  5998.  
  5999.        Some (notably Guy Steele, with respect to another standard)
  6000.        have noted that when non-standard complying code is encountered,
  6001.        a compiler may do *ANYTHING* including initation of Global Warfare.
  6002.        Keep this in mind.
  6003.  
  6004.        When you do find a bona fide compiler bug, you are generally
  6005.        best served by reporting it to the *vendor*. If you neglect to
  6006.        tell the vendor, how can you complain about it not being fixed?
  6007.  
  6008.        When reporting a *suspected* bug be sure to be quite specific
  6009.        about the computer system, operating system rev level (patches
  6010.        applied if known) and *compiler*version* (and patches thereof).
  6011.        It is very hard for people to read your mind; but they will try.
  6012.        The attempts are often entertaining, sometimes helpful, but
  6013.        always an inefficient use of people-time and net-bandwidth.
  6014.  
  6015.  
  6016.        Also note that it is generally helpful if you cut down the
  6017.        example to the smallest size you can.
  6018.        Vendors are developers too; the tendency is invest time/money
  6019.        where one can get the biggest bang for the buck.
  6020.  
  6021.  
  6022.    __________________________________________________________________________
  6023.                                        
  6024.  
  6025.  
  6026. 3.2.2) My F77 program compiled ok on a <system1>, but gives me heaps
  6027.        of syntax errors on a <system2>. What's wrong?
  6028.  
  6029.        ------------------------------------------------
  6030.        ~from: ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig)
  6031.        ------------------------------------------------
  6032.  
  6033.        Most likely, the program was written with a line length greater
  6034.        than 72. If your compiler supports it, turn on the option for
  6035.        greater line length (e.g.  -e is not uncommon) ;
  6036.        otherwise, split up the lines by hand, or via one of those
  6037.        pretty-printers/restructing tools mentioned above.
  6038.  
  6039.  
  6040.    __________________________________________________________________________
  6041.                                        
  6042.  
  6043.  
  6044. 3.2.3) My F77 program ran ok on a <system1>, but on a <system2>,
  6045.        it just gives me strange results. What's wrong?
  6046.  
  6047.        -----------------------------------------------------
  6048.        Original:   ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig)
  6049.        Revised by: klassen@sol.uvic.ca (Melvin Klassen)
  6050.        -----------------------------------------------------
  6051.  
  6052.        There are different reasons why this could happen.  Possibly, your
  6053.        program violates the standard in some way which is not caught by the
  6054.        compiler on <system1>, or in some way which the compiler on
  6055.        <system1> intentionally allowed, e.g., in FORTRAN 77,
  6056.        variable-names were restricted to 6 upper-case characters, while
  6057.        many compilers were extended to handle longer, mixed-case names.
  6058.  
  6059.        Some programs rely on the retention of values between invocations.
  6060.        Use SAVE statements for those variables which you need to keep
  6061.        across function calls.
  6062.  
  6063.        Some programs rely on variables to be initialized to zero when a
  6064.        subroutine or function is first called. Some compilers (VAX/VMS
  6065.        for example) exhibit this behaviour.
  6066.  
  6067.        Some operating systems (IBM's MVS/ESA and VM/ESA for example)
  6068.        have been observed to fill with a "zero" value the first time
  6069.        you reference a previously-unused area of virtual storage.
  6070.  
  6071.        Compilers on newer architectures often fill variables with
  6072.        garbage on each new function call. This is permitted,
  6073.        according to the standard.
  6074.  
  6075.        The solution is to explicitly initialize all variables.
  6076.  
  6077.        Your compiler may have an option to trap uninitialized variables;
  6078.        use that to find the trouble spots.  For example, the IBM VS
  6079.        compiler will do a static-flow-analysis, and report such errors,
  6080.        when you specify the 'OPT(2)' option.  Alternatively, if you are
  6081.        desperate, try to compile using a flag which forces static
  6082.        allocation of all variables.
  6083.  
  6084.        Another problem might be that the accuracy of REAL and DOUBLE
  6085.        PRECISION differs between different platforms; that can cause
  6086.        roundoff error to wipe out your results or your program to go into
  6087.        endless loops.
  6088.  
  6089.        Yet another (and much more subtle) problem can occur if a lot of
  6090.        formatted I/O is employed. The conversion from internal to external
  6091.        representations can introduce very significant errors; much worse on
  6092.        some platforms than others (doing correctly rounded base conversion
  6093.        is expensive).
  6094.  
  6095.        There are, of course, lots of other possibilities, these are just a
  6096.        starting point.
  6097.  
  6098.  
  6099.    __________________________________________________________________________
  6100.                                        
  6101.  
  6102.  
  6103. 3.2.4) How can I read my VAX binary data somewhere else?
  6104.  
  6105.        Some vendors provide bulit in methods (DEC provides this via
  6106.        special options on the OPEN statement). Others provide library
  6107.        support (on SPARC products, with the SunPro compilers, checkout
  6108.        convert_external)
  6109.  
  6110.        In addition, Accerl8 provides a commerial tool. Contact:
  6111.  
  6112.           Harry Fleury                         Tel: (303)863 8088
  6113.           Accelr8 Technology                   Fax: (303)863 1218
  6114.           303 E. 17th Ave., Suite 108          Email: harry@accelr8.com
  6115.           Denver, Colorado 80203               http://www.accelr8.com
  6116.  
  6117.  
  6118. ;;;;
  6119.  
  6120.  
  6121.    __________________________________________________________________________
  6122.                                        
  6123.  
  6124.  
  6125. 3.3) Language extensions
  6126.  
  6127.  
  6128.        The following three Q's and A's based on email from:
  6129.  
  6130.           ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig)
  6131.  
  6132.  
  6133.  
  6134. 3.3.1)  How common is DO ... END DO
  6135.  
  6136.        It is very common; and of course is part of Fortran 90.
  6137.        Compilers claimed to *not* support it
  6138.        (much shorter list this way):
  6139.  
  6140.           1) Salford ftn77/Primos version
  6141.  
  6142.           2) Prime f77 compiler
  6143.  
  6144.           3) Microsoft Fortran for CP/M 8080/Z80 machines
  6145.  
  6146.           4) Fujitsu VPxxx UXP/M compiler
  6147.  
  6148.  
  6149.    __________________________________________________________________________
  6150.                                        
  6151.  
  6152.  
  6153. 3.3.2) What are ENCODE and DECODE statements, and how are they translated
  6154.        to standard Fortran? How can I convert numbers to character strings
  6155.        (and vice-versa)?
  6156.  
  6157.        ENCODE and DECODE are vendor extensions to Fortran (invented in
  6158.        the sixties, long before X3.9-1978 added internal I/O to the
  6159.        language) which are most often used to convert data between
  6160.        numeric and character representations.  They may be viewed as
  6161.        formatted writes to (ENCODE) or reads from (DECODE) memory.
  6162.        The standard-conforming alternatives are internal write and
  6163.        internal read statements respectively.
  6164.  
  6165.        For example,
  6166.  
  6167.             INTEGER MONTH, DAY, YEAR
  6168.  
  6169.             MONTH = 7
  6170.             DAY = 4
  6171.             YEAR = 93
  6172.        C    FORM THE STRING  7/ 4/93 IN VARIABLE "DATE"
  6173.             ENCODE (8,10,DATE) MONTH,DAY,YEAR
  6174.         10  FORMAT (I2,'/',I2,'/',I2)
  6175.  
  6176.        The above can be translated as "write 8 characters, formatted
  6177.        according to format 10, storing the results in variable DATE, and
  6178.        using the contents of variables MONTH, DAY, and YEAR as the data to
  6179.        write."
  6180.  
  6181.        A DECODE statement would be used to reverse the process (extract
  6182.        the variables MONTH2, DAY2, and YEAR2 from the string DATE).
  6183.        Thus:
  6184.  
  6185.           INTEGER MONTH2, DAY2, YEAR2
  6186.           DECODE (8,20,DATE) MONTH2, DAY2, YEAR2
  6187.      20   FORMAT (I2,1X,I2,1X,I2)
  6188.  
  6189.        Conversion of ENCODE/DECODE to standard Fortran-77 is not difficult.
  6190.        The critical thing to remember is that the variable to be written
  6191.        to (ENCODE) or read from (DECODE) must be a CHARACTER variable
  6192.        which is long enough to contain the string.
  6193.        The first number within the parentheses (in this case 8) is the
  6194.        minimum length to use in a type declaration.
  6195.  
  6196.        Thus a standard-conforming equivalent of the above
  6197.        example is:
  6198.  
  6199.            CHARACTER*8 DATE
  6200.            INTEGER MONTH, DAY, YEAR
  6201.  
  6202.            INTEGER MONTH2, DAY2, YEAR2
  6203.            MONTH = 7
  6204.            DAY = 4
  6205.            YEAR = 93
  6206.  
  6207.            WRITE (DATE,10) MONTH, DAY, YEAR
  6208.         10 FORMAT (I2,'/',I2,'/',I2)
  6209.            READ (DATE,20) MONTH2, DAY2, YEAR2
  6210.        20  FORMAT (I2,1X,I2,1X,I2)
  6211.  
  6212.        Although the above example used integers, any other data type
  6213.        may also be used.
  6214.  
  6215.        -----------------------------------------------------
  6216.        From: <forags@nature.berkeley.edu (Al Stangenberger)>
  6217.        -----------------------------------------------------
  6218.  
  6219.  
  6220.    __________________________________________________________________________
  6221.                                        
  6222.  
  6223.  
  6224. 3.4.1) What is involved in parsing Fortran?
  6225.  
  6226.        ----------------------------------------
  6227.        ~From: clodius@hotspec (William Clodius)
  6228.        ----------------------------------------
  6229.  
  6230.        > I don't know if the following is any help
  6231.        >
  6232.        > Dec has published a discussion of some of the problems
  6233.        > in parsing Fortran
  6234.        > http://www.digital.com/.i/info/hpc/f90/loveman.txt
  6235.        >
  6236.        > There is a publicly available Fortran90 grammar for a compiler
  6237.        > generator at
  6238.        >
  6239.        > http://www.cs.colorado.edu/~eliuser/fortran_html/Scan.html
  6240.        >
  6241.        > The "compiler" generator that uses the grammar, ELI,
  6242.        > apparently has home pages at
  6243.        >
  6244.        > http://www.cs.colorado.edu/~eliuser/
  6245.        > http://www.uni-paderborn.de/fachbereich/AG/agkastens/index_engl.html
  6246.        > http://coral.cs.jcu.edu.au/
  6247.        >
  6248.        > however the links to Germany and Australia did not work
  6249.        > when I tried them out.
  6250.        >
  6251.        > The Sage++ compiler development system apparently has
  6252.        > Fortran 77/M parsers available
  6253.        >
  6254.        > http://www.extreme.indiana.edu/sage/index.html
  6255.  
  6256.  
  6257.        ------------------------------------------------
  6258.        ~From: mjohnson@samson.tx.hac.com (Mark Johnson)
  6259.        ------------------------------------------------
  6260.  
  6261.        > Christian Rutzinger <rutzinger@takefive.co.at> wrote:
  6262.        >
  6263.        > >I want to write a Recursive Descent Parser for Fortran90. ,,,
  6264.        > >
  6265.        > >Am I wrong, or is (Standard) Fortran90 really a not
  6266.        > >LL(1) language?
  6267.        >
  6268.        > FORTRAN is definitely not LL(1).  A good example is the difference
  6269.        > between the following two statements
  6270.        >         DO 10 I=1,10
  6271.        > and
  6272.        >         DO 10 I=1.10
  6273.        > [the real difference is the comma in the first one & the period in
  6274.        >  the second example]
  6275.        >
  6276.        > The first starts a DO loop, using [implicitly integer]
  6277.        > I as an index, counting from 1 to 10.
  6278.        > [7 tokens - DO, 10, I, =, 1, ",", and 10]
  6279.        > The second assigns the value 1.1 to the [implicitly real]
  6280.        > variable DO10I. [only 3 tokens - DO10I, =, 1.10]
  6281.        >
  6282.        > Needless to say, you sometimes have to examine the entire statement
  6283.        > before you know what kind it is & generate tokens. One approach to
  6284.        > handle this is to do something like...
  6285.        >   call read_statement(line)
  6286.        >   call statement_type(current_state, new_state, s_type, line)
  6287.        >   <computed goto based on s_type, etc.>...
  6288.        > where the statement_type procedure uses the "current state" and
  6289.        > the input line(s) to determine the statement type "s type" and
  6290.        > "new state".  The "current state" and "next state" represent the
  6291.        > language rules relating to the order of statements. This solution
  6292.        > isn't very efficient, and dumps a lot of functionality into the
  6293.        > statement_type procedure. But it is a robust and somewhat easy
  6294.        > to describe solution. There are undoubtedly others who could
  6295.        > supply more optimal solutions.
  6296.        >
  6297.        > Good luck on your work.
  6298.        >   --Mark
  6299.        > --
  6300.        > -- Mark Johnson <mjohnson@samson.tx.hac.com>
  6301.        > [I put a little Fortran subset parser in the comp.compilers
  6302.        > archives several years ago.  It uses a yacc parser and a lot
  6303.        > of lexical feedback.  It's not complete, but the structure is
  6304.        > adequate to parse all of Fortran. -John]
  6305.        >
  6306.        > --
  6307.        > Send compilers articles to compilers@iecc.com,
  6308.        > meta-mail to compilers-request@iecc.com.
  6309.  
  6310.  
  6311.  
  6312.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6313.                                        
  6314.  
  6315.  
  6316. 4.1.1) WWW and Fortran
  6317.  
  6318.         See http://www.nag.co.uk/nagware/Examples/cgi.f90
  6319.  
  6320.  
  6321.        --------------------------------------------------------
  6322.        ~From: C.D.H.Williams@exeter.ac.uk (Charles DH Williams)
  6323.        --------------------------------------------------------
  6324.  
  6325.        > In article <4hmd1k$c0m@cpca3.uea.ac.uk>, "M.W.Gardner ENV PG"
  6326.        > <e449> wrote:
  6327.        >
  6328.        > > Could anyone give me pointers to information concerning
  6329.        > > the use of F90 programs as CGI servers.  I wish to write
  6330.        > > programs to generate WWW pages interactively. Has anyone
  6331.        > > done this ?  If so please contact me.
  6332.        > >
  6333.        > > I have checked out the FAQ and F90 pages with no success.
  6334.        > > I also know that perl is probably a more traditional
  6335.        > > language to do this sort of stuff.
  6336.        >
  6337.        > You may find that John Rowe's "Metaform" system does what you want
  6338.        >
  6339.        > http://newton.ex.ac.uk/metaform/
  6340.        >
  6341.        > lets users write and install their own cgi code in whatever
  6342.        > language they like without causing security problems et al.
  6343.        >
  6344.        > I used it to implement a simulation of a temperature control
  6345.        > system which takes lots of parameters and draws graphs
  6346.        > representing the results. Get to it via the last line in
  6347.        > the contents list of
  6348.        >
  6349.        > http://newton.ex.ac.uk/teaching/CDHW/Feedback/
  6350.        >
  6351.        > Good luck
  6352.        >
  6353.        > Charles
  6354.  
  6355.  
  6356.        --------------------------------------------------
  6357.        ~From: Kavan Ratnatunga
  6358.        --------------------------------------------------
  6359.  
  6360.        Recently I wrote fairly large cgi-driver in f77 and found that
  6361.        it was not very difficult, and for my application since the
  6362.        output I was putting on the web was originally created from
  6363.        fortran analysis programs, there were some particular advantages
  6364.        in the program logic.
  6365.  
  6366.        If interested see:
  6367.  
  6368.           http://archive.stsci.edu/mds/mds_cgi.f
  6369.  
  6370.        Kavan Ratnatunga
  6371.  
  6372.  
  6373.    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6374.  
  6375.  --
  6376.  Keith H. Bierman    keith.bierman@Sun.COM| khb@chiba.Eng.Sun.COM
  6377.  SunSoft Developer Products               | khb@netcom.com
  6378.   2550 Garcia UMPK16-304   415 786-9296   | (415 7869296) fax
  6379.  Mountain View, CA 94043  <speaking for myself, not Sun*> Copyright 1996
  6380.  
  6381. -- 
  6382. Keith H. Bierman    keith.bierman@Sun.COM| khb@chiba.Eng.Sun.COM
  6383. SunSoft Developer Products         | khb@netcom.com
  6384.  2550 Garcia UMPK16-304   415 786-9296   | (415 7869296) fax 
  6385. Mountain View, CA 94043  <speaking for myself, not Sun*> Copyright 1996
  6386.