home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / answers / fortran-faq < prev    next >
Internet Message Format  |  1993-11-19  |  76KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!crl.dec.com!caen!sdd.hp.com!usc!elroy.jpl.nasa.gov!ames!koriel!male.EBay.Sun.COM!jethro.Corp.Sun.COM!exodus.Eng.Sun.COM!appserv.Eng.Sun.COM!appserv!khb
  2. From: khb@chiba.Eng.Sun.COM (Keith Bierman-khb@chiba.eng.sun.com::SunPro)
  3. Newsgroups: comp.lang.fortran,comp.answers,news.answers
  4. Subject: Fortran FAQ
  5. Followup-To: comp.lang.fortran
  6. Date: 18 Nov 93 12:56:06
  7. Organization: SunPro
  8. Lines: 1772
  9. Approved: news-answers-request@MIT.Edu
  10. Distribution: world
  11. Message-ID: <KHB.93Nov18125606@chiba.Eng.Sun.COM>
  12. NNTP-Posting-Host: chiba
  13. Archive-name: fortran-faq
  14. Frequency: mostly monthly
  15. Xref: senator-bedfellow.mit.edu comp.lang.fortran:16668 comp.answers:2712 news.answers:14873
  16.  
  17.  
  18. Here are some answers to frequently asked questions. The "author", as
  19. is the custom, has appropriated posted responses as seemed apt. I have
  20. tried to leave attributions in, as correctly as possible. To anyone
  21. who has been offended by omission or otherwise, my apologies. I shall
  22. give priority to corrections regarding attribution.
  23.  
  24. No one takes responsibility for any of this text, neither the employer
  25. of the "author", the "author", friends of the "author", pets of the
  26. "author" nor anyone else.
  27.  
  28. Your mileage WILL vary. 
  29.  
  30. If you have comments/suggestions/edit proposals please send them to me
  31. (keith.bierman@eng.sun.com). I do not promise to accept 'em. I
  32. encourage others to make better FAQ lists, so I can retire this one.
  33. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  34. summary of changes:
  35.  
  36. Q2) updated
  37. Q3) updated 
  38. Q11) updated
  39. Q12) updated
  40. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  41.     Questions:
  42.  
  43. Q0) How should one spell FORTRAN/Fortran?
  44. Q1) Is Fortran 90 a Standard? Where can I get a copy of the Fortran
  45.     90 Standard? How about electronic copies? 
  46. Q2) What Fortran 90 translators are available?
  47. Q3) I have heard of fortran "lints"; what are they, and where can
  48.     I get one?
  49. Q4) "Why do people use FORTRAN? C is so much better"
  50. Q5)  Why can't I get an electronic version of the standard?
  51. Q6)  Where can I get "foo" (some random package)
  52. Q7)  Where can I get a free compiler?
  53. Q8)  What is the best compiler for a PC?
  54. Q9)  How does Fortran 90 relate to FORTRAN '77 and what is Fortran 90?
  55. Q10) My compiler is mis-behaving; who enforces the standard?
  56. Q11) What are good books on Fortran? 
  57. Q12) Are there pretty printers for FORTRAN? Flowchart generators?
  58. Q13) Why are there aimless debates?
  59. Q14) How do I call f77 from C (and visa versa)
  60. Q15) What constitutes good FORTRAN style?
  61. Q16) For whatever reasons, I want to translate my Fortran into C.
  62.      What tools are available?
  63. Q17) For whatever reasons, I want to translate my existing C code
  64.      into Fortran. What tools are available?
  65. Q18) What is preprocessing, how can it help? How can it hurt?
  66. Q19) How can I convert an existing FORTRAN 77 program to the free form
  67.      source of Fortran 90?
  68. Q20) Who creates these silly standards anyway?
  69. Q21) How can I read my VAX binary data somewhere else?
  70. Q22) My F77 program compiled ok on a <system1>, but gives me heaps of
  71.      syntax errors on a <system2>. What's wrong?
  72. Q23) My F77 program ran ok on a <system1>, but on a <system2> it just gives
  73.      me strange results. What's wrong?
  74. Q24) Is there a WEB for Fortran (and what is WEB anyway)?
  75. Q25) Where can I find coded BLAS (and what are coded BLAS?)
  76. Q26) How common is DO ... END DO?
  77. Q27) Where can I learn more about the history of Fortran?
  78. Q28) Fortran text editors?
  79. Q29) What are ENCODE and DECODE statements, and how are they translated to
  80.      standard Fortran?
  81. Q30) Tell me about Parallel Fortran dialects, what are they, etc.
  82. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  83.  
  84. Q0)  How should one spell FORTRAN/Fortran?
  85.  
  86.     FORTRAN is generally the preferred spelling for discussions of versions of
  87.     the language prior to the current one ("90"). Fortran is the
  88.     spelling chosen by X3J3 and WG5. In this document a feeble effort
  89.     has been made to capitalize accordingly (e.g. vast existing
  90.     software ... FORTRAN vs. generic Fortran to mean all versions of
  91.     the standard, and specifically the modern dialect, ISO 1539:1991).
  92.  
  93. From: walt@netcom.com (Walt Brainerd)
  94.     There was an effort to "standardize" on spelling of programming
  95.     languages just after F77 became a standard.  The rule: if you say
  96.     the letters, it is all caps (APL); if you pronounce it as a word,
  97.     it is not (Cobol, Fortran, Ada).  See, for example the difinitive
  98.     article describing Fortran 77 in the Oct 1978 issue of the Comm.
  99.     of the ACM.  The timing was such that FORTRAN got put on the
  100.     standard itself, though many always after that have referred to
  101.     it as Fortran 77.  Of course, there are those who think it is not
  102.     truly Fortran if not written with all caps.
  103.  
  104. <ed note>
  105.  
  106.     ISO 1539:1991 and its ANSI counterpart X3.198-1992 consistently
  107.     employ the spelling "Fortran" to refer to the language being
  108.     defined. Reference(s) to the older version employ "small caps"
  109.     for the "ORTRAN" characters.
  110.  
  111.  
  112. Q1)  Is it a Standard? Where can I get a copy of the Fortran 90
  113.      Standard?
  114.  
  115. Fortran "90" is an ISO standard endorsed/adopted by several countries.
  116. It is also a US standard in its own right. ANSI adopted it on 21
  117. September 1992 (X3.198-1992). It was adopted by ISO July 1991 as
  118. ISO/IEC 1539:1991.
  119.  
  120. <khb> You can't get it from ftp. The various standards bodies get a
  121. substantial fraction of their income from sales of standards
  122. documents. This is unfortunate <khb> Electronic versions are
  123. available, see the note from Walt below.
  124.  
  125. From: julian@cernvax.cern.ch (julian bunn)
  126.  
  127.          The new Fortran 90 standard has now been formally published
  128.      and is available from the ISO central secretariat or from the
  129.      national member bodies. The price is about $120. Some
  130.      ordering detail follow.  I can supply addresses in other
  131.      countries not mentioned on request (to METCALF@CERNVM).
  132.  
  133.     The document reference is ISO/IEC 1539 : 1991. There is no ISBN.
  134.  
  135.     ISO
  136.     1, rue de Varembe
  137.     Case postale 56
  138.     1211 Geneva 20
  139.     Switzerland
  140.     Fax: +41 22 734 10 79   cost 185 swiss francs.
  141.  
  142.     ANSI
  143.     1430 Broadway
  144.     New York, NY 10018
  145.  
  146. or
  147.  
  148. American National Standards Institute
  149. Attn: Customer Service
  150. 11 West 42nd Street
  151. New York, NY 10036
  152.  
  153. Phone: (212)642-4900 8:45-4:45 (EST) 
  154. Fax: (212)302-1286
  155.  
  156.     BSI
  157.     2 Park Street
  158.     London W1A 2BS
  159.  
  160.     DIN
  161.     Burggrafenstrasse 6
  162.     Postfach 1107
  163.     D-1000 Berlin 30
  164.  
  165.     AFNOR
  166.     Tour Europe
  167.     Cedex 7
  168.     92049 Paris La Defence
  169.  
  170. SCC
  171. 1200-45 O'Connor
  172. Ottawa
  173. Ontario  K1P 6N7
  174.  
  175.                             Mike Metcalf
  176.                             (metcalf@cernvm)
  177.  
  178. and from walt@netcom.com
  179.  
  180. For those of you who don't read comp.lang.fortran, you might be
  181. interested to know that I (Walt Brainerd) just called Global
  182. Engineering to see if they sell ISO 1539:1991.  They do; the price is
  183. $225.
  184.  
  185. And 
  186.  
  187. You can obtain copies through:
  188.     Global Engineering Documents
  189.     2805 McGaw Ave.
  190.     Irvine, CA. 92714
  191.     (714) 261-1455
  192.     (800) 854-7179
  193.  
  194.  
  195. New ANSI number 
  196.             ANSI X3.198-1992
  197.  
  198. How about electronic copies?
  199. Return-Path: walt@netcom.com
  200. Subject: ISO 1539 in electronic form
  201.  
  202. In accordance with an official agreement with
  203. the International Standards Organization, Unicomp
  204. is now able to distribute electronic versions of
  205. the Fortran 90 standard: "ISO/IEC 1539 : 1991,
  206. Information technology--Programming languages--Fortran".
  207.  
  208. The money received from this effort will go partly to
  209. fund ISO activities and partly to recover the costs
  210. incurred by Unicomp in preparing and typesetting the
  211. standard document.  The prices are set by ISO.
  212.  
  213. The document can be obtained in three versions:
  214.  
  215. 1.  An ASCII version suitable for viewing on a
  216.     computer terminal using any kind of editor.
  217.     Cost: USD 125.
  218.  
  219. 2.  A PostScript version with a license allowing
  220.     the purchaser to print n paper copies.
  221.     Cost: USD 125 + 10n.
  222.  
  223. 3.  Complete source in ditroff with macros and
  224.     software to extract and create the annexes.
  225.     The source constitutes a fairly high level
  226.     marked-up document; for example, each program
  227.     beginning and ending is marked and there
  228.     are few low-level typographic commands such
  229.     as size and font changes.  Cost USD 1000.
  230.  
  231. I am quite enthused especially about version (2).
  232. If you want to have 10 copies for your organization,
  233. and it costs $10 to make a printed copy, then the
  234. cost to make the 10 copies would be $125 + $200,
  235. or just $32.50 per copy, which is a substantial
  236. savings over purchasing paper copies.
  237.  
  238. Versions (1) and (3) will be accompanied by a
  239. license restricting use to one CPU and prohibiting
  240. copying, except for backup purposes, etc.  The
  241. version (2) license will prohibit distributing
  242. any of the printed copies outside of the purchasing
  243. organization.
  244.  
  245. If you have special requirements, such as wanting
  246. to distribute a copy with each version of your compiler
  247. or using the source as a part of your documentation,
  248. we can make special arrangements, subject to the
  249. approval of the ISO.  Please advise me of your
  250. requirements and we can work up a proposal together.
  251.  
  252. ISO and Unicomp think this will provide the oft requested access to
  253. the standard in electronic form. This is the first time this is being
  254. tried, so we hope that organizations will be careful to observe the
  255. rules and encourage the continued availability of this and other
  256. standards in electronic form. 
  257.  
  258. Payment can be made by Visa or MasterCard, or with
  259. a check on a US Bank in US funds.  We <unicomp> will accept
  260. a purchase order only if the amount is $500 or more.
  261.  
  262. Walter S. Brainerd; Unicomp; phone: (415) 949-4052
  263.  email: walt@netcom.com; fax: (415) 949-4058; 
  264.  
  265.  
  266. Q2) What Fortran 90 translators are available?
  267.  
  268. From: schumanm@Informatik.TU-Muenchen.DE (Matthias Schumann)
  269. From: macphed@dvinci.USask.Ca (Ian MacPhedran)
  270.  
  271. This is the promised summary of my request for information about
  272. Fortran 90 (f90) compilers. I am sorry for the delay in getting this
  273. posted, but I was away for a week, and still haven't caught up.
  274.  
  275. I received a large amount of information, including a previous summary.
  276. Rather than parroting the entire list, I have prepared the following
  277. breakdown of the points which interested me.
  278.  
  279. ------------------------------------------------------------------------------
  280.  
  281. A more current list can be found (if you have gopher) direct from NAG's own 
  282. Bulletin Board thus:
  283.  
  284. gopher nags2.nag.co.uk 70
  285.  
  286. Product:  NAGware Fortran 90 Compiler
  287. Descript: Compiles f90 code to C source, or directly to executable
  288.           file under MS-DOS. Therefore requires native C compiler
  289.           as back end on most platforms.
  290. Platform: Apollo DN10000, DECstations, HP 9000, IBM RS/6000, NeXT,
  291.           Intel 386/486 (MSDOS), Sun 3, Sun 4 (SunOS 4.1)
  292.           VAX/VMS forthcoming.
  293. Pricing:  Varies with platform. Academic Pricing available. Site
  294.           License available
  295.  +------------------------------------------------------------+
  296.  |                    NAGWare F90 Compiler                    |
  297.  +------------------------------------------------------------+
  298.  |          License Fee Options for Initial Computer          |
  299.  +------------------------------------------------------------+
  300.  |        |         Standard        |         Academic        |
  301.  +--------+-------------------------+-------------------------+
  302.  |        |  Perpetual|  Maintenance|  Perpetual|  Maintenance|
  303.  |        |     Fee   |      Fee    |     Fee   |      Fee    |
  304.  +--------+-----------+-------------+-----------+-------------+
  305.  | CLASS 1|      $895 |      $160   |      $537 |       $97   | (MSDOS)
  306.  +--------+-----------+-------------+-------------------------+
  307.  | CLASS 2|    $1,495 |      $270   |      $897 |      $162   | (Low end work-
  308.  +--------+-----------+-------------+-----------+-------------+ stations)
  309.  | CLASS 3|    $1,995 |      $360   |    $1,197 |      $215   |
  310.  +--------+-----------+-------------+-----------+-------------+
  311.  | CLASS 4|    $2,495 |      $450   |    $1,497 |      $270   | (Server class
  312.  +--------+-----------+-------------+-----------+-------------+ computers)
  313.  | CLASS 5|    $3,295 |      $594   |    $1,977 |      $356   |
  314.  +--------+-----------+-------------+-----------+-------------+
  315.  | CLASS 6|    $4,295 |      $774   |    $2,577 |      $464   |
  316.  +--------+-----------+-------------+-----------+-------------+
  317.  | CLASS 7|    $5,295 |      $945   |    $3,177 |      $572   |
  318.  +--------+-----------+-------------+-----------+-------------+
  319.           (US Dollars)
  320. Contact:  Sheila Caswell, Account Manager,
  321.           Numerical Algorithms Group, Inc.
  322.  
  323.           1400 Opus Place, Suite 200
  324.           Downers Grove, IL, USA
  325.           60515-5702
  326. Phone:    (708) 971-2337
  327. Source:   E-mail messages, postings, and paper mailing
  328. ------------------------------------------------------------------------------
  329.  
  330. Product:  VAST-90
  331. Descript: Compiles Fortran 90 to Fortran 77 source (requires native 
  332.           Fortran 77 compiler).  Also converts Fortran 77 to Fortran 90.  
  333. Platform: Sun, IBM RS/6000, HP, DEC, Convex, Cray Research.
  334. Pricing:  Single system: starts at $1250 for Unix workstations; higher 
  335.       prices for larger machines.  Academic discount is 10%.  Volume 
  336.       discount and site license are also available.  Included: 
  337.           VAST-90, f90 driver, f90 library and documentation.
  338. Contact:
  339. Pacific-Sierra Research Corp.               Switchboard:   (310) 314-2300
  340. 2901 28th Street                            Fax:           (310) 314-2323
  341. Santa Monica  CA  90405                     VAST-90 e-mail: info@psrv.com
  342. ------------------------------------------------------------------------------
  343. Product:  PF90 Version 2.0
  344. Descript: Converts f90 programs to f77, then compiles with native
  345.           f77 compiler. Therefore native f77 compiler is required.
  346. Platform: Sun 4, IBM RS/6000, Silicon Graphics, DECstations, Convex,
  347.           Alliant, IBM 3090 (AIX), Cray
  348. Pricing:  $595 any platform, single copy.
  349.       Also available are special site licenses for Universities at
  350.       only $2000 ($3000 outside the US). This license includes
  351.       binaries for all platforms that ParaSoft currently supports.
  352.       Similar license are also available for goverment and
  353.       commercial sites.  
  354.  
  355. Contact:  ParaSoft Corporation
  356.           2500 E. Foothill Blvd
  357.           Pasadena, CA 91107
  358. Phone:    (818) 792-9941
  359. E-mail:   f90-info@parasoft.com
  360. Source:   E-mail messages, and PostScript advertisement
  361. ------------------------------------------------------------------------------
  362. Product:   PV version 1.1 of Fortran 90 compiler
  363. Descript:  Port of NAG's f90 compiler to MS-DOS, together with Salford
  364.            Software Ltd.
  365. Platform:  Intel 386/486 Computers
  366. Pricing:   $1950.00 (single user, US currency)
  367. Contact:   OTG Systems Inc
  368. Phone:     (717) 222-9100
  369. Source:    E-mail message/summary of previous queries
  370. ------------------------------------------------------------------------------
  371. ------------------------------------------------------------------------------
  372.  
  373. I wish to thank the following people for their help, and apologize to any
  374. which I have missed.
  375.  
  376. psrv!bob@uu.psi.com
  377. naginc!caswell@sunbird.Central.Sun.COM
  378. malcolm@nag.co.uk
  379. roman@parasoft.com
  380. khb@chiba.Eng.Sun.COM
  381. METCALF@crnvma.cern.ch
  382. ----------------------------------------------------------------------------
  383. Ian MacPhedran, Engineering Computer Centre, University of Saskatchewan.
  384. 2B13 Engineering Building, U. of S. Campus, Saskatoon, Sask., CANADA S7N 0W0
  385. macphed@dvinci.USask.CA  macphedran@sask.USask.CA
  386.  
  387. Walt Brainerd                walt@netcom.com:
  388.  
  389. Yes, a Fortran 90 system can be had for $134.
  390.  
  391. Salford FTN90 is a full PC Fortran 90 implementation based
  392. on the front end developed by the Numerical Algorithms
  393. Group, Ltd.  The Entry Level system requires that all
  394. parts of a program reside in one file (except those that
  395. are brought in with an INCLUDE line).  That file
  396. is compiled and executed without producing a permanent
  397. executable file.
  398.  
  399. It runs on a 386SX, 386DX, or 486 system with DOS 3.3
  400. or later.
  401.  
  402. Contact Unicomp for ordering information in North America.
  403. +1-415-949-4052   4058 (fax)
  404.  
  405. To find out the price and how to get it outside of North
  406. America, contact Salford Software, Venables Building,
  407. 5 Cockcroft Road, Salford, M5 4NT, United Kingdom,
  408. +44 61 745 5678, +44 61 745 5666 (fax).
  409.  
  410. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  411.  
  412. Media:      Steve Conway 612/683-7133
  413. Financial:  Bill Gacki 612/683-7372
  414.  
  415. CRAY RESEARCH ANNOUNCES FIRST COMPLETE FORTRAN 90 IMPLEMENTATION FOR
  416. SUPERCOMPUTERS
  417.  
  418. Cray Fortran 90-Based Products Will Also Be Marketed For PCs, Workstations,
  419. Servers
  420.  
  421. PORTLAND, Ore., Nov. 15, 1993 -- At the Supercomputing 93
  422. conference held here this week, Cray Research, Inc. (NYSE:CYR)
  423. announced the Cray Fortran 90 (CF90) Programming Environment,
  424. calling it the first native, complete implementation for supercomputers of
  425. the Fortran 90 standard.  The company said products based on the CF90
  426. Programming Environment will also be marketed for leading personal
  427. computers, workstation products and servers.  "Our goal is for the CF90
  428. Programming Environment to become an industry standard,"  said Cray
  429. ....
  430. The CF90 Programming Environment will be available for Cray
  431. Research's complete line of parallel vector supercomputers by year-end
  432. 1993.  Support for the company's CRAY T3D massively parallel
  433. processing (MPP) systems is planned for the second release of the
  434. CF90 Programming Environment, due out about a year from now, she
  435. said.
  436. ...
  437. Under the company's new CraySoft initiative, Cray-compatible, CF90-
  438. based products for SPARC-based workstations and servers, including
  439. Sun products and the recently announced CRAY SUPERSERVER 6400
  440. series from subsidiary Cray Research Superservers, are slated for
  441. availability by mid-1994, according to CraySoft manager Leary Gates. 
  442. Versions will also be developed for other leading workstation products. 
  443. ...
  444. CraySoft will also oversee Cray Research's previously announced
  445. agreement calling for Absoft Corp., Rochester Hills, Mich., to develop and
  446. market Cray-compatible versions of the CF90 compiler for personal
  447. computers based on Intel 486 and Pentium processors, as well as the
  448. forthcoming series of PowerPC-based Macintoshes, by mid-1994, he
  449. said. 
  450. ....
  451. CRAY RESEARCH, VISUAL NUMERICS SIGN JOINT TECHNOLOGY AND DISTRIBUTION
  452. AGREEMENT FOR FORTRAN 90 SOFTWARE PRODUCTS
  453.  
  454. PORTLAND, Ore., Nov. 16, 1993 -- Cray Research, Inc., and Visual Numerics,
  455. Inc., today announced at Supercomputing 93 an agreement to cooperate in the
  456. development and marketing of leading Fortran 90 technologies.
  457. ...
  458.  
  459.  
  460. Q3) I have heard of fortran "lints" what are they, and where can
  461.    I get one?
  462.  
  463.    Fortran compilers are not required (and most do not) to protect
  464.    users from themselves, that is to say
  465.  
  466.      call sub(1)
  467.      ...
  468.      subroutine sub(i)
  469.      i=i+10
  470.      return
  471.      end
  472.  
  473.    Is non-standard complying but the compiler need not tell you about
  474.    it. Arguably worse, the compiler can produce any result it deems
  475.    fit, up to and including the start of world war III (assuming the
  476.    right optional hardware has been installed).
  477.  
  478.    Fortran lint programs focus on searching out programming
  479.    errors (or likely errors) and alerting the user.
  480.  
  481.    There are a wide variety of commercial and pd products. A partial
  482.    list follows:
  483.  
  484.    IPT FORTRAN lint 1096 East Meadow Circle, Palo Alto, CA 94303, 415/494-7500.
  485.  
  486.    Forwarn from quibus 719 527 1384.
  487.  
  488.    QA-FORTRAN from PRL UK 44 372 4621 30 fax 44 372 468353
  489.     and *perhaps*  (817) 589 0949
  490.  
  491.    FORCHECK from Leiden University ND 31 71 276804
  492.  
  493.    FTNCHEK from netlib. One may receive FTNCHEK by mailing to
  494.    netlib@ornl.gov the following message:
  495.  
  496.     send ftnchek from fortran
  497.  
  498.     And Ajay Shah, (213)749-8133, ajayshah@usc.edu
  499.     You may want to mention f2c followed by an ANSI C compiler as a great
  500.     free fortran lint. I could not have survived writing fortran if it
  501.     were not for f2c.  You need to know some C to deal with the error
  502.     messages, but that's not a bad price to pay.
  503.  
  504.  
  505. From: atae@spva.ph.ic.ac.uk (Ata Etemadi)...
  506. A very kind soul who wishes to remain anonymous sent me the answer below. 
  507. ....
  508. 1.  There is a prettyprinter (called TIDY) available via FTP from simtel20.  
  509.     It's in PD2:MSDOS.FORTRAN or some directory with a similar name.
  510.     Capsule review:  does an ok job, sometimes has trouble with
  511.     newer extensions (and even some Fortran 77 standard features).
  512.     Not too bright about making good continuation-line break decisions.
  513.     Free, and available via FTP, so probably the quickest solution.
  514.     Includes source (in Fortran).
  515.     
  516. 2.  Greg Flint (afc@klaatu.cc.purdue.edu) at Purdue distributes a program 
  517.     called CLEAN77.  Pretty good (higher quality than #1 above), also free,
  518.     but must be obtained from Purdue (not available via FTP, not 
  519.     redistributable).  Available for assorted systems: PC, UNIX, etc.
  520.     In Fortran, comes with source.
  521.  
  522. 3.  There is an excellent prettyprinter in TOOLPACK - probably has
  523.     more options than any other.  Has trouble with extensions, such
  524.     as long variable names.  Free, comes in source form, in Fortran.
  525.     TOOLPACK as a whole is pretty huge, and requires some work to
  526.     install, but it might be worth it if you stick to pretty much
  527.     standard Fortran.  Available by FTP from Los Alamos (lanl.gov,
  528.     directory pub/toolpack/NAG).  Also distributed commercially for 
  529.     a fee by NAG, who may have a new, improved version that is better 
  530.     than the free one - I don't really know.
  531.  
  532. 4.  SPAG, sold by OTG Systems (about $1000 for MS-DOS, more for Unix).
  533.     Its main function is to restructure GOTOs into IF-THEN-ELSEs, but
  534.     it also prettyprints.  (I think they renamed this within the past
  535.     year).
  536.  
  537. 5.  FOR-STRUCT, sold by Cobalt Blue.  Also a GOTO restructurer that
  538.     prettyprints.  About $700 for MS-DOS.  Available from most of the
  539.     big PC software dealers (Programmer's Paradise, etc...)
  540.     (They now have a "budget" version that costs about $250 but has
  541.     program-size limitations.)
  542.  
  543. 6.  PRETTY, sold by Quibus Enterprises, Inc.  Restructures GOTOs, also 
  544.     indents, relabels, moves Formats, etc. $149 for MS-DOS, $500 for Unix 
  545.     workstations.  Call (719) 527-1384 for more info.
  546.  
  547.  
  548. From: "John D. McCalpin" <mccalpin@perelandra.cms.udel.edu>
  549. Not too many people use it, but you might want to add TOOLPACK to
  550. the list of FORTRAN "lint" packages.  Here is the blurb that I
  551. send to people who are interested:
  552.  
  553. ======================================================================
  554. TOOLPACK is a large set of utilities written in FORTRAN to do FORTRAN
  555. code analysis and transformation.
  556.  
  557. TOOLPACK begins by actually parsing the program with a fully FORTRAN-
  558. compliant parser and then does all the code transformations on the
  559. parse and comment trees.
  560.  
  561. This means that you cannot confuse TOOLPACK by silly FORTRAN-isms that
  562. can easily overwhelm more naive utilities (such as ftnchek).  For
  563. example, TOOLPACK correctly handles statements such as:
  564.  
  565.       D O U B L E  P R E C I S I O N   A(100,100)
  566.       doubleprecision fred
  567.  
  568.       DO I = 1.2
  569.       READ(I,J) = 10.
  570.  
  571.  
  572. The usual interface to TOOLPACK is a set of 'csh' scripts that run the
  573. various TOOLPACK utilities to do specific tasks.
  574.  
  575. The ones you will find most useful are: pol, polx, apt, dapt, decs, 
  576. getlst, and discard.   These are the prettyprinter, precision converter,
  577. declaration standardizer, and some necessary utilities.  See below for
  578. more details.
  579.  
  580. By aware that TOOLPACK is *very* rigorous about the FORTRAN-77
  581. standard.  You may or may not consider this an advantage.
  582.  
  583. The scripts are described by the 'scripts' script, which delivers the
  584. following:
  585. ----------------------------------------------------------------------------
  586. In the Toolpack script summaries below, the section numbers refer to
  587. the Unix environment Users' Guide where more detailed information can
  588. be found.  To obtain on-line information about a script's usage, type
  589. its name without any arguments.
  590.  
  591. FORTRAN Analysis Facilities
  592.  
  593.   getlst  Produce a listing showing statement and token numbers. Report
  594.           lexical scanning warnings and errors. (3.1.1)
  595.  
  596.   syn     Report errors and warnings detected by lexical scanning, parsing,
  597.           and examining a set of symbol attributes. (3.1.2)
  598.  
  599.   sem     Report errors and warnings detected by lexical scanning, parsing,
  600.           and examining an extended set of symbol attributes. (3.1.3)
  601.  
  602.   pfort   Report errors and warnings detected by lexical scanning, parsing,
  603.           examining an extended set of symbol attributes, checking for unsafe
  604.           references, and checking conformance to a portable subset of
  605.           FORTRAN. (3.1.4)
  606.  
  607.   statdoc In a user-supplied report template, place information derived from
  608.           static analysis to assist in documenting the program.  Examples of
  609.           information the user may request are COMMON block usage, symbol
  610.           attributes, and a graph of subprogram calls. (3.1.5)
  611.  
  612.   inst    Instrument a FORTRAN program so that the instrumented program, when
  613.           executed, produces information about program execution. (3.2.1)
  614.  
  615.   rundoc  Execute a program instrumented by inst and, in a user-supplied
  616.           report template, place information derived from dynamic analysis
  617.           to assist in documenting the program.  For example, the user may
  618.           determine the frequency of execution of program segments. (3.2.2)
  619.  
  620. FORTRAN Transformation Facilities
  621.  
  622.   pol     Format a FORTRAN program under control of user-supplied options
  623.           in a Polish option file. (4.1.1)
  624.  
  625.   polx    Construct a Polish option file via a menu-driven editor. (4.1.2)
  626.  
  627.   decs    Rebuild the declarative part of a FORTRAN program. (4.2.1)
  628.  
  629.   apt     Transform a single-precision version of a FORTRAN program to
  630.           double precision or vice versa. (4.3.1)
  631.  
  632.   dapt    Convert precision and rebuild the declarations, combining the
  633.           functions of apt and decs. (4.3.2)
  634.  
  635.   cname   Change the names in a FORTRAN program that satisfy conditions
  636.           derived from information in either the lexical token stream or
  637.           the symbol table or both. (4.4.1)
  638.  
  639.   lname   Transform a FORTRAN program containing long names to a program
  640.           with standard names. (4.4.2)
  641.  
  642.   stf     Rebuild the flow of control in a FORTRAN program to standardized
  643.           form. (4.5.1)
  644.  
  645.   ucs     Transform nests of DO loops matching certain paradigms so that
  646.           the transformed code executes more efficiently on vector machines.
  647.           (4.6.1)
  648.  
  649. Miscellaneous Facilities
  650.  
  651.   fdiff   Compare two FORTRAN programs at the lexical token level. (5.1.1)
  652.  
  653.   dac     Compare two data files, neglecting certain formatting differences
  654.           and numerical differences smaller than a given tolerance. (5.1.2)
  655.  
  656.   vcon    Create, edit, and retrieve versions of a file contained in a
  657.           version file. (5.2.1)
  658.  
  659.   discard Remove unneeded files created by the above scripts. (5.3.1)
  660.  
  661.   scripts Print this summary of the scripts. (5.4.1)
  662.  
  663. ----------------------------------------------------------------------------
  664.  
  665. TOOLPACK can be obtained by anonymous ftp from perelandra.cms.udel.edu
  666. in the directory pub/Lang/Toolpack/.
  667. The UNIX version is in the file toolpack.tar.Z
  668. Serious hackers will want the versions in the Distrib directory.
  669.  
  670. The package is known to compile on Silicon Graphics and Sun machines,
  671. though the Makefile is reasonably braindamaged.
  672.  
  673. You will need about 16 MB for the stripped executables on an SGI machine.
  674. Figure on double that for compiling the package.....
  675.  
  676. Have fun!
  677. --
  678. John D. McCalpin            mccalpin@perelandra.cms.udel.edu
  679. Assistant Professor            mccalpin@brahms.udel.edu
  680. College of Marine Studies, U. Del.    John.McCalpin@mvs.udel.edu
  681.  
  682.  
  683.  
  684. Q4) "Why do people use FORTRAN?, C is so much better"
  685.  
  686.    One should avoid such pointless arguments .... if you feel this
  687.    way, don't subscribe to comp.lang.fortran.
  688.  
  689.    This sort of question always triggers off a protracted discussion,
  690.    the highlights of which are typically:
  691.  
  692.        a) FORTRAN and C have different semantics. A FORTRAN optimizer
  693.       knows more about aliasing, function interactions, and I/O. A
  694.       C optimizer has to infer or compute such information. C
  695.       bigots typically have neither written such optimizers nor
  696.       worked with folks who do it for a living, and are prone to
  697.       dismiss such arguments as being petty and neolithic.
  698.  
  699.       FORTRAN programmers are often a bit more in touch with high
  700.       performance computing, and are unwilling to bet that heavily
  701.       on compiler wizardry. 
  702.       
  703.       In addition, ANSI/ISO C has very tight requirements on
  704.       expression evaluation (an overreaction to the K&R ignore
  705.       parenthesis days) which cripples an optimizer even further.
  706.       The restrictions are spelled out in Section 5.1.2.3 of
  707.       ISO/IEC 9899-1990. Both the '77 and '90 Fortran standards
  708.       allow the optimizer more latitude.
  709.  
  710.       Of course, compiler options, vendor extensions and the like
  711.       sometimes narrow the difference. Also, some Fortran
  712.       compilers do not take advantage of all of these features of
  713.       the language, thus narrowing the gap in the other direction.
  714.  
  715.       On any given code, on any given system, all bets are off.
  716.  
  717.       b)  There is a vast body of existing FORTRAN code (much of which
  718.       is publically available and of high quality). Numerical
  719.       codes are particularly difficult to "vet", scientific
  720.       establishments usually do not have large otherwise idle
  721.       programming staffs, etc.  so massive recoding into any new
  722.       language is typically resisted quite strongly.
  723.  
  724.       c)  Fortran tends to meet some of the needs of scientists
  725.       better.  Most notably, it has built in support for:
  726.         - variable dimension array arguments in subroutines
  727.         - a compiler-supported infix exponentiation operator which
  728.           is generic with respect to both precision and type,
  729.           *and* which is generally handled very efficiently  or
  730.           the commonly occuring special case floating-point**small-integer
  731.         - complex arithmetic
  732.         - generic-precision intrinsic functions
  733.  
  734.       d)  Retraining staff is quite expensive.
  735.  
  736.       e)  It is sometimes argued that: 
  737. - Jonathan Thornburg <also responsible for misc. other fixups>
  738.     Fortran tends to be easier for non-experts to learn
  739.     than C, because its "mental model of the computer" is
  740.     much simpler.  For example, in Fortran the programmer
  741.     can generally avoid learning about pointers and memory
  742.     addresses, while these are essential in C.  More generally,
  743.     in Fortran the difference between (C notation) x, &x,
  744.     and often even *x is basically hidden, while in C it's
  745.     exposed.  For non-experts this makes Fortran a considerably
  746.     simpler language.
  747.  
  748.     Because of this relative simplicity, for simple programming
  749.     tasks which fall within its domain, (say writing a simple
  750.     least-squares fitting routine), Fortran generally requires
  751.     much less computer science knowledge of the programmer than
  752.     C does, and is thus much easier to use.
  753.  
  754.      
  755. Q5)  Why can't I get an electronic version of the standard?
  756.  
  757.     Someday, perhaps you can. However, at the moment the various
  758.     standards bodies finance some fraction of their work via sales of
  759.     standards documents. ISO and ANSI have both claimed copyright to
  760.     the finished standard, so those who would make and distribute
  761.     copies should be forewarned.
  762.  
  763.     It should be noted that various people are working to correct
  764.     this; but it is unlikely to ever become free.
  765.  
  766. Q6) Where can I get "foo" (some random package)
  767.  
  768. Q6) Where can I get "foo" (some random package)
  769.         contributed by:
  770.                 Marc R. Roussel
  771.                                 mroussel@alchemy.chem.utoronto.ca
  772.  
  773.     Use archie. archie is an online database of what is available and
  774.     where on the "net". Archie can be used either via telnet or by
  775.     mail. 
  776.     
  777.     For information about archie send 
  778.  
  779.     mail archie@archie.rutgers.edu
  780.     subject: help
  781.  
  782.     And you will get back copious directions on how to use archie.  If
  783.     you prefer interactive experimentation, telnet to
  784.     archie.rutgers.edu and log in as archie.  No password will be
  785.     required.  The first thing you will be shown is a list of other
  786.     archie servers.  If one of these servers is geographically much
  787.     closer to you than Rutgers, NJ, please disconnect (by typing 'quit')
  788.     and use that one.  To save you this step, here is the latest list of
  789.     archie sites:
  790.  
  791.     archie.rutgers.edu     128.6.18.15     (Rutgers University)
  792.     archie.unl.edu     129.93.1.14     (University of Nebraska in Lincoln)
  793.     archie.sura.net     128.167.254.179 (SURAnet archie server)
  794.     archie.ans.net     147.225.1.2     (ANS archie server)
  795.     archie.au         139.130.4.6     (Australian server)
  796.     archie.funet.fi     128.214.6.100     (European server in Finland)
  797.     archie.doc.ic.ac.uk  146.169.11.3     (UK/England server)
  798.     archie.cs.huji.ac.il 132.65.6.15     (Israel server)
  799.     archie.wide.ad.jp     133.4.3.6     (Japanese server)
  800.  
  801.     I believe that all of these servers run the mail server as well as
  802.     the telnet and archie server software.  (The archie server is a
  803.     third way to use archie.  It's probably the best way, but it
  804.     requires that you install software.)
  805.  
  806.     Once you logged into an archie server, you will want to make
  807.     sure that all the information you will retrieve will be mailed to
  808.     you.  Type
  809.  
  810.     set mailto userid@machine.foo.edu
  811.  
  812.     where, of course, you will substitute your own email address for the
  813.     made-up one shown above.  You are now ready to search the database.
  814.     If at any time you want to know what options are available to you,
  815.     type help.  To search for a program or file, type
  816.  
  817.     prog foo
  818.  
  819.     where foo is the name of the program or file required.  Once your
  820.     search is done, type 'mail' to have the output sent to you.  (The
  821.     output will almost always be several pages long.)  Then type 'quit' to
  822.     exit.
  823.  
  824. Q7)  Where can I get a free compiler?
  825.  
  826.     One such is f2c.
  827.  
  828. From: mwm@a.gp.cs.cmu.edu (Mark Maimone)
  829. Newsgroups: comp.lang.fortran,comp.lang.c
  830. Subject: Re: Fortran to C translator
  831. Keywords: fortran, C, translator, f2c
  832. Date: 13 Sep 90 01:43:30 GMT
  833. Organization: Carnegie-Mellon University, CS/RI
  834.  
  835.  
  836.     Since there have been several requests for a Fortran to C translator
  837. in the past week, I'm reposting the announcement about f2c.  The short
  838. answer is you can get f2c by anonymous-ftp from research.att.com in
  839. directory dist/f2c.
  840.  
  841. ------------------------------------------------------------------------------
  842.  
  843.     Source for f2c, a Fortran 77 to C translator jointly developed by
  844. folks from Bell Labs, Bellcore, and Carnegie Mellon, is now freely
  845. available.
  846.  
  847.     F2c was derived from the original UNIX operating system's f77(1),
  848. and the generated C follows f77's calling conventions; on some machines, the
  849. resulting object files are interchangeable with (and behave
  850. indistinguishably from) objects compiled by f77.  The main "advantage" of
  851. f2c is that it converts ANSI standard Fortran 77 into C without manual
  852. intervention, at least when invoked by a suitable script or makefile (that
  853. may need to exercise an f2c option to ensure that COMMON blocks are defined
  854. just once).  The main "problems" are that f2c does no code restructuring
  855. (e.g., gotos are preserved) and that Fortran I/O gets converted into a bunch
  856. of calls; thus the translated C code doesn't look too pretty, and in general
  857. one would need to maintain the Fortran rather than its translation into C.
  858. [F2c is not meant to displace the services of commercial vendors whose
  859. business is to convert Fortran into maintainable C.]
  860.  
  861.     There is a plethora of options, many of which exist to support
  862. different compilation environments for the translated C (e.g., ANSI C or C++
  863. compatibility, different type sizes, separate files for COMMON blocks to
  864. appease "smart" linkers).  So far f2c (and f2c-generated source) has
  865. compiled successfully on many machines:  Sun, Vax, IBMRT, Apollo, SGI, MIPS,
  866. and Cray to name a few.
  867.  
  868.     F2c has been under test by the net community for over a year
  869. and has been verified on the NBS tests, several large math libraries,
  870. floating point tests, even code for laying cable on the ocean floor!
  871.  
  872.     To find out about f2c, send the following E-mail message to netlib
  873. (netlib@research.att.com or research!netlib):
  874.  
  875.     send index from f2c
  876.  
  877. Your message will be answered automatically (by a program -- see CACM vol.
  878. 30 #5 (May, 1987), pp. 403-407).  You will receive a reply explaining how to
  879. automatically acquire f2c source (about 600K), f2c library source (130K),
  880. and supporting info (man page, etc).  Or you can anonymous-FTP to
  881. research.att.com and look in directory dist/f2c at these files:
  882.  
  883.     all.Z -- 250K compressed shar file for f2c
  884.     f2c.ps.Z -- 24 page tech report describing f2c
  885.     index -- general info about files
  886.     libf77.Z, libi77.Z -- compressed shar files for libraries
  887.  
  888. ****************************** DISCLAIMER ******************************
  889.          Careful! Anything free comes with no guarantee.
  890. ************************************************************************
  891.  
  892. ----------------------------------------------------------------------
  893. Mark Maimone                phone: (412) 268 - 7698
  894. Carnegie Mellon Computer Science    email: mwm@cs.cmu.edu
  895.                            cmcspt!mwm@cs.cmu.edu
  896.  
  897. Notes: f2c accepts only fairly vanilla FORTRAN; vendor supplied f77's
  898.        usually produce better quality code, and accept a wider variety
  899.        of codes. 
  900.  
  901. The FSF is working on a f77 front end to be integrated with the gcc back end. 
  902.  
  903. "A mailing list exists for those interested in the Fortran front end for
  904. GCC.  To subscribe, ask: `info-gnu-fortran-request@prep.ai.mit.edu'.
  905. Or try "finger -l fortran@gate.gnu.ai.mit.edu"
  906.  
  907. There is no FSF project to do a f90 front end. The author of the gf77
  908. front end is willing, if anyone will fund it.
  909.  
  910. Q8)  What is the best compiler for a PC?
  911.  
  912.     There are many products, some are quite good. Few are free. 
  913.     f2c and gcc can be had for the PC environment. Popular ones are:
  914.  
  915.     Lahey (very fast compilation; excellent reputation for support)
  916.     Watcom (touted for good optimization)
  917.     MicroWay (support for odd floating point units)
  918.     LPI  (multi-platform support)
  919.     MicroSoft (various good hooks into windows and such)
  920.     Absoft (multi-platform support)
  921.  
  922.    It is beyond the scope of a faq to provide a commercial endorsement.
  923.  
  924. Q9) How does Fortran 90 relate to FORTRAN '77?
  925.  
  926.     With a few minor exceptions, Fortran 90 is a superset
  927.     of X3.9-1978 FORTRAN.
  928.  
  929. But this does not mean that all "77" codes will port sans changes.
  930. Many (if not most) programmers employed constructs beyond the '77
  931. standard, or rely on unspecified behavior (say, assuming that an OPEN
  932. of an existing file will position the file pointer to just past the
  933. last record already written) which has changed (that is to say, has
  934. become specified). 
  935.  
  936. This leads to the obvious question, what is new in Fortran 90?
  937.  
  938. A complete answer would require considerable text. Some of the most
  939. obvious additions are:
  940.  
  941.     1) array notation (operators, etc.)
  942.     2) dynamic memory allocation
  943.     3) derived types and operator overloading
  944.     4) keyword argument passing, INTENT (in, out, inout)
  945.     5) modules
  946.     6) modern control structures
  947.     7) free format source code form
  948.     8) other stuff
  949.  
  950. While it is always tricky to characterize the motives of a large group
  951. of people, I <khb> am inclined to try as follows:
  952.  
  953.    '90 incorporates two sets of improvements: (1) relatively minor
  954.    fixups that *could* have been done earlier (2) relatively major
  955.    changes to enable better software engineering practices.
  956.  
  957. Sometimes a "minor" fixup has major effect, such as addition of free
  958. form source form combined with canonization of the MIL-STD 1753
  959. INCLUDE. 
  960.  
  961. I further go off on a limb and assert that it was the goal of the
  962. *committee* to evolve Fortran in a fashion to enable it to continue to
  963. be the premier language for scientific computation.
  964.  
  965.  
  966. Q10) My compiler is mis-behaving; who enforces the standard?
  967.  
  968.     ANSI and ISO standards do not usually have a particular enforcement
  969.     mechanism. Local bodies sometimes do. 
  970.  
  971.     However, it should be borne in mind that if *your* source code is
  972.     not standard compliant there is *NO* obligation for a FORTRAN ('77
  973.     and before) compiler to do  *ANYTHING* in particular. In Fortran (90)
  974.     the text in "constraints" must be tested and a warning produced
  975.     (compiler option can be used to evade this, of course).
  976.  
  977.     Some (notably Guy Steele, with respect to another standard) have
  978.     noted that when non-standard complying code is encountered, a
  979.     compiler may do *ANYTHING* including initation of Global Warfare.
  980.     Keep this in mind.
  981.  
  982.     When you do find a bona fide compiler bug, you are generally best
  983.     served by reporting it to the *vendor*. If you neglect to tell the
  984.     vendor, how can you complain about it not being fixed?
  985.  
  986.     When reporting a *suspected* bug be sure to be quite specific
  987.     about the computer system, operating system rev level (patches
  988.     applied if known) and *compiler*version* (and patches thereof).
  989.     It is very hard for people to read your mind; but they will try. 
  990.     The attempts are often entertaining, sometimes helpful, but always
  991.     an inefficient use of people-time and net-bandwidth.
  992.  
  993.     Also note that it is generally helpful if you cut down the example
  994.     to the smallest size you can. Vendors are developers too; the
  995.     tendency is invest time/money where one can get the biggest bang
  996.     for the buck. 
  997.     
  998.  
  999. Q11) What are good books on Fortran? 
  1000.  
  1001.     Don't know if they are good. Inclusion in the list is not
  1002.     endorsement.  Have misplaced name of the compiler of the 
  1003.     original list <sorry>
  1004.  
  1005.  
  1006. Author                         Title                                     Year
  1007. Morgan/Schonfelder           Programming in Fortran 90          1993
  1008. Kerrigan               Migrating to Fortran 90                  1993
  1009. Kruger                   Efficient Fortran Programming          1990
  1010. Mojena/Ageloff                 FORTRAN 77                                 1990
  1011. Metcalf/Reid                   FORTRAN 90 EXPLAINED                       1990
  1012. Boyle                          FORTRAN 77 PDQ                             1989
  1013. Bezner                         FORTRAN 77                                 1989
  1014. Tremblay                       PROGRAMMING IN FORTRAN 77                  1988
  1015. Salmon                         ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  1016. Nyhoff/Leestma                 FORTRAN 77 FOR ENGINEERS & SCIENTISTS      1988
  1017. McCracken/Salmon               ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  1018. Davis/Hoffman                  FORTRAN 77: A STRUCTURED DISCIPLINED STYLE 1988
  1019. Barnard/Skillicorn             FORTRAN 77 FOR ENGINEERS AND SCIENTISTS    1988
  1020. Mashaw                         PROGRAMMING STRUCTURED FORTRAN 77          1987
  1021. Cole                           FORTRAN 77: A STRUCTURED ... APPROACH      1987
  1022. Boillot                        UNDERSTANDING FORTRAN-77                   1987
  1023. Starkey/Ross                   FUNDAMENTAL PROGRAMMING WITH FORTRAN 77    1986
  1024. Rouse/Bugnitz                  INTRODUCTION TO FORTRAN 77                 1986
  1025. Ratzer                         FORTRAN 77 COURSE                          1986
  1026. Page                           FORTRAN 77 FOR HUMANS                      1986
  1027. Lehman                       ... SOCIAL SCIENCES: ALGORITHMS & FORTRAN 77 1986
  1028. Smith                          FORTRAN 77: A PROBLEM-SOLVING APPROACH     1985
  1029. Shelly                         FORTRAN 77: AN INTRODUCTION                1985
  1030. Nickerson                      FUNDAMENTALS OF FORTRAN 77 PROGRAMMING     1985
  1031. Metcalf                        EFFECTIVE FORTRAN 77                       1985
  1032. McKeown                        STRUCTURED PROGRAMMING USING FORTRAN 77    1985
  1033. Hume                           FORTRAN 77 FOR SCIENTISTS & ENGINEERS      1985
  1034. Dillman                        PROBLEM SOLVING WITH FORTRAN 77            1985
  1035. Brainerd                       FORTRAN 77 FUNDAMENTALS AND STYLE          1985
  1036. Borse                          FORTRAN 77 & NUMERICAL METHODS FOR ENGINEERS1985
  1037. Adman                          FORTRAN 77 SOLUTIONS NON-SCIENTIFIC PROBS. 1985
  1038. SSI, Inc. Staff                FORTRAN 77 REFERENCE                       1984
  1039. Etter                          PROBLEM SOLVING WITH STRUCTURED FORTRAN 77 1984
  1040. Etter                          PROBLEM SOLVING USING FORTRAN 77            ?
  1041. Dyck                           FORTRAN 77: A STRUCTURED APPROACH ...      1984
  1042. Chivers/Clark                  FORTRAN 77: A HANDS ON APPROACH            1984
  1043. Adman                          FORTRAN 77 FOR NON-SCIENTISTS              1984
  1044. Willamson/Levesque           * A GUIDEBOOK TO FORTRAN ON SUPERCOMPUTER   1989
  1045. Rule                           FORTRAN 77: A PRACTICAL APPROACH          1983
  1046. Rouse/Bugnitz                  PROGRAMMING THE IBM PC: FORTRAN 77        1983
  1047. Nyhoff/Leestma                 PROBLEM SOLVING WITH FORTRAN 77           1983
  1048. Marateck                       FORTRAN 77                                1983
  1049. Lehmnkuhl                      FORTRAN 77                                1983
  1050. Law                            ANSI FORTRAN 77: INTRO. TO SOFTWARE DESIGN 1983
  1051. Holoien/Behforooz              ... STRUCTURED PROGRAMMING WITH FORTRAN 77 1983
  1052. Grout                        FUNDAMENTAL ... PROGRAMMING USING FORTRAN 77 1983
  1053. Fleming/Redish                 THE U. S. MC MASTER GLOSSARY OF FORTRAN-77  1983
  1054. Cole                           ANSI FORTRAN IV WITH FORTRAN 77 EXTENSIONS  1983
  1055. Wu                             ANSI FORTRAN IV & 77 AND BUSINESS PROGRAMS  1982
  1056. Pollack                        STRUCTURED FORTRAN 77 PROGRAMMING           1982
  1057. Katzan                         FORTRAN 77                                  1982
  1058. Gibson/Young                  INTRODUCTION TO PROGRAMMING USING FORTRAN 77 1982
  1059. Ellis                         STRUCTURED APPROACH FORTRAN 77 PROGRAMMING   1982
  1060. Durgin                        FORTRAN 77                                   1982
  1061. Nanney                        A PROBLEM-SOLVING APPROACH USING FORTRAN 77  1981
  1062. Merchant                      FORTRAN 77: LANGUAGE AND STYLE               1981
  1063. Khailany                      BUSINESS PROGRAMMING FORTRAN IV/ANSI FORTRAN 1981
  1064. Ashcroft                      PROGRAMMING WITH FORTRAN 77                  1981
  1065. Wagener                        FORTRAN 77                                    ?
  1066. Wagener                       PRINCIPLES OF FORTRAN 77 PROGRAMMING         1980
  1067. Meissner/Organick             FORTRAN 77 FEATURING STRUCTURED PROGRAMMING  1980
  1068. Hume/Holt                     PROGRAMMING FORTRAN 77                       1979
  1069. Balfour                       PROGRAMMING IN STANDARD FORTRAN 77           1979
  1070. Brainerd               Programmer's guide to Fortran 90            1990
  1071. Adams et al                   Fortran 90 Handbook                         1991
  1072. Counihan                      Fortran 90                                  1991
  1073. O'Reilly&Assoc              Unix for FORTRAN Programmers                1990
  1074.  
  1075. From: dtm@castle.ed.ac.uk (D Muxworthy)
  1076. Newsgroups: comp.lang.fortran
  1077. Subject: Fortran 90 text books (was: Fortran 8x Information sought)
  1078. Date: 16 Jul 93 12:10:32 GMT
  1079. Distribution: comp
  1080. Organization: Edinburgh University
  1081.  
  1082. In article <KUMAZAWA.93Jul15114854@sutkbcn1.c1.kagu.sut.ad.jp> kumazawa@c1.kagu.sut.ad.jp (Tomonobu Kumazawa) writes:
  1083. >
  1084. >   I would appreciate any information (books, information materials,
  1085. > contacts of software publishers etc.) related to FORTRAN 8x.
  1086.  
  1087. Here is a bibliography of Fortran 90 text books.  Any information on additions
  1088. would be welcome, as would the ISBN number of Schobert's book. 
  1089.  
  1090. 1.   Fortran 90 - Counihan, Pitman, 1991, ISBN 0-273-03073-6.
  1091. 2.   Fortran 90; Approche par la Pratique - Lignelet, Se'rie
  1092.      Informatique E'ditions, Menton, 1993, ISBN 2-090615-01-4.
  1093. 3.   Fortran 90: eine informelle Einfu"hrung - Heisterkamp,
  1094.      BI-Wissenschaftsverlag, 1991, ISBN 3-411153-21-0.
  1095. 4.   Fortran 90 Explained - Metcalf and Reid, Oxford University
  1096.      Press, 1992, ISBN 0-19-853772-7 (also available in French,
  1097.      Japanese [from Oct 1993] and Russian [Q4, 1993] translation).
  1098. 5.   Fortran 90 Handbook - Adams, Brainerd, Martin, Smith and
  1099.      Wagener, McGraw-Hill, 1992, ISBN 0-07-000406-4.
  1100. 6.   Fortran 90; Initiation a` partir du Fortran 77 - Aberti,
  1101.      Se'rie Informatique E'ditions, Menton, 1992, ISBN 2-090615-00-6.
  1102. 7.   Fortran 90 Referenz-Handbuch: der neue Fortran-Standard -
  1103.      Gehrke, Carl Hansen Verlag, 1991, ISBN 3-446163-21-2.
  1104. 8.   Programmer's Guide to Fortran 90 - Brainerd, Goldberg and
  1105.      Adams, McGraw-Hill, 1990, ISBN 0-07-000248-7.
  1106. 9.   Programmieren in Fortran - Langer, Springer Verlag, 1993,
  1107.      ISBN 0-387-82446-4.
  1108. 10.  Programmierung in Fortran 90 - Schobert, Oldenburg, 1991.
  1109. 11.  Programming in Fortran 90 - Morgan and Schonfelder,
  1110.      Blackwell Scientific Publications, 1993, ISBN 0-632028-38-6.
  1111. 12.  Software Entwicklung in Fortran 90 - U"berhuber and Meditz,
  1112.      Springer Verlag, 1993, ISBN 0-387-82450-2.
  1113.  
  1114. David Muxworthy
  1115. Edinburgh University
  1116.  
  1117.  
  1118.  
  1119. Q12) Are there pretty printers for FORTRAN? Flowchart generators?
  1120.  
  1121.     Yes. 
  1122.  
  1123.     One such is SPAG:  OTG <usa> voice 717 222 9100  fax   717 229 9103
  1124.     Authors are   
  1125.  
  1126.            Polyhedron Software Ltd
  1127.            Magdalen House
  1128.            98 Abingdon Road
  1129.            Standlake
  1130.            Witney
  1131.            Oxon OX8 7RN
  1132.  
  1133.            Tel 0865 300 579
  1134.  
  1135.      part of their plusFORT product.
  1136.            
  1137.  
  1138.     Another is Fortran development Tools from  Quibus 714 527 1384
  1139.  
  1140.     Also FOR_STRUC from cobalt-blue. 404 518 1116
  1141.  
  1142.     These more than pretty print, they optionally restructure your
  1143.     code (duplicating code as needed to tidy up strange GOTO lists,
  1144.     turning them into IF-THEN chains, and etc.).
  1145.  
  1146.  
  1147. From: dappel@grafted.UUCP (Dave Appel)
  1148. Newsgroups: comp.lang.fortran
  1149. Subject: Re: code beautifier wanted
  1150. Date: 4 Mar 92 21:30:25 GMT
  1151. Organization: GRAFTED, Central Indiana's Usenet BBS 317-881-4369
  1152.  
  1153. wg@cbnewsm.att.com (Bill Gieske) writes:
  1154. > I have tons of old FORTRAN code, most of it in upper case, the majority
  1155. > of it not indented.  Is there a code beautifier, either PD or $$ that I
  1156. > can run the code through to improve the readability, hence the main-
  1157. > tainability?
  1158. > Reply to me direct.  I will summarize if appropriate.
  1159. > Bill Gieske
  1160. > AT&T Bell Laboratories
  1161. > wg%alux2@att.research.com
  1162.  
  1163.      Call "The Connection at 800-336-1166"  and ask for
  1164. their software catalog.
  1165.  
  1166.      In their catalog that I have, Sprint 1992, there is an
  1167. ad on page 39 from AutoCASE Technology.  They have
  1168. a product called "AutoFLOW-FORTRAN" that lists for $1,995.
  1169. It claims to automatically document your existing source code.
  1170. AutoCASE's number is 408-446-2273.
  1171.  
  1172.       On page 93 is an ad from POWERLINE Software Inc.
  1173. Their number is 800-257-5773, 206-623-9204.  They offer
  1174. a product called SOURCE PRINT+, which they call a code
  1175. management tool with "multi-style formatting with structured
  1176. code blocking."  
  1177.  
  1178. They have a Fortran/Basic version for $169, and a Delux
  1179. Multi-language version for $249.  This program is for
  1180. DOS (MS-DOS presumably) Windows, and OS/2.
  1181.  
  1182. Hope this helps.
  1183.  
  1184. --
  1185. Dave Appel
  1186. The Grafted Branch BBS
  1187. 317-881-4369
  1188. internet: dappel@grafted.UUCP
  1189. uucp: ..!uunet!grafted.UUCP!dappel
  1190.     -= newsfeeds available, contact robert@towers.rn.com =-
  1191.  
  1192. Hindsight/Fortran
  1193.  
  1194.         Summary:
  1195.  
  1196.     Features include the ability to draw an interactive structure
  1197.     chart and display coverage, software complexity and
  1198.     performance information on the structure chart. There are also
  1199.     code tracing features, for instance 3 logic diagrams are
  1200.     produced. Common blocks can be traced through the structure
  1201.     charts, including specific variables within common blocks.
  1202.     Hindsight is excellent for documentation, code inspection, and
  1203.     bringing new software engineers up to speed on new code. 
  1204.  
  1205. For more information or a free demo copy, contact:
  1206.  
  1207. Dan Zimmerman,  National Account Manager
  1208. Advanced Software Automation, Inc.
  1209. 3130A Coronado Dr
  1210. Santa Clara, 95054
  1211.  
  1212. Phone: 408 492-1668  Fax: 408 492-1669
  1213.  
  1214. Email: zimme@hindsight.com 
  1215.  
  1216. Alternative contact (if Dan cannot be reached:
  1217.                 manny@hindsight.com (John Mansperger)
  1218.  
  1219.  
  1220. Hindsight/FORTRAN Version 1.0 features
  1221.  
  1222. Hindsight/FORTRAN Version 1.0 is a fully integrated software
  1223. maintenance, testing, and re-engineering environment which addresses
  1224. many problems of the software development cycle, from design to
  1225. maintenance.
  1226.  
  1227. Hindsight/FORTRAN Version 1.0 parses FORTRAN source code, decomposes
  1228. system structure, and from this analysis, produces a single database
  1229. from which all of Hindsight's charts, diagrams and reports are
  1230. produced.  The results of Hindsight's analysis is a detailed picture
  1231. of the static structure of the software system, a representation of
  1232. the common and local data, and connections to the dynamically
  1233. collected run-time data.  From this, Hindsight generates active
  1234. structure charts where the user can isolate logical subtrees to
  1235. analyze both the parents and the children of a selected function.
  1236. Hindsight collects and analyzes performance, complexity, and test
  1237. coverage data.  With the structure chart, the user can display this
  1238. data in a graphical and easy to use format.  From the structure chart,
  1239. the user can edit multiple functions at a time without having to
  1240. specify the file or directory path where the file exists.  Hindsight
  1241. even displays the use of common blocks on the structure chart.
  1242. Lastly, Hindsight generates logic diagrams for the entire program,
  1243. provides point-and-click tracing between high-level and detailed logic
  1244. with active line numbers, and generates over fifty detailed reports.
  1245.  
  1246. All capabilities mentioned above are integrated in a menu
  1247. driven environment utilizing the OpenLook or Motif Graphical User
  1248. Interface. Engineers only need to specify a list of source files to be
  1249. analyzed and select the operation and parameters for their purposes.
  1250. Hindsight provides the ability for multiple diagrams and reports to be
  1251. produced simultaneously during a single Hindsight session.
  1252.  
  1253. Hindsight/FORTRAN Version 1.0 provides an innovative technique to
  1254. graphically represent a software system. The structure chart reflects
  1255. the system structure, from which the user can get a clear overview of
  1256. the program being examined. Hindsight also allows the user to view or
  1257. edit the original code with a click on any subprogram box in the
  1258. structure chart.  A major time-saving advance is Hindsight's ability
  1259. to reanalyze an edited function and update the structural database
  1260. without reanalyzing the entire system.  The J-Diagram and ActionPlus
  1261. diagram are two graphical representations of the logic in a software
  1262. system and can contain a single module or the entire system.  Both
  1263. diagrams utilize the active line number technique to link high-level
  1264. module calls with detailed module logic.  Hindsight also actively
  1265. links computed GOTO statements with their destination labels by
  1266. clicking on the label.  Users can walk through programs and trace the
  1267. logic without having to memorize the directories and files where
  1268. subprograms are defined and called. This technique saves a great deal
  1269. of the users time.
  1270.  
  1271. Hindsight/FORTRAN Version 1.0 has many integrated automated tools to
  1272. generate documents either on-screen or on paper. Because the documents
  1273. are automatically generated, they can be updated as soon as engineers
  1274. have modified their source code.  This approach guarantees the
  1275. consistency between the design documents and the source code.  The
  1276. updated and correct documents will be of great value in maintaining
  1277. and improving software products.  These documents are available
  1278. on-line to the user and readily accessible through Hindsight's
  1279. interactive report mechanism.
  1280.  
  1281. Hindsight Version 1.0 has the ability to provide segment or line test
  1282. coverage data.  Hindsight generates test coverage data and displays
  1283. the data on the structure chart in a statistical way.  Hindsight can
  1284. also display the precise location of testing deficiencies on the
  1285. J-Diagram, which helps engineers find the exact part of the program
  1286. where the code has not been tested. Hindsight's ability to display
  1287. performance data, complexity metrics, and test coverage data on charts
  1288. and diagrams play an important role in controlling program quality.
  1289.  
  1290. Hindsight/FORTRAN Version 1.0 uses a new notation for the J-diagram
  1291. which accommodates branch test coverage capability.  The new notation
  1292. has a better and more precise method of showing control levels,
  1293. complexity, and segment number counting.  The branch test coverage
  1294. data generation and display is a great enhancement for test coverage
  1295. analysis.  Hindsight's branch test coverage is able to detect
  1296. invisible branches, finding more problems that would otherwise be
  1297. hidden in programs.  With this information, users can add test cases
  1298. for covering the untested code.
  1299.  
  1300. Hindsight/FORTRAN Version 1.0 contains the ability to speed up the
  1301. development process by generating a specific order for coding the
  1302. modules of a users system.  By analyzing a group of modules containing
  1303. nothing more than empty shells of subprograms that call the other
  1304. subprograms in the system, Hindsight generates the coding order for
  1305. the modules to ensure that the process will be testable with the use
  1306. of a single driver process and without the need to stub out uncoded
  1307. subprograms.  The bottom-up coding approach saves time that would be
  1308. wasted coding unneeded stubs.  As development proceeds, Hindsight's
  1309. ability to verify that calls to other subprograms are utilizing the
  1310. proper interface will also save time and improve program quality.
  1311.  
  1312. Other tools:
  1313.  
  1314.               Refine/FORTRAN  ("re-engineering tool")
  1315.         Reasoning Systems Inc
  1316.         415 494 6201
  1317.  
  1318.         FORM (graphical interface to toolpack)
  1319.         University of Kent 44 227 762811
  1320.  
  1321.  
  1322.         pub/fortran/fxref.tar.Z from biome.bio.ns.ca.
  1323.         create cross reference of a FORTRAN program.
  1324.  
  1325.         CLEAN77 available from Purdue University.
  1326.         Mail Greg Flint (afc.klaatu.cc.purdue.edu) for more info.
  1327.  
  1328.         There is a program called TIDY that is available via
  1329.         FTP from simtel20  pub/msdos/fortran/tidy621.zip on
  1330.         oak.oakland.edu 
  1331.  
  1332. Q13) Why are there aimless debates?
  1333.  
  1334.     There are some  persistent individuals who would like computer systems
  1335.     to work in a fashion somewhat unlike they do now. It seems pointless
  1336.     to debate with them; the debates (in various groups) always take
  1337.     the same form and never result in meaningful dialog.
  1338.  
  1339.     One can usually recognize such by reading a week or so's worth of
  1340.     postings. Sometimes you may have to read for a month to recognize
  1341.     such. When you do, please try to avoid triggering (or responding to)
  1342.     such individuals. 
  1343.  
  1344.     Many (if not most) newsreaders support a feature entitled KILL files.
  1345.     As you recognize individuals, you may wish to put them into your
  1346.     local kill file. For example, the style employed by GNUS:
  1347.  
  1348.     (gnus-kill "From" "hrubin@pop.stat.purdue.edu")
  1349.     (gnus-kill "Subject" "test")
  1350.  
  1351.     the first kills off all postings from the named individual,
  1352.     the second kills off all postings including the beloved "test" string.
  1353.     See your local NewsGod for details suitable for your local system.
  1354.     
  1355. Q14) How do I call f77 from C (and visa versa)
  1356.      This is quite platform dependent. For Suns see the FORTRAN User's
  1357.      Guide, Chapter 14.
  1358.  
  1359.     There is a package available from usenet which attempts to make
  1360.     this "quick and easy" for a wide range of platforms:
  1361.  
  1362.    ftp.uu.net   (137.39.1.9) Location: /comp.sources.misc/volume20
  1363.       DIRECTORY rwxr-xr-x       512  Jun 27  1991   cfortran
  1364.  
  1365.    It is on many other sites (around the world) too. See archie if
  1366.    you need other pointers.
  1367.  
  1368.    For some systems, you have to initialize a runtime system explicitly
  1369.    if you call a different language, and stopping execution from the
  1370.    other program may not work.
  1371.  
  1372.     The most recent version of cfortran.h is available via anon. ftp at
  1373.     zebra.desy.de.
  1374.  
  1375.  
  1376. Q15) What constitutes good FORTRAN style?
  1377.  
  1378. One rendition of a FORTRAN 77 style guide is available through anonymous
  1379. ftp from ics.uci.edu (128.195.1.1).  To retrieve (please note that it's
  1380. not really "anonymous", that's just the Name that you'll be using):
  1381.  
  1382. % ftp ics.uci.edu
  1383. anonymous
  1384. <enter your e-mail address at Password: prompt>
  1385. cd pub/levine
  1386. ascii
  1387. get F77_Style_Guide
  1388. bye
  1389.  
  1390. If you can't access this site directly, please send an e-mail request to
  1391. levine@ics.uci.edu (BITNET: levine@uci, UUCP: ...!uunet!ucivax!levine).
  1392.  
  1393. Q16) For whatever reasons, I want to translate my Fortran into C.
  1394.     What tools are available?
  1395.  
  1396.     f90 from NAG, see above
  1397.     f2c see above.
  1398.  
  1399.     FORTRAN=C=FORTRIX=Rapitech Rapitech (914) 368-3000
  1400.     FORTRAN=C=FOR_C=Cobalt Blue  404 518 1116
  1401.     FORTRAN=C=PROMULA.FORTRAN=Promula (614) 263-5512
  1402.  
  1403. Q17) For whatever reasons, I want to translate my existing C code
  1404.      into Fortran. What tools are available?
  1405.  
  1406. Regretably none. This is indeed unfortunate, as even a limited
  1407. translator could help with typical C header files.
  1408.  
  1409. Q18) What is preprocessing, how can it help? How can it hurt?
  1410.      
  1411. Preprocessing often refers to usage of a Macro-prepressor upon ones
  1412. source code prior to compilation. 
  1413.  
  1414.        How can this help?
  1415.  
  1416. It can make it easier to move code between machines.
  1417.  
  1418.        How can this hurt?
  1419.   
  1420. It can cause difficulties in compilation of the processed code; most (if
  1421. not all) macro-preprocessors know nothing about Fortran syntax and
  1422. code layout rules. So, a common problem is that after preprocessing
  1423. some text may be lost past "sacred" column 72. Those working with
  1424. compilers that optionally compile *past* line 72 should probably
  1425. employ that option when using a preprocessor.
  1426.  
  1427. Common prepressors are: cpp, m4, and ratfor. Many sites have their
  1428. own custom prepressors. Basic functions are:
  1429.  
  1430.     1) definition of a symbol
  1431.     2) conditional code selection based on a symbol
  1432.     3) substition of a symbol by its definition
  1433.  
  1434. Traditional BSD Unix f77 processors treat a file named foo.F (as
  1435. opposed to foo.f) as one that should be run through cpp prior to
  1436. compilation "automatically".
  1437.  
  1438. Q19) How can I convert an existing FORTRAN 77 program to the free form
  1439.      source of Fortran 90?
  1440.  
  1441. Source code conversion program from ftp
  1442. ---------------------------------------
  1443.  
  1444.    Many people who start to code in Fortran 90 prefer to do so
  1445. using the new, less restictive, source form. However, a problem
  1446. arises when wanting to modify old FORTRAN 77 code while sticking
  1447. to the new style. To help in this situation, a source code conversion
  1448. program has been written (and well tested) and made availble by
  1449. anonymous ftp.
  1450.  
  1451.    Apart from the conversion, the program can:
  1452.  
  1453.        ensure that blanks are used correctly in the code as they are
  1454.        significant with the new source form;
  1455.  
  1456.        indent DO-loops and IF-blocks;
  1457.  
  1458.        replace CONTINUE by END DO, where appropriate;
  1459.  
  1460.        add subprogram names to END statements;
  1461.  
  1462.        change non-standard length specification syntax,
  1463.        like INTEGER*2, to the
  1464.        Fortran 90 equivalent, in all contexts (type statements, FUNCTION
  1465.        statements, and IMPLICIT statements);
  1466.  
  1467.        produce an interface block automatically from the source code of a
  1468.        procedure - useful to the library developer when wishing to use
  1469.        this important new facility with an existing library.
  1470.  
  1471.    The source code can be obtained by anonymous ftp to
  1472. jkr.cc.rl.ac.uk (130.246.8.23). When prompted for a userid, reply with
  1473.  
  1474.    anonymous
  1475.  
  1476. and give your name as password. The directory is /pub/MandR
  1477. and the file name is convert.f90.
  1478.  
  1479.  
  1480.                            Mike Metcalf
  1481.                            (metcalf@cernvm.cern.ch)
  1482.  
  1483.  
  1484. Q20) Who creates these silly standards anyway?
  1485.  
  1486. Typically X3J3. X3J3 is an ANSI subcommittee dedicated to Fortran. WG5
  1487. is the ISO counterpart. WG5 owns responsibility for Fortran on an
  1488. international basis. WG5 has previously tasked X3J3 to do the work.
  1489. This arrangement continues.
  1490.  
  1491. WG5 is composed of Fortran users, vendors, and academics from several
  1492. ISO supporting nations. Delegates represent *their*countries* not
  1493. their companies; so several delegates from a single company is
  1494. permitted. 
  1495.  
  1496. ANSI rules prohibit multiple voting delegates from the same company.
  1497. X3J3 is composed of users (aerospace, government labs, military, DECUS,
  1498. railroads, oil to name a few), vendors (IBM, CRI, Sun, Convex, DEC,
  1499. UNISYS, to name a few) and the odd academic (oxford, yale, liverpool, to
  1500. name a couple). Members need not be US citizens nor must their company
  1501. be US domiciled. Being a member of a standards group is typically
  1502. involves non-trivial work. To be effective, one should plan on at
  1503. least 8 weeks of time per year (those who are really doing the hard
  1504. work do far more). This time commitment is typically far more
  1505. expensive than the travel and membership costs.
  1506.  
  1507. X3J3 meetings are open to the public. There are typically 4 meetings a
  1508. year, typically 3 are in the US and 1 *may* be overseas (to precede or
  1509. follow the WG5 plenary session). Membership fees are levied by ANSI,
  1510. and are on the near order of $400 (plus an extra $300ish for those who
  1511. wish to be members of the US delegation to ISO). In addition,
  1512. attendees to a particular X3J3 meeting pay a "meeting fee" which
  1513. covers reproduction costs, snacks and etc.
  1514.  
  1515. WG5 has established various goals and targets for future work. Roughly
  1516. speaking 5yrs rather than 13years are the targets for future work.
  1517.  
  1518. Current work projects include cleanup and interpretations of Fortran
  1519. (90), features for future versions of the standard (e.g. parallel
  1520. processing, "object-oriented" technologies, etc.). In addition to work
  1521. done directly by X3J3, there is work on standardized modules, and OS
  1522. bindings taking place in other organizations. X3J3 would like to keep
  1523. track of such efforts, those involved are invited to inform X3J3 early
  1524. in their development efforts if possible. X3J3 is currently working
  1525. with X3H5, DIN (varying string character) and tracking the efforts of
  1526. HPFF. 
  1527.  
  1528. New members are always welcome. Visitors are also; though it is very
  1529. hard to get a good grip on things in only one meeting!
  1530.  
  1531. Contact the X3J3 chair or vice-chair for more information:
  1532.  
  1533.     jwagener@trc.amoco.com   chair
  1534.     mbsh@holstein.fc.hp.com  vice-chair
  1535.  
  1536. Upcoming meetings are:
  1537.  
  1538.      9 Nov - 13 Nov  New Haven (Yale)
  1539.      8 Feb - 12 Feb  Ft. Lauderdale (Harris)
  1540.  
  1541. Q21) How can I read my VAX binary data somewhere else?
  1542.  
  1543.      Some vendors provide bulit in methods (DEC provides this via
  1544.      special options on the OPEN statement). Others provide library support 
  1545.      (on SPARC products, with the SunPro compilers, checkout convert_external)
  1546.      In addition, Accerl8 provides a commerial tool. Contact:
  1547.  
  1548.     Robert Hickler                            Tel   (303) 863-8088
  1549.     Accelr8 Technology                        Email robert@accelr8.com
  1550.  
  1551.      for more information.
  1552.  
  1553. The following three Q's and A's based on email from:
  1554.     ecmtwhk@ccu1.aukuni.ac.nz (Thomas Koenig) 
  1555.  
  1556. Q22) My F77 program compiled ok on a <system1>, but gives me heaps of
  1557.      syntax errors on a <system2>. What's wrong?
  1558.  
  1559.      Most likely, the program was written with a line length greater than
  1560.      72. If your compiler supports it, turn on the option for greater
  1561.      line length (e.g. -e is not uncommon) ; otherwise, split up the
  1562.      lines by hand, or via one of those pretty-printers/restructing
  1563.      tools mentioned above.
  1564.  
  1565. Q23) My F77 program ran ok on a <system1>, but on a <system2> it just gives
  1566.      me strange results. What's wrong?
  1567.  
  1568.      There are different reasons why this could be. Possibly, your program
  1569.      violates the standard in some way which is not caught by the compiler
  1570.      on <system1>.
  1571.      
  1572.      Many programs rely on variables to be initialized to zero when a
  1573.      subroutine or function is first called, and also on the retention
  1574.      of values between calls. While many compilers (VAX/VMX and IBM VS,
  1575.      for example) exhibit this behaviour, compilers on newer
  1576.      architectures often fill variables with garbage on each new
  1577.      function call. This is permitted, according to the standard.
  1578.  
  1579.      Initialize variables explicitly, and put the variables which you need
  1580.      to keep across function calls into SAVE statements. Your compiler may
  1581.      have an option to trap unititialized variables; use that to find the
  1582.      trouble spots. Alternatively, compile using a flag which forces
  1583.      static allocation of all variables.
  1584.  
  1585.      Another problem might be that the accuracy of REAL and DOUBLE
  1586.      PRECISION differs between different platforms; that can cause
  1587.      roundoff error to wipe out your results or your program to go
  1588.      into endless loops.
  1589.  
  1590.      Yet another (and much more subtle) problem can occur if a lot of
  1591.      formatted I/O is employed. The conversion from internal to
  1592.      external representations can introduce very significant errors;
  1593.      much worse on some platforms than others (doing correctly rounded
  1594.      base conversion is expensive). 
  1595.  
  1596.      There are, of course, lots of other possibilities, these are just
  1597.      a starting point.
  1598.  
  1599. Q24) Is there a WEB for Fortran (and what is web anyway)?
  1600.  
  1601.      fweb is available via anonymous ftp; use archie(above) to
  1602.      determine current location(s).
  1603.  
  1604.      As for the more general question, what is WEB .... WEB is a
  1605.      "literate" programming system created by Knuth (he of reference
  1606.      book fame, and TeX fame, and etc.). It permits the programmer to
  1607.      write code and documentation together. WEB takes the "high level
  1608.      code and documentation" and creates real publishable
  1609.      documentation (using TeX or LaTeX) and compilable code. WEB
  1610.      versions for many languages are available.
  1611.  
  1612. Q25) Where can I find coded BLAS (and what are coded BLAS?)
  1613.  
  1614. The BLAS (basic linear algebra software) comes in several flavors:
  1615. BLAS-1, -2, and -3. These can be described as scalar, vector and
  1616. matrix-matrix levels. "Coded" BLAS are either hand coded in assembler,
  1617. or at least tweaked for a given machine. Some vendors provide these,
  1618. some are provided on the net (see archie) and some are marketed by
  1619. various commercial organizations. 
  1620.  
  1621. In addition, it should be noted that BLAS-3 is very amenable to
  1622. parallel processing. Done cleverly, this could be done by a network of
  1623. processors over a net. DSS markets just such an implementation. Contact:
  1624.  
  1625.      Mike Boucher
  1626.     Dakota Scientific Software, Inc.
  1627.     501 East Saint Joseph Street
  1628.     Rapid City, SD  57701-3995
  1629.     fax: (605) 394-1256
  1630.     scisoft@well.sf.ca.us
  1631.  
  1632. for more information about their implementation.
  1633.  
  1634. Q26)  How common is DO ... END DO
  1635.  
  1636.       It is very common; and of course is part of Fortran 90.
  1637.       Compilers claimed to *not* support it (much shorter list this
  1638.       way)
  1639.  
  1640.               1) Salford ftn77/Primos version
  1641.         2) Prime f77 compiler
  1642.         3) Microsoft Fortran for CP/M 8080/Z80 machines    
  1643.         4) Fujitsu VPxxx UXP/M compiler
  1644.  
  1645.       
  1646. Q27) Where can I learn more about the history of Fortran?
  1647. From: metcalf@apofort.cern.ch (Michael Metcalf )
  1648. The history of Fortran is documented in:        
  1649.  
  1650. Annals of History of Computing, 6, 1, January, 1984 (whole issue).
  1651.  
  1652. Programming Systems and Languages (S. Rosen ed.), McGraw Hill, 1967, pp 29-47
  1653.     (this is Backus's original paper).        
  1654.  
  1655. History of Prorammining Languages (R.L. Wexelblat ed.), Academic Press, 1981,
  1656.               pp 25-74.    
  1657.  
  1658. A summary appears in vol. 5 of the Encyclopedia of Science and Technology,
  1659. Academic Press, 1986, under 'Fortran'. 
  1660. and in Chapter 1 of Fortran 90 Explained (Oxford, 1990).
  1661.  
  1662. Q28) Fortran text editors?
  1663.  
  1664. Thomas Koenig, ig25@rz.uni-karlsruhe.de, ig25@dkauni2.bitnet
  1665.       If you use EMACS, you can use M-x fortran-mode.  An extended
  1666.       version, which includes the fortran-auto-fill-mode minor mode, is
  1667.       available via anonymous ftp from hallc1.cebaf.gov [129.57.32.62]
  1668.       in the directory /emacs.
  1669.  
  1670. More generally, Unipress emacs has a Fortran mode. There are XEDIT,
  1671. BRIEF, TPU and EDT clones available on many common platforms these
  1672. days. 
  1673.  
  1674. Q29) What are ENCODE and DECODE statements, and how are they translated to
  1675.      standard Fortran?
  1676.  
  1677. ENCODE and DECODE are vendor extensions to Fortran (invented in the
  1678. sixties, long before X3.9-1978 added internal I/O to the language)
  1679. which are most often used to convert data between numeric and
  1680. character representations.  They may be viewed as formatted writes to
  1681. (ENCODE) or reads from (DECODE) memory.  The standard-conforming
  1682. alternatives are internal write and internal read statements
  1683. respectively.
  1684.  
  1685. For example,
  1686.      INTEGER MONTH, DAY, YEAR
  1687.      MONTH = 7
  1688.      DAY = 4
  1689.      YEAR = 93
  1690. C    FORM THE STRING  7/ 4/93 IN VARIABLE "DATE"
  1691.      ENCODE (8,10,DATE) MONTH,DAY,YEAR
  1692.  10  FORMAT (I2,'/',I2,'/',I2)
  1693.  
  1694. The above can be translated as "write 8 characters, formatted according to
  1695. format 10, storing the results in variable DATE, and using the contents of
  1696. variables MONTH, DAY, and YEAR as the data to write."
  1697.  
  1698. A DECODE statement would be used to reverse the process (extract the
  1699. variables MONTH2, DAY2, and YEAR2 from the string DATE).  Thus:
  1700.  
  1701.      INTEGER MONTH2, DAY2, YEAR2
  1702.      DECODE (8,20,DATE) MONTH2, DAY2, YEAR2
  1703.  20  FORMAT (I2,1X,I2,1X,I2)
  1704.  
  1705. Conversion of ENCODE/DECODE to standard Fortran-77 is not difficult.  The
  1706. critical thing to remember is that the variable to be written to (ENCODE)
  1707. or read from (DECODE) must be a CHARACTER variable which is long enough to
  1708. contain the string.  The first number within the parentheses (in this case
  1709. 8) is the minimum length to use in a type declaration.  Thus a standard-
  1710. conforming equivalent of the above example is:
  1711.  
  1712.      CHARACTER*8 DATE
  1713.      INTEGER MONTH, DAY, YEAR
  1714.      INTEGER MONTH2, DAY2, YEAR2
  1715.      MONTH = 7
  1716.      DAY = 4
  1717.      YEAR = 93
  1718.      WRITE (DATE,10) MONTH, DAY, YEAR
  1719.  10  FORMAT (I2,'/',I2,'/',I2)
  1720.      READ (DATE,20) MONTH2, DAY2, YEAR2
  1721.  20  FORMAT (I2,1X,I2,1X,I2)
  1722.  
  1723. Although the above example used integers, any other data type may also be
  1724. used.
  1725.  
  1726. <forags@nature.berkeley.edu (Al Stangenberger)>
  1727.  
  1728. Q30) Tell me about Parallel Fortran dialects, what are they,etc.
  1729.  
  1730. Newsgroups: comp.lang.fortran,comp.parallel.pvm
  1731. From: lfm@pgroup.com (Larry Meadows)
  1732. Subject: Re: Parallel FORTRAN Questions
  1733. Date: Fri, 20 Aug 1993 00:13:33 GMT
  1734. Nntp-Posting-Host: pacific2.pgroup.com
  1735. Organization: The Portland Group
  1736.  
  1737. spencer@glint.mcc.com (Steve Spencer) writes:
  1738.  
  1739. >We are trying to decide what parallel FORTRAN environment
  1740. >to port to a MIMD multiprocessor that we are building 
  1741. >for ARPA. We are looking for information on the follwing
  1742. >environments:
  1743.  
  1744. >    FORTRAN90
  1745. >        HPF (High Performance FORTRAN from Rice U. I think)
  1746. >    FORTRAN D
  1747. >        PVM (works with F77 to provide a parallel env.)
  1748.  
  1749. >Does anyone know where we can get information on the 
  1750. >above programming environments or any others that may
  1751. >be appropriate?
  1752.  
  1753. Fortran90 is an ANSI and an ISO standard.  The usual reference is
  1754. Fortran 90 Handbook, published by McGraw Hill.  Several vendors provide
  1755. Fortran 90 translators and/or compilers.
  1756.  
  1757. HPF is Fortran 90 augmented with data distribution statements to
  1758. allow portable programming for distributed memory multiprocessors.
  1759. The language was defined by a committee consisting of over 40
  1760. organizations over a period of about one year.  The effort was
  1761. spearheaded by Geoffrey Fox and Ken Kennedy.  Several vendors have
  1762. announced HPF products or development efforts.
  1763. The language document is available via anoymous ftp:
  1764.  
  1765.     ftp cs.rice.edu
  1766.     cd public/HPFF/draft
  1767.     get hpf-v10-final.ps.Z
  1768.  
  1769. Fortran D is a precursor to HPF; as a commercial product it has been
  1770. superceded by HPF, but several academic projects still exist that target
  1771. Fortran D.
  1772.  
  1773. PVM is a message passing library and run-time environment; as such, it
  1774. exists at a lower level than the previous items.  One might imagine an
  1775. HPF compiler that produced FORTRAN77 with calls to PVM.  There is a newsgroup
  1776. on PVM.  It is available through netlib, and possibly from Oak Ridge as
  1777. well.
  1778.  
  1779. Hope this helps.
  1780. --
  1781. Larry Meadows        The Portland Group
  1782. lfm@pgroup.com
  1783. --
  1784. ----------------------------------------------------------------
  1785. Keith H. Bierman    keith.bierman@Sun.COM| khb@chiba.Eng.Sun.COM
  1786. SunPro 2550 Garcia MTV 12-40             | (415 336 2648) fax 964 0946
  1787. Mountain View, CA 94043  <speaking for myself, not Sun*> Copyright 1993
  1788.  
  1789.