This course introduces beginning students to the basics of Fortran90/95 programming. Out of necessity, it does not cover all aspects of the language, but enough so that students will be able to write useful codes after completion. The course will be of particular value to those STEM students who would like to learn a language which has stood the test of time, and is widely used in the area of scientific computing. Also useful for those who need to work with legacy Fortran code but have no Fortran background. Previous programming experience would be helpful but is not absolutely necessary. The course assumes some basic ability to use a command-line interface. I will also provide a short introduction to the use of DISLIN, a graphics/widget plotting package that you can implement in your Fortran codes. All Fortran codes used as examples are downloadable, as are the course notes.
Shows where to download and install either the g95 or gfortran compiler, compiler options, etc.
I have added a new Section 8, Lecture 29 for a quick demonstration on how to set up a simple environment to write, compile, and execute your codes.
Section 8 will hold lectures developed after the initial release of the course (so that I do not have to record everything all over to keep lecture numbers consistent).
Understand the 3 basic "sections" of a Fortran code.
Understand basic constant and variable types.
Students should know how to perform basic input and output operations in their codes.
Understand basic assignment statements and operator types.
Have an idea of the range of intrinsic (built-in) functions available in Fortran.
Students should be able to follow the basic logic of this simple Fortran90/95 program.
Understand logical expressions.
Understand the use of if-then-else constructs.
Understand the case construct and its value as an option to if-then-else constructs.
Questions from Sections 1 and 2 material.
Students should be able to successfully implement Counting DO loops into a program.
Students should be able to effectively implement CYCLE and EXIT statements into a program.
Effectively implement WHILE loops into a program.
Students should understand how to declare arrays in their programs.
Students should know how and when to use arrays in their programs.
Students should understand how to use intrinsic (built-in) functions for array operations.
Students should be able to implement PRINT statements in their Fortran codes.
Students should understand basic usage of the FORMAT statement in WRITE operations.
Students should be able to write code to open data files and read/write to these files.
Students should be able to read/write to unformatted files and understand the advantages and disadvantages of doing so.
Students should be able to define and implement user defined Functions in their Fortran programs.
Students should understand how and why to use Subroutines in their Fortran programs.
Students should understand the use of Modules in their Fortran programs.
Students should be able to implement timing routines into their Fortran codes.
This lecture is a brief introduction to the graphics capabilities of the DISLIN graphics package.
This is a simple example of using DISLIN to create line plots.
This is a more involved DISLIN graphics application coupled to a problem in fluid dynamics. (Note the system will not allow the uploading of an executable, so you will need to install DISLIN and compile if you want to run towed_sphere.)
Develop, compile, debug, and execute a simple Fortran code using an editor and command line approach rather than a single integrated development environment (IDE). If you begin with this approach, you will have a much better idea of what compiler options to use.
This lecture provides a very brief introduction to parallelization of Fortran codes on shared memory machines using OpenMP.
Simple code to show how to begin and end parallel regions with code.
Description of Red-Black iterative finite-difference scheme to solve Poisson equation in parallel.
The finite difference code to solve Poisson equation using Red-Black iterative scheme. Loop-level parallelization with OpenMP.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.