|
2 | 2 | site: sandpaper::sandpaper_site |
3 | 3 | --- |
4 | 4 |
|
5 | | -This is a new lesson built with [The Carpentries Workbench][workbench]. It is currently in pre-alpha development by the [Edinburgh Parallel Computing Centre][epcc-link], the [National Centre for Atmospheric Science][ncas-link], the [National Oceanography Centre][noc-link], and the [UK Met Office][uk-met-link]. |
| 5 | +::: caution |
6 | 6 |
|
7 | | -This course is aimed at users and developers who know how to program, |
8 | | -but have little or no experience in Fortran, and those who may wish to |
9 | | -have a refresher in Fortran. |
| 7 | +This is a new lesson built with [The Carpentries Workbench][carpentries-workbench]. |
| 8 | +It is currently in pre-alpha development by the |
| 9 | +[British Geological Survey][bgs-link], |
| 10 | +the [National Centre for Atmospheric Science][ncas-link], |
| 11 | +the [National Oceanography Centre][noc-link], |
| 12 | +and the [Met Office][uk-met-link]. |
| 13 | + |
| 14 | +The lesson adapts resources from |
| 15 | +[ARCHER2](https://github.com/ARCHER2-HPC/archer2-fortran-intro), |
| 16 | +[Imperial College London](https://github.com/ImperialCollegeLondon/RCDS-introduction-to-fortran), |
| 17 | +[Modern Fortran in Science and Technology course](https://github.com/jonaslindemann/modern_fortran_book?tab=readme-ov-file), |
| 18 | +[LRZ's Programming with Fortran course](https://doku.lrz.de/programming-with-fortran-10746212.html), |
| 19 | +and more.[^other-courses] |
| 20 | + |
| 21 | +::: |
| 22 | + |
| 23 | +Fortran was created in 1957 by a team at IBM |
| 24 | +and excels with numerically intensive science code. |
| 25 | +Far from the punchcards, and fixed-form formatting of Fortran's early days, |
| 26 | +modern Fortran is fast, supports object orientated programming |
| 27 | +and is easy to read. |
| 28 | + |
| 29 | +Fortran is often used to write code for High Performance Computing (HPC). |
| 30 | +Many of the research codes run on ARCHER2[^archer2] |
| 31 | +are Fortran programs.[^archer2-codes] |
| 32 | +Various areas of Science are covered by these Fortran programs. |
| 33 | +For example quantum chemistry, plasmas, and numerical weather prediction. |
| 34 | + |
| 35 | +More recent standards of Fortran come under the umbrella term "Modern Fortran". |
| 36 | +These are the Fortran 95 standard, |
| 37 | +and more recent standards.[^fortran-standards] |
10 | 38 |
|
11 | 39 | ::::::::::::::::::::::::::::::::::::: prereq |
12 | 40 |
|
13 | 41 | ### Prerequisites |
14 | 42 |
|
15 | | -Learners _must_ be familiar with the basic concepts of |
16 | | -programming: variables, logic, flow of control, loops, functions and |
17 | | -so on. No knowledge of Fortran is assumed. Previous programming |
18 | | -experience might typically be in the context C/C++ or python. |
19 | | -If you know no programming, we suggest this course on Fortran is not |
20 | | -the place to start. |
| 43 | +Learners _should_ be familiar with the basic concepts of |
| 44 | +programming: variables, logic, control flow, loops, functions and |
| 45 | +so on. |
| 46 | +No knowledge of Fortran is assumed. |
| 47 | +No previous experience with compiled languages is required. |
| 48 | +Access to the command line is required. |
| 49 | +Learners _must_ be comfortable using the command line[^command-line]. |
21 | 50 |
|
22 | 51 | :::::::::::::::::::::::::::::::::::::::::::: |
23 | 52 |
|
24 | | -Fortran (a contraction of Formula Translation) was the first programming |
25 | | -language to have a standard (in 1954), but has changed significantly over |
26 | | -the years. More recent standards (the latest being Fortran 2018) come |
27 | | -under the umbrella term "Modern Fortran". Fortran retains very great |
28 | | -significance in many areas of scientific and numerical computing, |
29 | | -particularly for applications such as quantum chemistry, plasmas, and in |
30 | | -numerical weather prediction and climate models. |
31 | | - |
32 | | -This course provides an introduction to the basics of writing Fortran. |
33 | | -It will cover basic syntax, variables, expressions and assignments, |
34 | | -flow of control, and introductions to i/o and user-defined types. |
35 | | -Common Fortran idioms are introduced and contrasted with those |
36 | | -available in C-like languages; the course will try to focus on |
37 | | -real usage rather than formal descriptions. |
38 | | - |
39 | | -At the end of the course you should be able to understand many Fortran |
40 | | -programs and be confident to start to write well-structured and portable |
41 | | -Fortran. Fortran is a rather "large" language, so it is not possible to |
42 | | -cover all its features in a two day course. Further elements of Fortran |
43 | | -are discussed in the "Intermediate Modern Fortran" course. |
44 | | - |
45 | | -The course requires a Fortran compiler, for which a local machine or |
46 | | -laptop may be appropriate [1]. If you do not have access to a Fortran |
47 | | -compiler, course training accounts on archer2 will be available which |
48 | | -provide access to various compilers. Use of a text editor will be |
49 | | -required (some may prefer an IDE, but we do not intend to consider or |
50 | | -support IDEs). |
51 | | - |
52 | | -[1] This may typically be GFortran, freely available as part of |
53 | | -Gnu Compiler Collection (GCC). |
54 | | -See e.g., [Link to GFortran install page on fortran-lang][install-gfortran] |
55 | | - |
56 | | -[workbench]: https://carpentries.github.io/sandpaper-docs |
| 53 | +This lesson has been tested primarily on Linux. |
| 54 | +Windows users may find it easier to install |
| 55 | +[Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). |
| 56 | +With WSL you will have access to a Linux command line. |
| 57 | +Windows and macOS users should open an |
| 58 | +[Issue](https://github.com/carpentries-incubator/intro-to-modern-fortran/issues) |
| 59 | +if you find problems with the lesson material. |
| 60 | + |
| 61 | +[^other-courses]: Discussion #3 on the lesson repository, https://github.com/carpentries-incubator/intro-to-modern-fortran/discussions/3, give details on the materials this course draws from. |
| 62 | +[^archer2]: ARCHER2, https://www.archer2.ac.uk/, is one of the UKs national supercomputing facilities. |
| 63 | +[^archer2-codes]: ARCHER2 code use article: https://www.archer2.ac.uk/news/2021/05/19/code-use.html |
| 64 | +[^fortran-standards]: Fortran standards page on the Fortran Wiki: https://fortranwiki.org/fortran/show/Standards |
| 65 | +[^command-line]: Learners should be comfortable with the Carpentries Unix Shell lesson material: https://swcarpentry.github.io/shell-novice/ |
0 commit comments