Skip to content

Commit 67ad46c

Browse files
#34 Updates the setup page
* Ignore vs code hidden dir * Adds in compiler setup and testing to the home page * Simplify the intro text * Removes gfortran footnote and fixes the group-tab headings * Moves pre-req callout higher on the start page * Simplify data and skeleton file download * Updates the README to add notes on contributing Co-authored-by: Declan Valters <declan.valters@gmail.com> * Spelling and grammar review changes/fixes Co-authored-by: Declan Valters <declan.valters@gmail.com> * Adds in a statement re the lesson being tested primarily on Linux, and adds the command line (Carpentries Unix Shell lesson) as a pre-req * Adds some lines in the caution callout about where some of the material was adapted from * Removes the conda install instructions for all par gfortran and adds in a conda install link * Update Intel compiler links * Add in conda forge channel when installing gfortran compiler with conda --------- Co-authored-by: Declan Valters <declan.valters@gmail.com>
1 parent 8d0630f commit 67ad46c

File tree

7 files changed

+284
-69
lines changed

7 files changed

+284
-69
lines changed

.gitignore

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ po/*~
5151

5252
# renv sandbox needed for renv version 0.16.0
5353
renv/sandbox # OPTIONAL
54-
renv/sandbox
55-
renv/sandbox
56-
renv/sandbox
57-
renv/sandbox
58-
renv/sandbox
54+
55+
# Editors
56+
.vscode

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Introduction to Modern Fortran
22

33
This is the lesson repository for Introduction to Modern Fortran.
4+
This lesson is currently in pre-alpha development by the
5+
[Edinburgh Parallel Computing Centre][epcc-link],
6+
the [National Centre for Atmospheric Science][ncas-link],
7+
the [National Oceanography Centre][noc-link],
8+
and the [Met Office][uk-met-link].
9+
10+
## Contributing
11+
12+
If you would like to help build this course please see
13+
the discussion on [Contributing](https://github.com/carpentries-incubator/intro-to-modern-fortran/discussions/39)
14+
and the [Curriculum Outline](https://github.com/carpentries-incubator/intro-to-modern-fortran/discussions/6#discussioncomment-8546839).
15+
We have monthly co-working sessions which are posted on
16+
[Discussions](https://github.com/carpentries-incubator/intro-to-modern-fortran/discussions/categories/meetings?discussions_q=is%3Aopen+category%3AMeetings).
17+
18+
General Notes:
19+
20+
- Please use a fork to contribute
21+
- Any Fortran code should follow the agreed style (Met Office)
22+
- If you are adding new exercises or data please re compress
23+
the `exercises.tar.gz` file. In the root dir of this repo:
24+
25+
```bash
26+
tar czf episodes/data/exercises.tar.gz exercises/
27+
```
428

529
[Notes from RSECon23](https://pad.archer2.ac.uk/p/rsecon23-fortran)

episodes/data/exercises.tar.gz

359 Bytes
Binary file not shown.

exercises/setup/hello_world.f90

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
!--------------------------------------------------------
2+
! Carpentries - Introduction to Modern Fortran
3+
! CC BY 4.0, https://creativecommons.org/licenses/by/4.0/
4+
!--------------------------------------------------------
5+
!
6+
program hello_world
7+
!! A simple hello world program
8+
9+
implicit none
10+
11+
print *, 'Hello world!'
12+
13+
end program hello_world

index.md

Lines changed: 52 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,64 @@
22
site: sandpaper::sandpaper_site
33
---
44

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
66

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]
1038

1139
::::::::::::::::::::::::::::::::::::: prereq
1240

1341
### Prerequisites
1442

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].
2150

2251
::::::::::::::::::::::::::::::::::::::::::::
2352

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

Comments
 (0)