Learn how to program in Fortran. Use object-oriented programming to design efficient and maintainable code.
1,895 enrolled on this course
Duration
5 weeksWeekly study
4 hours100% online
How it works
Fortran for Scientific Computing
Discover the power of Fortran for scientific programming
Fortran is a programming language that has been designed for scientific computing, allowing users to naturally express numerical problems.
On this course, you’ll discover how to express your numerical problems as a Fortran program, exploring the power and versatility of this popular programming language.
Learn how to use Fortran to solve numerical problems
Alongside computing experts at the Partnership for Advanced Computing in Europe (PRACE), you’ll get the chance to understand how to use modern programming paradigms to solve numerical problems.
This includes how to use object-oriented programming to design efficient and maintainable code, and being aware of potential correctness and performance pitfalls.
Explore data types and scientific computing libraries
Identify the various numerical data types in Fortran (including user-defined types), examine character data and logical data, and delve into functions and subroutines.
You’ll learn what control flow statements are, all about file I/O, and see how Fortran interacts with numerical libraries such as BLAS and LAPACK.
Learn how to program in Fortran
You’ll come away with solid foundational training in Fortran, able to understand Fortran best practices, and aware of what exactly makes it an excellent choice for high-performance computing.
Syllabus
Week 1
Introduction and the basics of Fortran
Welcome and introduction
Welcome to the course on Fortran for scientific programming. You will get an introduction to the course and have the opportunity to introduce yourself to us and your fellow participants. Let's make this a lively community!
Set up and your first Fortran program
You learn how to set up your environment to develop Fortran applications. When that is done, you will write a very simple Fortran program, and learn how to compile and run it in the terminal.
Data types
Data types are of course pretty fundamental when you design a program. Fortran supports the data types you would expect, but also complex numbers, which is of course useful for scientific computing.
Conditional and iteration statements
Once you know how to represent your data, you will want to control the flow of your application. In this section, you will learn about Fortran conditional and iteration statements.
Procedures
To write reusable and readable code, you need functions. Fortran has procedures, i.e., functions and subroutines. In this section we will cover the basics, and go into more details in week 2.
Basic input and output
You will learn how to write to standard output, how to read from standard input, and how to work with text files.
Next steps
Here your can find the capstone exercises and some additional material such as a (very) brief introduction to CMake, references and some Fortran related jokes.
Week 2
Beyond the basics
Introduction to week 2
Welcome to week 2, here you'll learn more about the concepts introduced in week 1 as well as on data structures such as arrays and user defined types.
Arrays
Vectors and matrices are the bread and butter of scientific computing. In this section, you will learn about arrays in Fortran and the features that make using them very efficient.
Procedures in detail
In week 1 you've already discovered procedures. However, there is a lot more to say about them. You will learn more about argument declaration and special types of procedures.
More control flow statements
Besides if and do statements, Fortran has quite some more control flow statements that can help you write code that is easier to read, or that allows the compiler to generate more efficient applications.
File I/O: formatting
You will learn the details of how to format text-based output.
Next steps
Here you find the capstone exercises and some additional material such as references and some Fortran related jokes. There is also the opportunity to share your favorite stories about bugs you encountered, and hopefully squashed.
Week 3
Object-oriented programming
Introduction to week 3
This week you will learn about modules and interfaces, dynamic memory and pointers, type-bound procedures and object-oriented programming.
User defined types
Although user defined types as such are very useful even if you don't do object-oriented programming, they form the basis for classes in Fortran.
Modules & interfaces
Modules help to structure your code so that data types and procedures can be reused across projects. Interfaces can be used to pass procedures as arguments to other procedures which will also lead to more reusable code.
Dynamic memory & pointers
Dynamic memory management is an important aspect of programming. It allows to efficiently deal with available memory resources of your computer.
Type-bound procedures and object-oriented programming
Add type-bound procedures to user defined types, and you get to Fortran's features that support object-oriented programming.
Next steps
You will find the capstone exercises and some additional material such as references and some Fortran related jokes. You can also share how you feel about Fortran's object-oriented programming features.
Week 4
Software engineering and performance aspects
Introduction to week 4
In this week you will learn a bit about software engineering and performance aspects of coding.
Best practices
Programming is more than just translating an algorithm into code. Your code should be easy to maintain, your applications easy to use.
Performance
In scientific computing, computational efficiency is very important because you want to be limited by your imagination, not the hardware you're running on.
I/O performance
For some applications, file I/O consumes a substantial part of the runtime of an application. It's therefor quite important to do file I/O right. You will learn about I/O beyond sequential text-based I/O.
Next steps
Here you find the capstone exercises, as well as some additional material such as references and some Fortran related jokes. You can also share your opinion on why Fortran features help compilers.
Week 5
Scientific libraries and parallel computing
Introduction to week 5
This week, you will learn about libraries for scientific computing and data formats as well as parallel computing.
Libraries for linear algebra
Many scientific problems can be solved using linear algebra. There are various excellent libraries available and it is important that you are aware of that. Reinventing the wheel can be frustrating for all involvled.
HDF5
HDF5 is a data format specifically designed to store scientific data. A single file can contain multiple data sets, and meta-data is stored in the file itself. HDF5 can be read and written by many applications.
Bits & pieces
The IEEE 754 standard is quite important for scientific computing since it defines how floating point values are handled. For some algorithms it can be useful to manipulate values at the bit level.
Parallel programming
As a language for scientific computing, Fortran offers quite a variety of options to develop parallel programming. Here, you will get a taste of it.
Next steps
Here you find the capstone exercises, as well as some additional material such as references and some Fortran related jokes.
When would you like to start?
Start straight away and join a global classroom of learners. If the course hasn’t started yet you’ll see the future date listed below.
Available now
Learning on this course
On every step of the course you can meet other learners, share your ideas and join in with active discussions in the comments.
What will you achieve?
By the end of the course, you‘ll be able to...
- Develop applications in the field of scientific computing
- Design computationally efficient applications
- Code according to best practices
- Evaluate the performance of your application
- Identify and select the most relevant data structures for your application
- Experiment with various design options
Who is the course for?
This course is for anyone who wants to write code to solve numerical problems or perform simulations. The programmer can focus on the domain, rather than the technicalities of the programming language. This course is also very useful for those who want to extend or to maintain software projects that are developed using Fortran.
Who will you learn with?
Since 2009 I'm an HPC consultant for the Flemish Supercomputer Center, doing support and training (also for PRACE and EuroCC). I've a PhD in physics and CS on topics in machine learning.
During my physics studies I got interested in research in computational physics/astrophysics. After several postdoctoral positions I joined VSC and I stay close to science by supporting our HPC users.
Graduated as MSc in Science(Biology) and additional MSc in Informatics at KU Leuven . Joined KU Leuven in 2006 and since 2010 teamleader of the VSC HPC team at KU Leuven.
Bioinformatics was as a portal into the world of HPC for me. I now work at the VSC where I am involved in the HPC training and the direct support of scientists with their computational research.
Vlaams Supercomputer Centre
The Flemish Supercomputer Center (Vlaams Supercomputer Centrum - VSC) is a partnership between the five Flemish universities and their university associations: Associatie Universiteit & Hogescholen Antwerpen, Universitaire Associatie Brussel, Associatie Universiteit Gent, Associatie KU Leuven and Associatie Universiteit-Hogescholen Limburg. This consortium brings together knowhow in scientific and technical computing in Flanders.
Ways to learn | Buy this course | Subscribe & save | Limited access |
---|---|---|---|
Choose the best way to learn for you! | $134/one-off payment | $244.99 for a whole year Automatically renews | Free |
Fulfill your current learning need | Develop skills to further your career | Sample the course materials | |
Access to this course | tick | tick | Access expires 16 Nov 2024 |
Access to 1,000+ courses | cross | tick | cross |
Learn at your own pace | tick | tick | cross |
Discuss your learning in comments | tick | tick | tick |
Certificate when you're eligible | Printed and digital | Digital only | cross |
Cancel for free anytime |
Ways to learn
Choose the best way to learn for you!
Subscribe & save
$244.99 for a whole year
Automatically renews
Develop skills to further your career
- Access to this course
- Access to 1,000+ courses
- Learn at your own pace
- Discuss your learning in comments
- Digital certificate when you're eligible
Cancel for free anytime
Buy this course
$134/one-off payment
Fulfill your current learning need
- Access to this course
- Learn at your own pace
- Discuss your learning in comments
- Printed and digital certificate when you’re eligible
Limited access
Free
Sample the course materials
- Access expires 16 Nov 2024
Find out more about certificates, Unlimited or buying a course (Upgrades) Sale price available until 31 October 2024 at 23:59 (UTC). T&Cs apply. |
Find out more about certificates, Unlimited or buying a course (Upgrades)
Sale price available until 31 October 2024 at 23:59 (UTC). T&Cs apply.
Learning on FutureLearn
Your learning, your rules
- Courses are split into weeks, activities, and steps to help you keep track of your learning
- Learn through a mix of bite-sized videos, long- and short-form articles, audio, and practical activities
- Stay motivated by using the Progress page to keep track of your step completion and assessment scores
Join a global classroom
- Experience the power of social learning, and get inspired by an international network of learners
- Share ideas with your peers and course educators on every step of the course
- Join the conversation by reading, @ing, liking, bookmarking, and replying to comments from others
Map your progress
- As you work through the course, use notifications and the Progress page to guide your learning
- Whenever you’re ready, mark each step as complete, you’re in control
- Complete 90% of course steps and all of the assessments to earn your certificate
Want to know more about learning on FutureLearn? Using FutureLearn
Learner reviews
Learner reviews cannot be loaded due to your cookie settings. Please and refresh the page to view this content.
Do you know someone who'd love this course? Tell them about it...
You can use the hashtag #FLfortran to talk about this course on social media.
More courses you might like
Learners who joined this course have also enjoyed these courses.
Browse more in IT & Computer Science and Science, Engineering & Maths