Introducing Fortran 90 - Brossura

Chivers, Ian D.

 
9783540199403: Introducing Fortran 90

Sinossi

This book provides a comprehensive introduction to Fortran 90 - the language most frequently chosen by scientists, engineers and mathematicians. Fortran 90 is considered by many to be the only practical language with sensible constructs for parallel computation - an area of increasing importance in computer science. The authors provide coverage of a recommended subset of the full Fortran 90 language, chosen because it fits most closely with the theory and practice of structured programming, data structures and software engineering. Complete beginners with little or no knowledge of programming, as well as existing users of Fortran 77 who are looking to move to Fortran 90, will find the book invaluable. Lots of clear and simple examples are used to highlight the language features. Introducing Fortran 90 will be welcomed by 2nd-, 3rd-, and 4th-year science and engineering undergraduates and postgraduates.

Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.

Contenuti

1 Overview.- 2 Introduction to Computer Systems.- 2.1 The components of a computer system.- 2.2 Software.- 2.3 Problems.- 2.4 Bibliography.- 3 Introduction to Operating Systems.- 3.1 History of Operating Systems.- 3.1.1 The 1940s.- 3.1.2 The 1950s.- 3.1.3 The 1960s.- 3.1.4 The 1960s and 1970s.- 3.1.5 The 1970s and 1980s.- 3.2 Networking.- 3.3 Problems.- 3.4 Bibliography.- 4 Introduction to Using a Computer System.- 4.1 Files.- 4.2 Editors.- 4.3 Stand Alone Systems.- 4.4 Networked Systems.- 4.5 Multi-User Systems.- 4.6 Other Useful Things to Know.- 4.7 Bibliography.- 5 Introduction to Problem Solving.- 5.1 Natural Language.- 5.2 Artificial Language.- 5.2.1 Notations.- 5.3 Resume.- 5.4 Algorithms.- 5.4.1 Top Down.- 5.4.2 Bottom up.- 5.4.3 Stepwise Refinement.- 5.5 Systems Analysis and Design.- 5.5.1 Problem Definition.- 5.5.2 Feasibility Study and Fact Finding.- 5.5.3 Analysis.- 5.5.4 Design.- 5.5.5 Detailed Design.- 5.5.6 Implementation.- 5.5.7 Evaluation and testing.- 5.5.8 Maintenance.- 5.6 Conclusions.- 5.7 Problems.- 5.8 Bibliography.- 6 Introduction to Programming Languages.- 6.1 Some Early Theoretical Work.- 6.2 What is a programming language.- 6.3 Program Language Development and Engineering.- 6.4 The Early Days.- 6.4.1 Fortran.- 6.4.2 Cobol.- 6.4.3 Algol.- 6.5 Chomsky and Program Language Development.- 6.6 Lisp.- 6.7 Snobol.- 6.8 Second Generation Languages.- 6.8.1 PL/1 and Algol 68.- 6.8.2 Simula.- 6.8.3 Pascal.- 6.8.4 APL.- 6.8.5 Basic.- 6.8.6 C.- 6.9 Some Other Strands in Language Development.- 6.9.1 Abstraction, Stepwise Refinement and Modules.- 6.9.2 Structured Programming.- 6.9.3 Standardisation.- 6.10 Ada.- 6.11 Modula.- 6.12 Modula.- 6.13 Other Language Developments.- 6.13.1 Logo.- 6.13.2 Postscript, TeX and LaTeX.- 6.13.3 Prolog.- 6.13.4 SQL.- 6.13.5 ICON.- 6.14 Object Orientated Programming — OOP.- 6.14.1 Oberon and Oberon.- 6.14.2 Smalltalk.- 6.14.3 C.- 6.15 Fortran.- 6.16 The Future and Further Sources.- 6.16.1 Fortran 1996.- 6.16.2 High Performance Fortran — HPF.- 6.16.3 Network Sources.- 6.17 Summary.- 6.18 Bibliography.- 7 Introduction to Programming.- 7.1 Elements of a programming language.- 7.2 Variables — name, type and value.- 7.3 Notes.- 7.4 Some more Fortran rules.- 7.5 Good Programming Guidelines.- 7.6 Fortran Character set.- 7.6.1 Notes.- 7.7 Problems.- 8 Introduction to Arithmetic.- 8.1 Rounding and truncation.- 8.2 Example 1: Time taken for light to travel from the Sun to Earth.- 8.3 The PARAMETER statement.- 8.4 Precision and size of numbers.- 8.5 Health Warning: Optional Reading, Beginners are Advised to Leave until Later.- 8.5.1 Selecting different INTEGER Kinds.- 8.5.2 Selecting different REAL Kinds.- 8.5.3 Specifying Kind Types for Literal Integer and Real Constants.- 8.5.4 Positional Number Systems.- 8.5.5 Bit Data Type and Representation Model.- 8.5.6 Integer Data Type and Representation Model.- 8.5.7 Real Data Type and Representation Model.- 8.5.8 IEEE 754.- 8.5.9 Example 2: Testing the numerical representation of different kind types on a system.- 8.5.10 Example 3: Binary Representation of Different Integer Kind Type Numbers.- 8.5.11 Summary of how to select the appropriate KIND type.- 8.6 Summary.- 8.7 Problems.- 8.8 Bibliography.- 9 Arrays 1: Some Fundamentals.- 9.1 Tables of data.- 9.1.1 Telephone directory.- 9.1.2 Book catalogue.- 9.1.3 Examination marks or results.- 9.1.4 Monthly rainfall.- 9.2 Arrays in Fortran.- 9.3 The DIMENSION Attribute.- 9.4 An index.- 9.5 Control structure.- 9.6 Monthly Rainfall.- 9.6.1 Example 1: Rainfall.- 9.7 People’s Weights.- 9.7.1 Example 2: People’s Weights.- 9.8 Summary.- 9.9 Problems.- 10 Arrays 2: Further Examples.- 10.1 Higher dimension arrays.- 10.1.1 Example 1: A Map.- 10.1.2 Example 2: Booking arrangements in a theatre or cinema.- 10.2 Additional forms of the DIMENSION attribute and DO loop statement.- 10.2.1 Example 3: Voltage from-20 to+20 volts.- 10.2.2 Example 4: Longitude from-180 to +180.- 10.2.3 Notes.- 10.3 The DO loop and straight repetition.- 10.3.1 Example 5: Table of Temperatures.- 10.3.2 Example 6: Means and Standard Deviations.- 10.4 Summary.- 10.5 Problems.- 11 Arrays 3: Further Examples.- 11.1 Terminology.- 11.1.1 Rank.- 11.1.2 Bounds.- 11.1.3 Extent.- 11.1.4 Size.- 11.1.5 Shape.- 11.1.6 Conformable.- 11.2 Whole array manipulation.- 11.2.1 Assignment.- 11.2.2 Expressions.- 11.3 Array Sections.- 11.3.1 Example 1: Ages.- 11.3.2 Example 2: Examination Results.- 11.4 Allocatable Arrays.- 11.4.1 Example 3: Height Above Sea Level.- 11.5 Array Element Ordering.- 11.5.1 Array Element Ordering and Physical and Virtual Memory.- 11.6 Array Constructors.- 11.7 Masked Array Assignment and the WHERE Statement.- 11.7.1 Notes.- 11.8 Summary.- 11.9 Problems.- 12 Output.- 12.1 Integers, I format.- 12.2 Reals, F format.- 12.3 Reals, E format.- 12.4 Spaces.- 12.5 Alphanumeric or character format, A.- 12.6 Common mistakes.- 12.7 OPEN (and CLOSE).- 12.7.1 The OPEN statement.- 12.7.2 Writing.- 12.8 Repetition.- 12.9 Some more examples.- 12.10 Implied DO loops.- 12.11 Formatting for a line-printer.- 12.11.1 Mechanics of carriage control.- 12.11.2 Generating a new line, on both line-printers and terminals.- 12.12 Summary.- 12.13 Problems.- 13 Reading in Data.- 13.1 Fixed fields on input.- 13.1.1 Integers, the I format.- 13.1.2 Reals, the F and E formats.- 13.2 Blanks, nulls and zeros.- 13.3 Characters.- 13.4 Skipping spaces and lines.- 13.5 Reading.- 13.6 File manipulation again.- 13.7 Errors when reading.- 13.8 Summary.- 13.9 Problems.- 14 Functions.- 14.1 An Introduction to Predefined Functions and Their Use.- 14.1.1 Example 1: Simple function usage.- 14.2 Generic Functions.- 14.2.1 Example 2: The ABS Generic function.- 14.3 Elemental Functions.- 14.3.1 Example 3: Elemental Function Use.- 14.4 Transformational Functions.- 14.4.1 Example 4: Simple Transformational Use.- 14.4.2 Example 5: Intrinsic DOT_PRODUCT use.- 14.5 Notes on Function Usage.- 14.6 Example 6: Easter.- 14.7 Complete List of Predefined Functions.- 14.7.1 Inquiry Functions.- 14.7.2 Transfer and Conversion Functions.- 14.7.3 Computational Functions.- 14.7.4 Array Functions.- 14.7.5 Pre-Defined Subroutines.- 14.8 Supplying your own functions.- 14.8.1 Example 7: Simple User Defined Function.- 14.9 An Introduction to the Scope of Variables and Local Variables.- 14.10 Recursive Functions.- 14.10.1 Example 8: Recursive Factorial Evaluation.- 14.11 Example 9: Recursive version of GCD.- 14.12 Example 10: After Removing Recursion.- 14.13 Internal functions.- 14.13.1 Example 11: Stirling’s Approximation.- 14.14 Resume.- 14.15 Function Syntax.- 14.16 Rules and Restrictions.- 14.17 Problems.- 14.18 Bibliography.- 14.18.1 Recursion and Problem Solving.- 15 Control Structures.- 15.1 Selection between courses of action.- 15.1.1 The BLOCK IF statement.- 15.1.2 Example 1: Quadratic Roots.- 15.1.3 Note.- 15.1.4 Example 2: Date calculation.- 15.1.5 The CASE Statement.- 15.1.6 Example 3: Simple calculator.- 15.1.7 Example 4: Counting Vowels, Consonants, etc.- 15.2 The three forms of the DO statement.- 15.2.1 Example 5: Sentinel Usage.- 15.2.2 CYCLE and EXIT.- 15.2.3 Example 6: e**x Evaluation.- 15.2.4 Example 7: Wave Breaking on an Offshore Reef.- 15.3 Summary.- 15.4 Problems.- 15.5 Bibliography.- 16 Character.- 16.1 Character Input.- 16.2 Character Operators.- 16.3 Character Sub-Strings.- 16.4 Character functions.- 16.5 Summary.- 16.6 Problems.- 17 Complex.- 17.1 Example.- 17.2 Complex and Kind Type.- 17.3 Summary.- 17.4 Problems.- 18 Logical.- 18.1 I/O.- 18.2 Summary.- 18.3 Problems.- 19 User Defined Types.- 19.1 Example 1 — Dates.- 19.2 Type Definition.- 19.3 Variable Definition.- 19.4 Example 2 — Address lists.- 19.5 Example 3: Nested User Defined Types.- 19.6 Problems.- 19.7 Bibliography.- 20 Dynamic Data Structures.- 20.1 Example 1: Simple Pointer Concepts.- 20.2 Example 2: Singly linked list.- 20.3 Other Dynamic Data Structures.- 20.4 Trees.- 20.4.1 Example 3: Perfectly Balanced Tree.- 20.5 Using Linked Lists for Sparse Matrix Problems.- 20.5.1 Inner Product of two Sparse Vectors.- 20.6 Data Structures Summary.- 20.7 Problems.- 20.8 Bibliography.- 21 Files.- 21.1 Files in Fortran.- 21.2 Summary of options on OPEN.- 21.3 More fool proof i/o.- 21.4 Summary.- 21.5 Problems.- 22 An Introduction to Subroutines.- 22.1 Simple Subroutine Example.- 22.2 Defining a subroutine.- 22.3 Referencing a subroutine.- 22.4 Dummy Arguments or Parameters, and Actual Arguments.- 22.5 Interface.- 22.6 Intent.- 22.7 Local Variables.- 22.7.1 Local Variables and the SAVE attribute.- 22.8 Scope of Variables.- 22.9 Status of the Action Carried out in the Subroutine.- 22.10 Why Bother.- 22.11 Summary.- 22.12 Problems.- 23 Subroutines.- 23.1 Example 1: Introduction to Arrays as Parameters.- 23.1.1 Explicit Shape Dummy Arrays.- 23.2 Example 2: Characters as parameters and assumed length dummy arguments.- 23.3 Example 3: Using Hoare’s Quick Sort Algorithm.- 23.3.1 Note 2 — Intent Attribute.- 23.3.2 Note 3 — Explicit shape dummy array.- 23.3.3 Note 4 — Assumed Length Dummy Argument.- 23.3.4 Note 5 — Recursive Subroutine.- 23.3.5 Note 6 — Internal Subroutines and Scope.- 23.3.6 Note 7 — Flexible Design.- 23.4 Example 4: Rank two and higher arrays as parameters.- 23.4.1 Assumed Shape Arrays.- 23.5 Summary.- 23.6 Problems.- 23.7 Bibliography.- 24 An Introduction to Modules.- 24.1 Modules for global data.- 24.1.1 Example 1: Modules for Precision Specification and Constant Definition.- 24.1.2 Note.- 24.1.3 Example 2: Constant Definition and Array Definition.- 24.2 Modules for derived data types.- 24.2.1 Example 3: Person Data Type.- 24.3 Modules for explicit procedures interfaces.- 24.3.1 Example: Using Quicksort.- 24.4 Modules containing procedures.- 24.5 Example 4 — The Solution of Linear Equations Using Gaussian Elimination.- 24.5.1 Notes.- 24.6 Notes on Module Usage and Compilation.- 24.7 Summary.- 24.8 Problems.- 24.9 Bibliography.- 25 Formal Syntax and Some Additional Features.- 25.1 Program Units.- 25.2 Procedure — Function or Subroutine.- 25.2.1 Internal Procedure.- 25.3 Module.- 25.4 Executable Statements.- 25.5 Statement Ordering.- 25.6 Entities.- 25.7 Scope and Association.- 25.8 Modules and Scope.- 25.8.1 Public and Private Attributes.- 25.8.2 USE, ONLY and Rename.- 25.9 Keyword and Optional Arguments.- 25.10 Syntax Summary of Some Frequently used Fortran Constructs.- 25.10.1 Main Program.- 25.10.2 Subprogram.- 25.10.3 Module.- 25.10.4 Internal Procedure.- 25.10.5 Procedure heading.- 25.10.6 Procedure ending.- 25.10.7 Specification construct.- 25.10.8 Derived Type definition.- 25.10.9 Interface block.- 25.10.10 Specification statement.- 25.10.11 Type specification.- 25.10.12 Attribute Specification.- 25.10.13 Executable construct.- 25.10.14 Action statement.- 26 Case Studies.- 26.1 Example 1 — Solving a System of First Order Ordinary Differential Equations using Runge-Kutta-Merson.- 26.1.1 Note: Alternative form of the Allocate statement.- 26.1.2 Note: Automatic arrays.- 26.1.3 Note: Dummy Procedure Arguments.- 26.2 Example 2 — Generic Procedures.- 26.3 Example 3 — A Function that returns a variable length array.- 26.4 Example 4 — Operator and Assignment Overloading.- 26.5 Example 5: A Subroutine to Extract the Diagonal Elements of a Matrix.- 26.6 Modules and Packaging.- 26.7 Problems.- 26.8 Bibliography.- 27 Converting from Fortran 77.- 27.1 Deleted Features.- 27.2 Obsolescent Features.- 27.2.1 Arithmetic IF.- 27.2.2 Real and Double precision DO Control Variables.- 27.2.3 Shared DO termination and non ENDDO termination.- 27.2.4 Alternate RETURN.- 27.2.5 PAUSE Statement.- 27.2.6 ASSIGN and assigned GOTO statements.- 27.2.7 Assigned FORMAT statements.- 27.2.8 H Editing.- 27.3 Better Alternatives.- 28 Miscellanea.- 28.1 Program Development and Software Engineering.- 28.1.1 Modules.- 28.1.2 Programming Style — Programs should be Easy to Read.- 28.1.3 Programming Style — Programs should Behave Well.- 28.2 Data Structures.- 28.3 Algorithms.- 28.4 Recursion.- 28.5 Structured Programming and the GOTO Statement.- 28.6 Efficiency, space time trade off.- 28.7 Program Testing.- 28.8 Simple Debugging Techniques.- 28.9 Software Tools.- 28.9.1 Cross Referencing.- 28.9.2 Pretty print.- 28.9.3 NAGWare f90 Tools.- 28.10 Numerical Software Sources.- 28.11 Coda.- 28.12 Bibliography: All sources (bar one) taken from comp.software-eng.- 28.12.1 Software Engineering.- 28.12.2 Programming Style.- 28.12.3 Software Testing.- 28.12.4 Fun.- Appendix A, Sample Program Examples.- Appendix B, ASCII Character Set.- Appendix C, Intrinsic Functions and Procedures.- Appendix D, English and Latin Texts.- Appendix E, Coded Text Extracts.- Appendix F, NAG.- Appendix G, Annex D, ISO/IEC 1539: 1991 (E).

Product Description

Brossura Editoriale Di Pp. 375. Opera In Buonissime Condizioni. Spedizione In 24 Ore Dalla Conferma Dell'Ordine. Worldwide Delivery

Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.

Altre edizioni note dello stesso titolo

9781447130321: Introducing Fortran 90

Edizione in evidenza

ISBN 10:  1447130324 ISBN 13:  9781447130321
Casa editrice: Springer My Copy UK, 1995
Brossura