Class Information: 2015

Fortran 95 compilers

The most convenient way to do the exercises might be on your own computer after installing a compiler. The main choices are listed below. gfortran is the most universal/popular, is completely free and can be used on Windows, MacOSX or Linux. For Windows, the silverfrost compiler seems to work well: this is free on your own computer, but on an ETH-owned machine it would be necessary to buy a license. Possibly the best compiler is the one by Intel, which works on Windows, MacOSX and Linux. ETH has a site license for it that employees can use, but unfortunately this isn't available for masters students. A drawback is that your computer must be networked so it can connect to the central ETH license server.

gfortran: Developed by the GNU, the free software foundation. See Recent versions of Linux will have this on the installation disk. For MacosX, make sure you first install Xcode (up to Snow Leopard this is on the installation disk; from Lion it is an App that can be downloaded); and a convenient place to download is For Windows I recommend using gfortran inside the cygwin environment (

silverfrost (for Windows): free for personal use, download from

Intel Fortran Compiler: ETH employees (e.g. doctoral students) can download from Documentation here.

Useful editors that highlight Fortran syntax: emacs or xemacs (unix-based); for MacOSX: aquamacs (here)

Free resources on the internet

1. A manual. A good one is the Intel Fortan Language Reference Manual.

2. Tutorials

3. General information and/or pages of links to relevant sites

4. Unix tutorials

Topics to be covered

Class schedule and handouts (including exercises)

Fortran Topics Numerical Topics Download
1 (17.09) History, basics, simple programs   Class1.pdf
2 (24.09) More basics, interactive I/O, do loops, functions&subroutines Finite differences Class2.pdf
3 (01.10) Modules, ascii file I/O, Array functions, assumed size arrays. 1-D diffusion equation Class3.pdf
4 (08.10) Precision, namelists, formatted I/O. 2-D diffusion equation.  
5 (15.10) Derived types. Binary I/O. Keyword&optional arguments. where, forall. Character string manipulation. Streamfunction. Upwind advection. 2-D advection-diffusion.  
6 (22.10) Recursive functions. Iterative & multigrid solvers. Jacobi & Gauss-Seidel iterations. Program 2D Poisson solver.



.. (29.10) NO LECTURE    
7 (05.11) Pointers. Generic procedures, operators and overloading. Convection (2-D, infinite-Pr).  
8 (12.11) Makefiles. Writing fast code (optimisation). Finite (low) Prandtl number convection.  
9 (19.11) NO LECTURE    
10 (26.11) Parallel computing.    
11 (03.12) Libraries. Implicit timestepping.  
12 (10.12) Review, Fortran 2003&2008 features, discussion    
.. (17.12) NO LECTURE