Tentative suggestions on the overall structure 
 of the guide by William B. Clodius
 **********************************************

   1 - Overview of Fortran
   1-1 Short history of Fortran
   1-2 Standard and non-standard Fortran
   1-3 Forbidden/esoteric/obsolete Fortran
   1-4 Comparison between Fortran and C (any other languages?)

   2- Overview of Programming
   2-1 General programming rules
   2-2 Program layout
   2-3 General Programming techniques
   2-4 Program input and output
   2-5 Recursion
   2-6 Debugging ...
   2-7 Code optimization

   3- Overview of Fortran Programming
   3-1 General programming rules?
   3-2 Fortran code layout
   3-3 (not ready yet) Syntax restrictions
   3-4 Fortran Pitfalls & debugging
   3-5 Fortran specific optimization
   3-4 FORTRAN/C interoperability

   4 - Fortran Data Types
   4-1 A Fortran specific problem
   4-2 Data types
   4-3 Constants
   4-4 Passing arrays to subprograms
   4-5 Variable size arrays
   4-6 Array Storage order
   4-7 Using strings and character arrays
   4-8 Dynamic memory allocation and pointers
   4-9 (not ready yet) Memory management

   5 - Fortran Program Structure
   5-1 Programs
   5-2 Procedures
   5-3 General argument passing semantics
   5-4 Intrinsic functions/Optimized libraries
   5-5 Modules
   5-6 DO and other loops
   5-7 IF and SELECT CASE
   5-8 (not ready yet) Parallel Fortran

   6 - Fortran I/O
   6-1 Logical units and files
   6-2 Formatted / List-directed / Unformatted I/O
   6-3 Using I/O formats
   6-4 Internal files - ASCII/BINARY conversion
   6-5 FORTRAN carriage control
   6-6 (not ready yet) VMS I/O

   7 - The environment ...



 General and particular suggestions by Clive G. Page
 ***************************************************

 General remarks:

   1) More references to Unix generally, and to the 
      use of Fortran on PCs.

   2) Updating to cope with Fortran90 - or at least 
      comments added making clear which sections 
      apply to which version.

 General areas where additions are needed:

   o  Reference to Solaris (since SunOs is now obsolescent)
   o  Reference to Linux and g77 (available free for PCs and 
      perhaps soon Alphas as well)
   o  System access routines (often subject of Usenet questions)
      e.g. Posix 1003.9
   o  libU77 for g77 (written by Dave Love of Daresbury Lab)

 Possible extra programming topics:

   o  Block data units (only f77)
   o  Treatment of the backslash '\'
   o  Error and exception handling (e.g. inherited status 
      convention)
   o  How to use f90 modules

 Possible omissions:

   o  Perhaps some of the sections on file formats, FTP, 
      etc which are not very specific to Fortran programmers? 

 Possible additions:


   o  How to convert archaic Fortran.

      A lot of what is now called "legacy"  code is still 
      useful but it uses things like REAL*4, Q format, 
      ENCODE/DECODE, %val, READ and TYPE statements, etc.  

      It would be useful to collect together in one place
      hints on what to do about all the features of earlier 
      proprietary Fortrans which did not make it into the 
      Fortran90 Standard.  

      Much of this information is already in the Guide, 
      but it would be nice to have it collected into 
      one area, and made more comprehensive.  

   o  The second area where people often have problems is 
      in calling various "system" routines (get command-line 
      arguments, rename file, get date/time, put string on 
      screen in specified row/column, etc.).

      I have started a compilation of these routines, which 
      are unfortunately very system-dependent.  But there 
      are solutions for most Unix systems, including Linux, 
      for g77, for systems with Posix 1003.9 implemented, 
      and for many other compilers.  

      If my compilation reaches a critical mass, it might 
      make a useful section of the Guide.  You already 
      have some of these things in it, but again a 
      comprehensive collection would be invaluable to
      practicing programmers.



 From the book by A. Colin Day
 *****************************

   Flags
   Table translation
   Buffers
   Sparse vectors and matrices
   Hashing, hash tables
   Identifying words in text
   Stacks
   Recursion
   Queues (implemented by a circular buffer!), 
          double-ended queues, chained lists, 
          doubly chained lists
   Basic sorting
   Symbol-state tables (finite automata - a matrix indexed
                        by current state and input data, 
                        gives the next state, can call 
                        "action routines".
 



                 *Send your comments* 


Return to contents page