home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / Information / comp.lang.fortran / Fortran_FAQ
Internet Message Format  |  1994-06-01  |  102KB

  1. Path: bloom-beacon.mit.edu!hookup!ames!koriel!newsworthy.West.Sun.COM!male.EBay.Sun.COM!engnews1.Eng.Sun.COM!engnews2.Eng.Sun.COM!engnews2!khb
  2. From: khb@chiba.Eng.Sun.COM (chiba)
  3. Newsgroups: comp.lang.fortran,comp.answers,news.answers
  4. Subject: Fortran FAQ
  5. Followup-To: comp.lang.fortran
  6. Date: 05 Apr 1994 02:14:15 GMT
  7. Organization: SunPro
  8. Lines: 2542
  9. Approved: news-answers-request@MIT.Edu
  10. Expires: 1 May 1994
  11. Message-ID: <KHB.94Apr4191416@chiba.Eng.Sun.COM>
  12. NNTP-Posting-Host: chiba.eng.sun.com
  13. Archive-name: fortran-faq
  14. Frequency: mostly monthly
  15. Xref: bloom-beacon.mit.edu comp.lang.fortran:8845 comp.answers:4775 news.answers:17673
  16.  
  17. Archive-name: fortran-faq
  18. Archive-name: fortran-faq
  19. Frequency: mostly monthly
  20. Expires: 1 May 1994
  21.  
  22. Here are some answers to frequently asked questions. The "author", as
  23. is the custom, has appropriated posted responses as seemed apt. I have
  24. tried to leave attributions in, as correctly as possible. To anyone
  25. who has been offended by omission or otherwise, my apologies. I shall
  26. give priority to corrections regarding attribution.
  27.  
  28. No one takes responsibility for any of this text, neither the employer
  29. of the "author", the "author", friends of the "author", pets of the
  30. "author" nor anyone else.
  31.  
  32. Your mileage WILL vary. 
  33.  
  34. A good place to look for FAQ's is:
  35.     rtfm.mit.edu, /pub/usenet
  36.  
  37. If you have comments/suggestions/edit proposals please send them to me
  38. (keith.bierman@eng.sun.com). I do not promise to accept 'em. I
  39. encourage others to make better FAQ lists, so I can retire this one.
  40. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  41. summary of changes:
  42.  
  43. None this month.
  44.  
  45. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  46.     Questions:
  47.  
  48. Q0) How should one spell FORTRAN/Fortran?
  49. Q1) Is Fortran 90 a Standard? Where can I get a copy of the Fortran
  50.     90 Standard? How about electronic copies? 
  51. Q2) What Fortran 90 translators are available?
  52. Q3) I have heard of fortran "lints"; what are they, and where can
  53.     I get one?
  54. Q4) "Why do people use FORTRAN? C is so much better"
  55. Q5)  Why can't I get an electronic version of the standard?
  56. Q6)  Where can I get "foo" (some random package)
  57. Q7)  Where can I get a free compiler?
  58. Q8)  What is the best compiler for a PC?
  59. Q9)  How does Fortran 90 relate to FORTRAN '77 and what is Fortran 90?
  60. Q10) My compiler is mis-behaving; who enforces the standard?
  61. Q11) What are good books on Fortran? 
  62. Q12) Are there pretty printers for FORTRAN? Flowchart generators?
  63. Q13) Why are there aimless debates?
  64. Q14) How do I call f77 from C (and visa versa)
  65. Q15) What constitutes good FORTRAN style?
  66. Q16) For whatever reasons, I want to translate my Fortran into C.
  67.      What tools are available?
  68. Q17) For whatever reasons, I want to translate my existing C code
  69.      into Fortran. What tools are available?
  70. Q18) What is preprocessing, how can it help? How can it hurt?
  71. Q19) How can I convert an existing FORTRAN 77 program to the free form
  72.      source of Fortran 90?
  73. Q20) Who creates these silly standards anyway?
  74. Q21) How can I read my VAX binary data somewhere else?
  75. Q22) My F77 program compiled ok on a <system1>, but gives me heaps of
  76.      syntax errors on a <system2>. What's wrong?
  77. Q23) My F77 program ran ok on a <system1>, but on a <system2> it just gives
  78.      me strange results. What's wrong?
  79. Q24) Is there a WEB for Fortran (and what is WEB anyway)?
  80. Q25) Where can I find coded BLAS (and what are coded BLAS?)
  81. Q26) How common is DO ... END DO?
  82. Q27) Where can I learn more about the history of Fortran?
  83. Q28) Fortran text editors?
  84. Q29) What are ENCODE and DECODE statements, and how are they translated to
  85.      standard Fortran?
  86. Q30) Tell me about Parallel Fortran dialects, what are they, etc.
  87. Q31) Where can I find a f90 tutorial?
  88. Q32) f90.faq from Michel Olagnon
  89. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  90.  
  91. Q0)  How should one spell FORTRAN/Fortran?
  92.  
  93.     FORTRAN is generally the preferred spelling for discussions of versions of
  94.     the language prior to the current one ("90"). Fortran is the
  95.     spelling chosen by X3J3 and WG5. In this document a feeble effort
  96.     has been made to capitalize accordingly (e.g. vast existing
  97.     software ... FORTRAN vs. generic Fortran to mean all versions of
  98.     the standard, and specifically the modern dialect. generic Fortran to mean all versions of
  99.     the standard, and specifically the modern dialect, ISO 1539:1991).
  100.  
  101. From: walt@netcom.com (Walt Brainerd)
  102.     There was an effort to "standardize" on spelling of programming
  103.     languages just after F77 became a standard.  The rule: if you say
  104.     the letters, it is all caps (APL); if you pronounce it as a word,
  105.     it is not (Cobol, Fortran, Ada).  See, for example the difinitive
  106.     article describing Fortran 77 in the Oct 1978 issue of the Comm.
  107.     of the ACM.  The timing was such that FORTRAN got put on the
  108.     standard itself, though many always after that have referred to
  109.     it as Fortran 77.  Of course, there are those who think it is not
  110.     truly Fortran if not written with all caps.
  111.  
  112. <ed note>
  113.  
  114.     ISO 1539:1991 and its ANSI counterpart X3.198-1992 consistently
  115.     employ the spelling "Fortran" to refer to the language being
  116.     defined. Reference(s) to the older version employ "small caps"
  117.     for the "ORTRAN" characters.
  118.  
  119.  
  120. Q1)  Is it a Standard? Where can I get a copy of the Fortran 90
  121.      Standard?
  122.  
  123. Fortran "90" is an ISO standard endorsed/adopted by several countries.
  124. It is also a US standard in its own right. ANSI adopted it on 21
  125. September 1992 (X3.198-1992). It was adopted by ISO July 1991 as
  126. ISO/IEC 1539:1991.
  127.  
  128. <khb> You can't get it from ftp. The various standards bodies get a
  129. substantial fraction of their income from sales of standards
  130. documents. This is unfortunate <khb> Electronic versions are
  131. available, see the note from Walt below.
  132.  
  133. From: julian@cernvax.cern.ch (julian bunn)
  134.  
  135.          The new Fortran 90 standard has now been formally published
  136.      and is available from the ISO central secretariat or from the
  137.      national member bodies. The price is about $120. Some
  138.      ordering detail follow.  I can supply addresses in other
  139.      countries not mentioned on request (to METCALF@CERNVM).
  140.  
  141.     The document reference is ISO/IEC 1539 : 1991. There is no ISBN.
  142.  
  143.     ISO
  144.     1, rue de Varembe
  145.     Case postale 56
  146.     1211 Geneva 20
  147.     Switzerland
  148.     Fax: +41 22 734 10 79   cost 185 swiss francs.
  149.  
  150.     ANSI
  151.     1430 Broadway
  152.     New York, NY 10018
  153.  
  154. or
  155.  
  156. American National Standards Institute
  157. Attn: Customer Service
  158. 11 West 42nd Street
  159. New York, NY 10036
  160.  
  161. Phone: (212)642-4900 8:45-4:45 (EST) 
  162. Fax: (212)302-1286
  163.  
  164.     BSI
  165.     2 Park Street
  166.     London W1A 2BS
  167.  
  168.     DIN
  169.     Burggrafenstrasse 6
  170.     Postfach 1107
  171.     D-1000 Berlin 30
  172.  
  173.     AFNOR
  174.     Tour Europe
  175.     Cedex 7
  176.     92049 Paris La Defence
  177.  
  178. SCC
  179. 1200-45 O'Connor
  180. Ottawa
  181. Ontario  K1P 6N7
  182.  
  183.                             Mike Metcalf
  184.                             (metcalf@cernvm)
  185.  
  186. and from walt@netcom.com
  187.  
  188. For those of you who don't read comp.lang.fortran, you might be
  189. interested to know that I (Walt Brainerd) just called Global
  190. Engineering to see if they sell ISO 1539:1991.  They do; the price is
  191. $225.
  192.  
  193. And 
  194.  
  195. You can obtain copies through:
  196.     Global Engineering Documents
  197.     2805 McGaw Ave.
  198.     Irvine, CA. 92714
  199.     (714) 261-1455
  200.     (800) 854-7179
  201.  
  202.  
  203. New ANSI number 
  204.             ANSI X3.198-1992
  205.  
  206. How about electronic copies?
  207. Return-Path: walt@netcom.com
  208. Subject: ISO 1539 in electronic form
  209.  
  210. In accordance with an official agreement with
  211. the International Standards Organization, Unicomp
  212. is now able to distribute electronic versions of
  213. the Fortran 90 standard: "ISO/IEC 1539 : 1991,
  214. Information technology--Programming languages--Fortran".
  215.  
  216. The money received from this effort will go partly to
  217. fund ISO activities and partly to recover the costs
  218. incurred by Unicomp in preparing and typesetting the
  219. standard document.  The prices are set by ISO.
  220.  
  221. The document can be obtained in three versions:
  222.  
  223. 1.  An ASCII version suitable for viewing on a
  224.     computer terminal using any kind of editor.
  225.     Cost: USD 125.
  226.  
  227. 2.  A PostScript version with a license allowing
  228.     the purchaser to print n paper copies.
  229.     Cost: USD 125 + 10n.
  230.  
  231. 3.  Complete source in ditroff with macros and
  232.     software to extract and create the annexes.
  233.     The source constitutes a fairly highs and
  234.     software to extract and create the annexes.
  235.     The source constitutes a fairly high level
  236.     marked-up document; for example, each program
  237.     beginning and ending is marked and there
  238.     are few low-level typographic commands such
  239.     as size and font changes.  Cost USD 1000.
  240.  
  241. I am quite enthused especially about version (2).
  242. If you want to have 10 copies for your organization,
  243. and it costs $10 to make a printed copy, then the
  244. cost to make the 10 copies would be $125 + $200,
  245. or just $32.50 per copy, which is a substantial
  246. savings over purchasing paper copies.
  247.  
  248. Versions (1) and (3) will be accompanied by a
  249. license restricting use to one CPU and prohibiting
  250. copying, except for backup purposes, etc.  The
  251. version (2) license will prohibit distributing
  252. any of the printed copies outside of the purchasing
  253. organization.
  254.  
  255. If you have special requirements, such as wanting
  256. to distribute a copy with each version of your compiler
  257. or using the source as a part of your documentation,
  258. we can make special arrangements, subject to the
  259. approval of the ISO.  Please advise me of your
  260. requirements and we can work up a proposal together.
  261.  
  262. ISO and Unicomp think this will provide the oft requested access to
  263. the standard in electronic form. This is the first time this is being
  264. tried, so we hope that organizations will be careful to observe the
  265. rules and encourage the continued availability of this and other
  266. standards in electronic form. 
  267.  
  268. Payment can be made by Visa or MasterCard, or with
  269. a check on a US Bank in US funds.  We <unicomp> will accept
  270. a purchase order only if the amount is $500 or more.
  271.  
  272. Walter S. Brainerd; Unicomp; phone: (415) 949-4052
  273.  email: walt@netcom.com; fax: (415) 949-4058; 
  274.  
  275.  
  276. Q2) What Fortran 90 translators are available?
  277.  
  278. From: schumanm@Informatik.TU-Muenchen.DE (Matthias Schumann)
  279. From: macphed@dvinci.USask.Ca (Ian MacPhedran)
  280.  
  281. This is the promised summary of my request for information about
  282. Fortran 90 (f90) compilers. I am sorry for the delay in getting this
  283. posted, but I was away for a week, and still haven't caught up.
  284.  
  285. I received a large amount of information, including a previous summary.
  286. Rather than parroting the entire list, I have prepared the following
  287. breakdown of the points which interested me.
  288.  
  289. ------------------------------------------------------------------------------
  290.  
  291. A more current list can be found (if you have gopher) direct from NAG's own 
  292. Bulletin Board thus:
  293.  
  294. gopher nags2.nag.co.uk 70
  295.  
  296. Product:  NAGware Fortran 90 Compiler
  297. Descript: Compiles f90 code to C source, or directly to executable
  298.           file under MS-DOS. Therefore requires native C compiler
  299.           as back end on most platforms.
  300. Platform: Apollo DN10000, DECstations, HP 9000, IBM RS/6000, NeXT,
  301.           Intel 386/486 (MSDOS), Sun 3, Sun 4 (SunOS 4.1)
  302.           VAX/VMS forthcoming.
  303. Pricing:  Varies with platform. Academic Pricing available. Site
  304.           licenses are  available
  305.  +------------------------------------------------------------+
  306.  |                    NAGWare F90 Compiler                    |
  307.  +------------------------------------------------------------+
  308.  |          License Fee Options for Initial Computer          |
  309.  +------------------------------------------------------------+
  310.  |        |         Standard        |         Academic        |
  311.  +--------+-------------------------+-------------------------+
  312.  |        |  Perpetual|  Maintenance|  Perpetual|  Maintenance|
  313.  |        |     Fee   |      Fee    |     Fee   |      Fee    |
  314.  +--------+-----------+-------------+-----------+-------------+
  315.  | CLASS 1|      $895 |      $160   |      $537 |       $97   | (MSDOS)
  316.  +--------+-----------+-------------+-------------------------+
  317.  | CLASS 2|    $1,495 |      $270   |      $897 |      $162   | (Low end work-
  318.  +--------+-----------+-------------+-----------+-------------+ stations)
  319.  | CLASS 3|    $1,995 |      $360   |    $1,197 |      $215   |
  320.  +--------+-----------+-------------+-----------+-------------+
  321.  | CLASS 4|    $2,49 $215   |
  322.  +--------+-----------+-------------+-----------+-------------+
  323.  | CLASS 4|    $2,495 |      $450   |    $1,497 |      $270   | (Server class
  324.  +--------+-----------+-------------+-----------+-------------+ computers)
  325.  | CLASS 5|    $3,295 |      $594   |    $1,977 |      $356   |
  326.  +--------+-----------+-------------+-----------+-------------+
  327.  | CLASS 6|    $4,295 |      $774   |    $2,577 |      $464   |
  328.  +--------+-----------+-------------+-----------+-------------+
  329.  | CLASS 7|    $5,295 |      $945   |    $3,177 |      $572   |
  330.  +--------+-----------+-------------+-----------+-------------+
  331.           (US Dollars)
  332. Contact:  Sheila Caswell, Account Manager,
  333.           Numerical Algorithms Group, Inc.
  334.  
  335.           1400 Opus Place, Suite 200
  336.           Downers Grove, IL, USA
  337.           60515-5702
  338. Phone:    (708) 971-2337
  339. Source:   E-mail messages, postings, and paper mailing
  340. ------------------------------------------------------------------------------
  341.  
  342. Product:  VAST-90
  343. Descript: Compiles Fortran 90 to Fortran 77 source (requires native 
  344.           Fortran 77 compiler).  Also converts Fortran 77 to Fortran 90.  
  345. Platform: Sun, IBM RS/6000, HP, DEC, Convex, Cray Research.
  346. Pricing:  Single system: starts at $1250 for Unix workstations; higher 
  347.       prices for larger machines.  Academic discount is 10%.  Volume 
  348.       discount and site license are also available.  Included: 
  349.           VAST-90, f90 driver, f90 library and documentation.
  350. Contact:
  351. Pacific-Sierra Research Corp.               Switchboard:   (310) 314-2300
  352. 2901 28th Street                            Fax:           (310) 314-2323
  353. Santa Monica  CA  90405                     VAST-90 e-mail: info@psrv.com
  354. ------------------------------------------------------------------------------
  355. Product:  PF90 Version 2.0
  356. Descript: Converts f90 programs to f77, then compiles with native
  357.           f77 compiler. Therefore native f77 compiler is required.
  358. Platform: Sun 4, IBM RS/6000, Silicon Graphics, DECstations, Convex,
  359.           Alliant, IBM 3090 (AIX), Cray
  360. Pricing:  $595 any platform, single copy.
  361.       Also available are special site licenses for Universities at
  362.       only $2000 ($3000 outside the US). This license includes
  363.       binaries for all platforms that ParaSoft currently supports.
  364.       Similar license are also available for goverment and
  365.       commercial sites.  
  366.  
  367. Contact:  ParaSoft Corporation
  368.           2500 E. Foothill Blvd
  369.           Pasadena, CA 91107
  370. Phone:    (818) 792-9941
  371. E-mail:   f90-info@parasoft.com
  372. Source:   E-mail messages, and PostScript advertisement
  373. ------------------------------------------------------------------------------
  374. Product:   PV version 1.1 of Fortran 90 compiler
  375. Descript:  Port of NAG's f90 compiler to MS-DOS, together with Salford
  376.            Software Ltd.
  377. Platform:  Intel 386/486 Computers
  378. Pricing:   $1950.00 (single user, US currency)
  379. Contact:   OTG Systems Inc
  380. Phone:     (717) 222-9100
  381. Source:    E-mail message/summary of previous queries
  382. ------------------------------------------------------------------------------
  383. ------------------------------------------------------------------------------
  384.  
  385. I wish to thank the following people for their help, and apologize to any
  386. which I have missed.
  387.  
  388. psrv!bob@uu.psi.com
  389. naginc!caswell@sunbird.Central.Sun.COM
  390. malcolm@nag.co.uk
  391. roman@parasoft.com
  392. khb@chiba.Eng.Sun.COM
  393. METCALF@crnvma.cern.ch
  394. ----------------------------------------------------------------------------
  395. Ian MacPhedran, Engineering Computer Centre, University of Saskatchewan.
  396. 2B13 Engineering Building, U. of S. Campus, Saskatoon, Sask., CANADA S7N 0W0
  397. macphed@dvinci.USask.CA  macphedran@sask.USask.CA
  398.  
  399. Walt Brainerd                walt@netcom.com:
  400.  
  401. Yes, a Fortran 90 system can be had for $134.
  402.  
  403. Salford FTN90 is a full PC Fortran 90 implementation based
  404. on the front end developed by the Numerical Algorithms
  405. Group, Ltd.  The Entry Level system requires that all
  406. parts of a program reside in one file (except those that
  407. are brought in with an INCLUDE line).  That file
  408. is compiled and executed without producing a permanent
  409. executable file.
  410.  
  411. It runs on a 386SX, 386DX, or 486 system with DOS 3.3
  412. or later.
  413.  
  414. Contact Unicomp for ordering information in North America.
  415. +1-415-949-4052   4058 (fax)
  416.  
  417. To find out the price and how to get it outside of North
  418. America, contact Salford Software, Venables Building,
  419. 5 Cockcroft Road, Salford, M5 4NT, United Kingdom,
  420. +44 61 745 5678, +44 61 745 5666 (fax).
  421.  
  422. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  423.  
  424. Media:      Steve Conway 612/683-7133
  425. Financial:  Bill Gacki 612/683-7372
  426.  
  427. CRAY RESEARCH ANNOUNCES FIRST COMPLETE FORTRAN 90 IMPLEMENTATION FOR
  428. SUPERCOMPUTERS
  429.  
  430. Cray Fortran 90-Based Products Will Also Be Marketed For PCs, Workstations,
  431. Servers
  432.  
  433. PORTLAND, Ore., Nov. 15, 1993 -- At the Supercomputing 93
  434. conference held here this week, Cray Research, Inc. (NYSE:CYR)
  435. announced the Cray Fortran 90 (CF90) Programming Environment,
  436. calling it the first native, complete implementation for supercomputers of
  437. the Fortran 90 standard.  The company said products based on the CF90
  438. Programming Environment will also be marketed for leading personal
  439. computers, workstation products and servers.  "Our goal is for the CF90
  440. Programming Environment to become an industry standard,"  said Cray
  441. ....
  442. The CF90 Programming Environment will be available for Cray
  443. Research's complete line of parallel vector supercomputers by year-end
  444. 1993.  Support for the company's CRAY T3D massively parallel
  445. processing (MPP) systems is planned for the second release of the
  446. CF90 Programming Environment, due out about a year from now, she
  447. said.
  448. ...
  449. Under the company's new CraySoft initiative, Cray-compatible, CF90-
  450. based products for SPARC-based workstations and servers, including
  451. Sun products and the recently announced CRAY SUPERSERVER 6400
  452. series from subsidiary Cray Research Superservers, are slated for
  453. availability by mid-1994, auperservers, are slated for
  454. availability by mid-1994, according to CraySoft manager Leary Gates. 
  455. Versions will also be developed for other leading workstation products. 
  456. ...
  457. CraySoft will also oversee Cray Research's previously announced
  458. agreement calling for Absoft Corp., Rochester Hills, Mich., to develop and
  459. market Cray-compatible versions of the CF90 compiler for personal
  460. computers based on Intel 486 and Pentium processors, as well as the
  461. forthcoming series of PowerPC-based Macintoshes, by mid-1994, he
  462. said. 
  463. ....
  464. CRAY RESEARCH, VISUAL NUMERICS SIGN JOINT TECHNOLOGY AND DISTRIBUTION
  465. AGREEMENT FOR FORTRAN 90 SOFTWARE PRODUCTS
  466.  
  467. PORTLAND, Ore., Nov. 16, 1993 -- Cray Research, Inc., and Visual Numerics,
  468. Inc., today announced at Supercomputing 93 an agreement to cooperate in the
  469. development and marketing of leading Fortran 90 technologies.
  470. ...
  471.  
  472.  
  473. Q3) I have heard of fortran "lints" what are they, and where can
  474.    I get one?
  475.  
  476.    Fortran compilers are not required (and most do not) to protect
  477.    users from themselves, that is to say
  478.  
  479.      call sub(1)
  480.      ...
  481.      subroutine sub(i)
  482.      i=i+10
  483.      return
  484.      end
  485.  
  486.    Is non-standard complying but the compiler need not tell you about
  487.    it. Arguably worse, the compiler can produce any result it deems
  488.    fit, up to and including the start of world war III (assuming the
  489.    right optional hardware has been installed).
  490.  
  491.    Fortran lint programs focus on searching out programming
  492.    errors (or likely errors) and alerting the user.
  493.  
  494.    There are a wide variety of commercial and pd products. A partial
  495.    list follows:
  496.  
  497.    IPT FORTRAN lint 1096 East Meadow Circle, Palo Alto, CA 94303, 415/494-7500.
  498.  
  499.    Forwarn from quibus 719 527 1384.
  500.  
  501.    QA-FORTRAN from PRL UK 44 372 4621 30 fax 44 372 468353
  502.     and *perhaps*  (817) 589 0949
  503.  
  504.    FORCHECK from Leiden University ND 31 71 276804
  505.  
  506.    FTNCHEK from netlib. One may receive FTNCHEK by mailing to
  507.    netlib@ornl.gov the following message:
  508.  
  509.     send ftnchek from fortran
  510.  
  511.     And Ajay Shah, (213)749-8133, ajayshah@usc.edu
  512.     You may want to mention f2c followed by an ANSI C compiler as a great
  513.     free fortran lint. I could not have survived writing fortran if it
  514.     were not for f2c.  You need to know some C to deal with the error
  515.     messages, but that's not a bad price to pay.
  516.  
  517.  
  518. From: atae@spva.ph.ic.ac.uk (Ata Etemadi)...
  519. A very kind soul who wishes to remain anonymous sent me the answer below. 
  520. ....
  521. 1.  There is a prettyprinter (called TIDY) available via FTP from simtel20.  
  522.     It's in PD2:MSDOS.FORTRAN or some directory with a similar name.
  523.     Capsule review:  does an ok job, sometimes has trouble with
  524.     newer extensions (and even some Fortran 77 standard features).
  525.     Not too bright about making good continuation-line break decisions.
  526.     Free, and available via FTP, so probably the quickest solution.
  527.     Includes source (in Fortran).
  528.     
  529. 2.  Greg Flint (afc@klaatu.cc.purdue.edu) at Purdue distributes a program 
  530.     called CLEAN77.  Pretty good (higher quality than #1 above), also free,
  531.     but must be obtained from Purdue (not available via FTP, not 
  532.     redistributable).  Available for assorted systems: PC, UNIX, etc.
  533.     In Fortran, comes with source.
  534.  
  535. 3.  There is an excellent prettyprinter in TOOLPACK - probably has
  536.     more options than any other.  Has trouble with extensions, such
  537.     as long variable names.  Free, comes in source form, in Fortran.
  538.     TOOLPACK as a whole is pretty huge, and requires some work to
  539.     install, but it might be worth it if you stick to pretty much
  540.     standard Fortran.  Available by FTP from Los Alamos (lanl.gov,
  541.     directory pub/toolpack/NAG).  Also distributed commercially for 
  542.     a fee by NAG, who may have a new, improved version that is better 
  543.     than the free one - I don't really know.
  544.  
  545. 4.  SPAG, sold by OTG Systems (about $1000 for MS-DOS, more for Unix).
  546.     Its main function is to restructure GOTOs into IF-THEN-ELSEs, but
  547.     it also prettyprints.  (I think they renamed this within the past
  548.     year).
  549.     it also prettyprints.  (I think they renamed this within the past
  550.     year).
  551.  
  552. 5.  FOR-STRUCT, sold by Cobalt Blue.  Also a GOTO restructurer that
  553.     prettyprints.  About $700 for MS-DOS.  Available from most of the
  554.     big PC software dealers (Programmer's Paradise, etc...)
  555.     (They now have a "budget" version that costs about $250 but has
  556.     program-size limitations.)
  557.  
  558. 6.  PRETTY, sold by Quibus Enterprises, Inc.  Restructures GOTOs, also 
  559.     indents, relabels, moves Formats, etc. $149 for MS-DOS, $500 for Unix 
  560.     workstations.  Call (719) 527-1384 for more info.
  561.  
  562.  
  563. From: "John D. McCalpin" <mccalpin@perelandra.cms.udel.edu>
  564. Not too many people use it, but you might want to add TOOLPACK to
  565. the list of FORTRAN "lint" packages.  Here is the blurb that I
  566. send to people who are interested:
  567.  
  568. ======================================================================
  569. TOOLPACK is a large set of utilities written in FORTRAN to do FORTRAN
  570. code analysis and transformation.
  571.  
  572. TOOLPACK begins by actually parsing the program with a fully FORTRAN-
  573. compliant parser and then does all the code transformations on the
  574. parse and comment trees.
  575.  
  576. This means that you cannot confuse TOOLPACK by silly FORTRAN-isms that
  577. can easily overwhelm more naive utilities (such as ftnchek).  For
  578. example, TOOLPACK correctly handles statements such as:
  579.  
  580.       D O U B L E  P R E C I S I O N   A(100,100)
  581.       doubleprecision fred
  582.  
  583.       DO I = 1.2
  584.       READ(I,J) = 10.
  585.  
  586.  
  587. The usual interface to TOOLPACK is a set of 'csh' scripts that run the
  588. various TOOLPACK utilities to do specific tasks.
  589.  
  590. The ones you will find most useful are: pol, polx, apt, dapt, decs, 
  591. getlst, and discard.   These are the prettyprinter, precision converter,
  592. declaration standardizer, and some necessary utilities.  See below for
  593. more details.
  594.  
  595. By aware that TOOLPACK is *very* rigorous about the FORTRAN-77
  596. standard.  You may or may not consider this an advantage.
  597.  
  598. The scripts are described by the 'scripts' script, which delivers the
  599. following:
  600. ----------------------------------------------------------------------------
  601. In the Toolpack script summaries below, the section numbers refer to
  602. the Unix environment Users' Guide where more detailed information can
  603. be found.  To obtain on-line information about a script's usage, type
  604. its name without any arguments.
  605.  
  606. FORTRAN Analysis Facilities
  607.  
  608.   getlst  Produce a listing showing statement and token numbers. Report
  609.           lexical scanning warnings and errors. (3.1.1)
  610.  
  611.   syn     Report errors and warnings detected by lexical scanning, parsing,
  612.           and examining a set of symbol attributes. (3.1.2)
  613.  
  614.   sem     Report errors and warnings detected by lexical scanning, parsing,
  615.           and examining an extended set of symbol attributes. (3.1.3)
  616.  
  617.   pfort   Report errors and warnings detected by lexical scanning, parsing,
  618.           examining an extended set of symbol attributes, checking for unsafe
  619.           references, and checking conformance to a portable subset of
  620.           FORTRAN. (3.1.4)
  621.  
  622.   statdoc In a user-supplied report template, place information derived from
  623.           static analysis to assist in documenting the program.  Examples of
  624.           information the user may request are COMMON block usage, symbol
  625.           attributes, and a graph of subprogram calls. (3.1.5)
  626.  
  627.   inst    Instrument a FORTRAN program so that the instrumented program, when
  628.           executed, produces information about program execution. (3.2.1)
  629.  
  630.   rundoc  Execute a program instrumented by inst and, in a user-supplied
  631.           report template, place information derived from dynamic analysis
  632.           to assist in documenting the program.  For example, the user may
  633.           determine the frequency of execution of program segments. (3.2.2)
  634.  
  635. FORTRAN Transformation Facilities
  636.  
  637.   pol     Format a FORTRAN program under control of user-supplied options
  638.           in a Polish option file. (4.1.1)
  639.  
  640.   polx    Construct a Polish option file via a menu-driven editor. lish option file. (4.1.1)
  641.  
  642.   polx    Construct a Polish option file via a menu-driven editor. (4.1.2)
  643.  
  644.   decs    Rebuild the declarative part of a FORTRAN program. (4.2.1)
  645.  
  646.   apt     Transform a single-precision version of a FORTRAN program to
  647.           double precision or vice versa. (4.3.1)
  648.  
  649.   dapt    Convert precision and rebuild the declarations, combining the
  650.           functions of apt and decs. (4.3.2)
  651.  
  652.   cname   Change the names in a FORTRAN program that satisfy conditions
  653.           derived from information in either the lexical token stream or
  654.           the symbol table or both. (4.4.1)
  655.  
  656.   lname   Transform a FORTRAN program containing long names to a program
  657.           with standard names. (4.4.2)
  658.  
  659.   stf     Rebuild the flow of control in a FORTRAN program to standardized
  660.           form. (4.5.1)
  661.  
  662.   ucs     Transform nests of DO loops matching certain paradigms so that
  663.           the transformed code executes more efficiently on vector machines.
  664.           (4.6.1)
  665.  
  666. Miscellaneous Facilities
  667.  
  668.   fdiff   Compare two FORTRAN programs at the lexical token level. (5.1.1)
  669.  
  670.   dac     Compare two data files, neglecting certain formatting differences
  671.           and numerical differences smaller than a given tolerance. (5.1.2)
  672.  
  673.   vcon    Create, edit, and retrieve versions of a file contained in a
  674.           version file. (5.2.1)
  675.  
  676.   discard Remove unneeded files created by the above scripts. (5.3.1)
  677.  
  678.   scripts Print this summary of the scripts. (5.4.1)
  679.  
  680. ----------------------------------------------------------------------------
  681.  
  682. TOOLPACK can be obtained by anonymous ftp from perelandra.cms.udel.edu
  683. in the directory pub/Lang/Toolpack/.
  684. The UNIX version is in the file toolpack.tar.Z
  685. Serious hackers will want the versions in the Distrib directory.
  686.  
  687. The package is known to compile on Silicon Graphics and Sun machines,
  688. though the Makefile is reasonably braindamaged.
  689.  
  690. You will need about 16 MB for the stripped executables on an SGI machine.
  691. Figure on double that for compiling the package.....
  692.  
  693. Have fun!
  694. --
  695. John D. McCalpin            mccalpin@perelandra.cms.udel.edu
  696. Assistant Professor            mccalpin@brahms.udel.edu
  697. College of Marine Studies, U. Del.    John.McCalpin@mvs.udel.edu
  698.  
  699. Aside from code reformatting, there is the other meaning of pretty
  700. printing ...  
  701.  
  702. From: James F Hall <james.f.hall@uwrf.edu>
  703. ....
  704.  
  705. Second, on Q12 in the faq, about available pretty printers for
  706. Fortran...  Some time ago, I found a pretty printer called "lgrind",
  707. which converted a Fortran program into LaTeX/TeX.  This text could be
  708. included in a larger LaTeX/TeX file, or processed immediately.  I
  709. chose not to use this because I found it was not the best use of my
  710. quota, but others may find it useful.
  711.  
  712. Lgrind may be found using an archie search:
  713.     archie lgrind
  714. ;;;;
  715. Q4) "Why do people use FORTRAN?, C is so much better"
  716.  
  717.    One should avoid such pointless arguments .... if you feel this
  718.    way, don't subscribe to comp.lang.fortran.
  719.  
  720.    This sort of question always triggers off a protracted discussion,
  721.    the highlights of which are typically:
  722.  
  723.        a) FORTRAN and C have different semantics. A FORTRAN optimizer
  724.       knows more about aliasing, function interactions, and I/O. A
  725.       C optimizer has to infer or compute such information. C
  726.       bigots typically have neither written such optimizers nor
  727.       worked with folks who do it for a living, and are prone to
  728.       dismiss such arguments as being petty and neolithic.
  729.  
  730.       FORTRAN programmers are often a bit more in touch with high
  731.       performance computing, and are unwilling to bet that heavily
  732.       on compiler wizardry. 
  733.       
  734.       In addition, ANSI/ISO C has very tight requirements on
  735.       expression evaluation (an overreaction to the K&R ignore
  736.       parenthesis days) which cripples an optimizer even further.
  737.       The restrictions are spelled out in Section 5.1.2.3 of
  738.       ISO/IEC 9899-1990. Both the '77 and '90 Fortran standards
  739.       allow the optimizer more latitude.
  740.  
  741.       Of course, compiler options, vendor extensions and the like
  742.       sometimes narro latitude.
  743.  
  744.       Of course, compiler options, vendor extensions and the like
  745.       sometimes narrow the difference. Also, some Fortran
  746.       compilers do not take advantage of all of these features of
  747.       the language, thus narrowing the gap in the other direction.
  748.  
  749.       On any given code, on any given system, all bets are off.
  750.  
  751.       b)  There is a vast body of existing FORTRAN code (much of which
  752.       is publically available and of high quality). Numerical
  753.       codes are particularly difficult to "vet", scientific
  754.       establishments usually do not have large otherwise idle
  755.       programming staffs, etc.  so massive recoding into any new
  756.       language is typically resisted quite strongly.
  757.  
  758.       c)  Fortran tends to meet some of the needs of scientists
  759.       better.  Most notably, it has built in support for:
  760.         - variable dimension array arguments in subroutines
  761.         - a compiler-supported infix exponentiation operator which
  762.           is generic with respect to both precision and type,
  763.           *and* which is generally handled very efficiently  or
  764.           the commonly occuring special case floating-point**small-integer
  765.         - complex arithmetic
  766.         - generic-precision intrinsic functions
  767.  
  768.       d)  Retraining staff is quite expensive.
  769.  
  770.       e)  It is sometimes argued that: 
  771. - Jonathan Thornburg <also responsible for misc. other fixups>
  772.     Fortran tends to be easier for non-experts to learn
  773.     than C, because its "mental model of the computer" is
  774.     much simpler.  For example, in Fortran the programmer
  775.     can generally avoid learning about pointers and memory
  776.     addresses, while these are essential in C.  More generally,
  777.     in Fortran the difference between (C notation) x, &x,
  778.     and often even *x is basically hidden, while in C it's
  779.     exposed.  For non-experts this makes Fortran a considerably
  780.     simpler language.
  781.  
  782.     Because of this relative simplicity, for simple programming
  783.     tasks which fall within its domain, (say writing a simple
  784.     least-squares fitting routine), Fortran generally requires
  785.     much less computer science knowledge of the programmer than
  786.     C does, and is thus much easier to use.
  787.  
  788.      
  789. Q5)  Why can't I get an electronic version of the standard?
  790.  
  791.     Someday, perhaps you can. However, at the moment the various
  792.     standards bodies finance some fraction of their work via sales of
  793.     standards documents. ISO and ANSI have both claimed copyright to
  794.     the finished standard, so those who would make and distribute
  795.     copies should be forewarned.
  796.  
  797.     It should be noted that various people are working to correct
  798.     this; but it is unlikely to ever become free.
  799.  
  800. Q6) Where can I get "foo" (some random package)
  801.  
  802. Q6) Where can I get "foo" (some random package)
  803.         contributed by:
  804.                 Marc R. Roussel
  805.                                 mroussel@alchemy.chem.utoronto.ca
  806.  
  807.     Use archie. archie is an online database of what is available and
  808.     where on the "net". Archie can be used either via telnet or by
  809.     mail. 
  810.     
  811.     For information about archie send 
  812.  
  813.     mail archie@archie.rutgers.edu
  814.     subject: help
  815.  
  816.     And you will get back copious directions on how to use archie.  If
  817.     you prefer interactive experimentation, telnet to
  818.     archie.rutgers.edu and log in as archie.  No password will be
  819.     required.  The first thing you will be shown is a list of other
  820.     archie servers.  If one of these servers is geographically much
  821.     closer to you than Rutgers, NJ, please disconnect (by typing 'quit')
  822.     and use that one.  To save you this step, here is the latest list of
  823.     archie sites:
  824.  
  825.     archie.rutgers.edu     128.6.18.15     (Rutgers University)
  826.     archie.unl.edu     129.93.1.14     (University of Nebraska in Lincoln)
  827.     archie.sura.net     128.167.254.179 (SURAnet archie server)
  828.     archie.ans.net     147.225.1.2     (ANS archie server)
  829.     archie.au         139.130.4.6     (Australian server)
  830.     archie.funet.fi     128.214.6.100     (European server in Finland)
  831.     archie.doc.ic.ac.uk  146.169.11.3     (UK/England server)
  832.     archie.cs.huji.ac.il 132.65.6.15     (Israel server)
  833.     archie.wide.ad. (UK/England server)
  834.     archie.cs.huji.ac.il 132.65.6.15     (Israel server)
  835.     archie.wide.ad.jp     133.4.3.6     (Japanese server)
  836.  
  837.     I believe that all of these servers run the mail server as well as
  838.     the telnet and archie server software.  (The archie server is a
  839.     third way to use archie.  It's probably the best way, but it
  840.     requires that you install software.)
  841.  
  842.     Once you logged into an archie server, you will want to make
  843.     sure that all the information you will retrieve will be mailed to
  844.     you.  Type
  845.  
  846.     set mailto userid@machine.foo.edu
  847.  
  848.     where, of course, you will substitute your own email address for the
  849.     made-up one shown above.  You are now ready to search the database.
  850.     If at any time you want to know what options are available to you,
  851.     type help.  To search for a program or file, type
  852.  
  853.     prog foo
  854.  
  855.     where foo is the name of the program or file required.  Once your
  856.     search is done, type 'mail' to have the output sent to you.  (The
  857.     output will almost always be several pages long.)  Then type 'quit' to
  858.     exit.
  859.  
  860. Q7)  Where can I get a free compiler?
  861.  
  862.     One such is f2c.
  863.  
  864. From: mwm@a.gp.cs.cmu.edu (Mark Maimone)
  865. Newsgroups: comp.lang.fortran,comp.lang.c
  866. Subject: Re: Fortran to C translator
  867. Keywords: fortran, C, translator, f2c
  868. Date: 13 Sep 90 01:43:30 GMT
  869. Organization: Carnegie-Mellon University, CS/RI
  870.  
  871.  
  872.     Since there have been several requests for a Fortran to C translator
  873. in the past week, I'm reposting the announcement about f2c.  The short
  874. answer is you can get f2c by anonymous-ftp from research.att.com in
  875. directory dist/f2c.
  876.  
  877. ------------------------------------------------------------------------------
  878.  
  879.     Source for f2c, a Fortran 77 to C translator jointly developed by
  880. folks from Bell Labs, Bellcore, and Carnegie Mellon, is now freely
  881. available.
  882.  
  883.     F2c was derived from the original UNIX operating system's f77(1),
  884. and the generated C follows f77's calling conventions; on some machines, the
  885. resulting object files are interchangeable with (and behave
  886. indistinguishably from) objects compiled by f77.  The main "advantage" of
  887. f2c is that it converts ANSI standard Fortran 77 into C without manual
  888. intervention, at least when invoked by a suitable script or makefile (that
  889. may need to exercise an f2c option to ensure that COMMON blocks are defined
  890. just once).  The main "problems" are that f2c does no code restructuring
  891. (e.g., gotos are preserved) and that Fortran I/O gets converted into a bunch
  892. of calls; thus the translated C code doesn't look too pretty, and in general
  893. one would need to maintain the Fortran rather than its translation into C.
  894. [F2c is not meant to displace the services of commercial vendors whose
  895. business is to convert Fortran into maintainable C.]
  896.  
  897.     There is a plethora of options, many of which exist to support
  898. different compilation environments for the translated C (e.g., ANSI C or C++
  899. compatibility, different type sizes, separate files for COMMON blocks to
  900. appease "smart" linkers).  So far f2c (and f2c-generated source) has
  901. compiled successfully on many machines:  Sun, Vax, IBMRT, Apollo, SGI, MIPS,
  902. and Cray to name a few.
  903.  
  904.     F2c has been under test by the net community for over a year
  905. and has been verified on the NBS tests, several large math libraries,
  906. floating point tests, even code for laying cable on the ocean floor!
  907.  
  908.     To find out about f2c, send the following E-mail message to netlib
  909. (netlib@research.att.com or research!netlib):
  910.  
  911.     send index from f2c
  912.  
  913. Your message will be answered automatically (by a program -- see CACM vol.
  914. 30 #5 (May, 1987), pp. 403-407).  You will receive a reply explaining how to
  915. automatically acquire f2c source (about 600K), f2c library source (130K),
  916. and supporting info (man page, etc).  Or you can anonymous-FTP to
  917. research.att.com and look in directory dist/f2c at these files:
  918.  
  919.     all.Z -- 250K compressed shar file for f2c
  920.     f2c.ps.Z -- 24 page tech report describing f2c
  921.     index -- general info about files
  922.     libf77.Z, libi77.Z -- compressed shar file describing f2c
  923.     index -- general info about files
  924.     libf77.Z, libi77.Z -- compressed shar files for libraries
  925.  
  926. ****************************** DISCLAIMER ******************************
  927.          Careful! Anything free comes with no guarantee.
  928. ************************************************************************
  929.  
  930. ----------------------------------------------------------------------
  931. Mark Maimone                phone: (412) 268 - 7698
  932. Carnegie Mellon Computer Science    email: mwm@cs.cmu.edu
  933.                            cmcspt!mwm@cs.cmu.edu
  934.  
  935. Notes: f2c accepts only fairly vanilla FORTRAN; vendor supplied f77's
  936.        usually produce better quality code, and accept a wider variety
  937.        of codes. 
  938.  
  939. The FSF is working on a f77 front end to be integrated with the gcc back end. 
  940.  
  941. "A mailing list exists for those interested in the Fortran front end for
  942. GCC.  To subscribe, ask: `info-gnu-fortran-request@prep.ai.mit.edu'.
  943. Or try "finger -l fortran@gate.gnu.ai.mit.edu"
  944.  
  945. There is no FSF project to do a f90 front end. The author of the gf77
  946. front end is willing, if anyone will fund it.
  947.  
  948. Q8)  What is the best compiler for a PC?
  949.  
  950.     There are many products, some are quite good. Few are free. 
  951.     f2c and gcc can be had for the PC environment. Popular ones are:
  952.  
  953.     Lahey (very fast compilation; excellent reputation for support)
  954.     Watcom (touted for good optimization)
  955.     MicroWay (support for odd floating point units)
  956.     LPI  (multi-platform support)
  957.     MicroSoft (various good hooks into windows and such)
  958.     Absoft (multi-platform support)
  959.  
  960.    It is beyond the scope of a faq to provide a commercial endorsement.
  961.  
  962. Q9) How does Fortran 90 relate to FORTRAN '77?
  963.  
  964.     With a few minor exceptions, Fortran 90 is a superset
  965.     of X3.9-1978 FORTRAN.
  966.  
  967. But this does not mean that all "77" codes will port sans changes.
  968. Many (if not most) programmers employed constructs beyond the '77
  969. standard, or rely on unspecified behavior (say, assuming that an OPEN
  970. of an existing file will position the file pointer to just past the
  971. last record already written) which has changed (that is to say, has
  972. become specified). 
  973.  
  974. This leads to the obvious question, what is new in Fortran 90?
  975.  
  976. A complete answer would require considerable text. Some of the most
  977. obvious additions are:
  978.  
  979.     1) array notation (operators, etc.)
  980.     2) dynamic memory allocation
  981.     3) derived types and operator overloading
  982.     4) keyword argument passing, INTENT (in, out, inout)
  983.     5) modules
  984.     6) modern control structures
  985.     7) free format source code form
  986.     8) other stuff
  987.  
  988. While it is always tricky to characterize the motives of a large group
  989. of people, I <khb> am inclined to try as follows:
  990.  
  991.    '90 incorporates two sets of improvements: (1) relatively minor
  992.    fixups that *could* have been done earlier (2) relatively major
  993.    changes to enable better software engineering practices.
  994.  
  995. Sometimes a "minor" fixup has major effect, such as addition of free
  996. form source form combined with canonization of the MIL-STD 1753
  997. INCLUDE. 
  998.  
  999. I further go off on a limb and assert that it was the goal of the
  1000. *committee* to evolve Fortran in a fashion to enable it to continue to
  1001. be the premier language for scientific computation.
  1002.  
  1003.  
  1004. Q10) My compiler is mis-behaving; who enforces the standard?
  1005.  
  1006.     ANSI and ISO standards do not usually have a particular enforcement
  1007.     mechanism. Local bodies sometimes do. 
  1008.  
  1009.     However, it should be borne in mind that if *your* source code is
  1010.     not standard compliant there is *NO* obligation for a FORTRAN ('77
  1011.     and before) compiler to do  *ANYTHING* in particular. In Fortran (90)
  1012.     the text in "constraints" must be tested and a warning produced
  1013.     (compiler option can be used to evade this, of course).
  1014.  
  1015.     Some (notably Guy Steele, with respect to another standard) have
  1016.     noted that when non-standard complying code is encountered, a
  1017.     compiler may do *ANYTHING* including initation of Global Warfare.
  1018.     Keep this in mind.
  1019.  
  1020.     When you do find a bona fide compiler bug, you are generally best
  1021.     served by reporting it to the *vendor*.nd a bona fide compiler bug, you are generally best
  1022.     served by reporting it to the *vendor*. If you neglect to tell the
  1023.     vendor, how can you complain about it not being fixed?
  1024.  
  1025.     When reporting a *suspected* bug be sure to be quite specific
  1026.     about the computer system, operating system rev level (patches
  1027.     applied if known) and *compiler*version* (and patches thereof).
  1028.     It is very hard for people to read your mind; but they will try. 
  1029.     The attempts are often entertaining, sometimes helpful, but always
  1030.     an inefficient use of people-time and net-bandwidth.
  1031.  
  1032.     Also note that it is generally helpful if you cut down the example
  1033.     to the smallest size you can. Vendors are developers too; the
  1034.     tendency is invest time/money where one can get the biggest bang
  1035.     for the buck. 
  1036.     
  1037.  
  1038. Q11) What are good books on Fortran? 
  1039.  
  1040.     Don't know if they are good. Inclusion in the list is not
  1041.     endorsement.  Have misplaced name of the compiler of the 
  1042.     original list <sorry>
  1043.  
  1044.  
  1045. Author                         Title                                     Year
  1046. Morgan/Schonfelder           Programming in Fortran 90          1993
  1047. Kerrigan               Migrating to Fortran 90                  1993
  1048. Kruger                   Efficient Fortran Programming          1990
  1049. Mojena/Ageloff                 FORTRAN 77                                 1990
  1050. Metcalf/Reid                   FORTRAN 90 EXPLAINED                       1990
  1051. Boyle                          FORTRAN 77 PDQ                             1989
  1052. Bezner                         FORTRAN 77                                 1989
  1053. Tremblay                       PROGRAMMING IN FORTRAN 77                  1988
  1054. Salmon                         ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  1055. Nyhoff/Leestma                 FORTRAN 77 FOR ENGINEERS & SCIENTISTS      1988
  1056. McCracken/Salmon               ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  1057. Davis/Hoffman                  FORTRAN 77: A STRUCTURED DISCIPLINED STYLE 1988
  1058. Barnard/Skillicorn             FORTRAN 77 FOR ENGINEERS AND SCIENTISTS    1988
  1059. Mashaw                         PROGRAMMING STRUCTURED FORTRAN 77          1987
  1060. Cole                           FORTRAN 77: A STRUCTURED ... APPROACH      1987
  1061. Boillot                        UNDERSTANDING FORTRAN-77                   1987
  1062. Starkey/Ross                   FUNDAMENTAL PROGRAMMING WITH FORTRAN 77    1986
  1063. Rouse/Bugnitz                  INTRODUCTION TO FORTRAN 77                 1986
  1064. Ratzer                         FORTRAN 77 COURSE                          1986
  1065. Page                           FORTRAN 77 FOR HUMANS                      1986
  1066. Lehman                       ... SOCIAL SCIENCES: ALGORITHMS & FORTRAN 77 1986
  1067. Smith                          FORTRAN 77: A PROBLEM-SOLVING APPROACH     1985
  1068. Shelly                         FORTRAN 77: AN INTRODUCTION                1985
  1069. Nickerson                      FUNDAMENTALS OF FORTRAN 77 PROGRAMMING     1985
  1070. Metcalf                        EFFECTIVE FORTRAN 77                       1985
  1071. McKeown                        STRUCTURED PROGRAMMING USING FORTRAN 77    1985
  1072. Hume                           FORTRAN 77 FOR SCIENTISTS & ENGINEERS      1985
  1073. Dillman                        PROBLEM SOLVING WITH FORTRAN 77            1985
  1074. Brainerd                       FORTRAN 77 FUNDAMENTALS AND STYLE          1985
  1075. Borse                          FORTRAN 77 & NUMERICAL METHODS FOR ENGINEERS1985
  1076. Adman                          FORTRAN 77 SOLUTIONS NON-SCIENTIFIC PROBS. 1985
  1077. SSI, Inc. Staff                FORTRAN 77 REFERENCE                       1984
  1078. Etter                          PROBLEM SOLVING WITH STRUCTURED FORTRAN 77 1984
  1079. Etter                          PROBLEM SOLVING USING FORTRAN 77            ?
  1080. Dyck                           FORTRAN 77: A STRUCTURED APPROACH ...      1984
  1081. Chivers/Clark                  FORTRAN 77: A HANDS ON APPROACH            1984
  1082. Adman                          FORTRAN 77 FOR NON-SCIENTISTS              1984
  1083. Willamson/Levesque           * A GUIDEBOOK TO FORTRAN ON SUPERCOMPUTER   1989
  1084. Rule            
  1085. Willamson/Levesque           * A GUIDEBOOK TO FORTRAN ON SUPERCOMPUTER   1989
  1086. Rule                           FORTRAN 77: A PRACTICAL APPROACH          1983
  1087. Rouse/Bugnitz                  PROGRAMMING THE IBM PC: FORTRAN 77        1983
  1088. Nyhoff/Leestma                 PROBLEM SOLVING WITH FORTRAN 77           1983
  1089. Marateck                       FORTRAN 77                                1983
  1090. Lehmnkuhl                      FORTRAN 77                                1983
  1091. Law                            ANSI FORTRAN 77: INTRO. TO SOFTWARE DESIGN 1983
  1092. Holoien/Behforooz              ... STRUCTURED PROGRAMMING WITH FORTRAN 77 1983
  1093. Grout                        FUNDAMENTAL ... PROGRAMMING USING FORTRAN 77 1983
  1094. Fleming/Redish                 THE U. S. MC MASTER GLOSSARY OF FORTRAN-77  1983
  1095. Cole                           ANSI FORTRAN IV WITH FORTRAN 77 EXTENSIONS  1983
  1096. Wu                             ANSI FORTRAN IV & 77 AND BUSINESS PROGRAMS  1982
  1097. Pollack                        STRUCTURED FORTRAN 77 PROGRAMMING           1982
  1098. Katzan                         FORTRAN 77                                  1982
  1099. Gibson/Young                  INTRODUCTION TO PROGRAMMING USING FORTRAN 77 1982
  1100. Ellis                         STRUCTURED APPROACH FORTRAN 77 PROGRAMMING   1982
  1101. Durgin                        FORTRAN 77                                   1982
  1102. Nanney                        A PROBLEM-SOLVING APPROACH USING FORTRAN 77  1981
  1103. Merchant                      FORTRAN 77: LANGUAGE AND STYLE               1981
  1104. Khailany                      BUSINESS PROGRAMMING FORTRAN IV/ANSI FORTRAN 1981
  1105. Ashcroft                      PROGRAMMING WITH FORTRAN 77                  1981
  1106. Wagener                        FORTRAN 77                                    ?
  1107. Wagener                       PRINCIPLES OF FORTRAN 77 PROGRAMMING         1980
  1108. Meissner/Organick             FORTRAN 77 FEATURING STRUCTURED PROGRAMMING  1980
  1109. Hume/Holt                     PROGRAMMING FORTRAN 77                       1979
  1110. Balfour                       PROGRAMMING IN STANDARD FORTRAN 77           1979
  1111. Brainerd               Programmer's guide to Fortran 90            1990
  1112. Adams et al                   Fortran 90 Handbook                         1991
  1113. Counihan                      Fortran 90                                  1991
  1114. O'Reilly&Assoc              Unix for FORTRAN Programmers                1990
  1115.  
  1116. From: dtm@castle.ed.ac.uk (D Muxworthy)
  1117. Newsgroups: comp.lang.fortran
  1118. Subject: Fortran 90 text books (was: Fortran 8x Information sought)
  1119. Date: 16 Jul 93 12:10:32 GMT
  1120. Distribution: comp
  1121. Organization: Edinburgh University
  1122.  
  1123. In article <KUMAZAWA.93Jul15114854@sutkbcn1.c1.kagu.sut.ad.jp> kumazawa@c1.kagu.sut.ad.jp (Tomonobu Kumazawa) writes:
  1124. >
  1125. >   I would appreciate any information (books, information materials,
  1126. > contacts of software publishers etc.) related to FORTRAN 8x.
  1127.  
  1128. Here is a bibliography of Fortran 90 text books.  Any information on additions
  1129. would be welcome, as would the ISBN number of Schobert's book. 
  1130.  
  1131. 1.   Fortran 90 - Counihan, Pitman, 1991, ISBN 0-273-03073-6.
  1132. 2.   Fortran 90; Approche par la Pratique - Lignelet, Se'rie
  1133.      Informatique E'ditions, Menton, 1993, ISBN 2-090615-01-4.
  1134. 3.   Fortran 90: eine informelle Einfu"hrung - Heisterkamp,
  1135.      BI-Wissenschaftsverlag, 1991, ISBN 3-411153-21-0.
  1136. 4.   Fortran 90 Explained - Metcalf and Reid, Oxford University
  1137.      Press, 1992, ISBN 0-19-853772-7 (also available in French,
  1138.      Japanese [from Oct 1993] and Russian [Q4, 1993] translation).
  1139. 5.   Fortran 90 Handbook - Adams, Brainerd, Martin, Smith and
  1140.      Wagener, McGraw-Hill, 1992, ISBN 0-07-000406-4.
  1141. 6.   Fortran 90; Initiation a` partir du Fortran 77 - Aberti,
  1142.      Se'rie Informatique E'ditions, Menton, 1992, ISBN 2-090615-00-6.
  1143. 7.   Fortran 90 Referenz-Handbuch: der neue Fortran-Standard -
  1144.      Gehrke, Carl Hansen Verlag, 1991, ISBN 3-446163-21-2.
  1145. 8.   Programmer's Guide to Fortran 90 - Brainerd, Goldberg and
  1146.      Adams, McGraw-Hill, 1990, ISBN 0-07-000248-7.
  1147. 9.   Programmieren in Fortran - Langer, Springer Verlag, 1993,
  1148.      ISBN  ISBN 0-07-000248-7.
  1149. 9.   Programmieren in Fortran - Langer, Springer Verlag, 1993,
  1150.      ISBN 0-387-82446-4.
  1151. 10.  Programmierung in Fortran 90 - Schobert, Oldenburg, 1991.
  1152. 11.  Programming in Fortran 90 - Morgan and Schonfelder,
  1153.      Blackwell Scientific Publications, 1993, ISBN 0-632028-38-6.
  1154. 12.  Software Entwicklung in Fortran 90 - U"berhuber and Meditz,
  1155.      Springer Verlag, 1993, ISBN 0-387-82450-2.
  1156.  
  1157. David Muxworthy
  1158. Edinburgh University
  1159.  
  1160.  
  1161.  
  1162. Q12) Are there pretty printers for FORTRAN? Flowchart generators?
  1163.  
  1164.     Yes. 
  1165.  
  1166.     One such is SPAG:  OTG <usa> voice 717 222 9100  fax   717 229 9103
  1167.     Authors are   
  1168.  
  1169.            Polyhedron Software Ltd
  1170.            Magdalen House
  1171.            98 Abingdon Road
  1172.            Standlake
  1173.            Witney
  1174.            Oxon OX8 7RN
  1175.  
  1176.            Tel 0865 300 579
  1177.  
  1178.      part of their plusFORT product.
  1179.            
  1180.  
  1181.     Another is Fortran development Tools from  Quibus 714 527 1384
  1182.  
  1183.     Also FOR_STRUC from cobalt-blue. 404 518 1116
  1184.  
  1185.     These more than pretty print, they optionally restructure your
  1186.     code (duplicating code as needed to tidy up strange GOTO lists,
  1187.     turning them into IF-THEN chains, and etc.).
  1188.  
  1189.  
  1190. From: dappel@grafted.UUCP (Dave Appel)
  1191. Newsgroups: comp.lang.fortran
  1192. Subject: Re: code beautifier wanted
  1193. Date: 4 Mar 92 21:30:25 GMT
  1194. Organization: GRAFTED, Central Indiana's Usenet BBS 317-881-4369
  1195.  
  1196. wg@cbnewsm.att.com (Bill Gieske) writes:
  1197. > I have tons of old FORTRAN code, most of it in upper case, the majority
  1198. > of it not indented.  Is there a code beautifier, either PD or $$ that I
  1199. > can run the code through to improve the readability, hence the main-
  1200. > tainability?
  1201. > Reply to me direct.  I will summarize if appropriate.
  1202. > Bill Gieske
  1203. > AT&T Bell Laboratories
  1204. > wg%alux2@att.research.com
  1205.  
  1206.      Call "The Connection at 800-336-1166"  and ask for
  1207. their software catalog.
  1208.  
  1209.      In their catalog that I have, Sprint 1992, there is an
  1210. ad on page 39 from AutoCASE Technology.  They have
  1211. a product called "AutoFLOW-FORTRAN" that lists for $1,995.
  1212. It claims to automatically document your existing source code.
  1213. AutoCASE's number is 408-446-2273.
  1214.  
  1215.       On page 93 is an ad from POWERLINE Software Inc.
  1216. Their number is 800-257-5773, 206-623-9204.  They offer
  1217. a product called SOURCE PRINT+, which they call a code
  1218. management tool with "multi-style formatting with structured
  1219. code blocking."  
  1220.  
  1221. They have a Fortran/Basic version for $169, and a Delux
  1222. Multi-language version for $249.  This program is for
  1223. DOS (MS-DOS presumably) Windows, and OS/2.
  1224.  
  1225. Hope this helps.
  1226.  
  1227. --
  1228. Dave Appel
  1229. The Grafted Branch BBS
  1230. 317-881-4369
  1231. internet: dappel@grafted.UUCP
  1232. uucp: ..!uunet!grafted.UUCP!dappel
  1233.     -= newsfeeds available, contact robert@towers.rn.com =-
  1234.  
  1235. Hindsight/Fortran
  1236.  
  1237.         Summary:
  1238.  
  1239.     Features include the ability to draw an interactive structure
  1240.     chart and display coverage, software complexity and
  1241.     performance information on the structure chart. There are also
  1242.     code tracing features, for instance 3 logic diagrams are
  1243.     produced. Common blocks can be traced through the structure
  1244.     charts, including specific variables within common blocks.
  1245.     Hindsight is excellent for documentation, code inspection, and
  1246.     bringing new software engineers up to speed on new code. 
  1247.  
  1248. For more information or a free demo copy, contact:
  1249.  
  1250. Dan Zimmerman,  National Account Manager
  1251. Advanced Software Automation, Inc.
  1252. 3130A Coronado Dr
  1253. Santa Clara, 95054
  1254.  
  1255. Phone: 408 492-1668  Fax: 408 492-1669
  1256.  
  1257. Email: zimme@hindsight.com 
  1258.  
  1259. Alternative contact (if Dan cannot be reached:
  1260.                 manny@hindsight.com (John Mansperger)
  1261.  
  1262.  
  1263. Hindsight/FORTRAN Version 1.0 features
  1264.  
  1265. Hindsight/FORTRAN Version 1.0 is a fully integrated software
  1266. maintenance, testing, and re-engineering environment which addresses
  1267. many problems of the software development cycle, from design to
  1268. maintenance.
  1269.  
  1270. Hindsight/FORTRAN Version 1.0 parses FORTRAN source code, decomposes
  1271. system structure, and from this analysis, produces a single database
  1272. from which all of Hindsight's charts, diagrams and reports are
  1273. pro produces a single database
  1274. from which all of Hindsight's charts, diagrams and reports are
  1275. produced.  The results of Hindsight's analysis is a detailed picture
  1276. of the static structure of the software system, a representation of
  1277. the common and local data, and connections to the dynamically
  1278. collected run-time data.  From this, Hindsight generates active
  1279. structure charts where the user can isolate logical subtrees to
  1280. analyze both the parents and the children of a selected function.
  1281. Hindsight collects and analyzes performance, complexity, and test
  1282. coverage data.  With the structure chart, the user can display this
  1283. data in a graphical and easy to use format.  From the structure chart,
  1284. the user can edit multiple functions at a time without having to
  1285. specify the file or directory path where the file exists.  Hindsight
  1286. even displays the use of common blocks on the structure chart.
  1287. Lastly, Hindsight generates logic diagrams for the entire program,
  1288. provides point-and-click tracing between high-level and detailed logic
  1289. with active line numbers, and generates over fifty detailed reports.
  1290.  
  1291. All capabilities mentioned above are integrated in a menu
  1292. driven environment utilizing the OpenLook or Motif Graphical User
  1293. Interface. Engineers only need to specify a list of source files to be
  1294. analyzed and select the operation and parameters for their purposes.
  1295. Hindsight provides the ability for multiple diagrams and reports to be
  1296. produced simultaneously during a single Hindsight session.
  1297.  
  1298. Hindsight/FORTRAN Version 1.0 provides an innovative technique to
  1299. graphically represent a software system. The structure chart reflects
  1300. the system structure, from which the user can get a clear overview of
  1301. the program being examined. Hindsight also allows the user to view or
  1302. edit the original code with a click on any subprogram box in the
  1303. structure chart.  A major time-saving advance is Hindsight's ability
  1304. to reanalyze an edited function and update the structural database
  1305. without reanalyzing the entire system.  The J-Diagram and ActionPlus
  1306. diagram are two graphical representations of the logic in a software
  1307. system and can contain a single module or the entire system.  Both
  1308. diagrams utilize the active line number technique to link high-level
  1309. module calls with detailed module logic.  Hindsight also actively
  1310. links computed GOTO statements with their destination labels by
  1311. clicking on the label.  Users can walk through programs and trace the
  1312. logic without having to memorize the directories and files where
  1313. subprograms are defined and called. This technique saves a great deal
  1314. of the users time.
  1315.  
  1316. Hindsight/FORTRAN Version 1.0 has many integrated automated tools to
  1317. generate documents either on-screen or on paper. Because the documents
  1318. are automatically generated, they can be updated as soon as engineers
  1319. have modified their source code.  This approach guarantees the
  1320. consistency between the design documents and the source code.  The
  1321. updated and correct documents will be of great value in maintaining
  1322. and improving software products.  These documents are available
  1323. on-line to the user and readily accessible through Hindsight's
  1324. interactive report mechanism.
  1325.  
  1326. Hindsight Version 1.0 has the ability to provide segment or line test
  1327. coverage data.  Hindsight generates test coverage data and displays
  1328. the data on the structure chart in a statistical way.  Hindsight can
  1329. also display the precise location of testing deficiencies on the
  1330. J-Diagram, which helps engineers find the exact part of the program
  1331. where the code has not been tested. Hindsight's ability to display
  1332. performance data, complexity metrics, and test coverage data on charts
  1333. and diagrams play an important role in controlling program quality.
  1334.  
  1335. Hindsight/FORTRAN Version 1.0 uses a new notation for the J-diagram
  1336. which accommodates branch test coverage capability.  The new notation
  1337. has a better and more precise method of showing control levels,
  1338. complexity, and segment number counting.  The branch test coverage
  1339. data generation and display is a great enhancement for test coverage
  1340. analysis.  Hindsight's branch test coverage is able to detect
  1341. invisible branches, finding more problems that would otherwise be
  1342. hidden in programs.  With this information, users can add test cases
  1343. for covering the untested code.
  1344.  
  1345. Hindsight/FORTRAN Version 1.0 contains the ability to speed up the
  1346. development process by generating a specific order for coding the
  1347. modules of a users system.  By analyzing a group of modules containing
  1348. nothing more than empty shells of subprogs system.  By analyzing a group of modules containing
  1349. nothing more than empty shells of subprograms that call the other
  1350. subprograms in the system, Hindsight generates the coding order for
  1351. the modules to ensure that the process will be testable with the use
  1352. of a single driver process and without the need to stub out uncoded
  1353. subprograms.  The bottom-up coding approach saves time that would be
  1354. wasted coding unneeded stubs.  As development proceeds, Hindsight's
  1355. ability to verify that calls to other subprograms are utilizing the
  1356. proper interface will also save time and improve program quality.
  1357.  
  1358. Other tools:
  1359.  
  1360.               Refine/FORTRAN  ("re-engineering tool")
  1361.         Reasoning Systems Inc
  1362.         415 494 6201
  1363.  
  1364.         FORM (graphical interface to toolpack)
  1365.         University of Kent 44 227 762811
  1366.  
  1367.  
  1368.         pub/fortran/fxref.tar.Z from biome.bio.ns.ca.
  1369.         create cross reference of a FORTRAN program.
  1370.  
  1371.         CLEAN77 available from Purdue University.
  1372.         Mail Greg Flint (afc.klaatu.cc.purdue.edu) for more info.
  1373.  
  1374.         There is a program called TIDY that is available via
  1375.         FTP from simtel20  pub/msdos/fortran/tidy621.zip on
  1376.         oak.oakland.edu 
  1377.  
  1378. Q13) Why are there aimless debates?
  1379.  
  1380.     There are some  persistent individuals who would like computer systems
  1381.     to work in a fashion somewhat unlike they do now. It seems pointless
  1382.     to debate with them; the debates (in various groups) always take
  1383.     the same form and never result in meaningful dialog.
  1384.  
  1385.     One can usually recognize such by reading a week or so's worth of
  1386.     postings. Sometimes you may have to read for a month to recognize
  1387.     such. When you do, please try to avoid triggering (or responding to)
  1388.     such individuals. 
  1389.  
  1390.     Many (if not most) newsreaders support a feature entitled KILL files.
  1391.     As you recognize individuals, you may wish to put them into your
  1392.     local kill file. For example, the style employed by GNUS:
  1393.  
  1394.     (gnus-kill "From" "hrubin@pop.stat.purdue.edu")
  1395.     (gnus-kill "Subject" "test")
  1396.  
  1397.     the first kills off all postings from the named individual,
  1398.     the second kills off all postings including the beloved "test" string.
  1399.     See your local NewsGod for details suitable for your local system.
  1400.     
  1401. Q14) How do I call f77 from C (and visa versa)
  1402.      This is quite platform dependent. For Suns see the FORTRAN User's
  1403.      Guide, Chapter 14.
  1404.  
  1405.     There is a package available from usenet which attempts to make
  1406.     this "quick and easy" for a wide range of platforms:
  1407.  
  1408. Host ftp.germany.eu.net
  1409.  
  1410.     Location: /newsarchive/comp.sources.misc/volume20
  1411.       DIRECTORY drwxr-xr-x        512  Jul  7 1993  cfortran
  1412.  
  1413. Host ftp.sunet.se
  1414.  
  1415.     Location: /pub/usenet/comp.sources.misc/volume20
  1416.       DIRECTORY drwxrwxr-x        512  May 28 1993  cfortran
  1417.  
  1418. Host ftp.wustl.edu
  1419.  
  1420.     Location: /usenet/comp.sources.misc/volume20
  1421.       DIRECTORY drwxr-xr-x       8192  Oct 30 15:09  cfortran
  1422.  
  1423. Host halcyon.com
  1424.  
  1425.     Location: /dec/.0/usenet/comp.sources.misc/volume20
  1426.       DIRECTORY dr-xr-xr-x        512  Jul  8 1993  cfortran
  1427.  
  1428. Host lth.se
  1429.  
  1430.     Location: /pub/netnews/sources.misc/volume20
  1431.       DIRECTORY drwxr-xr-x        512  Jun  7 1993  cfortran
  1432.  
  1433. Host math.mps.ohio-state.edu
  1434.  
  1435.     Location: /pub/archives/comp.sources.misc/vol20
  1436.       DIRECTORY drwxrwxr-x        512  Jun  2 1993  cfortran
  1437.  
  1438.  
  1439.    It is on many other sites (around the world) too. See archie if
  1440.    you need other pointers.
  1441.  
  1442.    For some systems, you have to initialize a runtime system explicitly
  1443.    if you call a different language, and stopping execution from the
  1444.    other program may not work.
  1445.  
  1446.     The most recent version of cfortran.h is available via anon. ftp at
  1447.     zebra.desy.de.
  1448.  
  1449.  
  1450. Q15) What constitutes good FORTRAN style?
  1451.  
  1452. One rendition of a FORTRAN 77 style guide is available through anonymous
  1453. ftp from ics.uci.edu (128.195.1.1).  To retrieve (please note that it's
  1454. not really "anonymous", that's just the Name that you'll be using):
  1455.  
  1456. % ftp ics.uci.edu
  1457. anonymous
  1458. <enter your e-mail address at Password: prompt>
  1459. cd pub/levine
  1460. ascii
  1461. get F77_Style_Guide
  1462. bye
  1463.  
  1464. If you can'mail address at Password: prompt>
  1465. cd pub/levine
  1466. ascii
  1467. get F77_Style_Guide
  1468. bye
  1469.  
  1470. If you can't access this site directly, please send an e-mail request to
  1471. levine@ics.uci.edu (BITNET: levine@uci, UUCP: ...!uunet!ucivax!levine).
  1472.  
  1473. Q16) For whatever reasons, I want to translate my Fortran into C.
  1474.     What tools are available?
  1475.  
  1476.     f90 from NAG, see above
  1477.     f2c see above.
  1478.  
  1479.     FORTRAN=C=FORTRIX=Rapitech Rapitech (914) 368-3000
  1480.     FORTRAN=C=FOR_C=Cobalt Blue  404 518 1116
  1481.     FORTRAN=C=PROMULA.FORTRAN=Promula (614) 263-5512
  1482.  
  1483. Q17) For whatever reasons, I want to translate my existing C code
  1484.      into Fortran. What tools are available?
  1485.  
  1486. Regretably none. This is indeed unfortunate, as even a limited
  1487. translator could help with typical C header files.
  1488.  
  1489. Q18) What is preprocessing, how can it help? How can it hurt?
  1490.      
  1491. Preprocessing often refers to usage of a Macro-prepressor upon ones
  1492. source code prior to compilation. 
  1493.  
  1494.        How can this help?
  1495.  
  1496. It can make it easier to move code between machines.
  1497.  
  1498.        How can this hurt?
  1499.   
  1500. It can cause difficulties in compilation of the processed code; most (if
  1501. not all) macro-preprocessors know nothing about Fortran syntax and
  1502. code layout rules. So, a common problem is that after preprocessing
  1503. some text may be lost past "sacred" column 72. Those working with
  1504. compilers that optionally compile *past* line 72 should probably
  1505. employ that option when using a preprocessor.
  1506.  
  1507. Common prepressors are: cpp, m4, and ratfor. Many sites have their
  1508. own custom prepressors. Basic functions are:
  1509.  
  1510.     1) definition of a symbol
  1511.     2) conditional code selection based on a symbol
  1512.     3) substition of a symbol by its definition
  1513.  
  1514. Traditional BSD Unix f77 processors treat a file named foo.F (as
  1515. opposed to foo.f) as one that should be run through cpp prior to
  1516. compilation "automatically".
  1517.  
  1518. Q19) How can I convert an existing FORTRAN 77 program to the free form
  1519.      source of Fortran 90?
  1520.  
  1521. Source code conversion program from ftp
  1522. ---------------------------------------
  1523.  
  1524.    Many people who start to code in Fortran 90 prefer to do so
  1525. using the new, less restictive, source form. However, a problem
  1526. arises when wanting to modify old FORTRAN 77 code while sticking
  1527. to the new style. To help in this situation, a source code conversion
  1528. program has been written (and well tested) and made availble by
  1529. anonymous ftp.
  1530.  
  1531.    Apart from the conversion, the program can:
  1532.  
  1533.        ensure that blanks are used correctly in the code as they are
  1534.        significant with the new source form;
  1535.  
  1536.        indent DO-loops and IF-blocks;
  1537.  
  1538.        replace CONTINUE by END DO, where appropriate;
  1539.  
  1540.        add subprogram names to END statements;
  1541.  
  1542.        change non-standard length specification syntax,
  1543.        like INTEGER*2, to the
  1544.        Fortran 90 equivalent, in all contexts (type statements, FUNCTION
  1545.        statements, and IMPLICIT statements);
  1546.  
  1547.        produce an interface block automatically from the source code of a
  1548.        procedure - useful to the library developer when wishing to use
  1549.        this important new facility with an existing library.
  1550.  
  1551.    The source code can be obtained by anonymous ftp to
  1552. jkr.cc.rl.ac.uk (130.246.8.23). When prompted for a userid, reply with
  1553.  
  1554.    anonymous
  1555.  
  1556. and give your name as password. The directory is /pub/MandR
  1557. and the file name is convert.f90.
  1558.  
  1559.  
  1560.                            Mike Metcalf
  1561.                            (metcalf@cernvm.cern.ch)
  1562.  
  1563.  
  1564. Q20) Who creates these silly standards anyway?
  1565.  
  1566. Typically X3J3. X3J3 is an ANSI subcommittee dedicated to Fortran. WG5
  1567. is the ISO counterpart. WG5 owns responsibility for Fortran on an
  1568. international basis. WG5 has previously tasked X3J3 to do the work.
  1569. This arrangement continues.
  1570.  
  1571. WG5 is composed of Fortran users, vendors, and academics from several
  1572. ISO supporting nations. Delegates represent *their*countries* not
  1573. their companies; so several delegates from a single company is
  1574. permitted. 
  1575.  
  1576. ANSI rules prohibit multiple voting delegates from the same company.
  1577. X3J3 is composed of users ANSI rules prohibit multiple voting delegates from the same company.
  1578. X3J3 is composed of users (aerospace, government labs, military, DECUS,
  1579. railroads, oil to name a few), vendors (IBM, CRI, Sun, Convex, DEC,
  1580. UNISYS, to name a few) and the odd academic (oxford, yale, liverpool, to
  1581. name a couple). Members need not be US citizens nor must their company
  1582. be US domiciled. Being a member of a standards group is typically
  1583. involves non-trivial work. To be effective, one should plan on at
  1584. least 8 weeks of time per year (those who are really doing the hard
  1585. work do far more). This time commitment is typically far more
  1586. expensive than the travel and membership costs.
  1587.  
  1588. X3J3 meetings are open to the public. There are typically 4 meetings a
  1589. year, typically 3 are in the US and 1 *may* be overseas (to precede or
  1590. follow the WG5 plenary session). Membership fees are levied by ANSI,
  1591. and are on the near order of $400 (plus an extra $300ish for those who
  1592. wish to be members of the US delegation to ISO). In addition,
  1593. attendees to a particular X3J3 meeting pay a "meeting fee" which
  1594. covers reproduction costs, snacks and etc.
  1595.  
  1596. WG5 has established various goals and targets for future work. Roughly
  1597. speaking 5yrs rather than 13years are the targets for future work.
  1598.  
  1599. Current work projects include cleanup and interpretations of Fortran
  1600. (90), features for future versions of the standard (e.g. parallel
  1601. processing, "object-oriented" technologies, etc.). In addition to work
  1602. done directly by X3J3, there is work on standardized modules, and OS
  1603. bindings taking place in other organizations. X3J3 would like to keep
  1604. track of such efforts, those involved are invited to inform X3J3 early
  1605. in their development efforts if possible. X3J3 is currently working
  1606. with X3H5, DIN (varying string character) and tracking the efforts of
  1607. HPFF. 
  1608.  
  1609. New members are always welcome. Visitors are also; though it is very
  1610. hard to get a good grip on things in only one meeting!
  1611.  
  1612. Contact the X3J3 chair for more information:
  1613.  
  1614.     jwagener@trc.amoco.com   chair
  1615.     KELBLE%TRPROGB@trenga.tredydev.unisys.com  vice-chair
  1616.  
  1617. Upcoming meetings are:
  1618.  
  1619.     February 7-11 1994 Palmdale California
  1620.     May    1994        Lake Tahoe
  1621.     Summer 1994        Scotland
  1622.  
  1623. Q21) How can I read my VAX binary data somewhere else?
  1624.  
  1625.      Some vendors provide bulit in methods (DEC provides this via
  1626.      special options on the OPEN statement). Others provide library support 
  1627.      (on SPARC products, with the SunPro compilers, checkout convert_external)
  1628.      In addition, Accerl8 provides a commerial tool. Contact:
  1629.  
  1630.     Robert Hickler                            Tel   (303) 863-8088
  1631.     Accelr8 Technology                        Email robert@accelr8.com
  1632.  
  1633.      for more information.
  1634.  
  1635. The following three Q's and A's based on email from:
  1636.     ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig) 
  1637.  
  1638. Q22) My F77 program compiled ok on a <system1>, but gives me heaps of
  1639.      syntax errors on a <system2>. What's wrong?
  1640.  
  1641.      Most likely, the program was written with a line length greater than
  1642.      72. If your compiler supports it, turn on the option for greater
  1643.      line length (e.g. -e is not uncommon) ; otherwise, split up the
  1644.      lines by hand, or via one of those pretty-printers/restructing
  1645.      tools mentioned above.
  1646.  
  1647. Q23) My F77 program ran ok on a <system1>, but on a <system2> it just gives
  1648.      me strange results. What's wrong?
  1649.  
  1650.      There are different reasons why this could be. Possibly, your program
  1651.      violates the standard in some way which is not caught by the compiler
  1652.      on <system1>.
  1653.      
  1654.      Many programs rely on variables to be initialized to zero when a
  1655.      subroutine or function is first called, and also on the retention
  1656.      of values between calls. While many compilers (VAX/VMX and IBM VS,
  1657.      for example) exhibit this behaviour, compilers on newer
  1658.      architectures often fill variables with garbage on each new
  1659.      function call. This is permitted, according to the standard.
  1660.  
  1661.      Initialize variables explicitly, and put the variables which you need
  1662.     he standard.
  1663.  
  1664.      Initialize variables explicitly, and put the variables which you need
  1665.      to keep across function calls into SAVE statements. Your compiler may
  1666.      have an option to trap unititialized variables; use that to find the
  1667.      trouble spots. Alternatively, compile using a flag which forces
  1668.      static allocation of all variables.
  1669.  
  1670.      Another problem might be that the accuracy of REAL and DOUBLE
  1671.      PRECISION differs between different platforms; that can cause
  1672.      roundoff error to wipe out your results or your program to go
  1673.      into endless loops.
  1674.  
  1675.      Yet another (and much more subtle) problem can occur if a lot of
  1676.      formatted I/O is employed. The conversion from internal to
  1677.      external representations can introduce very significant errors;
  1678.      much worse on some platforms than others (doing correctly rounded
  1679.      base conversion is expensive). 
  1680.  
  1681.      There are, of course, lots of other possibilities, these are just
  1682.      a starting point.
  1683.  
  1684. Q24) Is there a WEB for Fortran (and what is web anyway)?
  1685.  
  1686.      fweb is available via anonymous ftp; use archie(above) to
  1687.      determine current location(s).
  1688.  
  1689.      As for the more general question, what is WEB .... WEB is a
  1690.      "literate" programming system created by Knuth (he of reference
  1691.      book fame, and TeX fame, and etc.). It permits the programmer to
  1692.      write code and documentation together. WEB takes the "high level
  1693.      code and documentation" and creates real publishable
  1694.      documentation (using TeX or LaTeX) and compilable code. WEB
  1695.      versions for many languages are available.
  1696.  
  1697. Q25) Where can I find coded BLAS (and what are coded BLAS?)
  1698.  
  1699. The BLAS (basic linear algebra software) comes in several flavors:
  1700. BLAS-1, -2, and -3. These can be described as scalar, vector and
  1701. matrix-matrix levels. "Coded" BLAS are either hand coded in assembler,
  1702. or at least tweaked for a given machine. Some vendors provide these,
  1703. some are provided on the net (see archie) and some are marketed by
  1704. various commercial organizations. 
  1705.  
  1706. In addition, it should be noted that BLAS-3 is very amenable to
  1707. parallel processing. Done cleverly, this could be done by a network of
  1708. processors over a net. DSS markets just such an implementation. Contact:
  1709.  
  1710.      Mike Boucher
  1711.     Dakota Scientific Software, Inc.
  1712.     501 East Saint Joseph Street
  1713.     Rapid City, SD  57701-3995
  1714.     fax: (605) 394-1256
  1715.     scisoft@well.sf.ca.us
  1716.  
  1717. for more information about their implementation.
  1718.  
  1719. Q26)  How common is DO ... END DO
  1720.  
  1721.       It is very common; and of course is part of Fortran 90.
  1722.       Compilers claimed to *not* support it (much shorter list this
  1723.       way)
  1724.  
  1725.               1) Salford ftn77/Primos version
  1726.         2) Prime f77 compiler
  1727.         3) Microsoft Fortran for CP/M 8080/Z80 machines    
  1728.         4) Fujitsu VPxxx UXP/M compiler
  1729.  
  1730.       
  1731. Q27) Where can I learn more about the history of Fortran?
  1732. From: metcalf@apofort.cern.ch (Michael Metcalf )
  1733. The history of Fortran is documented in:        
  1734.  
  1735. Annals of History of Computing, 6, 1, January, 1984 (whole issue).
  1736.  
  1737. Programming Systems and Languages (S. Rosen ed.), McGraw Hill, 1967, pp 29-47
  1738.     (this is Backus's original paper).        
  1739.  
  1740. History of Prorammining Languages (R.L. Wexelblat ed.), Academic Press, 1981,
  1741.               pp 25-74.    
  1742.  
  1743. A summary appears in vol. 5 of the Encyclopedia of Science and Technology,
  1744. Academic Press, 1986, under 'Fortran'. 
  1745. and in Chapter 1 of Fortran 90 Explained (Oxford, 1990).
  1746.  
  1747. Q28) Fortran text editors?
  1748.  
  1749. Thomas Koenig, ig25@rz.uni-karlsruhe.de, ig25@dkauni2.bitnet
  1750.       If you use EMACS, you can use M-x fortran-mode.  An extended
  1751.       version, which includes the fortran-auto-fill-mode minor mode, is
  1752.       available via anonymous ftp from hallc1.cebaf.gov [129.57.32.62]
  1753.       in the directory /emacs.
  1754.  
  1755. More generally, Unipress emacs has a Fortran mode. There are XEDIT,
  1756. BRIEF, TPU and EDT clones available on many common platforms these
  1757. days. 
  1758.  
  1759. Q29) What are ENCODE and DECODE statements, and how are they translated to
  1760.      standard Fortran?
  1761.  
  1762. ENCODE and DECODEd DECODE statements, and how are they translated to
  1763.      standard Fortran?
  1764.  
  1765. ENCODE and DECODE are vendor extensions to Fortran (invented in the
  1766. sixties, long before X3.9-1978 added internal I/O to the language)
  1767. which are most often used to convert data between numeric and
  1768. character representations.  They may be viewed as formatted writes to
  1769. (ENCODE) or reads from (DECODE) memory.  The standard-conforming
  1770. alternatives are internal write and internal read statements
  1771. respectively.
  1772.  
  1773. For example,
  1774.      INTEGER MONTH, DAY, YEAR
  1775.      MONTH = 7
  1776.      DAY = 4
  1777.      YEAR = 93
  1778. C    FORM THE STRING  7/ 4/93 IN VARIABLE "DATE"
  1779.      ENCODE (8,10,DATE) MONTH,DAY,YEAR
  1780.  10  FORMAT (I2,'/',I2,'/',I2)
  1781.  
  1782. The above can be translated as "write 8 characters, formatted according to
  1783. format 10, storing the results in variable DATE, and using the contents of
  1784. variables MONTH, DAY, and YEAR as the data to write."
  1785.  
  1786. A DECODE statement would be used to reverse the process (extract the
  1787. variables MONTH2, DAY2, and YEAR2 from the string DATE).  Thus:
  1788.  
  1789.      INTEGER MONTH2, DAY2, YEAR2
  1790.      DECODE (8,20,DATE) MONTH2, DAY2, YEAR2
  1791.  20  FORMAT (I2,1X,I2,1X,I2)
  1792.  
  1793. Conversion of ENCODE/DECODE to standard Fortran-77 is not difficult.  The
  1794. critical thing to remember is that the variable to be written to (ENCODE)
  1795. or read from (DECODE) must be a CHARACTER variable which is long enough to
  1796. contain the string.  The first number within the parentheses (in this case
  1797. 8) is the minimum length to use in a type declaration.  Thus a standard-
  1798. conforming equivalent of the above example is:
  1799.  
  1800.      CHARACTER*8 DATE
  1801.      INTEGER MONTH, DAY, YEAR
  1802.      INTEGER MONTH2, DAY2, YEAR2
  1803.      MONTH = 7
  1804.      DAY = 4
  1805.      YEAR = 93
  1806.      WRITE (DATE,10) MONTH, DAY, YEAR
  1807.  10  FORMAT (I2,'/',I2,'/',I2)
  1808.      READ (DATE,20) MONTH2, DAY2, YEAR2
  1809.  20  FORMAT (I2,1X,I2,1X,I2)
  1810.  
  1811. Although the above example used integers, any other data type may also be
  1812. used.
  1813.  
  1814. <forags@nature.berkeley.edu (Al Stangenberger)>
  1815.  
  1816. Q30) Tell me about Parallel Fortran dialects, what are they,etc.
  1817.  
  1818. Newsgroups: comp.lang.fortran,comp.parallel.pvm
  1819. From: lfm@pgroup.com (Larry Meadows)
  1820. Subject: Re: Parallel FORTRAN Questions
  1821. Date: Fri, 20 Aug 1993 00:13:33 GMT
  1822. Nntp-Posting-Host: pacific2.pgroup.com
  1823. Organization: The Portland Group
  1824.  
  1825. spencer@glint.mcc.com (Steve Spencer) writes:
  1826.  
  1827. >We are trying to decide what parallel FORTRAN environment
  1828. >to port to a MIMD multiprocessor that we are building 
  1829. >for ARPA. We are looking for information on the follwing
  1830. >environments:
  1831.  
  1832. >    FORTRAN90
  1833. >        HPF (High Performance FORTRAN from Rice U. I think)
  1834. >    FORTRAN D
  1835. >        PVM (works with F77 to provide a parallel env.)
  1836.  
  1837. >Does anyone know where we can get information on the 
  1838. >above programming environments or any others that may
  1839. >be appropriate?
  1840.  
  1841. Fortran90 is an ANSI and an ISO standard.  The usual reference is
  1842. Fortran 90 Handbook, published by McGraw Hill.  Several vendors provide
  1843. Fortran 90 translators and/or compilers.
  1844.  
  1845. HPF is Fortran 90 augmented with data distribution statements to
  1846. allow portable programming for distributed memory multiprocessors.
  1847. The language was defined by a committee consisting of over 40
  1848. organizations over a period of about one year.  The effort was
  1849. spearheaded by Geoffrey Fox and Ken Kennedy.  Several vendors have
  1850. announced HPF products or development efforts.
  1851. The language document is available via anoymous ftp:
  1852.  
  1853.     ftp cs.rice.edu
  1854.     cd public/HPFF/draft
  1855.     get hpf-v10-final.ps.Z
  1856.  
  1857. Fortran D is a precursor to HPF; as a commercial product it has been
  1858. superceded by HPF, but several academic projects still exist that target
  1859. Fortran D.
  1860.  
  1861. PVM is a message passing library and run-time environment; as such, it
  1862. exists at a lower level than the previous items.  One might imagine an
  1863. HPF compiler that produced FORTRAN77 with calls to PVM.  There is a newsgroup
  1864. on PVM.  It is available through netlib, and possibly from Oak Ridge as
  1865. well.
  1866.  
  1867. Hope this helps.
  1868. --
  1869. Larry Meadows        The Portland Group
  1870. lfm@pgroup.com
  1871. ;;;;
  1872. Q31) Where can I find this helps.
  1873. --
  1874. Larry Meadows        The Portland Group
  1875. lfm@pgroup.com
  1876. ;;;;
  1877. Q31) Where can I find a f90 tutorial?
  1878.  
  1879.  
  1880.  
  1881. Newsgroups: comp.lang.fortran
  1882. From: metcalf@apofortn.cern.ch (Michael Metcalf )
  1883. Subject: f90 tutorial on World Wide Web
  1884. Keywords: f90 WWW
  1885. Organization: CERN European Lab for Particle Physics
  1886. Date: Wed, 24 Nov 1993 12:15:43 GMT
  1887.  
  1888.  
  1889.    Those of you with access to the World Wide Web (WWW) may like    
  1890. to know that my colleague Michel Goossens has now installed a    
  1891. Fortran 90 tutorial under the URL
  1892.  
  1893.   http://asis01.cern.ch/CN/CNTUT/f90/Overview.html        
  1894.                
  1895. There is no copyright on this material.
  1896.      
  1897.    To access WWW, try typing www on your workstation or look for    
  1898. its icon on your PC. If it's unavailable, please contact your    
  1899. system manager, not me.
  1900.  
  1901.  
  1902.                       Mike Metcalf
  1903.                       (metcalf@cern.ch)
  1904.  
  1905. Q32) f90.faq
  1906.  
  1907.  
  1908. Subject: F90 additions to Fortran FAQ.
  1909.  
  1910. F90 FAN's : Fortran 90 Frequently Asked about News.
  1911. A Fortran 90 addition to the Fortran FAQ.
  1912.  
  1913. Michel Olagnon - October   1st, 1993.
  1914. Last updated   - February 28th, 1994.
  1915.  
  1916. Send flames and suggestions for improvement to Michel.Olagnon@ifremer.fr
  1917.  
  1918. Contents :
  1919. ========
  1920.  
  1921.    1.- Fortran 90 and Fortran 77
  1922.    2.- Available in Fortran 90:
  1923.        Compilers
  1924.        Code re-structurers and converters
  1925.        Libraries and utilities
  1926.        Tests and Benchmarks
  1927.        Tutorials
  1928.        Examples
  1929.        Courses and Consultancy
  1930.    3.- Documentation:
  1931.        Standards
  1932.        Journals
  1933.        Books
  1934. |      Articles
  1935.    4.- Fortran 90 Benchmarking
  1936.    5.- Announced, foreseen, and rumours
  1937. |  6.- Workshops, seminars, conferences
  1938.    7.- Developments, related languages
  1939.        Standard
  1940. |      HPF
  1941.        PVM
  1942.        Parallel Programming
  1943.    8.- Addresses
  1944.  
  1945.  
  1946. 1.- Fortran 90 and Fortran 77:
  1947. ##############################
  1948.  
  1949.   Fortran 90 is, with very few exceptions, a superset of Fortran 77.
  1950. The FAQ of the Usenet group Comp.lang.fortran deals with both 
  1951. standards, and may be obtained, like any FAQ, via anonymous ftp from
  1952. rtfm.mit.edu, directory /pub/usenet. The present document is an attempt
  1953. to supplement that FAQ with some specific Fortran 90 information.
  1954.  
  1955.   The main extensions of Fortran 90 over Fortran 77 are:
  1956.  * array notation (for instance, X(1:N)=R(1:N)*COS(A(1:N)))
  1957.  * dynamic memory allocation (ALLOCATE, DEALLOCATE, ...)
  1958.  * derived types and operator overloading
  1959.  * better declarations, and prototyping possible
  1960.  * MODULES, allowing users to create ``storage pools'',
  1961.     or to define environment
  1962.  * more of modern control structures (SELECT CASE, EXIT, ...)
  1963.  * more of useful intrinsics (date, precision, arrays, ...)
  1964.  * free format source code form
  1965.  
  1966.   ``Pure'' Fortran 77 is F90 compatible. Yet, it is better to convert
  1967. it to a ``mixed'' format, acceptable both as free and fixed source
  1968. form Fortran 90, which only requires replacing C by ! as the comment
  1969. character, to use & as the continuation line character, and
  1970. to append it to the continued line, to remove blanks embedded inside
  1971. constants or identifiers, and to check some intrinsics usage. Most
  1972. of this can be done automatically.
  1973.  
  1974.   Fortran 90 allows the Fortran 77 programmer to write code faster,
  1975. to make it more legible, and to avoid many bugs. For a newcomer to
  1976. programming, it is an opportunity to learn a modern language, with
  1977. most recommended features, and yet to be in line with scientific
  1978. and industrial engineering communities where Fortran is and is going
  1979. to remain for a good while THE favourite language.
  1980.  
  1981. 2.- Available in Fortran 90:
  1982. ############################
  1983.  
  1984. Compilers
  1985. ---------
  1986.   CRAY              CF90 - presently, for Crays YMP and YMP-C90
  1987.  
  1988.   EPC Fortran 90         - for Sparc Solaris 1.X and 2.X, IBM RS/6000,
  1989.                            Intel 3/486 (SVR3&4, Solaris 2.x),
  1990.                            Motorola 88000/100/100 (SVR3&4)
  1991.  
  1992.   IBM             XLF V3 - full compiler for RISC System/6000 
  1993.  
  1994.   MicroWay               - for DOS, OS/2, Unix
  1995.   
  1996.   NAG                f90 - uses C as intermediate lany               - for DOS, OS/2, Unix
  1997.   
  1998.   NAG                f90 - uses C as intermediate language
  1999.  
  2000.   Pacific Sierra VAST-90 - uses F77 as intermediate language
  2001.  
  2002.   Parasoft               - uses F77 as intermediate language
  2003.  
  2004.   Salford          FTN90 - PC implementation of NAG f90, direct
  2005.                            generation of object code.
  2006.  
  2007.   NOTE: Some vendors, such as Fujitsu with its "Numerical Workbench"
  2008.         for Sparc Solaris 2.x, or Convex on their machines, offer
  2009.         a number of F90 extensions, for instance array syntax or
  2010.         ALLOCATE instruction.
  2011.  
  2012. Code re-structurers and converters
  2013. ----------------------------------
  2014.   Pacific-Sierra VAST-90 (see article by JKP in Fortran Journal 5/4)
  2015.  
  2016.   Connexite FOREST-90
  2017.  
  2018.   NAGWare f90 tools, pretty-printer, declarations standardiser,
  2019.                      precision standardiser, names changer.
  2020.  
  2021.   CONVERT, conversion to F90 free format, proposed by
  2022.                           Mike Metcalf via anonymous ftp on
  2023.                           jkr.cc.rl.ac.uk (130.246.8.23),
  2024.                           file /pub/MandR/convert.f90.
  2025.  
  2026.   ftof90.c, minimal F77 -> F90 conversion, via anonymous ftp on
  2027.                           molene.ifremer.fr (134.246.150.6),
  2028.                           file pub/ifremer/fortran90/ftof90.c)
  2029.  
  2030. Libraries and utilities
  2031. -----------------------
  2032.   Syntax verifier extracted from NAG compiler, put into
  2033.            public domain by NAG for Sun 3, Sun 4, Sgi.
  2034.  
  2035.   Lahey has F90 components (manual, array intrinsics, front end,...)
  2036.            that they would like to license to others.
  2037.  
  2038.   CADNA, by professeur Vignes from Universite Pierre et Marie Curie,
  2039.            implements stochastic arithmetic in Fortran 90, and
  2040.            enables monitoring of precision loss and/or numerical
  2041.            instabilities during execution. (Control of Accuracy
  2042.            and Debugging for Numerical Aplications in Fortran)
  2043.            More information available from ICHOR. (see also
  2044.            aricles by J. Vignes)
  2045.  
  2046.  
  2047.   ISO 1539-2 Recommendation - Variable length chains
  2048.   (Draft)                     in Fortran (with a demonstration
  2049.                               of implementation)
  2050.   
  2051.   LAPACK, (minimaly) translated by myself, successfully passed
  2052.           all its tests with NAg-f90 2.0.
  2053.           I aggressively translated single precision Blas,
  2054.           and intend to do the same with other Blas as soon as
  2055.           I have time.
  2056.           Steve Moulton works on LAPACK conversion.
  2057.  
  2058. Tests and Benchmarks
  2059. --------------------
  2060.   
  2061.   NAGware Test suite   - tests for compilers (same (?) as:
  2062.   U_F90_TS Test suite  - from Dr. Brian Smith (University
  2063.                     of New Mexico), marketed by Unicomp and NAG.
  2064.  
  2065.   Lahey Test suite     - F77 & F90 (license agreement)
  2066.  
  2067.   SHAPE Test suite     - 3400 tests of array instructions,
  2068.                          from Spackman & Hendrickson, Inc.
  2069.   
  2070.   Parasoft Test suite  - 1500 tests for compilers
  2071.   
  2072.   Quetzal Benchmark from John K. Prentice, via anonymous ftp on
  2073.                     unmfys.unm.edu, in pub/quetzal.
  2074.  
  2075.   Benchmark of Syracuse University, via anonymous ftp on
  2076.                     minerva.npac.syr.edu, in /benchmark.
  2077.  
  2078.  
  2079. Tutorials
  2080. ---------
  2081.    Michel Goossens has now installed a Fortran 90 tutorial on the
  2082.   World Wide Web (WWW) under the URL :
  2083.     http://asis01.cern.ch/CN/CNTUT/f90/Overview.html
  2084.   There is no copyright on this material.
  2085.  
  2086.  
  2087. Examples
  2088. --------
  2089.   11 000 lines offered by Richard Maine via anonymous ftp on
  2090.                           ftp.dfrf.nasa.gov (130.134.64.17),
  2091.                           file pub/fdas/f90sample/fdas.tar.Z
  2092.                           
  2093.   STEJOI, statistical package for joint occurrence events, on Sun,
  2094.                           including source code and everything, 
  2095.                           via anonymous ftp on molene.ifremer.fr,
  2096.                           file pub/ifremer/fortran90/f90dvl.tar.Z.
  2097.  
  2098.   Module unsigned_32, for definition and use of unsigned 32 bits
  2099.                           integers, also on molene.ifremer.fr,
  2100.    and use of unsigned 32 bits
  2101.                           integers, also on molene.ifremer.fr,
  2102.                           file pub/ifremer/fortran90/unsi32.f90.Z.
  2103.  
  2104.   Algorithm 999 by A.G. Buckley for unconstrained nonlinear
  2105.                           minimization, on ftp.royalroads.ca,
  2106.                           pub/software/bbuckley/alg999/source.
  2107.  
  2108. Courses and Consultancy
  2109. -----------------------
  2110.       IT Independent Training Limited, UK
  2111.  
  2112.       Connexite, France
  2113.  
  2114.       CTS, Germany
  2115.  
  2116.       Unicomp, USA
  2117.       Pacific-Sierra Research Corp., USA
  2118.   
  2119.  
  2120. 3.- Documentation:
  2121. ##################
  2122.  
  2123. Standards
  2124. ---------
  2125. ISO/IEC 1539:1991 (E)
  2126. International Standard
  2127. Information technology - Programming langages - Fortran
  2128. Somewhat expensive (CHF 210 ~ US$ 140 !) for instance, at ISO.
  2129. Surprisingly enough, the identical, save for foreword and
  2130. acknowledgements, ANSI standard X3.198-1992 is even more expensive.
  2131. Walter S. Brainerd, Unicomp., offers:
  2132. - for 125 US$, an electronic ascii monouser version,
  2133. - for 125 + 10n US$, an electronic PostScript version, and the right
  2134. to make n paper copies,
  2135. - or for 1000 US$, an electronic ditroff monouser version.
  2136.  
  2137.  
  2138. Journals
  2139. --------
  2140. Fortran Journal
  2141. ISSN 1060-0221
  2142. Enquiries: Walt Brainerd walt@netcom.com
  2143. Subscriptions: Fortran Users Group / P.O. Box 4201 / Fullerton, CA 92634
  2144.              (about $30/year individual, $100/year company, 
  2145.               ~$50/$150 outside the USA, call 1 (714) 441 2022)
  2146.  
  2147. Books
  2148. ------
  2149.  
  2150.  * in English,
  2151.  
  2152. Adams, Brainerd, Martin, Smith, Wagener.
  2153. Fortran 90 Handbook, McGraw-Hill, 1992.
  2154. ISBN 0-07-000406-4
  2155.  
  2156. Brainerd, W., Goldberg, and Adams.
  2157. Programmer's guide to Fortran 90, McGraw-Hill, 1990.
  2158. ISBN 0-07-000248-7
  2159.  
  2160. Counihan.
  2161. Fortran 90, Pitman, 1991.
  2162. ISBN 0-273-03073-6
  2163.  
  2164. Hahn, B.D.
  2165. Fortran 90 for Scientists and Engineers, Edward Arnold, 1994.
  2166. ISBN 0-340-60034-9
  2167.  
  2168. Kerrigan, J.
  2169. Migrating to Fortran 90, O'Reilly and Associates, 1993
  2170. ISBN 1-56592-049-X
  2171.  
  2172. Metcalf, M. and Reid, J.
  2173. Fortran 90 Explained, Oxford University Press, 1992.
  2174. ISBN 0-19-853772-7
  2175.  
  2176. Morgan and Schonfelder,
  2177. Programming in Fortran 90, Blackwell Scientific Publications, 1993.
  2178. ISBN 0-632028-38-6
  2179.  
  2180.  * in French,
  2181.  
  2182. ABERTI, C.
  2183. Fortran 90: Initiation  partir du Fortran 77, Serie Informatique, 1992.
  2184. ISBN 2-090615-00-6
  2185.  
  2186. AIN, M.
  2187. Savez-vous parler Fortran, Bibliotheque des universites (de Boeck), 1994.
  2188. ISBN 2-8041-1755-3
  2189.  
  2190. DELANNOY, C.
  2191. Programmer en Fortran 90, Eyrolles, 1992.
  2192. ISBN 2-212-08723-3
  2193.  
  2194. DUBESSET, M. et VIGNES, J.
  2195. Les specificites du Fortran 90, editions Technip, 1993.
  2196. ISBN 2-7108-0652-5
  2197.  
  2198. LIGNELET, P.
  2199. Fortran 90: Approche par la Pratique, Serie Informatique, 1993.
  2200. ISBN 2-090615-01-4
  2201.  
  2202. METCALF, M. et REID, J.
  2203. Fortran 90: Les concepts fondamentaux, AFNOR Editions, 1993.
  2204. ISBN 2-12-486513-7
  2205.  
  2206.  
  2207.  * in German,
  2208.  
  2209. Gehrke.
  2210. Fortran 90 Referenz-Handbuch, Carl Hansen Verlag, 1991.
  2211. ISBN 3-446163-21-2
  2212.  
  2213. Heisterkamp.
  2214. Fortran 90: Eine Informelle Einfuehrung, BI-Wissenschaftsverlag, 1991.
  2215. ISBN 3-411153-21-0
  2216.  
  2217. Langer.
  2218. Programmieren in Fortran, Springer Verlag, 1993.
  2219. ISBN 0-387-82446-4
  2220.  
  2221. Schobert, Oldenburg.
  2222. Programmierung in Fortran 90, 1991.
  2223.  
  2224. Ueberhuber, C., Meditz, P.
  2225. Software-Entwicklung in Fortran 90, Springer Verlag, 1993.
  2226. ISBN 0-387-82450-2
  2227.  
  2228. Wojcieszynski, B, Wojcieszynski, R.
  2229. Fortran 90 Programmieren mit dem neuen Standard.
  2230.  
  2231.  
  2232.  * in Russian,
  2233.  
  2234. Metcalf, Reid
  2235. Fortran 90 Explained
  2236.  
  2237.  * in Japanese
  2238.  
  2239. Metcalf, Reid
  2240. Fortran 90 Explained
  2241.  
  2242.  
  2243. Articles
  2244. --------
  2245. Appleby, D., FORTRAN First in a six-part series on languages that have
  2246. stood the test of time -- BYTE, Sep. 1991, 147-150
  2247.  
  2248. Bernheim, M., Fortran Mode d'emploi - Fortran 90 -- Intereditions (1991)
  2249. 163-176
  2250.  
  2251. Buckley, Albert G., Conversion to Fortran 90: A Case Study -- accepted
  2252. (Sep. 93) for ACM TOMS (ftp.royalroads.ca:pub/software/bbuckley/alg999)
  2253.  
  2254. Buckley, Albert G., Algorithm 999: A Fortran 90 code for unconstrained
  2255. non linear minimisation -- accepted (Sep. 93) for ACM TOMS
  2256.  
  2257. Chesneaux, J.M., Description d'utilisation du logiciel CADNA_F --
  2258. MASI 92.32 (1992) InstOMS
  2259.  
  2260. Chesneaux, J.M., Description d'utilisation du logiciel CADNA_F --
  2261. MASI 92.32 (1992) Institut Blaise Pascal, Paris
  2262.  
  2263. Corde, P., Girou, D., Fortran 90: la nouvelle norme -- Tribunix
  2264. Dossiers calculateurs, Vol 8. No. 41 (1992) 12-17
  2265.  
  2266. Du Croz, Jeremy J., Building Libraries with Fortran 90
  2267. Fortran Journal 4/5, Sep./Oct 1992
  2268.  
  2269. Glassy, L., Tiny-Ninety: A subset of F90 for beginning programmers --
  2270. Fortran Journal 4/3, May/Jun. 1992, 2-6
  2271.  
  2272. Hanson, R.J., A design of high-performance Fortran 90 Libraries --
  2273. IMSL technical report series No. 9201 (1992)
  2274.  
  2275. Hanson, R.J., Matrix multiplication in Fortran 90 using Strassen's
  2276. algorithm -- Fortran Journal 4/3, May/Jun. 1992, 6-7
  2277.  
  2278. Iles, Robert, Fortran 90: The First Two Years -- Unicom Seminar on
  2279. Fortran and C in Scientific Computing, 1993.
  2280.  
  2281. Iles, R., Palant, L., Fortran 90: 2 ans deja -- Tribunix No. 49
  2282. Mai/Juin 1993, 32-37.
  2283.  
  2284. Lahey, T., Fortran 90 is coming ! -- Programmer's Journal, Mar/Apr 1991.
  2285.  
  2286. Lignelet, P., Fortran -- Les Techniques de l'ingenieur, H2120, Dec 1993.
  2287.  
  2288. Maine, R., Review of NAG Fortran 90 translator -- Fortran Journal 3/6,
  2289. Nov/dec 1991.
  2290.  
  2291. Metcalf, M., Recent progress in Fortran standardization -- Computer
  2292. Physics Communications 57 (1989) 78-83.
  2293.  
  2294. Metcalf, M., Fortran 90 - A summary -- Int. Journal of modern Physics C,
  2295. Vol. 1, Nos. 2&3 (1990) 193-206.
  2296.  
  2297. Metcalf, M., A derived data type for data analysis -- Computers in
  2298. Physics, Nov/Dec 1991, 599-604.
  2299.  
  2300. Metcalf, M., A first encounter with Fortran 90 -- Fortran Journal 4/1,
  2301. Jan/Feb 1992, 2-7.
  2302.  
  2303. Metcalf, M., An encounter with F90 -- Particle World 3/3 (1993),
  2304. 130-134.
  2305.  
  2306. Metcalf, M., Fortran 90 Tutorial -- CERN Computer Newsletter,
  2307. Nos. 206/207/208/209/210/211 (1992-1993).
  2308.  
  2309. Metcalf, M., Using the f90 compiler as a software tool -- CERN Computer
  2310. Newsletter, No. 209 (1992).
  2311.  
  2312. Metcalf, M., Still programming after these years -- New Scientist,
  2313. (12 Sep. 1992), 30-33
  2314.  
  2315. Olagnon, M., Experience with NagWare f90 -- Fortran Journal 4/6,
  2316. Nov/dec 1992, 2-5.
  2317.  
  2318. de Polignac, Christian, Du Fortran VAX au Fortran 90 -- Decus, Paris,
  2319. 7 Avril 1993.
  2320.  
  2321. Prentice, John K., Fortran 90 benchmark results -- Fortran Journal 5/3,
  2322. May/June 1993.
  2323.  
  2324. Reid, John, The Fortran 90 Standard -- Programming environments for high
  2325. level scientific problem solving, Gaffney ed., IEEE Trans.,
  2326. North-Holland (1992), 343-348.
  2327.  
  2328. Reid, John, Fortran 90, the language for scientific computing in the
  2329. 1990s --Unicom Seminar on Fortran and C in Scientific Computing, 1992
  2330.  
  2331. Reid, John, The advantages of Fortran 90 -- Computing 48, 219-238.
  2332.  
  2333. Robin, F., Fortran 90 et High Performance Fortran, Bulletin technique
  2334. CEA, Oct. 1992, 3-7.
  2335.  
  2336. Sawyer, M., A summary of Fortran 90 -- EPCC-TN92-04, Univ. of Edinburgh,
  2337. (1992).
  2338.  
  2339. Schonfelder, J.L., Semantic extension possibilities in the proposed
  2340. new Fortran -- Software practice and experience, Vol.19, (1989),
  2341. 529-551.
  2342.  
  2343. Schonfelder, J.L., Morgan, J.S., Dynamic strings in Fortran 90 -- 
  2344. Software practice and experience, Vol.20(12), (1990), 1259-1271.
  2345.  
  2346. Sipelstein, J.M., Blelloch, G.E., Collection-oriented languages --
  2347. Proceedings of the IEEE, Vol. 79, No. 4, (1991), 504-530.
  2348.  
  2349. Vignes, Jean, Vers un calcul scientifique fiable : l'arithmetique
  2350. stochastique -- La Vie des Sciences, Comptes rendus, serie generale,
  2351. tome 10, 1993, No 2, 81-101.
  2352.  
  2353. Vignes, Jean, A stochastic arithmetic for reliable scientific computation
  2354. MATCOM 940 - Mathematics and Computers in Simulation 35 (1993) 233-261.
  2355.  
  2356. Walker, D.W., A Fortran 90 code for magnetohydrodynamics. Part I:
  2357. banded convolution -- Oak Ridge National Lab. report TM-12032 (1992).
  2358.  
  2359. Walter, W., Fortran 90: Was bringt der neue Fortran-Standard fuer das
  2360. numerische Programmieren ? -- Jahrbuch Ueberblicke Mathematik Vieweg,
  2361. (1991) 151-174.
  2362.  
  2363. Wampler, K. Dean, The Object-Oriented programming Paradigm and Fortran
  2364. programs -- Computers in Physics, Jul/Aug 1990, 385-394.
  2365.  
  2366. Willhoft, Robert G., Comparison of the functional Power of APL2 and
  2367. Fortran 90 -- APL Quote Quad, 1991
  2368.  
  2369.  
  2370. 4.- Fortran 90 Benchmarking
  2371. #########################
  2372. Fortran 90 -- APL Quote Quad, 1991
  2373.  
  2374.  
  2375. 4.- Fortran 90 Benchmarking
  2376. ###########################
  2377.  
  2378.   An interesting article by John K. Prentice appeared in the
  2379. May/June 93 issue of Fortran Journal.
  2380. He also gave a more complete one in HPNews July/August 93.
  2381.  
  2382.   I made some tests myself with LAPACK, and got a ratio of 10
  2383. between Sun f77 and Nag f90 2.0 when no source change was performed.
  2384. With an aggressive rewriting, especially using array instructions
  2385. and intrinsics, the ratio gets back to 2, which is also that of a
  2386. f77 [sd]axpy to a C one.
  2387.  
  2388.   On actual applications, this ratio seems to be much closer to 1,
  2389. and even sometimes in favor of Fortran 90. On Sept. 7th, 1993, John
  2390. wrote "I think there is in fact beginning to be a quite large body of
  2391. evidence to suggest that most of the efficiency fears about F90 are
  2392. unfounded."
  2393.  
  2394.   For Nag f90 on workstations, the effect of the underlying C
  2395. compiler (gcc, vendor, etc...) seems very limited (less than 4%).
  2396.  
  2397.  
  2398. 5.- Announced, foreseen, and rumours
  2399. ####################################
  2400.  
  2401.   CRAY full compiler CF90 in a Sparc version in 94
  2402.   DEC full compiler (1994)
  2403.   Sun full compiler (unofficially mid-94)
  2404.   MicroSoft after next release of present PowerStationFortran 
  2405.   Lahey (2nd quarter 94,
  2406.          pre-order, +400$ when buying F77L-EM/32)
  2407.  
  2408.  
  2409. 6.- Workshops, seminars, conferences
  2410. ####################################
  2411.  
  2412.   28 Feb. - 4 Mar. 94. "Introduction to Fortran 90 and strategies
  2413.     for migration from Fortran 77" (leader speaker Walt Brainerd).
  2414.     Workshop - London (UK). Unicom Seminars.
  2415.  
  2416.   13 - 15 April 94. 13th Annual Conference of the NAG Users 
  2417.     Association - Oxford (UK). Nagua.
  2418.   
  2419.   20 - 22 April 94. "Efficient Fortran 90 Programming" Seminar,
  2420.     Santa Monica, California. Pacific-Sierra Research Corp.
  2421.  
  2422. 7.- Developments, related languages  
  2423. ###################################
  2424.  
  2425. Standard
  2426. --------
  2427.   Work did not stop with the publication of the Fortran 90 standard.
  2428. A new release is scheduled for 1996 (called 95), mainly devoted to 
  2429. clarifications, corrections and interpretations. A more important
  2430. revision is scheduled for 2000 (or 2001 ? called F2k though C.Burley's
  2431. F00 is a pleasant alternative).
  2432.   Documents related to the work of X3J3 can be found via anonymous
  2433. ftp on ftp.ncsa.uiuc.edu, directory x3j3.
  2434.  
  2435. HPF
  2436. ---
  2437.   High Performance Fortran (HPF) is a language for programming
  2438. massively parallel architectures. It lets the user insert directives
  2439. for code and data distribution among the processors in the
  2440. (Fortran 90) code.
  2441. Electronic copies of HPF draft specification are available by anonymous
  2442. FTP from the following sources:
  2443.  Machine name            File name
  2444.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar
  2445.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.tar.Z
  2446.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps
  2447.  titan.cs.rice.edu       public/HPFF/draft/hpf-v10-final.ps.Z
  2448.  think.com               public/HPFF/hpf-v10-final.ps.Z
  2449.  ftp.gmd.de              hpf-europe/hpf-v10-final.ps.Z
  2450.  theory.tc.cornell.edu   pub/hpf-v10-final.ps.Z
  2451.  minerva.npac.syr.edu    public/hpf-v10-final.tar.Z
  2452.  
  2453. PVM
  2454. ---
  2455.   Parallel Virtual Machine consists of a library and a run-time
  2456. environment which allow the distribution of a program over a network
  2457. of (even heterogeneous) computers. It works with Fortran 77 
  2458. (which is the way we presently use it), C and probably Fortran 90.
  2459.   There is a usenet comp.parallel.pvm group, and the FAQ for it
  2460. can be found via anonymous ftp on rtfm.mit.edu, /pub/usenet.
  2461.  
  2462. Parallel Programming
  2463. --------------------
  2464.   An interesting report can be obtained via anonymous ftp on 
  2465. bulldog.wes.army.mil:/pub/report.ps.Z, for a large review of
  2466. products related to parallel systems programming.
  2467.  
  2468.  
  2469. 8.- Addresses
  2470. #############
  2471.  
  2472. AFNOR, Tour Europe, Cedex 7, F-92049 Paris la Defense, France
  2473.    tel: +33 1 42 91 55 55
  2474.  
  2475. Connexite, B.P. 37, F-06901 Sophia Antipolis Cedex, France
  2476.    tel: +33 92 94 23 50, fax: +33 93 65 33 42
  2477.  
  2478. CTS, Prinz-Otto Str. 7c, D-85521 Ottobrunn, Germany
  2479.   +33 92 94 23 50, fax: +33 93 65 33 42
  2480.  
  2481. CTS, Prinz-Otto Str. 7c, D-85521 Ottobrunn, Germany
  2482.    tel: +49 89 6083758, fax: +49 89 6083758
  2483.  
  2484. EPC, 17 Alva St, Edinburgh, EH2 4PH, United Kingdom
  2485.    tel: +44-31-225-6262, fax: +44-31-225-6644, support@epc.ed.ac.uk
  2486. EPC, 20 Victor Square, Scotts Valley, California 95066
  2487.    tel: (408) 438-1851, fax: (408) 438-3510, info@epc.com
  2488.  
  2489. Fortran Journal, P.O. Box 4201, Fullerton, CA 92634, USA
  2490.    fax: (714) 441-2022
  2491.  
  2492. ICHOR, 27 rue Linne, F-75005 Paris, France
  2493.    tel: +33 1 43 37 02 02
  2494.  
  2495. ISO, 1 rue de Varembe, Case postale 56, CH-1211 Geneve 20, Switzerland
  2496.    fax: +41 22 734 10 79
  2497.  
  2498. IT Independent Training Limited, 113 Liscombe, Birch Hill, Bracknell,
  2499.    Berkshire, RG12 7DE, UK                  
  2500.    tel: +44 344 860172, fax: +44 344 867992
  2501.  
  2502. Lahey Computer Systems, Inc., 865 Tahoe Blvd., P.O. Box 6091,
  2503.    Incline Village, NV 89450, USA
  2504.    tel: (702) 831-2500, fax: (702) 831-8123, gride@lahey.com
  2505.  
  2506. Microway, Research Park, Box 79, Kingston, MA 02364, USA
  2507.    tel: (508) 746-7341, fax: (508) 746-4678
  2508.  
  2509. NAG Ltd., Wilkinson House, Jordan Hill Road, Oxford, OX2 8DR, UK
  2510.    tel: +44 865 311744, fax: +44 865 311755, infodesk@nag.co.uk
  2511.    Mosaic: http://nags2.nag.co.uk/intro
  2512. NAG Inc., 1400 Opus Place, Suite 200, Downers Grove, IL 60515-5702, USA
  2513.    tel: (708) 971-2345, fax: (708) 971-2346, infodesk@nag.com
  2514. NAG GmbH., Schleissheimerstr. 5, D-85748 Garching, Germany
  2515.    tel: +49 89 3207395, fax: +49 89 3207396
  2516.  
  2517. NAG Users Association, PO Box 426, Oxford, OX2 8SD, UK
  2518.    tel: +44 865 311102, fax: +44 865 310139, nagua@nag.co.uk
  2519.  
  2520. Pacific-Sierra Research Corp., 2901 28th Street, Santa Monica, CA 90405
  2521.    tel: (310) 314-2300, fax: (310) 314-2323, info@psrv.com
  2522.  
  2523. ParaSoft Corporation, 2500 E. Foothill Blvd, Pasadena, CA 91107, USA
  2524.    tel: (818) 792-9941, f90-info@parasoft.com
  2525.  
  2526. Quetzal Computational Associates, 3200 Carlisle N.E., Albuquerque,
  2527.    NM 87110-1664, USA
  2528.    tel: (505) 889-4543, fax: (505) 889-4598, quetzal@aip.org
  2529.  
  2530. Spackman & Hendrickson, Inc., 13708 Krestwood Drive, Burnsville,
  2531.    MN 55337,  USA
  2532.    tel: (612) 892-5847, fax: (612) 892-5844
  2533.  
  2534. Unicom Seminars Ltd., Brunel Science Park, Cleveland Road, Uxbridge,
  2535.    Middlesex, UB8 3PH, UK
  2536.    tel: +44 895 256484, fax: +44 895 813095 
  2537.  
  2538. Unicomp, Inc., 1123 Marigold Drive, Albuquerque, NM 87122, USA 
  2539.    tel: (505) 275-0800, fax: (505) 856-1501, walt@netcom.com
  2540.  
  2541. I am always pleased to receive informations.
  2542. Thanks to all those who sent some to me, and that I can not cite
  2543. all because I lost some of their names and addresses :-)
  2544.  
  2545.  
  2546. Michel
  2547.  
  2548. | Michel OLAGNON            | email : Michel.Olagnon@ifremer.fr         |
  2549. | IFREMER: Institut Francais de Recherches pour l'Exploitation de la Mer|
  2550. | Centre de Brest - B.P. 70 | phone : +33  98 22 41 44                  |
  2551. | F-29280 PLOUZANE - FRANCE | fax   : +33  98 22 41 35                  |
  2552.  
  2553. -- 
  2554. ----------------------------------------------------------------
  2555. Keith H. Bierman    keith.bierman@Sun.COM| khb@chiba.Eng.Sun.COM
  2556. SunPro 2550 Garcia MTV 12-40             | (415 336 2648) fax 964 0946
  2557. Mountain View, CA 94043  <speaking for myself, not Sun*> Copyright 1994
  2558.  
  2559.