We may earn an affiliate commission when you visit our partners.
Take this course
Brad Richardson

Start improving your skills using one of the few languages directly targeting use for high-performance scientific and engineering applications. I'll show you some techniques that make use of more advanced features of the language, and how you can apply some best practices from software development in general to programming in Fortran. If you've taken my previous course, have some basic experience in Fortran, or are interested in learning how you can apply techniques you're familiar with from other languages to Fortran, this course will help you improve your skills.

Read more

Start improving your skills using one of the few languages directly targeting use for high-performance scientific and engineering applications. I'll show you some techniques that make use of more advanced features of the language, and how you can apply some best practices from software development in general to programming in Fortran. If you've taken my previous course, have some basic experience in Fortran, or are interested in learning how you can apply techniques you're familiar with from other languages to Fortran, this course will help you improve your skills.

I can't cover all the techniques and practices out there in a single course, but this should give you an idea of what's possible, and help you put some tools in your tool box. I'll even show you how I have some of the tools I use for development configured to be more convenient and helpful.

We start with some features of the language you'll need to be familiar with to be successful, explore some common data structures in software development, and demonstrate some patterns and practices shown to be useful in other fields of programming. I'll show you some example that demonstrates a concept, and then have you complete 1 or 2 exercises where you'll extend the example using the techniques we've talked about.

By the end of the course, if you've understand the material and completed the exercises, you should see your skills as a software developer dramatically improved.

Enroll now

What's inside

Learning objective

Intermediate level skills programming in fortran

Syllabus

Introduction
Additional Setup
Learn about some additional attributes for functions and subroutines
Procedure Attributes Introduction
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores advanced features of Fortran, which is useful for high-performance scientific and engineering applications, making it relevant for developers in those fields
Demonstrates patterns and practices shown to be useful in other fields of programming, which can broaden a developer's skill set and improve code quality
Teaches techniques for using common data structures, such as linked lists and trees, which are fundamental concepts in computer science and software development
Includes exercises where learners extend examples using the techniques discussed, which provides hands-on practice and reinforces learning
Covers topics like recursion, abstract interfaces, and the open-closed principle, which are important concepts for writing modular and maintainable code
Requires some basic experience in Fortran, which may exclude absolute beginners without prior exposure to the language and its syntax

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Modern fortran for scientists

According to learners, this course offers a solid foundation for moving beyond basic Fortran. Students found it valuable for exploring intermediate-level features like procedure attributes and abstract interfaces. The inclusion of common data structures such as linked lists and trees was highlighted as particularly useful. Reviewers appreciated the coverage of design patterns and software principles, noting how these concepts could be applied effectively within the Fortran language. While the course assumes some prior basic Fortran knowledge, many felt the content and practical exercises provided a significant step up in their programming skills, especially for those working in scientific and engineering applications. Some found the pace or depth varied across topics, but overall, it's considered a valuable resource for improving skills in a language often used in high-performance computing.
Best suited for scientific/engineering users.
"If you're in scientific computing, this course is highly relevant."
"This course is tailored for those using Fortran in technical fields."
"It focuses on applications relevant to science and engineering."
Provides practical coding exercises.
"The exercises helped solidify the concepts we learned."
"Working through the examples and exercises was a good way to practice."
"I found the hands-on coding problems to be quite beneficial."
Introduces data structures and design patterns.
"Exploring data structures like linked lists and trees was a great addition."
"I appreciated learning about design patterns and how they apply to Fortran."
"Learning about common data structures is essential, and this course covers it well."
Covers key intermediate Fortran concepts.
"It introduces important modern Fortran features like attributes and interfaces."
"The course covers some really relevant topics for intermediate Fortran users."
"Going over procedure attributes and abstract interfaces was very helpful."
Assumes prior knowledge of basic Fortran.
"This course is definitely not for beginners; you need a solid grasp of basic Fortran first."
"Make sure you are comfortable with Fortran fundamentals before starting this one."
"It clearly builds on prior knowledge, so have your basics down."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Intermediate Fortran with these activities:
Review Basic Fortran Syntax
Reinforce your understanding of fundamental Fortran syntax to ensure a smooth transition into intermediate topics.
Show steps
  • Review basic data types and operators.
  • Practice writing simple programs using loops and conditional statements.
  • Familiarize yourself with input/output operations.
Read 'Fortran 95/2003 explained'
Deepen your understanding of Fortran features and best practices.
Show steps
  • Obtain a copy of 'Fortran 95/2003 explained'.
  • Read the chapters relevant to the course syllabus.
  • Experiment with the code examples provided in the book.
