forked from fortran-lang/fortran-lang.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlearning.yml
392 lines (329 loc) · 14.4 KB
/
learning.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
# Categories group mini-books on the 'Learn' landing page
#
# 'fa-icon' refers to the font-awesome icon to display
# next to the category on the landing page
#
categories:
- name: Getting started
fa-icon: fas fa-cubes
# - name: Advanced programming methods
# fa-icon: fas fa-laptop-code
# Mini-books are single-page or multi-page tutorials
#
# 'link' refers to the 'permalink' field of the corresponding page
#
books:
- title: Quickstart Fortran Tutorial
description: An introduction to the Fortran syntax and its capabilities
category: Getting started
link: /learn/quickstart
pages:
- link: /learn/quickstart/hello_world
- link: /learn/quickstart/variables
- link: /learn/quickstart/arrays_strings
- link: /learn/quickstart/operators_control_flow
- link: /learn/quickstart/organising_code
- link: /learn/quickstart/derived_types
- title: Building programs
description: How to use the compiler to build an executable program
category: Getting started
link: /learn/building_programs
pages:
- link: /learn/building_programs/compiling_source
- link: /learn/building_programs/linking_pieces
- link: /learn/building_programs/runtime_libraries
- link: /learn/building_programs/include_files
- link: /learn/building_programs/managing_libraries
- link: /learn/building_programs/build_tools
- link: /learn/building_programs/project_make
- link: /learn/building_programs/distributing
- title: Setting up your OS
description: How to install a Fortran compiler and set up a development environment in Windows, Linux and macOS.
category: Getting started
link: /learn/os_setup
pages:
- link: /learn/os_setup/choose_compiler
- link: /learn/os_setup/install_gfortran
- link: /learn/os_setup/text_editors
- link: /learn/os_setup/ides
- link: /learn/os_setup/tips
- title: Fortran Best Practices
description: This tutorial collects a modern canonical way of doing things in Fortran.
category: Getting started
link: /learn/best_practices
pages:
- link: /learn/best_practices/style_guide
- link: /learn/best_practices/floating_point
- link: /learn/best_practices/integer_division
- link: /learn/best_practices/modules_programs
- link: /learn/best_practices/arrays
- link: /learn/best_practices/multidim_arrays
- link: /learn/best_practices/element_operations
- link: /learn/best_practices/allocatable_arrays
- link: /learn/best_practices/file_io
- link: /learn/best_practices/callbacks
- link: /learn/best_practices/type_casting
# Web links listed at the bottom of the 'Learn' landing page
#
reference-links:
- name: Fortran wiki
url: http://fortranwiki.org/
description: A rich collection of Fortran articles and resources in an editable wiki format
- name: Fortran 90 org
url: https://www.fortran90.org/
description: Fortran Best Practices guide, Python/Fortran Rosetta Stone, Fortran FAQ
- name: "Fortran 2018 Standard Interpretation Document"
url: https://j3-fortran.org/doc/year/18/18-007r1.pdf
description: "J3/18-007r1 F2018, specification of the base Fortran 2018 language"
- name: "J3 Fortran Proposals"
url: https://github.com/j3-fortran/fortran_proposals
description: a repository for community collaboration on proposals for the Fortran Standards Committee
- name: "J3: US Fortran Standards Committee"
url: https://j3-fortran.org/
description: J3 is the US National Body for the international Fortran standards committee
- name: "WG5: International Fortran Standards Committee"
url: https://wg5-fortran.org/
description:
- name: "Scivision Fortran 2018 Examples"
url: https://github.com/scivision/fortran2018-examples
description: A github repository containing code samples for various Fortran 2018 features
- name: "Doctor Fortran Blog"
url: https://stevelionel.com/drfortran
description: A collection of posts on interesting or little-understood aspects of the Fortran language
reference-courses:
- name: "Programming in Fortran"
url: https://doku.lrz.de/display/PUBLIC/Programming+with+Fortran
description: >-
course offered at the Leibniz-Rechenzentrum
- name: "PRACE Course: Fortran for Scientific Computing"
url: https://www.futurelearn.com/courses/fortran-for-scientific-computing
- name: "PRACE Course: Advanced Fortran Topics"
url: https://doku.lrz.de/display/PUBLIC/PRACE+Course%3A+Advanced+Fortran+Topics
- name: "The 'F' Word - Programming in Fortran"
url: https://www.youtube.com/playlist?list=PLRO4xf5MdhAv9CNTETor75rANZtBqPVgQ
description: >-
modern Fortran for developing an extensible library that can be used to solve conservation laws (PDEs) using spectral and spectral element methods
- name: "Kursmaterial für Wissenschaftliches Programmieren (Modern Fortran, 2017)"
url: https://www.bccms.uni-bremen.de/cms/people/b-aradi/wissen-progr/modern-fortran/2017
description: >-
from Bálint Aradi at Bremen Center for Computational Materials Science (German)
- name: "Formations Fortran"
url: http://www.idris.fr/formations/fortran/
description: >-
Fortran course from beginner to expert level (French)
- name: "Modern Fortran Programming for Chemists and Physicists"
url: http://www.chem.helsinki.fi/~manninen/fortran2014/
description: >-
course by Pekka Manninen from University of Helsinki (includes coarrays)
- name: "Expressing Object-Oriented Concepts in Fortran90"
url: http://www.cs.rpi.edu/~szymansk/OOF90/Forum.html
- name: "Coarray tutorial"
url: https://github.com/tkoenig1/coarray-tutorial/blob/main/tutorial.md
description: >-
by Thomas Koenig
- name: "Parallel Programming Workshop"
url: https://fs.hlrs.de/projects/par/par_prog_ws/
description: >-
materials from the High-Performance Computing Center in Stuttgart
- name: "Programming in Modern Fortran"
url: https://cyber.dabamos.de/programming/modernfortran/
description: >-
by Philipp Engel
- name: "2018 Workshop on Fortran Modernization for Scientific Applications"
url: https://tcevents.chem.uzh.ch/event/3/
- name: "Introduction to Programming using Fortran 95/2003/2008"
url: http://www.egr.unlv.edu/~ed/fortran.html
- name: "Scientific Programing and Numerical Computation"
url: http://homepage.ntu.edu.tw/~wttsai/fortran/
description: >-
course by Wu-ting Tsai from National Taiwan University
- name: "Introduction to Modern Fortran"
url: https://www-uxsup.csx.cam.ac.uk/courses/moved.Fortran/
description: >-
course given by Nick Maclaren from the University of Cambridge Computing Service,
derived from a course by Steve Morgan from the University of Liverpool
- name: "User Notes on Fortran Programming (UNFP)"
url: http://www.ibiblio.org/pub/languages/fortran/unfp.html
- name: "Designing and Building Parallel Programs"
url: https://www.mcs.anl.gov/~itf/dbpp/
description: >-
by Ian Foster,
contains descriptions of several non-standard Fortran dialects
like Fortran M and High Performance Fortran)
- name: "Parallel programming with Fortran 2008 and 2018 coarrays"
url: https://coarrays.sourceforge.io/doc.html
description: >-
course by Anton Shterenlikht from the University of Bristol
- name: "Professional Programmer's Guide to Fortran77"
url: https://www.star.le.ac.uk/~cgp/prof77.html
description: >-
by Clive G. Page, University of Leicester, UK
- name: "Fortran90 for Fortran77 Programmers"
url: https://www.star.le.ac.uk/~cgp/f90course/f90.html
description: >-
by Clive G. Page
- name: "Introduction to Computer Programming Using Fortran 95"
url: https://www.archer.ac.uk/training/course-material/2014/08/F95_CCFE/Fortran95CourseNotes.pdf
description: >-
training materials from ARCHER, the UK National Supercomputing Service
- name: "Combining Object-Oriented Techniques with Co-arrays in Fortran 2008"
url: https://www.ecmwf.int/sites/default/files/elibrary/2008/15361-combining-object-oriented-techniques-co-arrays-fortran.pdf
description: >-
by Robert W. Numrich
- name: "Parallel programming in Fortran with Coarrays"
url: ftp://ftp.numerical.rl.ac.uk/pub/talks/jkr.reading.5XI08.pdf
description: >-
by John Reid
- name: "Introduction to Co-Array Fortran"
url: https://faculty.csbsju.edu/mheroux/fall2011_csci317/NumrichCafTalk.pdf
description: >-
by Robert W. Numrich
- name: "Fortran 90 for the Fortran 77 Programmer"
url: https://www.nsc.liu.se/~boein/f77to90/f77to90.html
description: >-
by Bo Einarsson and Yurij Shokin
- name: "Fortran Tutorial"
url: https://www.tat.physik.uni-tuebingen.de/~kley/lehre/ftn77/tutorial/
description: >-
older tutorial by Erik Boman, Stanford University
- name: "Fortran 90 Tutorial"
url: https://web.stanford.edu/class/me200c/tutorial_90/
description: >-
older tutorial by Paul Hargrove and Sarah Whitlock, Stanford University
- name: "Fortran 90 Tutorial"
url: https://pages.mtu.edu/%7eshene/COURSES/cs201/NOTES/fortran.html
description: >-
by C.-K. Shene, Michigan Technologial University
- name: "Exploring Modern Fortran Basics"
url: https://www.manning.com/books/exploring-modern-fortran-basics
description: >-
by Milan Curcic, excerpt (Chapters 2, 3, and 4) from Modern Fortran - Building Efficient Parallel Applications
# Print books listed at the bottom of the 'Learn' landing page
#
# Note: urls are publisher's site or DOI link
#
reference-books:
- author: Ramkarthik, M. S., and Solanki, P. D.
year: 2021
title: "Numerical Recipes in Quantum Information Theory and Quantum Computing: An Adventure in FORTRAN 90"
url: https://www.routledge.com/Numerical-Recipes-in-Quantum-Information-Theory-and-Quantum-Computing-An/Ramkarthik-Solanki/p/book/9780367759285
edition: 1st ed
location: Boca Raton
publisher: CRC Press
- author: Metcalf, M., Reid, J. and Cohen, M.
year: 2018
title: Modern Fortran Explained
url: https://global.oup.com/academic/product/modern-fortran-explained-9780198811893
edition: 5th ed
location: Oxford, UK
publisher: Oxford University Press
- author: Curcic, M.
year: 2020
title: "Modern Fortran: Building Efficient Parallel Applications"
url: https://www.manning.com/books/modern-fortran
edition: 1st ed
location: Shelter Island, NY
publisher: Manning Publications
- author: Fehr, H. and Kindermann, F.
year: 2020
title: "Introduction to Computational Economics Using Fortran"
url: https://www.ce-fortran.com/
edition: 1st ed
location: Oxford, UK
publisher: Oxford University Press
- author: Markus, A.
year: 2012
title: "Modern Fortran in Practice"
url: https://www.cambridge.org/core/books/modern-fortran-in-practice/BC5BD23B2E478B4D457C5D6265BA9363
edition: 1st ed
location: Cambridge, UK
publisher: Cambridge University Press
- author: Chivers, I. and Sleightholme, J.
year: 2018
title: Introduction to Programming with Fortran
url: https://doi.org/10.1007/978-3-319-75502-1
edition: 4th ed
publisher: Springer International Publishing
- author: Chapman, S. J.
year: 2018
title: Fortran for Scientists and Engineers
url: https://www.mheducation.com/highered/product/fortran-scientists-engineers-chapman/M9780073385891.html
edition: 4th ed
location: New York
publisher: McGraw-Hill Education
- author: Ray, S.
year: 2019
title: "Fortran 2018 with Parallel Programming"
url: https://www.routledge.com/Fortran-2018-with-Parallel-Programming/Ray/p/book/9780367218430
edition: 1st ed
publisher: Chapman and Hall/CRC
- author: Brainerd, W. S.
year: 2015
title: Guide to Fortran 2008 Programming
url: https://doi.org/10.1007/978-1-4471-6759-4
edition: 1st ed
location: London
publisher: Springer-Verlag
- author: Numrich, R. W.
year: 2018
title: Parallel Programming with Co-arrays
url: https://doi.org/10.1201/9780429437182
edition: 1st ed
location: New York
publisher: Chapman and Hall/CRC
- author: Akin, E.
year: 2003
title: Object-Oriented Programming via Fortran 90/95
url: https://doi.org/10.1017/CBO9780511530111
edition: 1st ed
location: Cambridge
publisher: Cambridge University Press
- author: McCormack, D.
year: 2009
title: Scientific Software Development with Fortran
url: https://www.lulu.com/en/gb/shop/drew-mccormack/scientific-software-development-in-fortran/ebook/product-1gvmw8p6.html
edition: 1st ed
location:
publisher: Lulu Press
- author: Rouson, D., Xia, J., and Xiaofeng, X.
year: 2014
title: "Scientific Software Design: The Object-Oriented Way"
url: https://www.cambridge.org/gb/academic/subjects/engineering/engineering-general-interest/scientific-software-design-object-oriented-way
edition: 2nd ed
location: Cambridge
publisher: Cambridge University Press
- author: Chirila, D. B., and Lohmann, G.
year: 2015
title: Introduction to Modern Fortran for the Earth System Sciences
url: https://doi.org/10.1007/978-3-642-37009-0
edition: 1st ed
location: Berlin
publisher: Springer-Verlag
- author: Clerman, N. S. and Spector, W.
year: 2011
title: "Modern Fortran: Style and Usage"
url: https://doi.org/10.1017/CBO9781139027687
edition: 1st ed
location: Cambridge
publisher: Cambridge University Press
- author: Hanson, R. J. and Hopkins, T.
year: 2013
title: "Numerical Computing with Modern Fortran"
url: https://doi.org/10.1137/1.9781611973129.fm
edition: 1st ed
location: Philadelphia
publisher: SIAM
- author: Oliveira, S. and Steward, D.
year: 2006
title: "Writing Scientific Software: A Guide to Good Style"
url: https://www.cambridge.org/gb/academic/subjects/computer-science/scientific-computing-scientific-software/writing-scientific-software-guide-good-style
edition: 1st ed
location: Cambridge
publisher: Cambridge University Press
- author: Kernighan, B. and Pike, R.
year: 1999
title: "The Practice of Programming"
url: https://www.oreilly.com/library/view/the-practice-of/9780133133448/
edition: 1st ed
location: Reading
publisher: Addison-Wesley Professional