
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.
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.
Explore a parallel hello world with OpenMP, where input sets thread count, each thread has a private ID, prints from its ID, and uses a barrier before reporting total threads.
Explore parallelizing a simple do loop with an OpenMP-like library, measure mega flops and wall time, and observe how private loop indices and multi-thread distribution affect speedup.
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.
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.