Read 'Modern Fortran Explained'
Deepen your understanding of modern Fortran features and best practices.
Show steps
  • Obtain a copy of 'Modern Fortran Explained'.
  • Read the chapters relevant to the course syllabus.
  • Experiment with the code examples provided in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Write a Blog Post on Fortran Design Patterns
Reinforce your understanding of design patterns by explaining their implementation in Fortran.
Show steps
  • Choose a design pattern (e.g., Factory, Observer).
  • Research how the pattern can be implemented in Fortran.
  • Write a blog post explaining the pattern and providing code examples.
Implement Data Structures in Fortran
Solidify your understanding of data structures by implementing them in Fortran.
Show steps
  • Choose a data structure (e.g., linked list, tree).
  • Write Fortran code to implement the data structure's core operations.
  • Test your implementation thoroughly.
Develop a Scientific Simulation
Apply your Fortran skills to develop a scientific simulation, reinforcing your understanding of the language and its applications.
Show steps
  • Choose a scientific problem to simulate (e.g., heat diffusion, fluid dynamics).
  • Design the simulation algorithm and data structures.
  • Implement the simulation in Fortran.
  • Validate the simulation results against known solutions or experimental data.
Contribute to a Fortran Library
Gain practical experience and contribute to the Fortran community by contributing to an open-source library.
Show steps
  • Find an open-source Fortran library on GitHub or GitLab.
  • Identify a bug or feature request to work on.
  • Implement the fix or feature and submit a pull request.

Career center

