Современный Fortran на практике - Арьен Маркус


 Язык программирования Fortran изначально был предназначен для выполнения математических вычислений с максимальной производительностью. В самый последний стандарт Fortran 2008 включено большое количество современных функциональных возможностей: средства объектно-ориентированного программирования, специализированные операции с массивами, типы, определяемые пользователем и поддержка параллельных вычислений.

 Данное учебное руководство помогает программистам на языке Fortran научиться применять все вышеперечисленные функциональные возможности в соответствии с современными требованиями: модульность, лаконичность, объектно-ориентированный подход и рациональное использование ресурсов, а также организация работы с учётом наличия нескольких процессоров. В книге рассматриваются практические примеры взаимодействия с программами, написанными на языке C, управления памятью, применения графики и графических пользовательских интерфейсов, параллельные вычисления с использованием библиотек MPI, OpenMP и комассивов (coarrays). Кроме того, автор анализирует некоторые числовые алгоритмы и их реализации, а также показывает, как можно применить некоторые библиотеки с открытыми исходными кодами. Полные исходные коды всех примеров доступны на web-сайте данной книги.

Go to >

Fortran for Scientists & Engineers - Stephen J. Chapman


 The first edition of this book was conceived as a result of my experience in writing and maintaining large Fortran programs in both the defense and geophysical fields. During my time in industry, it became obvious that the strategies and techniques required to write large, maintainable Fortran programs were quite different from what new engineers were learning in their Fortran programming classes at school. The incredible cost of maintaining and modifying large programs once they are placed into service absolutely demands that they be written to be easily understood and modified by people other than their original programmers. My goal for this book is to teach simultaneously both the fundamentals of the Fortran language and a programming style that results in good, maintainable programs. In addition, it is intended to serve as a reference for graduates working in industry.

 It is quite difficult to teach undergraduates the importance of taking extra effort during the early stages of the program design process in order to make their programs more maintainable. Class programming assignments must by their very nature be simple enough for one person to complete in a short period of time, and they do not have to be maintained for years. Because the projects are simple, a student can often “wing it” and still produce working code. A student can take a course, perform all of the programming assignments, pass all of the tests, and still not learn the habits that are really needed when working on large projects in industry.

 From the very beginning, this book teaches Fortran in a style suitable for use on large projects. It emphasizes the importance of going through a detailed design process before any code is written, using a top-down design technique to break the program up into logical portions that can be implemented separately. It stresses the use of procedures to implement those individual portions, and the importance of unit testing before the procedures are combined into a finished product. Finally, it emphasizes the importance of exhaustively testing the finished program with many different input data sets before it is released for use.

 In addition, this book teaches Fortran as it is actually encountered by engineers and scientists working in industry and in laboratories. One fact of life is common in all programming environments: Large amounts of old legacy code that have to be maintained. The legacy code at a particular site may have been originally written in Fortran IV (or an even earlier version!), and it may use programming constructs that are no longer common today. For example, such code may use arithmetic IF statements, or computed or assigned GO TO statements. Chapter 18 is devoted to those older features of the language that are no longer commonly used, but that are encountered in legacy code.

 The chapter emphasizes that these features should never be used in a new program, but also prepares the student to handle them when he or she encounters them.

Go to >