Skip to main content Accessibility help
×
Home
Modern Fortran
  • Cited by 4
  • Export citation
  • Recommend to librarian
  • Buy the print book

Book description

Fortran is one of the oldest high-level languages and remains the premier language for writing code for science and engineering applications. This book is for anyone who uses Fortran, from the novice learner to the advanced expert. It describes best practices for programmers, scientists, engineers, computer scientists and researchers who want to apply good style and incorporate rigorous usage in their own Fortran code or to establish guidelines for a team project. The presentation concentrates primarily on the characteristics of Fortran 2003, while also describing methods in Fortran 90/95 and valuable new features in Fortran 2008. The authors draw on more than a half century of experience writing production Fortran code to present clear succinct guidelines on formatting, naming, documenting, programming and packaging conventions and various programming paradigms such as parallel processing (including OpenMP, MPI and coarrays), OOP, generic programming and C language interoperability.

Refine List

Actions for selected content:

Select all | Deselect all
  • View selected items
  • Export citations
  • Download PDF (zip)
  • Save to Kindle
  • Save to Dropbox
  • Save to Google Drive

Save Search

You can save your searches here and later view and run them again in "My saved searches".

Please provide a title, maximum of 40 characters.
×

Contents

Bibliography
[1] Adams, Jeanne C., Brainerd, Walter S., Hendrickson, Richard A., Maine, Richard E., Martin, Jeanne T., and Smith, Brian T.. The Fortran 2003 Handbook: The Complete Syntax, Features and Procedures. Springer, 2009.
[2] Adams, Jeanne C., Brainerd, Walter S., Martin, Jeanne T., Smith, Brian T., and Wagener, Jerrold L.. Fortran 95 Handbook: Complete ISO/ANSI Reference. Cambridge, MA: The MIT Press, 1997.
[3] Adams, Jeanne C., Brainerd, Walter S., Martin, Jeanne T., Smith, Brian T., and Wagener, Jerrold L.. Fortran 90 Handbook: Complete ISO/ANSI Reference. New York: Intertext Publications, The McGraw Hill Book Company, 1992.
[4] Akin, , Ed. Object-Oriented Programming via Fortran 90/95. Cambridge, United Kingdom: Cambridge University Press, 2003.
[5] Anderson, E., Bai, Z., Bischof, C., Demmel, J., Dongarra, J., Croz, J. Du, Greenbaum, A., Hammarling, S., McKenney, A., Ostrouchov, S., and Sorensen, D.. LAPACK User's Guide. 2nd ed. Philadelphia: Society for Industrial and Applied Mathematics, 1995.
[6] Amdahl, Gene. “Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities.” AFIPS Conference Proceedings, no. 30 (1967): 483–485.
[7] Blelloch, Guy E.Vector Models for Data-Parallel Computing. Cambridge, MA: MIT Press, 1990.
[8] Budd, Timothy. An Introduction to Object-Oriented Programming. 3rd ed. Boston: Pearson Education, Inc., 2002.
[9] Baldwin, Kenneth, Gray, Andrew, and Misfeldt, Trevor. The Elements of C# Style. New York: Cambridge University Press, 2006.
[10] Brainerd, Walter S., Goldberg, Charles H., and Adams, Jeanne C.. Programmer's Guide to Fortran 90. 3rd ed. New York: Springer-Verlag, 1996.
[11] Chandra, Rohit, Leonardo, Dagum, Kohr, Dave, Maydan, Dror, McDonald, Jeff, and Menon, Ramesh. Parallel Programming in OpenMP. San Diego, CA: Academic Press, 2001.
[12] Chapman, Stephen J.Fortran 95/2003 for Scientists and Engineers. 3rd ed. New York: McGraw-Hill, 2008.
[13] Chapman, Barbara, Jost, Gabriele, and Der Pas, Ruud Van. Using OpenMP: Portable Shared Memory Parallel Programming. Cambridge, MA: MIT Press, 2008.
[14] Clerman, Norman S. “Fortran 90 'Gotcha!' (variation on a theme).” Fortran Forum, Association for Computing Machinery, 18, no. 3, December 1999.
[15] Clerman, Norman S. “Notes on creating an array of procedure pointers.” Fortran Forum, Association for Computing Machinery, 28, no. 1, April 2009.
[16] Concurrent Versions System, http://www.nongnu.org/cvs.
[17] Decyk, Victor K., Norton, Charles D., and Szymanski, Boleslaw K.. “Fortran 90 'Gotchas' (Part 1).” Fortran Forum, Association for Computing Machinery, 18, no. 2, August 1999.
[18] Decyk, Victor K., and Norton, Charles D.. “Fortran 90 'Gotchas' (Part 3).” Fortran Forum, Association for Computing Machinery, 19, no. 1, April 2000.
[19] Program coco, Purple Sage Computing, Inc., http://users.erols.com/ dnagle/coco.html.
[20] Dongarra, J. J., Moler, C. B., Bunch, J. R., and Stewart, G. W.. LINPACK: Users' Guide. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1979.
[21] Dorn, William S., and McCracken, Daniel D.. Numerical Methods with Fortran IV Case Studies. New York: John Wiley & Sons, Inc., 1972.
[22] Dowd, Kevin, and Severance, Charles. High Performance Computing. 2nd ed. Sebastopol, CA: O'Reilly & Associates, Inc., 1998.
[23] Earth System Modeling Framework, http://www.earthsystemmodeling.org. ESMF_KeywordEnforcer arguments were based on a suggestion by Alan Wallcraft of the Noval Research Laboratories.
[24] Ellis, T. M. R., and Philips, Ivor R.. Programming in F. Harlow, England: Addison Wesley Longman, Limited, 1998.
[25] Goldberg, David. “What Every Computer Scientist Should Know About Floating Point Arithmetic.” ACM Computing Surveys, 23, no. 1 (1991): 5–48.
[26] Gropp, William, Lusk, Ewing, and Thakur, Rajeev. Using MPI-2: Portable Parallel Programming with the Message-Passing Interface. Cambridge, MA: MIT Press, 1999.
[27] Gropp, William, Lusk, Ewing, and Skjellum, Anthony. Using MPI-2: Portable Parallel Programming with the Message-Passing Interface. 2nd ed. Cambridge, MA: MIT Press, 1999.
[28] Harbison, Samuel P., and Steele, Guy L. Jr.C – A Reference Manual. 5th ed. Upper Saddle River, NJ: Prentice Hall, 2002.
[29] Hughes, Charles E., Pfleeger, Charles P., and Rose, Lawrence L.. Advanced Programming Techniques: A Second Course in Programming Using FORTRAN. New York: John Wiley & Sons, 1978.
[30] ISO/IEC TR 15580:2001(E), Information technology – Programming languages – Fortran – Floating-point exception handling. ISO/IEC JTC 1/SC 22/WG 5, 2001.
[31] ISO/IEC/JTC/SC 22 SO/IEC TR 15581:1999(E), Information technology – Programming languages – Fortran – Enhanced data type facilities. 2nd ed. 2000.
[32] ISO/IEC/JTC/SC 22 SO/IEC TR 19767:2005, Information technology – Programming languages – Fortran – Enhanced Module Facilities. 2005.
[33] Binary floating-point arithmetic for microprocessor systems. IEC 60669 (1989-01).
[34] ISO/IEC 7942-1: Information technology – Computer graphics and image processing – Graphical Kernal System (GKS) – Part 1: Functional Description. 2nd ed. 1994.
[35] ISO 8651-1 Information processing systems – Computer graphics – Graphical Kernal System (GKS) language bindings – Part 1: FORTRAN. 1988.
[36] ISO/IEC 8651-4 Information technology – Computer graphics – Graphical Kernal System (GKS) language bindings – Part 4: C. 2nd ed. 1995.
[37] ISO 9241 – Ergonomics of Human System Interaction. Geneva, Switzerland: International Standards Organization.
[38] ISO/IEC 9899:1999 (C99). Geneva, Swizerland: International Standards Organization.
[39] ISO/IEC 1539-1:2004 Information technology – Programming languages – Fortran – Part 1: Base language. 2nd ed. 2004.
[40] ISO/IEC 1539:1991 Information technology – Programming languages – Fortran. 2nd ed. 1991.
[41] f90gl, Fortran bindings for OpenGL. http://math.nist.gov/f90gl.
[42] ISO/IEC 1539-1:1997 Information technology – Programming languages – Fortran – Part 1: Base language. 1997.
[43] ISO/IEC JTC1/SC22/WG5/N1723 J3/08-007r2 March 2008.
[44] Hatton, Les. C, Fortran, or C++ for geophysical development. Journal of Seismic Exploration, January 1992.
[45] Kernigan, B., and Plauger, P.. The Elements of Programming Style. 2nd ed. New York: McGraw-Hill, 1978.
[46] Kernighan, Brian W., and Ritchie, Dennis M.. The C Programming Language. 2nd ed. Englewood Cliffs, NJ: Prentice-Hall, 1988.
[47] Kit, Edward. Software Testing in the Real World: Improving the Process. ACM Press, 1995.
[48] Koelbel, Charles H., Loveman, David B., Schreiber, Robert S., Steele, Guy L. Jr., and Zosel, Mary E.. The High Performance Fortran Hand book. Cambridge, MA: MIT Press, 1994.
[49] McVoy, Larry, and Staelin, Carl. http://www.bitmover.com/lmbench.
[50] ,LAM/MPI parallel computing. http://www.lam-mpi.org/.
[51] Mattson, Timothy G., Sanders, Beverly A., and Massingill, Berna L.. Patterns for Parallel Programming. Boston, MA: Pearson Education, Inc., 2005.
[52] McConnell, Steve. Code Complete. Redmond, WA: Microsoft Press, 1993.
[53] McConnell, Steve. Code Complete. 2nd ed. Redmond, WA: Microsoft Press, 2004.
[54] Metcalf, Michael, and Reid, John. The F Programming Language. New York: Oxford University Press, 1996.
[55] Metcalf, Michael, Reid, John, and Cohen, Malcolm. Fortran 95/2003 Explained. Oxford, United Kingdom: Oxford University Press, 2004.
[56] Metcalf, Michael. Effective FORTRAN 77. Oxford, United Kingdom: Oxford University Press, Reprint with corrections, 1986.
[57] Misfeldt, Trevor, Bumgardner, Gregory, and Gray, Andrew. The Elements of C++ Style. New York: Cambridge University Press, 2004.
[58] MPICH – a portable implementation of MPI. http://www-unix.mcs. anl.gov/mpi/mpich.
[59] netcdf, A Network Common Data Format. http://www.unidata.ucar.edu/software/netcdf.
[60] Netlib Repository at UTK and ORNL. http://www.netlib.org.
[61] Oliveira, Suely, and Stewart, David. Writing Scientific Software: A Guide to Good Style. New York: Cambridge University Press, 2006.
[62] OpenMP: Simple, portable, scalable SMP programming. http://www.openmp.org.
[63] IEEE Std 1003.9-1992 IEEE Standard for Information technology – POSIX FORTRAN 77 Language Interfaces – Part 1: Binding for System Application Interface [API]. Institute of Electrical and Electronics Engineers, Inc., 1992.
[64] Reid, John. Coarrays in the next Fortran Standard. ISO/IEC JTC1/SC22/WG5 N1747, October 31, 2008.
[65] Roark, Raymond J., and Young, Warren C.. Formulas for Stress and Strain. 5th ed. New York: McGraw-Hill, 1975.
[66] Roberts, Eric. Thinking Recursively. New York: John Wiley & Sons, 1984.
[67] Sale, A. H. J.The Classification of FORTRAN Statements. The Computer Journal 14, no. 1.
[68] United States Public Law 107–204, Sarbanes-Oxley Act of 2002.
[69] Shonkwiler, Ronald W., and Lefton, Lew. An Introduction to Parallel and Vector Scientific Computing. New York: Cambridge University Press, 2006.
[70] Siever, Ellen, Figgins, Stephen, and Weber, Aaron. Linux in a Nutshell: A Desktop Quick Reference. 4th ed. Sabastopol, CA: O'Reilly Press & Associated, Inc., 2003.
[71] Smith, Alan Jay. Cache Memories. ACM Computing Surveys, September 1982.
[72] Steele, Guy L. Jr., and Daniel Hillis, W.. Data Parallel Algorithms. Communications of the ACM, December 1986.
[73] Stroustrup, Bjarne. The C++ Programming Language. 3rd ed. Upper Saddle River, NJ: Addison-Wesley, 1997.
[74] Apache Subversion, http://subversion.apache.org/.
[75] Vermeulen, Allan, Ambler, Scott W., Bumgardner, Greg, Metz, Eldon, Misfeldt, Trevor, Shur, Jim, and Thompson, Patrick. The Elements of Java Style. New York: Cambridge University Press, 2000.
[76] Hagen, William. The Definitive Guide to GCC. 2nd ed. Berkeley, CA: Apress, 2006.
[77] Vowels, R. A.Algorithms and Data Structures in F and Fortran. Tucson, AZ: Unicomp, 1998.
[78] Zwillinger, Daniel. Standard Mathematical Tables and Formulae. 31st ed. Boca Raton, FL: Chapman and Hall/CRC Press LLC, 2003.

Metrics

Altmetric attention score

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Book summary page views

Total views: 0 *
Loading metrics...

* Views captured on Cambridge Core between #date#. This data will be updated every 24 hours.

Usage data cannot currently be displayed.