Learners who complete Intermediate Fortran will develop knowledge and skills that may be useful to these careers:
Scientific Programmer
The role of a Scientific Programmer involves developing software for scientific and engineering applications. This course helps those who want to be Scientific Programmers by teaching them intermediate level Fortran, a language directly targeting high-performance scientific and engineering tasks. The curriculum includes advanced language features, allowing for efficient code development. Furthermore, exploring data structures and design patterns enhances code organization and maintainability. By completing exercises, aspiring Scientific Programmers sharpen their skills, making them well-equipped to tackle complex computational challenges. This course is particularly useful because it explores features of the language needed to be successful, common data structures, and common design patterns.
Climate Modeler
Climate Modelers develop and run complex simulations of the Earth's climate system. This course helps Climate Modelers build their skills in Fortran, a common language in climate modeling due to its computational performance. This course's syllabus touches on advanced language features and software development practices, which helps improve the efficiency and accuracy of climate models. Understanding data structures and applying design patterns can enhance the maintainability and scalability of climate modeling code. Completing the practical exercises reinforces understanding and application of these techniques, making this course valuable for Climate Modelers.
Astrophysicist
Astrophysicists study the physics of the universe, including stars, planets, and galaxies. Astrophysical simulations and data analysis often require high-performance computing, making Fortran a relevant language. This course helps those who want to be Astrophysicists by teaching them intermediate level Fortran. Exploring data structures and design patterns can enhance code organization and maintainability. By completing exercises, aspiring Astrophysicists sharpen their skills, making them well-equipped to tackle complex computational challenges. This course is particularly useful because it explores features of the language needed to be successful, common data structures, and common design patterns.
Numerical Analyst
Numerical Analysts develop and implement algorithms for solving mathematical problems. This course may be quite useful as it strengthens skills in Fortran, a language frequently employed in numerical analysis due to its performance characteristics. This course discusses advanced language features and software development practices, which helps in writing streamlined, efficient code. Knowledge of data structures and design patterns can enhance the organization and maintainability of numerical algorithms. This course is particularly useful because it explores features of the language needed to be successful, common data structures, and common design patterns.
Simulation Engineer
Simulation Engineers create and run computer simulations to model real-world systems. This course can assist Simulation Engineers by enhancing their proficiency in Fortran, a language often used in simulation environments. The curriculum covers advanced language features, software development practices, and essential data structures. Learning design patterns can help improve the structure and maintainability of simulation code. The exercises reinforce these concepts. For Simulation Engineers who want to optimize simulation code or develop custom simulation tools, this course may be useful.
Geophysicist
Geophysicists study the physical properties and processes of the Earth. For Geophysicists involved in computational modeling or data analysis, skills in Fortran may be valuable. This course may be useful because it covers advanced language features and software development practices, allowing for efficient processing of geophysical data. A solid understanding of data structures and design patterns can improve the organization and maintainability of geophysical software. This course is designed to help learners improve their skills in these areas through example and applied exercises.
Aerospace Engineer
Aerospace Engineers design and develop aircraft, spacecraft, and related systems. Many aerospace applications involve complex simulations and numerical analysis, making Fortran a valuable skill. This course gives exposure to Fortran, a language valuable in particular domains like scientific and engineering applications. The curriculum covers advanced language features and software development best practices. Understanding data structures and design patterns can enhance problem-solving abilities, while hands-on exercises give practical experience. This course may be useful for Aerospace Engineers seeking to broaden their skill set.
Computational Scientist
A Computational Scientist utilizes programming skills to model and simulate scientific phenomena. This course may assist aspiring Computational Scientists by expanding their proficiency in Fortran, a language often utilized in scientific computing. Delving into advanced language features and best practices equips individuals to write efficient and reliable code for simulations. Exposure to common data structures, patterns, and principles found in software development can further refine programming capabilities, leading to more robust solutions. The practical exercises are tailored to reinforce understanding and application of these techniques, potentially benefiting future Computational Scientists.
Software Engineer
Software Engineers design, develop, and maintain software systems. This course gives Software Engineers exposure to Fortran, a language valuable in particular domains like scientific and engineering applications. The curriculum covers advanced language features and software development best practices. Understanding data structures and design patterns can enhance problem-solving abilities, while hands-on exercises give practical experience. This course may be useful for Software Engineers seeking to broaden their skill set, particularly if their work involves high-performance computing or scientific applications.
Mechanical Engineer
Mechanical Engineers design and develop mechanical systems and devices. This course may assist aspiring Mechanical Engineers by expanding their proficiency in Fortran, a language often used in simulation environments. The curriculum covers advanced language features, software development practices, and essential data structures. Learning design patterns can help improve the structure and maintainability of code for complex mechanical simulations. The exercises reinforce these concepts. For Mechanical Engineers who want to optimize simulation code or develop custom simulation tools, this course may be useful.
Research Scientist
Research Scientists conduct experiments and analyze data to advance scientific knowledge. While this role often requires an advanced degree, learning Fortran may be useful for Research Scientists who work with computationally intensive projects. Exposure to design patterns and language features can improve code quality and efficiency, making data analysis more manageable. Completing exercises provides practical experience. This course may be helpful to Research Scientists looking to improve their data processing capabilities or contribute to software development efforts within their research groups.
Civil Engineer
Civil Engineers design and oversee the construction of infrastructure projects. This course may be useful to Civil Engineers who work with computationally intensive projects. Exposure to design patterns and language features can improve code quality and efficiency. Completing exercises provides practical experience. This course may be helpful to Civil Engineers looking to improve their data processing capabilities or contribute to software development efforts within their engineering groups.
Data Scientist
Data Scientists analyze large datasets to extract insights and inform decision-making. Although Fortran is not as commonly used in data science as other languages like Python or R, this course may be useful to Data Scientists who work with legacy Fortran codebases or perform computationally intensive simulations. By learning advanced language features and software development best practices, Data Scientists can efficiently process and analyze scientific data. This course could be valuable to Data Scientists working in fields that leverage Fortran for its performance capabilities.
Financial Modeler
Financial Modelers create quantitative models to analyze financial markets and instruments. Although Fortran is not as commonly used in finance as other languages, this course might be useful to Financial Modelers who work with legacy codebases or perform computationally intensive simulations. By learning advanced language features and software development best practices, Financial Modelers can efficiently process and analyze financial data. This course may be valuable to Financial Modelers working in fields that leverage Fortran for its performance.
Game Developer
Game Developers create video games for various platforms. While Fortran is not a primary language, this course may be useful to Game Developers who work with legacy systems or computationally intensive aspects of game development. Learning advanced language features and practices can improve the efficiency of game code. A solid understanding of data structures and design patterns can enhance the maintainability of game projects. This course is designed to help learners improve their skills in these areas through example and applied exercises.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Intermediate Fortran.
Provides a comprehensive guide to modern Fortran features, including those covered in the course. It serves as an excellent reference for understanding advanced concepts and best practices. It is commonly used by both academics and industry professionals. Reading this book will add depth to your understanding of Fortran.
Provides a comprehensive guide to Fortran 95 and 2003 standards. It serves as an excellent reference for understanding language features and best practices. It is commonly used by both academics and industry professionals. Reading this book will add depth to your understanding of Fortran.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser