├── FortranCon2020-community
├── README.md
├── assets
│ ├── FortranCon-community-diagram.odg
│ ├── FortranCon-community-diagram.svg
│ └── monthly-call-screenshot.png
├── dist
│ ├── reset.css
│ ├── reveal.css
│ ├── reveal.esm.js
│ ├── reveal.js
│ └── theme
│ │ ├── beige.css
│ │ ├── black.css
│ │ ├── blood.css
│ │ ├── fonts
│ │ ├── league-gothic
│ │ │ ├── LICENSE
│ │ │ ├── league-gothic.css
│ │ │ ├── league-gothic.eot
│ │ │ ├── league-gothic.ttf
│ │ │ └── league-gothic.woff
│ │ └── source-sans-pro
│ │ │ ├── LICENSE
│ │ │ ├── source-sans-pro-italic.eot
│ │ │ ├── source-sans-pro-italic.ttf
│ │ │ ├── source-sans-pro-italic.woff
│ │ │ ├── source-sans-pro-regular.eot
│ │ │ ├── source-sans-pro-regular.ttf
│ │ │ ├── source-sans-pro-regular.woff
│ │ │ ├── source-sans-pro-semibold.eot
│ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ ├── source-sans-pro-semibold.woff
│ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ └── source-sans-pro.css
│ │ ├── league.css
│ │ ├── moon.css
│ │ ├── night.css
│ │ ├── serif.css
│ │ ├── simple.css
│ │ ├── sky.css
│ │ ├── solarized.css
│ │ └── white.css
├── index.html
├── plugin
│ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ ├── math
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ └── plugin.js
│ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
└── slides
│ ├── about-me.md
│ ├── challenges.md
│ ├── community.md
│ ├── compilers.md
│ ├── discourse.md
│ ├── fpm.md
│ ├── motivation.md
│ ├── outlook.md
│ ├── overview.md
│ ├── pillars.md
│ ├── stdlib.md
│ ├── takeaways.md
│ ├── thank-you.md
│ ├── title.md
│ └── website.md
├── FortranCon2020-fpm
├── README.md
├── fpm-presentation.odp
└── fpm-presentation.pdf
├── FortranCon2020-stdlib
├── README.md
├── apidocsstdlib.png
└── stdlib_talk.tex
├── FortranCon2021-fpm
├── .gitignore
├── Figures
│ ├── bootstrapping.pdf
│ ├── bootstrapping.svg
│ ├── dependencies.pdf
│ ├── dependencies.svg
│ ├── features.pdf
│ ├── features.svg
│ ├── fpm-projects.pdf
│ ├── fpm-projects.svg
│ ├── get-fpm.pdf
│ ├── get-fpm.svg
│ ├── layout.pdf
│ ├── layout.svg
│ ├── logo-cpp.pdf
│ ├── logo-fortran.png
│ ├── logo-haskell.pdf
│ ├── logo-python.pdf
│ └── logo-rust.pdf
├── LICENSE
├── README.md
├── beamercolorthemeMCTC.sty
├── beamerouterthemeMCTC.sty
├── data
│ └── fpm-projects.txt
├── main.tex
└── plot
│ ├── fpm-events.txt
│ ├── fpm-projects.plt
│ └── fpm-projects.txt
├── FortranCon2021-gsoc-fpm-flags
└── README.md
├── FortranCon2021-linked_list
└── README.md
├── FortranCon2021-state-of-fortran
└── README.md
├── FortranCon2021-stdlib
├── README.md
├── contrib.png
├── examples
│ ├── Makefile
│ ├── ex_bitsets.f90
│ ├── ex_logger.f90
│ └── ex_sorting.f90
├── fortran_logo_256x256.png
├── stdlib-talk.pdf
└── stdlib-talk.tex
├── FortranCon2021-string
└── README.md
├── FortranCon2021-vegetables
├── README.md
├── is_leap_year
│ ├── .gitignore
│ ├── README.md
│ ├── fpm.toml
│ ├── src
│ │ └── is_leap_year_m.f90
│ └── test
│ │ ├── bad_test.f90
│ │ ├── fancy_test.f90
│ │ ├── good_test.f90
│ │ ├── main.f90
│ │ └── ugly_test.f90
├── presentation.odp
└── presentation.pdf
├── PackagingCon2021-fpm
├── .gitignore
├── Figures
│ ├── logo-brew.png
│ ├── logo-conda-forge.pdf
│ ├── logo-fortran.png
│ ├── logo-msys2.png
│ └── logo-spack.pdf
├── README.md
├── beamercolorthemeMCTC.sty
├── beamerouterthemeMCTC.sty
└── main.tex
├── README.md
└── deRSE23
├── Discourse_screenshot.png
├── README.md
├── Simpsons.png
├── contrib.png
├── contributor_graph.png
├── deRSE23-community.tex
├── deRSE23.pdf
├── fortran_logo_256x256.png
├── fpm_diagram.pdf
├── lfortran_screenshot.png
├── nature_screenshot.png
├── punch-cards-hires.png
├── r-source_screenshot.png
├── scipy_screenshot.png
├── simpson_horizontal.png
├── vscode_fortran.png
└── website_screenshot.png
/FortranCon2020-community/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2020-community
2 |
3 | Slides for the FortranCon2020 community talk.
4 | Content is licensed under [CC-BY](https://creativecommons.org/licenses/by/4.0/).
5 | Reveal.js is licensed under [MIT](https://github.com/hakimel/reveal.js/blob/master/LICENSE).
6 |
7 | **Presenter**: [Milan Curcic](https://github.com/milancurcic)
8 |
9 | **Co-authors**:
10 | [Ondrej Certik](https://github.com/certik),
11 | [Laurence Kedward](https://github.com/lkedward),
12 | [Vincent Magnin](https://github.com/vmagnin),
13 | [Ivan Pribec](https://github.com/ivan-pi),
14 | [Brad Richardson](https://github.com/everythingfunctional),
15 | [Jeremie Vandenplas](https://github.com/jvdp1).
16 |
17 | **Title**: Toward a thriving open source Fortran community
18 |
19 | **Abstract**:
20 | A thriving community around a programming language is essential for onboarding
21 | new users and retaining existing ones.
22 | Besides a few discussion boards and mailing lists, Fortran has not had a
23 | healthy online community in the modern internet era, like many other
24 | programming languages have.
25 | Despite the development of the language, its user base has been
26 | declining as a result.
27 | Many new software projects are being started in languages like C++, Python,
28 | or Julia, despite Fortran being better suited for the task at hand.
29 | In this talk, we will discuss the need for and the ongoing development of the new
30 | fortran-lang (https://fortran-lang.org) community and its suite of projects
31 | that currently include a standard library, package manager, and a website.
32 | Fortran-lang aims to provide a central place for Fortran users, beginning and
33 | expert alike, to find recommended tools, libraries, tutorials, and
34 | discussion venues that are inclusive and welcoming of newcomers.
35 | We believe that an organized community and a home of Fortran on the internet,
36 | in addition to the Standards Committee and compiler developers,
37 | are essential for the long-term thriving—and not just mere survival—of Fortran.
38 | Finally, we will discuss the next steps, the one-year vision, and the 10-year
39 | vision for going forward.
40 |
--------------------------------------------------------------------------------
/FortranCon2020-community/assets/FortranCon-community-diagram.odg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/assets/FortranCon-community-diagram.odg
--------------------------------------------------------------------------------
/FortranCon2020-community/assets/monthly-call-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/assets/monthly-call-screenshot.png
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/beige.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Beige theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 | @import url(fonts/league-gothic/league-gothic.css);
7 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
8 | /*********************************************
9 | * GLOBAL STYLES
10 | *********************************************/
11 | :root {
12 | --background-color: #f7f3de;
13 | --main-font: Lato, sans-serif;
14 | --main-font-size: 40px;
15 | --main-color: #333;
16 | --block-margin: 20px;
17 | --heading-margin: 0 0 20px 0;
18 | --heading-font: League Gothic, Impact, sans-serif;
19 | --heading-color: #333;
20 | --heading-line-height: 1.2;
21 | --heading-letter-spacing: normal;
22 | --heading-text-transform: uppercase;
23 | --heading-text-shadow: none;
24 | --heading-font-weight: normal;
25 | --heading1-text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15);
26 | --heading1-size: 3.77em;
27 | --heading2-size: 2.11em;
28 | --heading3-size: 1.55em;
29 | --heading4-size: 1em;
30 | --code-font: monospace;
31 | --link-color: #8b743d;
32 | --link-color-hover: #c0a86e;
33 | --selection-background-color: rgba(79, 64, 28, 0.99);
34 | --selection-color: #fff; }
35 |
36 | .reveal-viewport {
37 | background: #f7f2d3;
38 | background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
39 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));
40 | background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
41 | background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
42 | background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
43 | background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
44 | background-color: #f7f3de; }
45 |
46 | .reveal {
47 | font-family: "Lato", sans-serif;
48 | font-size: 40px;
49 | font-weight: normal;
50 | color: #333; }
51 |
52 | .reveal ::selection {
53 | color: #fff;
54 | background: rgba(79, 64, 28, 0.99);
55 | text-shadow: none; }
56 |
57 | .reveal ::-moz-selection {
58 | color: #fff;
59 | background: rgba(79, 64, 28, 0.99);
60 | text-shadow: none; }
61 |
62 | .reveal .slides section,
63 | .reveal .slides section > section {
64 | line-height: 1.3;
65 | font-weight: inherit; }
66 |
67 | /*********************************************
68 | * HEADERS
69 | *********************************************/
70 | .reveal h1,
71 | .reveal h2,
72 | .reveal h3,
73 | .reveal h4,
74 | .reveal h5,
75 | .reveal h6 {
76 | margin: 0 0 20px 0;
77 | color: #333;
78 | font-family: "League Gothic", Impact, sans-serif;
79 | font-weight: normal;
80 | line-height: 1.2;
81 | letter-spacing: normal;
82 | text-transform: uppercase;
83 | text-shadow: none;
84 | word-wrap: break-word; }
85 |
86 | .reveal h1 {
87 | font-size: 3.77em; }
88 |
89 | .reveal h2 {
90 | font-size: 2.11em; }
91 |
92 | .reveal h3 {
93 | font-size: 1.55em; }
94 |
95 | .reveal h4 {
96 | font-size: 1em; }
97 |
98 | .reveal h1 {
99 | text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
100 |
101 | /*********************************************
102 | * OTHER
103 | *********************************************/
104 | .reveal p {
105 | margin: 20px 0;
106 | line-height: 1.3; }
107 |
108 | /* Ensure certain elements are never larger than the slide itself */
109 | .reveal img,
110 | .reveal video,
111 | .reveal iframe {
112 | max-width: 95%;
113 | max-height: 95%; }
114 |
115 | .reveal strong,
116 | .reveal b {
117 | font-weight: bold; }
118 |
119 | .reveal em {
120 | font-style: italic; }
121 |
122 | .reveal ol,
123 | .reveal dl,
124 | .reveal ul {
125 | display: inline-block;
126 | text-align: left;
127 | margin: 0 0 0 1em; }
128 |
129 | .reveal ol {
130 | list-style-type: decimal; }
131 |
132 | .reveal ul {
133 | list-style-type: disc; }
134 |
135 | .reveal ul ul {
136 | list-style-type: square; }
137 |
138 | .reveal ul ul ul {
139 | list-style-type: circle; }
140 |
141 | .reveal ul ul,
142 | .reveal ul ol,
143 | .reveal ol ol,
144 | .reveal ol ul {
145 | display: block;
146 | margin-left: 40px; }
147 |
148 | .reveal dt {
149 | font-weight: bold; }
150 |
151 | .reveal dd {
152 | margin-left: 40px; }
153 |
154 | .reveal blockquote {
155 | display: block;
156 | position: relative;
157 | width: 70%;
158 | margin: 20px auto;
159 | padding: 5px;
160 | font-style: italic;
161 | background: rgba(255, 255, 255, 0.05);
162 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
163 |
164 | .reveal blockquote p:first-child,
165 | .reveal blockquote p:last-child {
166 | display: inline-block; }
167 |
168 | .reveal q {
169 | font-style: italic; }
170 |
171 | .reveal pre {
172 | display: block;
173 | position: relative;
174 | width: 90%;
175 | margin: 20px auto;
176 | text-align: left;
177 | font-size: 0.55em;
178 | font-family: monospace;
179 | line-height: 1.2em;
180 | word-wrap: break-word;
181 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
182 |
183 | .reveal code {
184 | font-family: monospace;
185 | text-transform: none; }
186 |
187 | .reveal pre code {
188 | display: block;
189 | padding: 5px;
190 | overflow: auto;
191 | max-height: 400px;
192 | word-wrap: normal; }
193 |
194 | .reveal table {
195 | margin: auto;
196 | border-collapse: collapse;
197 | border-spacing: 0; }
198 |
199 | .reveal table th {
200 | font-weight: bold; }
201 |
202 | .reveal table th,
203 | .reveal table td {
204 | text-align: left;
205 | padding: 0.2em 0.5em 0.2em 0.5em;
206 | border-bottom: 1px solid; }
207 |
208 | .reveal table th[align="center"],
209 | .reveal table td[align="center"] {
210 | text-align: center; }
211 |
212 | .reveal table th[align="right"],
213 | .reveal table td[align="right"] {
214 | text-align: right; }
215 |
216 | .reveal table tbody tr:last-child th,
217 | .reveal table tbody tr:last-child td {
218 | border-bottom: none; }
219 |
220 | .reveal sup {
221 | vertical-align: super;
222 | font-size: smaller; }
223 |
224 | .reveal sub {
225 | vertical-align: sub;
226 | font-size: smaller; }
227 |
228 | .reveal small {
229 | display: inline-block;
230 | font-size: 0.6em;
231 | line-height: 1.2em;
232 | vertical-align: top; }
233 |
234 | .reveal small * {
235 | vertical-align: top; }
236 |
237 | .reveal img {
238 | margin: 20px 0; }
239 |
240 | /*********************************************
241 | * LINKS
242 | *********************************************/
243 | .reveal a {
244 | color: #8b743d;
245 | text-decoration: none;
246 | transition: color .15s ease; }
247 |
248 | .reveal a:hover {
249 | color: #c0a86e;
250 | text-shadow: none;
251 | border: none; }
252 |
253 | .reveal .roll span:after {
254 | color: #fff;
255 | background: #564826; }
256 |
257 | /*********************************************
258 | * Frame helper
259 | *********************************************/
260 | .reveal .r-frame {
261 | border: 4px solid #333;
262 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
263 |
264 | .reveal a .r-frame {
265 | transition: all .15s linear; }
266 |
267 | .reveal a:hover .r-frame {
268 | border-color: #8b743d;
269 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
270 |
271 | /*********************************************
272 | * NAVIGATION CONTROLS
273 | *********************************************/
274 | .reveal .controls {
275 | color: #8b743d; }
276 |
277 | /*********************************************
278 | * PROGRESS BAR
279 | *********************************************/
280 | .reveal .progress {
281 | background: rgba(0, 0, 0, 0.2);
282 | color: #8b743d; }
283 |
284 | /*********************************************
285 | * PRINT BACKGROUND
286 | *********************************************/
287 | @media print {
288 | .backgrounds {
289 | background-color: #f7f3de; } }
290 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/black.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Black theme for reveal.js. This is the opposite of the 'white' theme.
3 | *
4 | * By Hakim El Hattab, http://hakim.se
5 | */
6 | @import url(fonts/source-sans-pro/source-sans-pro.css);
7 | section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 {
8 | color: #222; }
9 |
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | :root {
14 | --background-color: #191919;
15 | --main-font: Source Sans Pro, Helvetica, sans-serif;
16 | --main-font-size: 42px;
17 | --main-color: #fff;
18 | --block-margin: 20px;
19 | --heading-margin: 0 0 20px 0;
20 | --heading-font: Source Sans Pro, Helvetica, sans-serif;
21 | --heading-color: #fff;
22 | --heading-line-height: 1.2;
23 | --heading-letter-spacing: normal;
24 | --heading-text-transform: uppercase;
25 | --heading-text-shadow: none;
26 | --heading-font-weight: 600;
27 | --heading1-text-shadow: none;
28 | --heading1-size: 2.5em;
29 | --heading2-size: 1.6em;
30 | --heading3-size: 1.3em;
31 | --heading4-size: 1em;
32 | --code-font: monospace;
33 | --link-color: #42affa;
34 | --link-color-hover: #8dcffc;
35 | --selection-background-color: #bee4fd;
36 | --selection-color: #fff; }
37 |
38 | .reveal-viewport {
39 | background: #191919;
40 | background-color: #191919; }
41 |
42 | .reveal {
43 | font-family: "Source Sans Pro", Helvetica, sans-serif;
44 | font-size: 42px;
45 | font-weight: normal;
46 | color: #fff; }
47 |
48 | .reveal ::selection {
49 | color: #fff;
50 | background: #bee4fd;
51 | text-shadow: none; }
52 |
53 | .reveal ::-moz-selection {
54 | color: #fff;
55 | background: #bee4fd;
56 | text-shadow: none; }
57 |
58 | .reveal .slides section,
59 | .reveal .slides section > section {
60 | line-height: 1.3;
61 | font-weight: inherit; }
62 |
63 | /*********************************************
64 | * HEADERS
65 | *********************************************/
66 | .reveal h1,
67 | .reveal h2,
68 | .reveal h3,
69 | .reveal h4,
70 | .reveal h5,
71 | .reveal h6 {
72 | margin: 0 0 20px 0;
73 | color: #fff;
74 | font-family: "Source Sans Pro", Helvetica, sans-serif;
75 | font-weight: 600;
76 | line-height: 1.2;
77 | letter-spacing: normal;
78 | text-transform: uppercase;
79 | text-shadow: none;
80 | word-wrap: break-word; }
81 |
82 | .reveal h1 {
83 | font-size: 2.5em; }
84 |
85 | .reveal h2 {
86 | font-size: 1.6em; }
87 |
88 | .reveal h3 {
89 | font-size: 1.3em; }
90 |
91 | .reveal h4 {
92 | font-size: 1em; }
93 |
94 | .reveal h1 {
95 | text-shadow: none; }
96 |
97 | /*********************************************
98 | * OTHER
99 | *********************************************/
100 | .reveal p {
101 | margin: 20px 0;
102 | line-height: 1.3; }
103 |
104 | /* Ensure certain elements are never larger than the slide itself */
105 | .reveal img,
106 | .reveal video,
107 | .reveal iframe {
108 | max-width: 95%;
109 | max-height: 95%; }
110 |
111 | .reveal strong,
112 | .reveal b {
113 | font-weight: bold; }
114 |
115 | .reveal em {
116 | font-style: italic; }
117 |
118 | .reveal ol,
119 | .reveal dl,
120 | .reveal ul {
121 | display: inline-block;
122 | text-align: left;
123 | margin: 0 0 0 1em; }
124 |
125 | .reveal ol {
126 | list-style-type: decimal; }
127 |
128 | .reveal ul {
129 | list-style-type: disc; }
130 |
131 | .reveal ul ul {
132 | list-style-type: square; }
133 |
134 | .reveal ul ul ul {
135 | list-style-type: circle; }
136 |
137 | .reveal ul ul,
138 | .reveal ul ol,
139 | .reveal ol ol,
140 | .reveal ol ul {
141 | display: block;
142 | margin-left: 40px; }
143 |
144 | .reveal dt {
145 | font-weight: bold; }
146 |
147 | .reveal dd {
148 | margin-left: 40px; }
149 |
150 | .reveal blockquote {
151 | display: block;
152 | position: relative;
153 | width: 70%;
154 | margin: 20px auto;
155 | padding: 5px;
156 | font-style: italic;
157 | background: rgba(255, 255, 255, 0.05);
158 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
159 |
160 | .reveal blockquote p:first-child,
161 | .reveal blockquote p:last-child {
162 | display: inline-block; }
163 |
164 | .reveal q {
165 | font-style: italic; }
166 |
167 | .reveal pre {
168 | display: block;
169 | position: relative;
170 | width: 90%;
171 | margin: 20px auto;
172 | text-align: left;
173 | font-size: 0.55em;
174 | font-family: monospace;
175 | line-height: 1.2em;
176 | word-wrap: break-word;
177 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
178 |
179 | .reveal code {
180 | font-family: monospace;
181 | text-transform: none; }
182 |
183 | .reveal pre code {
184 | display: block;
185 | padding: 5px;
186 | overflow: auto;
187 | max-height: 400px;
188 | word-wrap: normal; }
189 |
190 | .reveal table {
191 | margin: auto;
192 | border-collapse: collapse;
193 | border-spacing: 0; }
194 |
195 | .reveal table th {
196 | font-weight: bold; }
197 |
198 | .reveal table th,
199 | .reveal table td {
200 | text-align: left;
201 | padding: 0.2em 0.5em 0.2em 0.5em;
202 | border-bottom: 1px solid; }
203 |
204 | .reveal table th[align="center"],
205 | .reveal table td[align="center"] {
206 | text-align: center; }
207 |
208 | .reveal table th[align="right"],
209 | .reveal table td[align="right"] {
210 | text-align: right; }
211 |
212 | .reveal table tbody tr:last-child th,
213 | .reveal table tbody tr:last-child td {
214 | border-bottom: none; }
215 |
216 | .reveal sup {
217 | vertical-align: super;
218 | font-size: smaller; }
219 |
220 | .reveal sub {
221 | vertical-align: sub;
222 | font-size: smaller; }
223 |
224 | .reveal small {
225 | display: inline-block;
226 | font-size: 0.6em;
227 | line-height: 1.2em;
228 | vertical-align: top; }
229 |
230 | .reveal small * {
231 | vertical-align: top; }
232 |
233 | .reveal img {
234 | margin: 20px 0; }
235 |
236 | /*********************************************
237 | * LINKS
238 | *********************************************/
239 | .reveal a {
240 | color: #42affa;
241 | text-decoration: none;
242 | transition: color .15s ease; }
243 |
244 | .reveal a:hover {
245 | color: #8dcffc;
246 | text-shadow: none;
247 | border: none; }
248 |
249 | .reveal .roll span:after {
250 | color: #fff;
251 | background: #068de9; }
252 |
253 | /*********************************************
254 | * Frame helper
255 | *********************************************/
256 | .reveal .r-frame {
257 | border: 4px solid #fff;
258 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
259 |
260 | .reveal a .r-frame {
261 | transition: all .15s linear; }
262 |
263 | .reveal a:hover .r-frame {
264 | border-color: #42affa;
265 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
266 |
267 | /*********************************************
268 | * NAVIGATION CONTROLS
269 | *********************************************/
270 | .reveal .controls {
271 | color: #42affa; }
272 |
273 | /*********************************************
274 | * PROGRESS BAR
275 | *********************************************/
276 | .reveal .progress {
277 | background: rgba(0, 0, 0, 0.2);
278 | color: #42affa; }
279 |
280 | /*********************************************
281 | * PRINT BACKGROUND
282 | *********************************************/
283 | @media print {
284 | .backgrounds {
285 | background-color: #191919; } }
286 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/blood.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Blood theme for reveal.js
3 | * Author: Walther http://github.com/Walther
4 | *
5 | * Designed to be used with highlight.js theme
6 | * "monokai_sublime.css" available from
7 | * https://github.com/isagalaev/highlight.js/
8 | *
9 | * For other themes, change $codeBackground accordingly.
10 | *
11 | */
12 | @import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
13 | /*********************************************
14 | * GLOBAL STYLES
15 | *********************************************/
16 | :root {
17 | --background-color: #222;
18 | --main-font: Ubuntu, sans-serif;
19 | --main-font-size: 40px;
20 | --main-color: #eee;
21 | --block-margin: 20px;
22 | --heading-margin: 0 0 20px 0;
23 | --heading-font: Ubuntu, sans-serif;
24 | --heading-color: #eee;
25 | --heading-line-height: 1.2;
26 | --heading-letter-spacing: normal;
27 | --heading-text-transform: uppercase;
28 | --heading-text-shadow: 2px 2px 2px #222;
29 | --heading-font-weight: normal;
30 | --heading1-text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15);
31 | --heading1-size: 3.77em;
32 | --heading2-size: 2.11em;
33 | --heading3-size: 1.55em;
34 | --heading4-size: 1em;
35 | --code-font: monospace;
36 | --link-color: #a23;
37 | --link-color-hover: #dd5566;
38 | --selection-background-color: #a23;
39 | --selection-color: #fff; }
40 |
41 | .reveal-viewport {
42 | background: #222;
43 | background-color: #222; }
44 |
45 | .reveal {
46 | font-family: Ubuntu, "sans-serif";
47 | font-size: 40px;
48 | font-weight: normal;
49 | color: #eee; }
50 |
51 | .reveal ::selection {
52 | color: #fff;
53 | background: #a23;
54 | text-shadow: none; }
55 |
56 | .reveal ::-moz-selection {
57 | color: #fff;
58 | background: #a23;
59 | text-shadow: none; }
60 |
61 | .reveal .slides section,
62 | .reveal .slides section > section {
63 | line-height: 1.3;
64 | font-weight: inherit; }
65 |
66 | /*********************************************
67 | * HEADERS
68 | *********************************************/
69 | .reveal h1,
70 | .reveal h2,
71 | .reveal h3,
72 | .reveal h4,
73 | .reveal h5,
74 | .reveal h6 {
75 | margin: 0 0 20px 0;
76 | color: #eee;
77 | font-family: Ubuntu, "sans-serif";
78 | font-weight: normal;
79 | line-height: 1.2;
80 | letter-spacing: normal;
81 | text-transform: uppercase;
82 | text-shadow: 2px 2px 2px #222;
83 | word-wrap: break-word; }
84 |
85 | .reveal h1 {
86 | font-size: 3.77em; }
87 |
88 | .reveal h2 {
89 | font-size: 2.11em; }
90 |
91 | .reveal h3 {
92 | font-size: 1.55em; }
93 |
94 | .reveal h4 {
95 | font-size: 1em; }
96 |
97 | .reveal h1 {
98 | text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
99 |
100 | /*********************************************
101 | * OTHER
102 | *********************************************/
103 | .reveal p {
104 | margin: 20px 0;
105 | line-height: 1.3; }
106 |
107 | /* Ensure certain elements are never larger than the slide itself */
108 | .reveal img,
109 | .reveal video,
110 | .reveal iframe {
111 | max-width: 95%;
112 | max-height: 95%; }
113 |
114 | .reveal strong,
115 | .reveal b {
116 | font-weight: bold; }
117 |
118 | .reveal em {
119 | font-style: italic; }
120 |
121 | .reveal ol,
122 | .reveal dl,
123 | .reveal ul {
124 | display: inline-block;
125 | text-align: left;
126 | margin: 0 0 0 1em; }
127 |
128 | .reveal ol {
129 | list-style-type: decimal; }
130 |
131 | .reveal ul {
132 | list-style-type: disc; }
133 |
134 | .reveal ul ul {
135 | list-style-type: square; }
136 |
137 | .reveal ul ul ul {
138 | list-style-type: circle; }
139 |
140 | .reveal ul ul,
141 | .reveal ul ol,
142 | .reveal ol ol,
143 | .reveal ol ul {
144 | display: block;
145 | margin-left: 40px; }
146 |
147 | .reveal dt {
148 | font-weight: bold; }
149 |
150 | .reveal dd {
151 | margin-left: 40px; }
152 |
153 | .reveal blockquote {
154 | display: block;
155 | position: relative;
156 | width: 70%;
157 | margin: 20px auto;
158 | padding: 5px;
159 | font-style: italic;
160 | background: rgba(255, 255, 255, 0.05);
161 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
162 |
163 | .reveal blockquote p:first-child,
164 | .reveal blockquote p:last-child {
165 | display: inline-block; }
166 |
167 | .reveal q {
168 | font-style: italic; }
169 |
170 | .reveal pre {
171 | display: block;
172 | position: relative;
173 | width: 90%;
174 | margin: 20px auto;
175 | text-align: left;
176 | font-size: 0.55em;
177 | font-family: monospace;
178 | line-height: 1.2em;
179 | word-wrap: break-word;
180 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
181 |
182 | .reveal code {
183 | font-family: monospace;
184 | text-transform: none; }
185 |
186 | .reveal pre code {
187 | display: block;
188 | padding: 5px;
189 | overflow: auto;
190 | max-height: 400px;
191 | word-wrap: normal; }
192 |
193 | .reveal table {
194 | margin: auto;
195 | border-collapse: collapse;
196 | border-spacing: 0; }
197 |
198 | .reveal table th {
199 | font-weight: bold; }
200 |
201 | .reveal table th,
202 | .reveal table td {
203 | text-align: left;
204 | padding: 0.2em 0.5em 0.2em 0.5em;
205 | border-bottom: 1px solid; }
206 |
207 | .reveal table th[align="center"],
208 | .reveal table td[align="center"] {
209 | text-align: center; }
210 |
211 | .reveal table th[align="right"],
212 | .reveal table td[align="right"] {
213 | text-align: right; }
214 |
215 | .reveal table tbody tr:last-child th,
216 | .reveal table tbody tr:last-child td {
217 | border-bottom: none; }
218 |
219 | .reveal sup {
220 | vertical-align: super;
221 | font-size: smaller; }
222 |
223 | .reveal sub {
224 | vertical-align: sub;
225 | font-size: smaller; }
226 |
227 | .reveal small {
228 | display: inline-block;
229 | font-size: 0.6em;
230 | line-height: 1.2em;
231 | vertical-align: top; }
232 |
233 | .reveal small * {
234 | vertical-align: top; }
235 |
236 | .reveal img {
237 | margin: 20px 0; }
238 |
239 | /*********************************************
240 | * LINKS
241 | *********************************************/
242 | .reveal a {
243 | color: #a23;
244 | text-decoration: none;
245 | transition: color .15s ease; }
246 |
247 | .reveal a:hover {
248 | color: #dd5566;
249 | text-shadow: none;
250 | border: none; }
251 |
252 | .reveal .roll span:after {
253 | color: #fff;
254 | background: #6a1520; }
255 |
256 | /*********************************************
257 | * Frame helper
258 | *********************************************/
259 | .reveal .r-frame {
260 | border: 4px solid #eee;
261 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
262 |
263 | .reveal a .r-frame {
264 | transition: all .15s linear; }
265 |
266 | .reveal a:hover .r-frame {
267 | border-color: #a23;
268 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
269 |
270 | /*********************************************
271 | * NAVIGATION CONTROLS
272 | *********************************************/
273 | .reveal .controls {
274 | color: #a23; }
275 |
276 | /*********************************************
277 | * PROGRESS BAR
278 | *********************************************/
279 | .reveal .progress {
280 | background: rgba(0, 0, 0, 0.2);
281 | color: #a23; }
282 |
283 | /*********************************************
284 | * PRINT BACKGROUND
285 | *********************************************/
286 | @media print {
287 | .backgrounds {
288 | background-color: #222; } }
289 |
290 | .reveal p {
291 | font-weight: 300;
292 | text-shadow: 1px 1px #222; }
293 |
294 | .reveal h1,
295 | .reveal h2,
296 | .reveal h3,
297 | .reveal h4,
298 | .reveal h5,
299 | .reveal h6 {
300 | font-weight: 700; }
301 |
302 | .reveal p code {
303 | background-color: #23241f;
304 | display: inline-block;
305 | border-radius: 7px; }
306 |
307 | .reveal small code {
308 | vertical-align: baseline; }
309 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('league-gothic.eot');
4 | src: url('league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('league-gothic.woff') format('woff'),
6 | url('league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License
2 |
3 | Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
4 |
5 | This Font Software is licensed under the SIL Open Font License, Version 1.1.
6 | This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
7 |
8 | —————————————————————————————-
9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10 | —————————————————————————————-
11 |
12 | PREAMBLE
13 | The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
14 |
15 | The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
16 |
17 | DEFINITIONS
18 | “Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
19 |
20 | “Reserved Font Name” refers to any names specified as such after the copyright statement(s).
21 |
22 | “Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s).
23 |
24 | “Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
25 |
26 | “Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
27 |
28 | PERMISSION & CONDITIONS
29 | Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
30 |
31 | 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
32 |
33 | 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
34 |
35 | 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
36 |
37 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
38 |
39 | 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
40 |
41 | TERMINATION
42 | This license becomes null and void if any of the above conditions are not met.
43 |
44 | DISCLAIMER
45 | THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('source-sans-pro-regular.eot');
4 | src: url('source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('source-sans-pro-regular.woff') format('woff'),
6 | url('source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('source-sans-pro-italic.eot');
14 | src: url('source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('source-sans-pro-italic.woff') format('woff'),
16 | url('source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('source-sans-pro-semibold.eot');
24 | src: url('source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('source-sans-pro-semibold.woff') format('woff'),
26 | url('source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('source-sans-pro-semibolditalic.eot');
34 | src: url('source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/league.css:
--------------------------------------------------------------------------------
1 | /**
2 | * League theme for reveal.js.
3 | *
4 | * This was the default theme pre-3.0.0.
5 | *
6 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
7 | */
8 | @import url(fonts/league-gothic/league-gothic.css);
9 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | :root {
14 | --background-color: #2b2b2b;
15 | --main-font: Lato, sans-serif;
16 | --main-font-size: 40px;
17 | --main-color: #eee;
18 | --block-margin: 20px;
19 | --heading-margin: 0 0 20px 0;
20 | --heading-font: League Gothic, Impact, sans-serif;
21 | --heading-color: #eee;
22 | --heading-line-height: 1.2;
23 | --heading-letter-spacing: normal;
24 | --heading-text-transform: uppercase;
25 | --heading-text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);
26 | --heading-font-weight: normal;
27 | --heading1-text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15);
28 | --heading1-size: 3.77em;
29 | --heading2-size: 2.11em;
30 | --heading3-size: 1.55em;
31 | --heading4-size: 1em;
32 | --code-font: monospace;
33 | --link-color: #13DAEC;
34 | --link-color-hover: #71e9f4;
35 | --selection-background-color: #FF5E99;
36 | --selection-color: #fff; }
37 |
38 | .reveal-viewport {
39 | background: #1c1e20;
40 | background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
41 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
42 | background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
43 | background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
44 | background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
45 | background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
46 | background-color: #2b2b2b; }
47 |
48 | .reveal {
49 | font-family: "Lato", sans-serif;
50 | font-size: 40px;
51 | font-weight: normal;
52 | color: #eee; }
53 |
54 | .reveal ::selection {
55 | color: #fff;
56 | background: #FF5E99;
57 | text-shadow: none; }
58 |
59 | .reveal ::-moz-selection {
60 | color: #fff;
61 | background: #FF5E99;
62 | text-shadow: none; }
63 |
64 | .reveal .slides section,
65 | .reveal .slides section > section {
66 | line-height: 1.3;
67 | font-weight: inherit; }
68 |
69 | /*********************************************
70 | * HEADERS
71 | *********************************************/
72 | .reveal h1,
73 | .reveal h2,
74 | .reveal h3,
75 | .reveal h4,
76 | .reveal h5,
77 | .reveal h6 {
78 | margin: 0 0 20px 0;
79 | color: #eee;
80 | font-family: "League Gothic", Impact, sans-serif;
81 | font-weight: normal;
82 | line-height: 1.2;
83 | letter-spacing: normal;
84 | text-transform: uppercase;
85 | text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);
86 | word-wrap: break-word; }
87 |
88 | .reveal h1 {
89 | font-size: 3.77em; }
90 |
91 | .reveal h2 {
92 | font-size: 2.11em; }
93 |
94 | .reveal h3 {
95 | font-size: 1.55em; }
96 |
97 | .reveal h4 {
98 | font-size: 1em; }
99 |
100 | .reveal h1 {
101 | text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
102 |
103 | /*********************************************
104 | * OTHER
105 | *********************************************/
106 | .reveal p {
107 | margin: 20px 0;
108 | line-height: 1.3; }
109 |
110 | /* Ensure certain elements are never larger than the slide itself */
111 | .reveal img,
112 | .reveal video,
113 | .reveal iframe {
114 | max-width: 95%;
115 | max-height: 95%; }
116 |
117 | .reveal strong,
118 | .reveal b {
119 | font-weight: bold; }
120 |
121 | .reveal em {
122 | font-style: italic; }
123 |
124 | .reveal ol,
125 | .reveal dl,
126 | .reveal ul {
127 | display: inline-block;
128 | text-align: left;
129 | margin: 0 0 0 1em; }
130 |
131 | .reveal ol {
132 | list-style-type: decimal; }
133 |
134 | .reveal ul {
135 | list-style-type: disc; }
136 |
137 | .reveal ul ul {
138 | list-style-type: square; }
139 |
140 | .reveal ul ul ul {
141 | list-style-type: circle; }
142 |
143 | .reveal ul ul,
144 | .reveal ul ol,
145 | .reveal ol ol,
146 | .reveal ol ul {
147 | display: block;
148 | margin-left: 40px; }
149 |
150 | .reveal dt {
151 | font-weight: bold; }
152 |
153 | .reveal dd {
154 | margin-left: 40px; }
155 |
156 | .reveal blockquote {
157 | display: block;
158 | position: relative;
159 | width: 70%;
160 | margin: 20px auto;
161 | padding: 5px;
162 | font-style: italic;
163 | background: rgba(255, 255, 255, 0.05);
164 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
165 |
166 | .reveal blockquote p:first-child,
167 | .reveal blockquote p:last-child {
168 | display: inline-block; }
169 |
170 | .reveal q {
171 | font-style: italic; }
172 |
173 | .reveal pre {
174 | display: block;
175 | position: relative;
176 | width: 90%;
177 | margin: 20px auto;
178 | text-align: left;
179 | font-size: 0.55em;
180 | font-family: monospace;
181 | line-height: 1.2em;
182 | word-wrap: break-word;
183 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
184 |
185 | .reveal code {
186 | font-family: monospace;
187 | text-transform: none; }
188 |
189 | .reveal pre code {
190 | display: block;
191 | padding: 5px;
192 | overflow: auto;
193 | max-height: 400px;
194 | word-wrap: normal; }
195 |
196 | .reveal table {
197 | margin: auto;
198 | border-collapse: collapse;
199 | border-spacing: 0; }
200 |
201 | .reveal table th {
202 | font-weight: bold; }
203 |
204 | .reveal table th,
205 | .reveal table td {
206 | text-align: left;
207 | padding: 0.2em 0.5em 0.2em 0.5em;
208 | border-bottom: 1px solid; }
209 |
210 | .reveal table th[align="center"],
211 | .reveal table td[align="center"] {
212 | text-align: center; }
213 |
214 | .reveal table th[align="right"],
215 | .reveal table td[align="right"] {
216 | text-align: right; }
217 |
218 | .reveal table tbody tr:last-child th,
219 | .reveal table tbody tr:last-child td {
220 | border-bottom: none; }
221 |
222 | .reveal sup {
223 | vertical-align: super;
224 | font-size: smaller; }
225 |
226 | .reveal sub {
227 | vertical-align: sub;
228 | font-size: smaller; }
229 |
230 | .reveal small {
231 | display: inline-block;
232 | font-size: 0.6em;
233 | line-height: 1.2em;
234 | vertical-align: top; }
235 |
236 | .reveal small * {
237 | vertical-align: top; }
238 |
239 | .reveal img {
240 | margin: 20px 0; }
241 |
242 | /*********************************************
243 | * LINKS
244 | *********************************************/
245 | .reveal a {
246 | color: #13DAEC;
247 | text-decoration: none;
248 | transition: color .15s ease; }
249 |
250 | .reveal a:hover {
251 | color: #71e9f4;
252 | text-shadow: none;
253 | border: none; }
254 |
255 | .reveal .roll span:after {
256 | color: #fff;
257 | background: #0d99a5; }
258 |
259 | /*********************************************
260 | * Frame helper
261 | *********************************************/
262 | .reveal .r-frame {
263 | border: 4px solid #eee;
264 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
265 |
266 | .reveal a .r-frame {
267 | transition: all .15s linear; }
268 |
269 | .reveal a:hover .r-frame {
270 | border-color: #13DAEC;
271 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
272 |
273 | /*********************************************
274 | * NAVIGATION CONTROLS
275 | *********************************************/
276 | .reveal .controls {
277 | color: #13DAEC; }
278 |
279 | /*********************************************
280 | * PROGRESS BAR
281 | *********************************************/
282 | .reveal .progress {
283 | background: rgba(0, 0, 0, 0.2);
284 | color: #13DAEC; }
285 |
286 | /*********************************************
287 | * PRINT BACKGROUND
288 | *********************************************/
289 | @media print {
290 | .backgrounds {
291 | background-color: #2b2b2b; } }
292 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/moon.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Solarized Dark theme for reveal.js.
3 | * Author: Achim Staebler
4 | */
5 | @import url(fonts/league-gothic/league-gothic.css);
6 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
7 | /**
8 | * Solarized colors by Ethan Schoonover
9 | */
10 | html * {
11 | color-profile: sRGB;
12 | rendering-intent: auto; }
13 |
14 | /*********************************************
15 | * GLOBAL STYLES
16 | *********************************************/
17 | :root {
18 | --background-color: #002b36;
19 | --main-font: Lato, sans-serif;
20 | --main-font-size: 40px;
21 | --main-color: #93a1a1;
22 | --block-margin: 20px;
23 | --heading-margin: 0 0 20px 0;
24 | --heading-font: League Gothic, Impact, sans-serif;
25 | --heading-color: #eee8d5;
26 | --heading-line-height: 1.2;
27 | --heading-letter-spacing: normal;
28 | --heading-text-transform: uppercase;
29 | --heading-text-shadow: none;
30 | --heading-font-weight: normal;
31 | --heading1-text-shadow: none;
32 | --heading1-size: 3.77em;
33 | --heading2-size: 2.11em;
34 | --heading3-size: 1.55em;
35 | --heading4-size: 1em;
36 | --code-font: monospace;
37 | --link-color: #268bd2;
38 | --link-color-hover: #78b9e6;
39 | --selection-background-color: #d33682;
40 | --selection-color: #fff; }
41 |
42 | .reveal-viewport {
43 | background: #002b36;
44 | background-color: #002b36; }
45 |
46 | .reveal {
47 | font-family: "Lato", sans-serif;
48 | font-size: 40px;
49 | font-weight: normal;
50 | color: #93a1a1; }
51 |
52 | .reveal ::selection {
53 | color: #fff;
54 | background: #d33682;
55 | text-shadow: none; }
56 |
57 | .reveal ::-moz-selection {
58 | color: #fff;
59 | background: #d33682;
60 | text-shadow: none; }
61 |
62 | .reveal .slides section,
63 | .reveal .slides section > section {
64 | line-height: 1.3;
65 | font-weight: inherit; }
66 |
67 | /*********************************************
68 | * HEADERS
69 | *********************************************/
70 | .reveal h1,
71 | .reveal h2,
72 | .reveal h3,
73 | .reveal h4,
74 | .reveal h5,
75 | .reveal h6 {
76 | margin: 0 0 20px 0;
77 | color: #eee8d5;
78 | font-family: "League Gothic", Impact, sans-serif;
79 | font-weight: normal;
80 | line-height: 1.2;
81 | letter-spacing: normal;
82 | text-transform: uppercase;
83 | text-shadow: none;
84 | word-wrap: break-word; }
85 |
86 | .reveal h1 {
87 | font-size: 3.77em; }
88 |
89 | .reveal h2 {
90 | font-size: 2.11em; }
91 |
92 | .reveal h3 {
93 | font-size: 1.55em; }
94 |
95 | .reveal h4 {
96 | font-size: 1em; }
97 |
98 | .reveal h1 {
99 | text-shadow: none; }
100 |
101 | /*********************************************
102 | * OTHER
103 | *********************************************/
104 | .reveal p {
105 | margin: 20px 0;
106 | line-height: 1.3; }
107 |
108 | /* Ensure certain elements are never larger than the slide itself */
109 | .reveal img,
110 | .reveal video,
111 | .reveal iframe {
112 | max-width: 95%;
113 | max-height: 95%; }
114 |
115 | .reveal strong,
116 | .reveal b {
117 | font-weight: bold; }
118 |
119 | .reveal em {
120 | font-style: italic; }
121 |
122 | .reveal ol,
123 | .reveal dl,
124 | .reveal ul {
125 | display: inline-block;
126 | text-align: left;
127 | margin: 0 0 0 1em; }
128 |
129 | .reveal ol {
130 | list-style-type: decimal; }
131 |
132 | .reveal ul {
133 | list-style-type: disc; }
134 |
135 | .reveal ul ul {
136 | list-style-type: square; }
137 |
138 | .reveal ul ul ul {
139 | list-style-type: circle; }
140 |
141 | .reveal ul ul,
142 | .reveal ul ol,
143 | .reveal ol ol,
144 | .reveal ol ul {
145 | display: block;
146 | margin-left: 40px; }
147 |
148 | .reveal dt {
149 | font-weight: bold; }
150 |
151 | .reveal dd {
152 | margin-left: 40px; }
153 |
154 | .reveal blockquote {
155 | display: block;
156 | position: relative;
157 | width: 70%;
158 | margin: 20px auto;
159 | padding: 5px;
160 | font-style: italic;
161 | background: rgba(255, 255, 255, 0.05);
162 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
163 |
164 | .reveal blockquote p:first-child,
165 | .reveal blockquote p:last-child {
166 | display: inline-block; }
167 |
168 | .reveal q {
169 | font-style: italic; }
170 |
171 | .reveal pre {
172 | display: block;
173 | position: relative;
174 | width: 90%;
175 | margin: 20px auto;
176 | text-align: left;
177 | font-size: 0.55em;
178 | font-family: monospace;
179 | line-height: 1.2em;
180 | word-wrap: break-word;
181 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
182 |
183 | .reveal code {
184 | font-family: monospace;
185 | text-transform: none; }
186 |
187 | .reveal pre code {
188 | display: block;
189 | padding: 5px;
190 | overflow: auto;
191 | max-height: 400px;
192 | word-wrap: normal; }
193 |
194 | .reveal table {
195 | margin: auto;
196 | border-collapse: collapse;
197 | border-spacing: 0; }
198 |
199 | .reveal table th {
200 | font-weight: bold; }
201 |
202 | .reveal table th,
203 | .reveal table td {
204 | text-align: left;
205 | padding: 0.2em 0.5em 0.2em 0.5em;
206 | border-bottom: 1px solid; }
207 |
208 | .reveal table th[align="center"],
209 | .reveal table td[align="center"] {
210 | text-align: center; }
211 |
212 | .reveal table th[align="right"],
213 | .reveal table td[align="right"] {
214 | text-align: right; }
215 |
216 | .reveal table tbody tr:last-child th,
217 | .reveal table tbody tr:last-child td {
218 | border-bottom: none; }
219 |
220 | .reveal sup {
221 | vertical-align: super;
222 | font-size: smaller; }
223 |
224 | .reveal sub {
225 | vertical-align: sub;
226 | font-size: smaller; }
227 |
228 | .reveal small {
229 | display: inline-block;
230 | font-size: 0.6em;
231 | line-height: 1.2em;
232 | vertical-align: top; }
233 |
234 | .reveal small * {
235 | vertical-align: top; }
236 |
237 | .reveal img {
238 | margin: 20px 0; }
239 |
240 | /*********************************************
241 | * LINKS
242 | *********************************************/
243 | .reveal a {
244 | color: #268bd2;
245 | text-decoration: none;
246 | transition: color .15s ease; }
247 |
248 | .reveal a:hover {
249 | color: #78b9e6;
250 | text-shadow: none;
251 | border: none; }
252 |
253 | .reveal .roll span:after {
254 | color: #fff;
255 | background: #1a6091; }
256 |
257 | /*********************************************
258 | * Frame helper
259 | *********************************************/
260 | .reveal .r-frame {
261 | border: 4px solid #93a1a1;
262 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
263 |
264 | .reveal a .r-frame {
265 | transition: all .15s linear; }
266 |
267 | .reveal a:hover .r-frame {
268 | border-color: #268bd2;
269 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
270 |
271 | /*********************************************
272 | * NAVIGATION CONTROLS
273 | *********************************************/
274 | .reveal .controls {
275 | color: #268bd2; }
276 |
277 | /*********************************************
278 | * PROGRESS BAR
279 | *********************************************/
280 | .reveal .progress {
281 | background: rgba(0, 0, 0, 0.2);
282 | color: #268bd2; }
283 |
284 | /*********************************************
285 | * PRINT BACKGROUND
286 | *********************************************/
287 | @media print {
288 | .backgrounds {
289 | background-color: #002b36; } }
290 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/night.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Black theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 | @import url(https://fonts.googleapis.com/css?family=Montserrat:700);
7 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
8 | /*********************************************
9 | * GLOBAL STYLES
10 | *********************************************/
11 | :root {
12 | --background-color: #111;
13 | --main-font: Open Sans, sans-serif;
14 | --main-font-size: 40px;
15 | --main-color: #eee;
16 | --block-margin: 20px;
17 | --heading-margin: 0 0 20px 0;
18 | --heading-font: Montserrat, Impact, sans-serif;
19 | --heading-color: #eee;
20 | --heading-line-height: 1.2;
21 | --heading-letter-spacing: -0.03em;
22 | --heading-text-transform: none;
23 | --heading-text-shadow: none;
24 | --heading-font-weight: normal;
25 | --heading1-text-shadow: none;
26 | --heading1-size: 3.77em;
27 | --heading2-size: 2.11em;
28 | --heading3-size: 1.55em;
29 | --heading4-size: 1em;
30 | --code-font: monospace;
31 | --link-color: #e7ad52;
32 | --link-color-hover: #f3d7ac;
33 | --selection-background-color: #e7ad52;
34 | --selection-color: #fff; }
35 |
36 | .reveal-viewport {
37 | background: #111;
38 | background-color: #111; }
39 |
40 | .reveal {
41 | font-family: "Open Sans", sans-serif;
42 | font-size: 40px;
43 | font-weight: normal;
44 | color: #eee; }
45 |
46 | .reveal ::selection {
47 | color: #fff;
48 | background: #e7ad52;
49 | text-shadow: none; }
50 |
51 | .reveal ::-moz-selection {
52 | color: #fff;
53 | background: #e7ad52;
54 | text-shadow: none; }
55 |
56 | .reveal .slides section,
57 | .reveal .slides section > section {
58 | line-height: 1.3;
59 | font-weight: inherit; }
60 |
61 | /*********************************************
62 | * HEADERS
63 | *********************************************/
64 | .reveal h1,
65 | .reveal h2,
66 | .reveal h3,
67 | .reveal h4,
68 | .reveal h5,
69 | .reveal h6 {
70 | margin: 0 0 20px 0;
71 | color: #eee;
72 | font-family: "Montserrat", Impact, sans-serif;
73 | font-weight: normal;
74 | line-height: 1.2;
75 | letter-spacing: -0.03em;
76 | text-transform: none;
77 | text-shadow: none;
78 | word-wrap: break-word; }
79 |
80 | .reveal h1 {
81 | font-size: 3.77em; }
82 |
83 | .reveal h2 {
84 | font-size: 2.11em; }
85 |
86 | .reveal h3 {
87 | font-size: 1.55em; }
88 |
89 | .reveal h4 {
90 | font-size: 1em; }
91 |
92 | .reveal h1 {
93 | text-shadow: none; }
94 |
95 | /*********************************************
96 | * OTHER
97 | *********************************************/
98 | .reveal p {
99 | margin: 20px 0;
100 | line-height: 1.3; }
101 |
102 | /* Ensure certain elements are never larger than the slide itself */
103 | .reveal img,
104 | .reveal video,
105 | .reveal iframe {
106 | max-width: 95%;
107 | max-height: 95%; }
108 |
109 | .reveal strong,
110 | .reveal b {
111 | font-weight: bold; }
112 |
113 | .reveal em {
114 | font-style: italic; }
115 |
116 | .reveal ol,
117 | .reveal dl,
118 | .reveal ul {
119 | display: inline-block;
120 | text-align: left;
121 | margin: 0 0 0 1em; }
122 |
123 | .reveal ol {
124 | list-style-type: decimal; }
125 |
126 | .reveal ul {
127 | list-style-type: disc; }
128 |
129 | .reveal ul ul {
130 | list-style-type: square; }
131 |
132 | .reveal ul ul ul {
133 | list-style-type: circle; }
134 |
135 | .reveal ul ul,
136 | .reveal ul ol,
137 | .reveal ol ol,
138 | .reveal ol ul {
139 | display: block;
140 | margin-left: 40px; }
141 |
142 | .reveal dt {
143 | font-weight: bold; }
144 |
145 | .reveal dd {
146 | margin-left: 40px; }
147 |
148 | .reveal blockquote {
149 | display: block;
150 | position: relative;
151 | width: 70%;
152 | margin: 20px auto;
153 | padding: 5px;
154 | font-style: italic;
155 | background: rgba(255, 255, 255, 0.05);
156 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
157 |
158 | .reveal blockquote p:first-child,
159 | .reveal blockquote p:last-child {
160 | display: inline-block; }
161 |
162 | .reveal q {
163 | font-style: italic; }
164 |
165 | .reveal pre {
166 | display: block;
167 | position: relative;
168 | width: 90%;
169 | margin: 20px auto;
170 | text-align: left;
171 | font-size: 0.55em;
172 | font-family: monospace;
173 | line-height: 1.2em;
174 | word-wrap: break-word;
175 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
176 |
177 | .reveal code {
178 | font-family: monospace;
179 | text-transform: none; }
180 |
181 | .reveal pre code {
182 | display: block;
183 | padding: 5px;
184 | overflow: auto;
185 | max-height: 400px;
186 | word-wrap: normal; }
187 |
188 | .reveal table {
189 | margin: auto;
190 | border-collapse: collapse;
191 | border-spacing: 0; }
192 |
193 | .reveal table th {
194 | font-weight: bold; }
195 |
196 | .reveal table th,
197 | .reveal table td {
198 | text-align: left;
199 | padding: 0.2em 0.5em 0.2em 0.5em;
200 | border-bottom: 1px solid; }
201 |
202 | .reveal table th[align="center"],
203 | .reveal table td[align="center"] {
204 | text-align: center; }
205 |
206 | .reveal table th[align="right"],
207 | .reveal table td[align="right"] {
208 | text-align: right; }
209 |
210 | .reveal table tbody tr:last-child th,
211 | .reveal table tbody tr:last-child td {
212 | border-bottom: none; }
213 |
214 | .reveal sup {
215 | vertical-align: super;
216 | font-size: smaller; }
217 |
218 | .reveal sub {
219 | vertical-align: sub;
220 | font-size: smaller; }
221 |
222 | .reveal small {
223 | display: inline-block;
224 | font-size: 0.6em;
225 | line-height: 1.2em;
226 | vertical-align: top; }
227 |
228 | .reveal small * {
229 | vertical-align: top; }
230 |
231 | .reveal img {
232 | margin: 20px 0; }
233 |
234 | /*********************************************
235 | * LINKS
236 | *********************************************/
237 | .reveal a {
238 | color: #e7ad52;
239 | text-decoration: none;
240 | transition: color .15s ease; }
241 |
242 | .reveal a:hover {
243 | color: #f3d7ac;
244 | text-shadow: none;
245 | border: none; }
246 |
247 | .reveal .roll span:after {
248 | color: #fff;
249 | background: #d08a1d; }
250 |
251 | /*********************************************
252 | * Frame helper
253 | *********************************************/
254 | .reveal .r-frame {
255 | border: 4px solid #eee;
256 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
257 |
258 | .reveal a .r-frame {
259 | transition: all .15s linear; }
260 |
261 | .reveal a:hover .r-frame {
262 | border-color: #e7ad52;
263 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
264 |
265 | /*********************************************
266 | * NAVIGATION CONTROLS
267 | *********************************************/
268 | .reveal .controls {
269 | color: #e7ad52; }
270 |
271 | /*********************************************
272 | * PROGRESS BAR
273 | *********************************************/
274 | .reveal .progress {
275 | background: rgba(0, 0, 0, 0.2);
276 | color: #e7ad52; }
277 |
278 | /*********************************************
279 | * PRINT BACKGROUND
280 | *********************************************/
281 | @media print {
282 | .backgrounds {
283 | background-color: #111; } }
284 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/serif.css:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is brown.
4 | *
5 | * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
6 | */
7 | .reveal a {
8 | line-height: 1.3em; }
9 |
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | :root {
14 | --background-color: #F0F1EB;
15 | --main-font: Palatino Linotype, Book Antiqua, Palatino, FreeSerif, serif;
16 | --main-font-size: 40px;
17 | --main-color: #000;
18 | --block-margin: 20px;
19 | --heading-margin: 0 0 20px 0;
20 | --heading-font: Palatino Linotype, Book Antiqua, Palatino, FreeSerif, serif;
21 | --heading-color: #383D3D;
22 | --heading-line-height: 1.2;
23 | --heading-letter-spacing: normal;
24 | --heading-text-transform: none;
25 | --heading-text-shadow: none;
26 | --heading-font-weight: normal;
27 | --heading1-text-shadow: none;
28 | --heading1-size: 3.77em;
29 | --heading2-size: 2.11em;
30 | --heading3-size: 1.55em;
31 | --heading4-size: 1em;
32 | --code-font: monospace;
33 | --link-color: #51483D;
34 | --link-color-hover: #8b7c69;
35 | --selection-background-color: #26351C;
36 | --selection-color: #fff; }
37 |
38 | .reveal-viewport {
39 | background: #F0F1EB;
40 | background-color: #F0F1EB; }
41 |
42 | .reveal {
43 | font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
44 | font-size: 40px;
45 | font-weight: normal;
46 | color: #000; }
47 |
48 | .reveal ::selection {
49 | color: #fff;
50 | background: #26351C;
51 | text-shadow: none; }
52 |
53 | .reveal ::-moz-selection {
54 | color: #fff;
55 | background: #26351C;
56 | text-shadow: none; }
57 |
58 | .reveal .slides section,
59 | .reveal .slides section > section {
60 | line-height: 1.3;
61 | font-weight: inherit; }
62 |
63 | /*********************************************
64 | * HEADERS
65 | *********************************************/
66 | .reveal h1,
67 | .reveal h2,
68 | .reveal h3,
69 | .reveal h4,
70 | .reveal h5,
71 | .reveal h6 {
72 | margin: 0 0 20px 0;
73 | color: #383D3D;
74 | font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
75 | font-weight: normal;
76 | line-height: 1.2;
77 | letter-spacing: normal;
78 | text-transform: none;
79 | text-shadow: none;
80 | word-wrap: break-word; }
81 |
82 | .reveal h1 {
83 | font-size: 3.77em; }
84 |
85 | .reveal h2 {
86 | font-size: 2.11em; }
87 |
88 | .reveal h3 {
89 | font-size: 1.55em; }
90 |
91 | .reveal h4 {
92 | font-size: 1em; }
93 |
94 | .reveal h1 {
95 | text-shadow: none; }
96 |
97 | /*********************************************
98 | * OTHER
99 | *********************************************/
100 | .reveal p {
101 | margin: 20px 0;
102 | line-height: 1.3; }
103 |
104 | /* Ensure certain elements are never larger than the slide itself */
105 | .reveal img,
106 | .reveal video,
107 | .reveal iframe {
108 | max-width: 95%;
109 | max-height: 95%; }
110 |
111 | .reveal strong,
112 | .reveal b {
113 | font-weight: bold; }
114 |
115 | .reveal em {
116 | font-style: italic; }
117 |
118 | .reveal ol,
119 | .reveal dl,
120 | .reveal ul {
121 | display: inline-block;
122 | text-align: left;
123 | margin: 0 0 0 1em; }
124 |
125 | .reveal ol {
126 | list-style-type: decimal; }
127 |
128 | .reveal ul {
129 | list-style-type: disc; }
130 |
131 | .reveal ul ul {
132 | list-style-type: square; }
133 |
134 | .reveal ul ul ul {
135 | list-style-type: circle; }
136 |
137 | .reveal ul ul,
138 | .reveal ul ol,
139 | .reveal ol ol,
140 | .reveal ol ul {
141 | display: block;
142 | margin-left: 40px; }
143 |
144 | .reveal dt {
145 | font-weight: bold; }
146 |
147 | .reveal dd {
148 | margin-left: 40px; }
149 |
150 | .reveal blockquote {
151 | display: block;
152 | position: relative;
153 | width: 70%;
154 | margin: 20px auto;
155 | padding: 5px;
156 | font-style: italic;
157 | background: rgba(255, 255, 255, 0.05);
158 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
159 |
160 | .reveal blockquote p:first-child,
161 | .reveal blockquote p:last-child {
162 | display: inline-block; }
163 |
164 | .reveal q {
165 | font-style: italic; }
166 |
167 | .reveal pre {
168 | display: block;
169 | position: relative;
170 | width: 90%;
171 | margin: 20px auto;
172 | text-align: left;
173 | font-size: 0.55em;
174 | font-family: monospace;
175 | line-height: 1.2em;
176 | word-wrap: break-word;
177 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
178 |
179 | .reveal code {
180 | font-family: monospace;
181 | text-transform: none; }
182 |
183 | .reveal pre code {
184 | display: block;
185 | padding: 5px;
186 | overflow: auto;
187 | max-height: 400px;
188 | word-wrap: normal; }
189 |
190 | .reveal table {
191 | margin: auto;
192 | border-collapse: collapse;
193 | border-spacing: 0; }
194 |
195 | .reveal table th {
196 | font-weight: bold; }
197 |
198 | .reveal table th,
199 | .reveal table td {
200 | text-align: left;
201 | padding: 0.2em 0.5em 0.2em 0.5em;
202 | border-bottom: 1px solid; }
203 |
204 | .reveal table th[align="center"],
205 | .reveal table td[align="center"] {
206 | text-align: center; }
207 |
208 | .reveal table th[align="right"],
209 | .reveal table td[align="right"] {
210 | text-align: right; }
211 |
212 | .reveal table tbody tr:last-child th,
213 | .reveal table tbody tr:last-child td {
214 | border-bottom: none; }
215 |
216 | .reveal sup {
217 | vertical-align: super;
218 | font-size: smaller; }
219 |
220 | .reveal sub {
221 | vertical-align: sub;
222 | font-size: smaller; }
223 |
224 | .reveal small {
225 | display: inline-block;
226 | font-size: 0.6em;
227 | line-height: 1.2em;
228 | vertical-align: top; }
229 |
230 | .reveal small * {
231 | vertical-align: top; }
232 |
233 | .reveal img {
234 | margin: 20px 0; }
235 |
236 | /*********************************************
237 | * LINKS
238 | *********************************************/
239 | .reveal a {
240 | color: #51483D;
241 | text-decoration: none;
242 | transition: color .15s ease; }
243 |
244 | .reveal a:hover {
245 | color: #8b7c69;
246 | text-shadow: none;
247 | border: none; }
248 |
249 | .reveal .roll span:after {
250 | color: #fff;
251 | background: #25211c; }
252 |
253 | /*********************************************
254 | * Frame helper
255 | *********************************************/
256 | .reveal .r-frame {
257 | border: 4px solid #000;
258 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
259 |
260 | .reveal a .r-frame {
261 | transition: all .15s linear; }
262 |
263 | .reveal a:hover .r-frame {
264 | border-color: #51483D;
265 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
266 |
267 | /*********************************************
268 | * NAVIGATION CONTROLS
269 | *********************************************/
270 | .reveal .controls {
271 | color: #51483D; }
272 |
273 | /*********************************************
274 | * PROGRESS BAR
275 | *********************************************/
276 | .reveal .progress {
277 | background: rgba(0, 0, 0, 0.2);
278 | color: #51483D; }
279 |
280 | /*********************************************
281 | * PRINT BACKGROUND
282 | *********************************************/
283 | @media print {
284 | .backgrounds {
285 | background-color: #F0F1EB; } }
286 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/simple.css:
--------------------------------------------------------------------------------
1 | /**
2 | * A simple theme for reveal.js presentations, similar
3 | * to the default theme. The accent color is darkblue.
4 | *
5 | * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
6 | * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
7 | */
8 | @import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
9 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
10 | section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
11 | color: #fff; }
12 |
13 | /*********************************************
14 | * GLOBAL STYLES
15 | *********************************************/
16 | :root {
17 | --background-color: #fff;
18 | --main-font: Lato, sans-serif;
19 | --main-font-size: 40px;
20 | --main-color: #000;
21 | --block-margin: 20px;
22 | --heading-margin: 0 0 20px 0;
23 | --heading-font: News Cycle, Impact, sans-serif;
24 | --heading-color: #000;
25 | --heading-line-height: 1.2;
26 | --heading-letter-spacing: normal;
27 | --heading-text-transform: none;
28 | --heading-text-shadow: none;
29 | --heading-font-weight: normal;
30 | --heading1-text-shadow: none;
31 | --heading1-size: 3.77em;
32 | --heading2-size: 2.11em;
33 | --heading3-size: 1.55em;
34 | --heading4-size: 1em;
35 | --code-font: monospace;
36 | --link-color: #00008B;
37 | --link-color-hover: #0000f1;
38 | --selection-background-color: rgba(0, 0, 0, 0.99);
39 | --selection-color: #fff; }
40 |
41 | .reveal-viewport {
42 | background: #fff;
43 | background-color: #fff; }
44 |
45 | .reveal {
46 | font-family: "Lato", sans-serif;
47 | font-size: 40px;
48 | font-weight: normal;
49 | color: #000; }
50 |
51 | .reveal ::selection {
52 | color: #fff;
53 | background: rgba(0, 0, 0, 0.99);
54 | text-shadow: none; }
55 |
56 | .reveal ::-moz-selection {
57 | color: #fff;
58 | background: rgba(0, 0, 0, 0.99);
59 | text-shadow: none; }
60 |
61 | .reveal .slides section,
62 | .reveal .slides section > section {
63 | line-height: 1.3;
64 | font-weight: inherit; }
65 |
66 | /*********************************************
67 | * HEADERS
68 | *********************************************/
69 | .reveal h1,
70 | .reveal h2,
71 | .reveal h3,
72 | .reveal h4,
73 | .reveal h5,
74 | .reveal h6 {
75 | margin: 0 0 20px 0;
76 | color: #000;
77 | font-family: "News Cycle", Impact, sans-serif;
78 | font-weight: normal;
79 | line-height: 1.2;
80 | letter-spacing: normal;
81 | text-transform: none;
82 | text-shadow: none;
83 | word-wrap: break-word; }
84 |
85 | .reveal h1 {
86 | font-size: 3.77em; }
87 |
88 | .reveal h2 {
89 | font-size: 2.11em; }
90 |
91 | .reveal h3 {
92 | font-size: 1.55em; }
93 |
94 | .reveal h4 {
95 | font-size: 1em; }
96 |
97 | .reveal h1 {
98 | text-shadow: none; }
99 |
100 | /*********************************************
101 | * OTHER
102 | *********************************************/
103 | .reveal p {
104 | margin: 20px 0;
105 | line-height: 1.3; }
106 |
107 | /* Ensure certain elements are never larger than the slide itself */
108 | .reveal img,
109 | .reveal video,
110 | .reveal iframe {
111 | max-width: 95%;
112 | max-height: 95%; }
113 |
114 | .reveal strong,
115 | .reveal b {
116 | font-weight: bold; }
117 |
118 | .reveal em {
119 | font-style: italic; }
120 |
121 | .reveal ol,
122 | .reveal dl,
123 | .reveal ul {
124 | display: inline-block;
125 | text-align: left;
126 | margin: 0 0 0 1em; }
127 |
128 | .reveal ol {
129 | list-style-type: decimal; }
130 |
131 | .reveal ul {
132 | list-style-type: disc; }
133 |
134 | .reveal ul ul {
135 | list-style-type: square; }
136 |
137 | .reveal ul ul ul {
138 | list-style-type: circle; }
139 |
140 | .reveal ul ul,
141 | .reveal ul ol,
142 | .reveal ol ol,
143 | .reveal ol ul {
144 | display: block;
145 | margin-left: 40px; }
146 |
147 | .reveal dt {
148 | font-weight: bold; }
149 |
150 | .reveal dd {
151 | margin-left: 40px; }
152 |
153 | .reveal blockquote {
154 | display: block;
155 | position: relative;
156 | width: 70%;
157 | margin: 20px auto;
158 | padding: 5px;
159 | font-style: italic;
160 | background: rgba(255, 255, 255, 0.05);
161 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
162 |
163 | .reveal blockquote p:first-child,
164 | .reveal blockquote p:last-child {
165 | display: inline-block; }
166 |
167 | .reveal q {
168 | font-style: italic; }
169 |
170 | .reveal pre {
171 | display: block;
172 | position: relative;
173 | width: 90%;
174 | margin: 20px auto;
175 | text-align: left;
176 | font-size: 0.55em;
177 | font-family: monospace;
178 | line-height: 1.2em;
179 | word-wrap: break-word;
180 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
181 |
182 | .reveal code {
183 | font-family: monospace;
184 | text-transform: none; }
185 |
186 | .reveal pre code {
187 | display: block;
188 | padding: 5px;
189 | overflow: auto;
190 | max-height: 400px;
191 | word-wrap: normal; }
192 |
193 | .reveal table {
194 | margin: auto;
195 | border-collapse: collapse;
196 | border-spacing: 0; }
197 |
198 | .reveal table th {
199 | font-weight: bold; }
200 |
201 | .reveal table th,
202 | .reveal table td {
203 | text-align: left;
204 | padding: 0.2em 0.5em 0.2em 0.5em;
205 | border-bottom: 1px solid; }
206 |
207 | .reveal table th[align="center"],
208 | .reveal table td[align="center"] {
209 | text-align: center; }
210 |
211 | .reveal table th[align="right"],
212 | .reveal table td[align="right"] {
213 | text-align: right; }
214 |
215 | .reveal table tbody tr:last-child th,
216 | .reveal table tbody tr:last-child td {
217 | border-bottom: none; }
218 |
219 | .reveal sup {
220 | vertical-align: super;
221 | font-size: smaller; }
222 |
223 | .reveal sub {
224 | vertical-align: sub;
225 | font-size: smaller; }
226 |
227 | .reveal small {
228 | display: inline-block;
229 | font-size: 0.6em;
230 | line-height: 1.2em;
231 | vertical-align: top; }
232 |
233 | .reveal small * {
234 | vertical-align: top; }
235 |
236 | .reveal img {
237 | margin: 20px 0; }
238 |
239 | /*********************************************
240 | * LINKS
241 | *********************************************/
242 | .reveal a {
243 | color: #00008B;
244 | text-decoration: none;
245 | transition: color .15s ease; }
246 |
247 | .reveal a:hover {
248 | color: #0000f1;
249 | text-shadow: none;
250 | border: none; }
251 |
252 | .reveal .roll span:after {
253 | color: #fff;
254 | background: #00003f; }
255 |
256 | /*********************************************
257 | * Frame helper
258 | *********************************************/
259 | .reveal .r-frame {
260 | border: 4px solid #000;
261 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
262 |
263 | .reveal a .r-frame {
264 | transition: all .15s linear; }
265 |
266 | .reveal a:hover .r-frame {
267 | border-color: #00008B;
268 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
269 |
270 | /*********************************************
271 | * NAVIGATION CONTROLS
272 | *********************************************/
273 | .reveal .controls {
274 | color: #00008B; }
275 |
276 | /*********************************************
277 | * PROGRESS BAR
278 | *********************************************/
279 | .reveal .progress {
280 | background: rgba(0, 0, 0, 0.2);
281 | color: #00008B; }
282 |
283 | /*********************************************
284 | * PRINT BACKGROUND
285 | *********************************************/
286 | @media print {
287 | .backgrounds {
288 | background-color: #fff; } }
289 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/sky.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Sky theme for reveal.js.
3 | *
4 | * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
5 | */
6 | @import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
7 | @import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
8 | .reveal a {
9 | line-height: 1.3em; }
10 |
11 | /*********************************************
12 | * GLOBAL STYLES
13 | *********************************************/
14 | :root {
15 | --background-color: #f7fbfc;
16 | --main-font: Open Sans, sans-serif;
17 | --main-font-size: 40px;
18 | --main-color: #333;
19 | --block-margin: 20px;
20 | --heading-margin: 0 0 20px 0;
21 | --heading-font: Quicksand, sans-serif;
22 | --heading-color: #333;
23 | --heading-line-height: 1.2;
24 | --heading-letter-spacing: -0.08em;
25 | --heading-text-transform: uppercase;
26 | --heading-text-shadow: none;
27 | --heading-font-weight: normal;
28 | --heading1-text-shadow: none;
29 | --heading1-size: 3.77em;
30 | --heading2-size: 2.11em;
31 | --heading3-size: 1.55em;
32 | --heading4-size: 1em;
33 | --code-font: monospace;
34 | --link-color: #3b759e;
35 | --link-color-hover: #74a7cb;
36 | --selection-background-color: #134674;
37 | --selection-color: #fff; }
38 |
39 | .reveal-viewport {
40 | background: #add9e4;
41 | background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
42 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4));
43 | background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
44 | background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
45 | background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
46 | background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
47 | background-color: #f7fbfc; }
48 |
49 | .reveal {
50 | font-family: "Open Sans", sans-serif;
51 | font-size: 40px;
52 | font-weight: normal;
53 | color: #333; }
54 |
55 | .reveal ::selection {
56 | color: #fff;
57 | background: #134674;
58 | text-shadow: none; }
59 |
60 | .reveal ::-moz-selection {
61 | color: #fff;
62 | background: #134674;
63 | text-shadow: none; }
64 |
65 | .reveal .slides section,
66 | .reveal .slides section > section {
67 | line-height: 1.3;
68 | font-weight: inherit; }
69 |
70 | /*********************************************
71 | * HEADERS
72 | *********************************************/
73 | .reveal h1,
74 | .reveal h2,
75 | .reveal h3,
76 | .reveal h4,
77 | .reveal h5,
78 | .reveal h6 {
79 | margin: 0 0 20px 0;
80 | color: #333;
81 | font-family: "Quicksand", sans-serif;
82 | font-weight: normal;
83 | line-height: 1.2;
84 | letter-spacing: -0.08em;
85 | text-transform: uppercase;
86 | text-shadow: none;
87 | word-wrap: break-word; }
88 |
89 | .reveal h1 {
90 | font-size: 3.77em; }
91 |
92 | .reveal h2 {
93 | font-size: 2.11em; }
94 |
95 | .reveal h3 {
96 | font-size: 1.55em; }
97 |
98 | .reveal h4 {
99 | font-size: 1em; }
100 |
101 | .reveal h1 {
102 | text-shadow: none; }
103 |
104 | /*********************************************
105 | * OTHER
106 | *********************************************/
107 | .reveal p {
108 | margin: 20px 0;
109 | line-height: 1.3; }
110 |
111 | /* Ensure certain elements are never larger than the slide itself */
112 | .reveal img,
113 | .reveal video,
114 | .reveal iframe {
115 | max-width: 95%;
116 | max-height: 95%; }
117 |
118 | .reveal strong,
119 | .reveal b {
120 | font-weight: bold; }
121 |
122 | .reveal em {
123 | font-style: italic; }
124 |
125 | .reveal ol,
126 | .reveal dl,
127 | .reveal ul {
128 | display: inline-block;
129 | text-align: left;
130 | margin: 0 0 0 1em; }
131 |
132 | .reveal ol {
133 | list-style-type: decimal; }
134 |
135 | .reveal ul {
136 | list-style-type: disc; }
137 |
138 | .reveal ul ul {
139 | list-style-type: square; }
140 |
141 | .reveal ul ul ul {
142 | list-style-type: circle; }
143 |
144 | .reveal ul ul,
145 | .reveal ul ol,
146 | .reveal ol ol,
147 | .reveal ol ul {
148 | display: block;
149 | margin-left: 40px; }
150 |
151 | .reveal dt {
152 | font-weight: bold; }
153 |
154 | .reveal dd {
155 | margin-left: 40px; }
156 |
157 | .reveal blockquote {
158 | display: block;
159 | position: relative;
160 | width: 70%;
161 | margin: 20px auto;
162 | padding: 5px;
163 | font-style: italic;
164 | background: rgba(255, 255, 255, 0.05);
165 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
166 |
167 | .reveal blockquote p:first-child,
168 | .reveal blockquote p:last-child {
169 | display: inline-block; }
170 |
171 | .reveal q {
172 | font-style: italic; }
173 |
174 | .reveal pre {
175 | display: block;
176 | position: relative;
177 | width: 90%;
178 | margin: 20px auto;
179 | text-align: left;
180 | font-size: 0.55em;
181 | font-family: monospace;
182 | line-height: 1.2em;
183 | word-wrap: break-word;
184 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
185 |
186 | .reveal code {
187 | font-family: monospace;
188 | text-transform: none; }
189 |
190 | .reveal pre code {
191 | display: block;
192 | padding: 5px;
193 | overflow: auto;
194 | max-height: 400px;
195 | word-wrap: normal; }
196 |
197 | .reveal table {
198 | margin: auto;
199 | border-collapse: collapse;
200 | border-spacing: 0; }
201 |
202 | .reveal table th {
203 | font-weight: bold; }
204 |
205 | .reveal table th,
206 | .reveal table td {
207 | text-align: left;
208 | padding: 0.2em 0.5em 0.2em 0.5em;
209 | border-bottom: 1px solid; }
210 |
211 | .reveal table th[align="center"],
212 | .reveal table td[align="center"] {
213 | text-align: center; }
214 |
215 | .reveal table th[align="right"],
216 | .reveal table td[align="right"] {
217 | text-align: right; }
218 |
219 | .reveal table tbody tr:last-child th,
220 | .reveal table tbody tr:last-child td {
221 | border-bottom: none; }
222 |
223 | .reveal sup {
224 | vertical-align: super;
225 | font-size: smaller; }
226 |
227 | .reveal sub {
228 | vertical-align: sub;
229 | font-size: smaller; }
230 |
231 | .reveal small {
232 | display: inline-block;
233 | font-size: 0.6em;
234 | line-height: 1.2em;
235 | vertical-align: top; }
236 |
237 | .reveal small * {
238 | vertical-align: top; }
239 |
240 | .reveal img {
241 | margin: 20px 0; }
242 |
243 | /*********************************************
244 | * LINKS
245 | *********************************************/
246 | .reveal a {
247 | color: #3b759e;
248 | text-decoration: none;
249 | transition: color .15s ease; }
250 |
251 | .reveal a:hover {
252 | color: #74a7cb;
253 | text-shadow: none;
254 | border: none; }
255 |
256 | .reveal .roll span:after {
257 | color: #fff;
258 | background: #264c66; }
259 |
260 | /*********************************************
261 | * Frame helper
262 | *********************************************/
263 | .reveal .r-frame {
264 | border: 4px solid #333;
265 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
266 |
267 | .reveal a .r-frame {
268 | transition: all .15s linear; }
269 |
270 | .reveal a:hover .r-frame {
271 | border-color: #3b759e;
272 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
273 |
274 | /*********************************************
275 | * NAVIGATION CONTROLS
276 | *********************************************/
277 | .reveal .controls {
278 | color: #3b759e; }
279 |
280 | /*********************************************
281 | * PROGRESS BAR
282 | *********************************************/
283 | .reveal .progress {
284 | background: rgba(0, 0, 0, 0.2);
285 | color: #3b759e; }
286 |
287 | /*********************************************
288 | * PRINT BACKGROUND
289 | *********************************************/
290 | @media print {
291 | .backgrounds {
292 | background-color: #f7fbfc; } }
293 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/solarized.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Solarized Light theme for reveal.js.
3 | * Author: Achim Staebler
4 | */
5 | @import url(fonts/league-gothic/league-gothic.css);
6 | @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
7 | /**
8 | * Solarized colors by Ethan Schoonover
9 | */
10 | html * {
11 | color-profile: sRGB;
12 | rendering-intent: auto; }
13 |
14 | /*********************************************
15 | * GLOBAL STYLES
16 | *********************************************/
17 | :root {
18 | --background-color: #fdf6e3;
19 | --main-font: Lato, sans-serif;
20 | --main-font-size: 40px;
21 | --main-color: #657b83;
22 | --block-margin: 20px;
23 | --heading-margin: 0 0 20px 0;
24 | --heading-font: League Gothic, Impact, sans-serif;
25 | --heading-color: #586e75;
26 | --heading-line-height: 1.2;
27 | --heading-letter-spacing: normal;
28 | --heading-text-transform: uppercase;
29 | --heading-text-shadow: none;
30 | --heading-font-weight: normal;
31 | --heading1-text-shadow: none;
32 | --heading1-size: 3.77em;
33 | --heading2-size: 2.11em;
34 | --heading3-size: 1.55em;
35 | --heading4-size: 1em;
36 | --code-font: monospace;
37 | --link-color: #268bd2;
38 | --link-color-hover: #78b9e6;
39 | --selection-background-color: #d33682;
40 | --selection-color: #fff; }
41 |
42 | .reveal-viewport {
43 | background: #fdf6e3;
44 | background-color: #fdf6e3; }
45 |
46 | .reveal {
47 | font-family: "Lato", sans-serif;
48 | font-size: 40px;
49 | font-weight: normal;
50 | color: #657b83; }
51 |
52 | .reveal ::selection {
53 | color: #fff;
54 | background: #d33682;
55 | text-shadow: none; }
56 |
57 | .reveal ::-moz-selection {
58 | color: #fff;
59 | background: #d33682;
60 | text-shadow: none; }
61 |
62 | .reveal .slides section,
63 | .reveal .slides section > section {
64 | line-height: 1.3;
65 | font-weight: inherit; }
66 |
67 | /*********************************************
68 | * HEADERS
69 | *********************************************/
70 | .reveal h1,
71 | .reveal h2,
72 | .reveal h3,
73 | .reveal h4,
74 | .reveal h5,
75 | .reveal h6 {
76 | margin: 0 0 20px 0;
77 | color: #586e75;
78 | font-family: "League Gothic", Impact, sans-serif;
79 | font-weight: normal;
80 | line-height: 1.2;
81 | letter-spacing: normal;
82 | text-transform: uppercase;
83 | text-shadow: none;
84 | word-wrap: break-word; }
85 |
86 | .reveal h1 {
87 | font-size: 3.77em; }
88 |
89 | .reveal h2 {
90 | font-size: 2.11em; }
91 |
92 | .reveal h3 {
93 | font-size: 1.55em; }
94 |
95 | .reveal h4 {
96 | font-size: 1em; }
97 |
98 | .reveal h1 {
99 | text-shadow: none; }
100 |
101 | /*********************************************
102 | * OTHER
103 | *********************************************/
104 | .reveal p {
105 | margin: 20px 0;
106 | line-height: 1.3; }
107 |
108 | /* Ensure certain elements are never larger than the slide itself */
109 | .reveal img,
110 | .reveal video,
111 | .reveal iframe {
112 | max-width: 95%;
113 | max-height: 95%; }
114 |
115 | .reveal strong,
116 | .reveal b {
117 | font-weight: bold; }
118 |
119 | .reveal em {
120 | font-style: italic; }
121 |
122 | .reveal ol,
123 | .reveal dl,
124 | .reveal ul {
125 | display: inline-block;
126 | text-align: left;
127 | margin: 0 0 0 1em; }
128 |
129 | .reveal ol {
130 | list-style-type: decimal; }
131 |
132 | .reveal ul {
133 | list-style-type: disc; }
134 |
135 | .reveal ul ul {
136 | list-style-type: square; }
137 |
138 | .reveal ul ul ul {
139 | list-style-type: circle; }
140 |
141 | .reveal ul ul,
142 | .reveal ul ol,
143 | .reveal ol ol,
144 | .reveal ol ul {
145 | display: block;
146 | margin-left: 40px; }
147 |
148 | .reveal dt {
149 | font-weight: bold; }
150 |
151 | .reveal dd {
152 | margin-left: 40px; }
153 |
154 | .reveal blockquote {
155 | display: block;
156 | position: relative;
157 | width: 70%;
158 | margin: 20px auto;
159 | padding: 5px;
160 | font-style: italic;
161 | background: rgba(255, 255, 255, 0.05);
162 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
163 |
164 | .reveal blockquote p:first-child,
165 | .reveal blockquote p:last-child {
166 | display: inline-block; }
167 |
168 | .reveal q {
169 | font-style: italic; }
170 |
171 | .reveal pre {
172 | display: block;
173 | position: relative;
174 | width: 90%;
175 | margin: 20px auto;
176 | text-align: left;
177 | font-size: 0.55em;
178 | font-family: monospace;
179 | line-height: 1.2em;
180 | word-wrap: break-word;
181 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
182 |
183 | .reveal code {
184 | font-family: monospace;
185 | text-transform: none; }
186 |
187 | .reveal pre code {
188 | display: block;
189 | padding: 5px;
190 | overflow: auto;
191 | max-height: 400px;
192 | word-wrap: normal; }
193 |
194 | .reveal table {
195 | margin: auto;
196 | border-collapse: collapse;
197 | border-spacing: 0; }
198 |
199 | .reveal table th {
200 | font-weight: bold; }
201 |
202 | .reveal table th,
203 | .reveal table td {
204 | text-align: left;
205 | padding: 0.2em 0.5em 0.2em 0.5em;
206 | border-bottom: 1px solid; }
207 |
208 | .reveal table th[align="center"],
209 | .reveal table td[align="center"] {
210 | text-align: center; }
211 |
212 | .reveal table th[align="right"],
213 | .reveal table td[align="right"] {
214 | text-align: right; }
215 |
216 | .reveal table tbody tr:last-child th,
217 | .reveal table tbody tr:last-child td {
218 | border-bottom: none; }
219 |
220 | .reveal sup {
221 | vertical-align: super;
222 | font-size: smaller; }
223 |
224 | .reveal sub {
225 | vertical-align: sub;
226 | font-size: smaller; }
227 |
228 | .reveal small {
229 | display: inline-block;
230 | font-size: 0.6em;
231 | line-height: 1.2em;
232 | vertical-align: top; }
233 |
234 | .reveal small * {
235 | vertical-align: top; }
236 |
237 | .reveal img {
238 | margin: 20px 0; }
239 |
240 | /*********************************************
241 | * LINKS
242 | *********************************************/
243 | .reveal a {
244 | color: #268bd2;
245 | text-decoration: none;
246 | transition: color .15s ease; }
247 |
248 | .reveal a:hover {
249 | color: #78b9e6;
250 | text-shadow: none;
251 | border: none; }
252 |
253 | .reveal .roll span:after {
254 | color: #fff;
255 | background: #1a6091; }
256 |
257 | /*********************************************
258 | * Frame helper
259 | *********************************************/
260 | .reveal .r-frame {
261 | border: 4px solid #657b83;
262 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
263 |
264 | .reveal a .r-frame {
265 | transition: all .15s linear; }
266 |
267 | .reveal a:hover .r-frame {
268 | border-color: #268bd2;
269 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
270 |
271 | /*********************************************
272 | * NAVIGATION CONTROLS
273 | *********************************************/
274 | .reveal .controls {
275 | color: #268bd2; }
276 |
277 | /*********************************************
278 | * PROGRESS BAR
279 | *********************************************/
280 | .reveal .progress {
281 | background: rgba(0, 0, 0, 0.2);
282 | color: #268bd2; }
283 |
284 | /*********************************************
285 | * PRINT BACKGROUND
286 | *********************************************/
287 | @media print {
288 | .backgrounds {
289 | background-color: #fdf6e3; } }
290 |
--------------------------------------------------------------------------------
/FortranCon2020-community/dist/theme/white.css:
--------------------------------------------------------------------------------
1 | /**
2 | * White theme for reveal.js. This is the opposite of the 'black' theme.
3 | *
4 | * By Hakim El Hattab, http://hakim.se
5 | */
6 | @import url(fonts/source-sans-pro/source-sans-pro.css);
7 | section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
8 | color: #fff; }
9 |
10 | /*********************************************
11 | * GLOBAL STYLES
12 | *********************************************/
13 | :root {
14 | --background-color: #fff;
15 | --main-font: Source Sans Pro, Helvetica, sans-serif;
16 | --main-font-size: 42px;
17 | --main-color: #222;
18 | --block-margin: 20px;
19 | --heading-margin: 0 0 20px 0;
20 | --heading-font: Source Sans Pro, Helvetica, sans-serif;
21 | --heading-color: #222;
22 | --heading-line-height: 1.2;
23 | --heading-letter-spacing: normal;
24 | --heading-text-transform: uppercase;
25 | --heading-text-shadow: none;
26 | --heading-font-weight: 600;
27 | --heading1-text-shadow: none;
28 | --heading1-size: 2.5em;
29 | --heading2-size: 1.6em;
30 | --heading3-size: 1.3em;
31 | --heading4-size: 1em;
32 | --code-font: monospace;
33 | --link-color: #2a76dd;
34 | --link-color-hover: #6ca0e8;
35 | --selection-background-color: #98bdef;
36 | --selection-color: #fff; }
37 |
38 | .reveal-viewport {
39 | background: #fff;
40 | background-color: #fff; }
41 |
42 | .reveal {
43 | font-family: "Source Sans Pro", Helvetica, sans-serif;
44 | font-size: 42px;
45 | font-weight: normal;
46 | color: #222; }
47 |
48 | .reveal ::selection {
49 | color: #fff;
50 | background: #98bdef;
51 | text-shadow: none; }
52 |
53 | .reveal ::-moz-selection {
54 | color: #fff;
55 | background: #98bdef;
56 | text-shadow: none; }
57 |
58 | .reveal .slides section,
59 | .reveal .slides section > section {
60 | line-height: 1.3;
61 | font-weight: inherit; }
62 |
63 | /*********************************************
64 | * HEADERS
65 | *********************************************/
66 | .reveal h1,
67 | .reveal h2,
68 | .reveal h3,
69 | .reveal h4,
70 | .reveal h5,
71 | .reveal h6 {
72 | margin: 0 0 20px 0;
73 | color: #222;
74 | font-family: "Source Sans Pro", Helvetica, sans-serif;
75 | font-weight: 600;
76 | line-height: 1.2;
77 | letter-spacing: normal;
78 | text-transform: uppercase;
79 | text-shadow: none;
80 | word-wrap: break-word; }
81 |
82 | .reveal h1 {
83 | font-size: 2.5em; }
84 |
85 | .reveal h2 {
86 | font-size: 1.6em; }
87 |
88 | .reveal h3 {
89 | font-size: 1.3em; }
90 |
91 | .reveal h4 {
92 | font-size: 1em; }
93 |
94 | .reveal h1 {
95 | text-shadow: none; }
96 |
97 | /*********************************************
98 | * OTHER
99 | *********************************************/
100 | .reveal p {
101 | margin: 20px 0;
102 | line-height: 1.3; }
103 |
104 | /* Ensure certain elements are never larger than the slide itself */
105 | .reveal img,
106 | .reveal video,
107 | .reveal iframe {
108 | max-width: 95%;
109 | max-height: 95%; }
110 |
111 | .reveal strong,
112 | .reveal b {
113 | font-weight: bold; }
114 |
115 | .reveal em {
116 | font-style: italic; }
117 |
118 | .reveal ol,
119 | .reveal dl,
120 | .reveal ul {
121 | display: inline-block;
122 | text-align: left;
123 | margin: 0 0 0 1em; }
124 |
125 | .reveal ol {
126 | list-style-type: decimal; }
127 |
128 | .reveal ul {
129 | list-style-type: disc; }
130 |
131 | .reveal ul ul {
132 | list-style-type: square; }
133 |
134 | .reveal ul ul ul {
135 | list-style-type: circle; }
136 |
137 | .reveal ul ul,
138 | .reveal ul ol,
139 | .reveal ol ol,
140 | .reveal ol ul {
141 | display: block;
142 | margin-left: 40px; }
143 |
144 | .reveal dt {
145 | font-weight: bold; }
146 |
147 | .reveal dd {
148 | margin-left: 40px; }
149 |
150 | .reveal blockquote {
151 | display: block;
152 | position: relative;
153 | width: 70%;
154 | margin: 20px auto;
155 | padding: 5px;
156 | font-style: italic;
157 | background: rgba(255, 255, 255, 0.05);
158 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
159 |
160 | .reveal blockquote p:first-child,
161 | .reveal blockquote p:last-child {
162 | display: inline-block; }
163 |
164 | .reveal q {
165 | font-style: italic; }
166 |
167 | .reveal pre {
168 | display: block;
169 | position: relative;
170 | width: 90%;
171 | margin: 20px auto;
172 | text-align: left;
173 | font-size: 0.55em;
174 | font-family: monospace;
175 | line-height: 1.2em;
176 | word-wrap: break-word;
177 | box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15); }
178 |
179 | .reveal code {
180 | font-family: monospace;
181 | text-transform: none; }
182 |
183 | .reveal pre code {
184 | display: block;
185 | padding: 5px;
186 | overflow: auto;
187 | max-height: 400px;
188 | word-wrap: normal; }
189 |
190 | .reveal table {
191 | margin: auto;
192 | border-collapse: collapse;
193 | border-spacing: 0; }
194 |
195 | .reveal table th {
196 | font-weight: bold; }
197 |
198 | .reveal table th,
199 | .reveal table td {
200 | text-align: left;
201 | padding: 0.2em 0.5em 0.2em 0.5em;
202 | border-bottom: 1px solid; }
203 |
204 | .reveal table th[align="center"],
205 | .reveal table td[align="center"] {
206 | text-align: center; }
207 |
208 | .reveal table th[align="right"],
209 | .reveal table td[align="right"] {
210 | text-align: right; }
211 |
212 | .reveal table tbody tr:last-child th,
213 | .reveal table tbody tr:last-child td {
214 | border-bottom: none; }
215 |
216 | .reveal sup {
217 | vertical-align: super;
218 | font-size: smaller; }
219 |
220 | .reveal sub {
221 | vertical-align: sub;
222 | font-size: smaller; }
223 |
224 | .reveal small {
225 | display: inline-block;
226 | font-size: 0.6em;
227 | line-height: 1.2em;
228 | vertical-align: top; }
229 |
230 | .reveal small * {
231 | vertical-align: top; }
232 |
233 | .reveal img {
234 | margin: 20px 0; }
235 |
236 | /*********************************************
237 | * LINKS
238 | *********************************************/
239 | .reveal a {
240 | color: #2a76dd;
241 | text-decoration: none;
242 | transition: color .15s ease; }
243 |
244 | .reveal a:hover {
245 | color: #6ca0e8;
246 | text-shadow: none;
247 | border: none; }
248 |
249 | .reveal .roll span:after {
250 | color: #fff;
251 | background: #1a53a1; }
252 |
253 | /*********************************************
254 | * Frame helper
255 | *********************************************/
256 | .reveal .r-frame {
257 | border: 4px solid #222;
258 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
259 |
260 | .reveal a .r-frame {
261 | transition: all .15s linear; }
262 |
263 | .reveal a:hover .r-frame {
264 | border-color: #2a76dd;
265 | box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
266 |
267 | /*********************************************
268 | * NAVIGATION CONTROLS
269 | *********************************************/
270 | .reveal .controls {
271 | color: #2a76dd; }
272 |
273 | /*********************************************
274 | * PROGRESS BAR
275 | *********************************************/
276 | .reveal .progress {
277 | background: rgba(0, 0, 0, 0.2);
278 | color: #2a76dd; }
279 |
280 | /*********************************************
281 | * PRINT BACKGROUND
282 | *********************************************/
283 | @media print {
284 | .backgrounds {
285 | background-color: #fff; } }
286 |
--------------------------------------------------------------------------------
/FortranCon2020-community/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | reveal.js
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 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/math/math.esm.js:
--------------------------------------------------------------------------------
1 | function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(n){for(var r=1;r {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'math',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
91 | export default Plugin;
92 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/notes/plugin.js:
--------------------------------------------------------------------------------
1 | import speakerViewHTML from './speaker-view.html';
2 |
3 | import marked from 'marked';
4 |
5 | /**
6 | * Handles opening of and synchronization with the reveal.js
7 | * notes window.
8 | *
9 | * Handshake process:
10 | * 1. This window posts 'connect' to notes window
11 | * - Includes URL of presentation to show
12 | * 2. Notes window responds with 'connected' when it is available
13 | * 3. This window proceeds to send the current presentation state
14 | * to the notes window
15 | */
16 | const Plugin = () => {
17 |
18 | let popup = null;
19 |
20 | let deck;
21 |
22 | function openNotes() {
23 |
24 | if (popup && !popup.closed) {
25 | popup.focus();
26 | return;
27 | }
28 |
29 | popup = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' );
30 | popup.marked = marked;
31 | popup.document.write( speakerViewHTML );
32 |
33 | if( !popup ) {
34 | alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
35 | return;
36 | }
37 |
38 | /**
39 | * Connect to the notes window through a postmessage handshake.
40 | * Using postmessage enables us to work in situations where the
41 | * origins differ, such as a presentation being opened from the
42 | * file system.
43 | */
44 | function connect() {
45 | // Keep trying to connect until we get a 'connected' message back
46 | let connectInterval = setInterval( function() {
47 | popup.postMessage( JSON.stringify( {
48 | namespace: 'reveal-notes',
49 | type: 'connect',
50 | url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search,
51 | state: deck.getState()
52 | } ), '*' );
53 | }, 500 );
54 |
55 | window.addEventListener( 'message', function( event ) {
56 | let data = JSON.parse( event.data );
57 | if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) {
58 | clearInterval( connectInterval );
59 | onConnected();
60 | }
61 | if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) {
62 | callRevealApi( data.methodName, data.arguments, data.callId );
63 | }
64 | } );
65 | }
66 |
67 | /**
68 | * Calls the specified Reveal.js method with the provided argument
69 | * and then pushes the result to the notes frame.
70 | */
71 | function callRevealApi( methodName, methodArguments, callId ) {
72 |
73 | let result = deck[methodName].apply( deck, methodArguments );
74 | popup.postMessage( JSON.stringify( {
75 | namespace: 'reveal-notes',
76 | type: 'return',
77 | result: result,
78 | callId: callId
79 | } ), '*' );
80 |
81 | }
82 |
83 | /**
84 | * Posts the current slide data to the notes window
85 | */
86 | function post( event ) {
87 |
88 | let slideElement = deck.getCurrentSlide(),
89 | notesElement = slideElement.querySelector( 'aside.notes' ),
90 | fragmentElement = slideElement.querySelector( '.current-fragment' );
91 |
92 | let messageData = {
93 | namespace: 'reveal-notes',
94 | type: 'state',
95 | notes: '',
96 | markdown: false,
97 | whitespace: 'normal',
98 | state: deck.getState()
99 | };
100 |
101 | // Look for notes defined in a slide attribute
102 | if( slideElement.hasAttribute( 'data-notes' ) ) {
103 | messageData.notes = slideElement.getAttribute( 'data-notes' );
104 | messageData.whitespace = 'pre-wrap';
105 | }
106 |
107 | // Look for notes defined in a fragment
108 | if( fragmentElement ) {
109 | let fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
110 | if( fragmentNotes ) {
111 | notesElement = fragmentNotes;
112 | }
113 | else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
114 | messageData.notes = fragmentElement.getAttribute( 'data-notes' );
115 | messageData.whitespace = 'pre-wrap';
116 |
117 | // In case there are slide notes
118 | notesElement = null;
119 | }
120 | }
121 |
122 | // Look for notes defined in an aside element
123 | if( notesElement ) {
124 | messageData.notes = notesElement.innerHTML;
125 | messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
126 | }
127 |
128 | popup.postMessage( JSON.stringify( messageData ), '*' );
129 |
130 | }
131 |
132 | /**
133 | * Called once we have established a connection to the notes
134 | * window.
135 | */
136 | function onConnected() {
137 |
138 | // Monitor events that trigger a change in state
139 | deck.on( 'slidechanged', post );
140 | deck.on( 'fragmentshown', post );
141 | deck.on( 'fragmenthidden', post );
142 | deck.on( 'overviewhidden', post );
143 | deck.on( 'overviewshown', post );
144 | deck.on( 'paused', post );
145 | deck.on( 'resumed', post );
146 |
147 | // Post the initial state
148 | post();
149 |
150 | }
151 |
152 | connect();
153 |
154 | }
155 |
156 | return {
157 | id: 'notes',
158 |
159 | init: function( reveal ) {
160 |
161 | deck = reveal;
162 |
163 | if( !/receiver/i.test( window.location.search ) ) {
164 |
165 | // If the there's a 'notes' query set, open directly
166 | if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
167 | openNotes();
168 | }
169 |
170 | // Open the notes when the 's' key is hit
171 | deck.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() {
172 | openNotes();
173 | } );
174 |
175 | }
176 |
177 | },
178 |
179 | open: openNotes
180 | };
181 |
182 | };
183 |
184 | export default Plugin;
185 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/search/plugin.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * @author Jon Snyder , February 2013
6 | */
7 |
8 | const Plugin = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let searchElement;
14 | let searchButton;
15 | let searchInput;
16 |
17 | let matchedSlides;
18 | let currentMatchedIndex;
19 | let searchboxDirty;
20 | let hilitor;
21 |
22 | function render() {
23 |
24 | searchElement = document.createElement( 'div' );
25 | searchElement.classList.add( 'searchbox' );
26 | searchElement.style.position = 'absolute';
27 | searchElement.style.top = '10px';
28 | searchElement.style.right = '10px';
29 | searchElement.style.zIndex = 10;
30 |
31 | //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
32 | searchElement.innerHTML = `
33 | `;
34 |
35 | searchInput = searchElement.querySelector( '.searchinput' );
36 | searchInput.style.width = '240px';
37 | searchInput.style.fontSize = '14px';
38 | searchInput.style.padding = '4px 6px';
39 | searchInput.style.color = '#000';
40 | searchInput.style.background = '#fff';
41 | searchInput.style.borderRadius = '2px';
42 | searchInput.style.border = '0';
43 | searchInput.style.outline = '0';
44 | searchInput.style.boxShadow = '0 2px 18px rgba(0, 0, 0, 0.2)';
45 | searchInput.style['-webkit-appearance'] = 'none';
46 |
47 | deck.getRevealElement().appendChild( searchElement );
48 |
49 | // searchButton.addEventListener( 'click', function(event) {
50 | // doSearch();
51 | // }, false );
52 |
53 | searchInput.addEventListener( 'keyup', function( event ) {
54 | switch (event.keyCode) {
55 | case 13:
56 | event.preventDefault();
57 | doSearch();
58 | searchboxDirty = false;
59 | break;
60 | default:
61 | searchboxDirty = true;
62 | }
63 | }, false );
64 |
65 | closeSearch();
66 |
67 | }
68 |
69 | function openSearch() {
70 | if( !searchElement ) render();
71 |
72 | searchElement.style.display = 'inline';
73 | searchInput.focus();
74 | searchInput.select();
75 | }
76 |
77 | function closeSearch() {
78 | if( !searchElement ) render();
79 |
80 | searchElement.style.display = 'none';
81 | if(hilitor) hilitor.remove();
82 | }
83 |
84 | function toggleSearch() {
85 | if( !searchElement ) render();
86 |
87 | if (searchElement.style.display !== 'inline') {
88 | openSearch();
89 | }
90 | else {
91 | closeSearch();
92 | }
93 | }
94 |
95 | function doSearch() {
96 | //if there's been a change in the search term, perform a new search:
97 | if (searchboxDirty) {
98 | var searchstring = searchInput.value;
99 |
100 | if (searchstring === '') {
101 | if(hilitor) hilitor.remove();
102 | matchedSlides = null;
103 | }
104 | else {
105 | //find the keyword amongst the slides
106 | hilitor = new Hilitor("slidecontent");
107 | matchedSlides = hilitor.apply(searchstring);
108 | currentMatchedIndex = 0;
109 | }
110 | }
111 |
112 | if (matchedSlides) {
113 | //navigate to the next slide that has the keyword, wrapping to the first if necessary
114 | if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
115 | currentMatchedIndex = 0;
116 | }
117 | if (matchedSlides.length > currentMatchedIndex) {
118 | deck.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
119 | currentMatchedIndex++;
120 | }
121 | }
122 | }
123 |
124 | // Original JavaScript code by Chirp Internet: www.chirp.com.au
125 | // Please acknowledge use of this code by including this header.
126 | // 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
127 | function Hilitor(id, tag) {
128 |
129 | var targetNode = document.getElementById(id) || document.body;
130 | var hiliteTag = tag || "EM";
131 | var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM)$");
132 | var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
133 | var wordColor = [];
134 | var colorIdx = 0;
135 | var matchRegex = "";
136 | var matchingSlides = [];
137 |
138 | this.setRegex = function(input)
139 | {
140 | input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
141 | matchRegex = new RegExp("(" + input + ")","i");
142 | }
143 |
144 | this.getRegex = function()
145 | {
146 | return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
147 | }
148 |
149 | // recursively apply word highlighting
150 | this.hiliteWords = function(node)
151 | {
152 | if(node == undefined || !node) return;
153 | if(!matchRegex) return;
154 | if(skipTags.test(node.nodeName)) return;
155 |
156 | if(node.hasChildNodes()) {
157 | for(var i=0; i < node.childNodes.length; i++)
158 | this.hiliteWords(node.childNodes[i]);
159 | }
160 | if(node.nodeType == 3) { // NODE_TEXT
161 | var nv, regs;
162 | if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
163 | //find the slide's section element and save it in our list of matching slides
164 | var secnode = node;
165 | while (secnode != null && secnode.nodeName != 'SECTION') {
166 | secnode = secnode.parentNode;
167 | }
168 |
169 | var slideIndex = deck.getIndices(secnode);
170 | var slidelen = matchingSlides.length;
171 | var alreadyAdded = false;
172 | for (var i=0; i < slidelen; i++) {
173 | if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
174 | alreadyAdded = true;
175 | }
176 | }
177 | if (! alreadyAdded) {
178 | matchingSlides.push(slideIndex);
179 | }
180 |
181 | if(!wordColor[regs[0].toLowerCase()]) {
182 | wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
183 | }
184 |
185 | var match = document.createElement(hiliteTag);
186 | match.appendChild(document.createTextNode(regs[0]));
187 | match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
188 | match.style.fontStyle = "inherit";
189 | match.style.color = "#000";
190 |
191 | var after = node.splitText(regs.index);
192 | after.nodeValue = after.nodeValue.substring(regs[0].length);
193 | node.parentNode.insertBefore(match, after);
194 | }
195 | }
196 | };
197 |
198 | // remove highlighting
199 | this.remove = function()
200 | {
201 | var arr = document.getElementsByTagName(hiliteTag);
202 | var el;
203 | while(arr.length && (el = arr[0])) {
204 | el.parentNode.replaceChild(el.firstChild, el);
205 | }
206 | };
207 |
208 | // start highlighting at target node
209 | this.apply = function(input)
210 | {
211 | if(input == undefined || !input) return;
212 | this.remove();
213 | this.setRegex(input);
214 | this.hiliteWords(targetNode);
215 | return matchingSlides;
216 | };
217 |
218 | }
219 |
220 | return {
221 |
222 | id: 'search',
223 |
224 | init: reveal => {
225 |
226 | deck = reveal;
227 | deck.registerKeyboardShortcut( 'CTRL + Shift + F', 'Search' );
228 |
229 | document.addEventListener( 'keydown', function( event ) {
230 | if( event.key == "F" && (event.ctrlKey || event.metaKey) ) { //Control+Shift+f
231 | event.preventDefault();
232 | toggleSearch();
233 | }
234 | }, false );
235 |
236 | },
237 |
238 | open: openSearch
239 |
240 | }
241 | };
242 |
243 | export default Plugin;
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/zoom/plugin.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * reveal.js Zoom plugin
3 | */
4 | const Plugin = {
5 |
6 | id: 'zoom',
7 |
8 | init: function( reveal ) {
9 |
10 | reveal.getRevealElement().addEventListener( 'mousedown', function( event ) {
11 | var defaultModifier = /Linux/.test( window.navigator.platform ) ? 'ctrl' : 'alt';
12 |
13 | var modifier = ( reveal.getConfig().zoomKey ? reveal.getConfig().zoomKey : defaultModifier ) + 'Key';
14 | var zoomLevel = ( reveal.getConfig().zoomLevel ? reveal.getConfig().zoomLevel : 2 );
15 |
16 | if( event[ modifier ] && !reveal.isOverview() ) {
17 | event.preventDefault();
18 |
19 | zoom.to({
20 | x: event.clientX,
21 | y: event.clientY,
22 | scale: zoomLevel,
23 | pan: false
24 | });
25 | }
26 | } );
27 |
28 | }
29 |
30 | };
31 |
32 | export default () => Plugin;
33 |
34 | /*!
35 | * zoom.js 0.3 (modified for use with reveal.js)
36 | * http://lab.hakim.se/zoom-js
37 | * MIT licensed
38 | *
39 | * Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se
40 | */
41 | var zoom = (function(){
42 |
43 | // The current zoom level (scale)
44 | var level = 1;
45 |
46 | // The current mouse position, used for panning
47 | var mouseX = 0,
48 | mouseY = 0;
49 |
50 | // Timeout before pan is activated
51 | var panEngageTimeout = -1,
52 | panUpdateInterval = -1;
53 |
54 | // Check for transform support so that we can fallback otherwise
55 | var supportsTransforms = 'WebkitTransform' in document.body.style ||
56 | 'MozTransform' in document.body.style ||
57 | 'msTransform' in document.body.style ||
58 | 'OTransform' in document.body.style ||
59 | 'transform' in document.body.style;
60 |
61 | if( supportsTransforms ) {
62 | // The easing that will be applied when we zoom in/out
63 | document.body.style.transition = 'transform 0.8s ease';
64 | document.body.style.OTransition = '-o-transform 0.8s ease';
65 | document.body.style.msTransition = '-ms-transform 0.8s ease';
66 | document.body.style.MozTransition = '-moz-transform 0.8s ease';
67 | document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
68 | }
69 |
70 | // Zoom out if the user hits escape
71 | document.addEventListener( 'keyup', function( event ) {
72 | if( level !== 1 && event.keyCode === 27 ) {
73 | zoom.out();
74 | }
75 | } );
76 |
77 | // Monitor mouse movement for panning
78 | document.addEventListener( 'mousemove', function( event ) {
79 | if( level !== 1 ) {
80 | mouseX = event.clientX;
81 | mouseY = event.clientY;
82 | }
83 | } );
84 |
85 | /**
86 | * Applies the CSS required to zoom in, prefers the use of CSS3
87 | * transforms but falls back on zoom for IE.
88 | *
89 | * @param {Object} rect
90 | * @param {Number} scale
91 | */
92 | function magnify( rect, scale ) {
93 |
94 | var scrollOffset = getScrollOffset();
95 |
96 | // Ensure a width/height is set
97 | rect.width = rect.width || 1;
98 | rect.height = rect.height || 1;
99 |
100 | // Center the rect within the zoomed viewport
101 | rect.x -= ( window.innerWidth - ( rect.width * scale ) ) / 2;
102 | rect.y -= ( window.innerHeight - ( rect.height * scale ) ) / 2;
103 |
104 | if( supportsTransforms ) {
105 | // Reset
106 | if( scale === 1 ) {
107 | document.body.style.transform = '';
108 | document.body.style.OTransform = '';
109 | document.body.style.msTransform = '';
110 | document.body.style.MozTransform = '';
111 | document.body.style.WebkitTransform = '';
112 | }
113 | // Scale
114 | else {
115 | var origin = scrollOffset.x +'px '+ scrollOffset.y +'px',
116 | transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')';
117 |
118 | document.body.style.transformOrigin = origin;
119 | document.body.style.OTransformOrigin = origin;
120 | document.body.style.msTransformOrigin = origin;
121 | document.body.style.MozTransformOrigin = origin;
122 | document.body.style.WebkitTransformOrigin = origin;
123 |
124 | document.body.style.transform = transform;
125 | document.body.style.OTransform = transform;
126 | document.body.style.msTransform = transform;
127 | document.body.style.MozTransform = transform;
128 | document.body.style.WebkitTransform = transform;
129 | }
130 | }
131 | else {
132 | // Reset
133 | if( scale === 1 ) {
134 | document.body.style.position = '';
135 | document.body.style.left = '';
136 | document.body.style.top = '';
137 | document.body.style.width = '';
138 | document.body.style.height = '';
139 | document.body.style.zoom = '';
140 | }
141 | // Scale
142 | else {
143 | document.body.style.position = 'relative';
144 | document.body.style.left = ( - ( scrollOffset.x + rect.x ) / scale ) + 'px';
145 | document.body.style.top = ( - ( scrollOffset.y + rect.y ) / scale ) + 'px';
146 | document.body.style.width = ( scale * 100 ) + '%';
147 | document.body.style.height = ( scale * 100 ) + '%';
148 | document.body.style.zoom = scale;
149 | }
150 | }
151 |
152 | level = scale;
153 |
154 | if( document.documentElement.classList ) {
155 | if( level !== 1 ) {
156 | document.documentElement.classList.add( 'zoomed' );
157 | }
158 | else {
159 | document.documentElement.classList.remove( 'zoomed' );
160 | }
161 | }
162 | }
163 |
164 | /**
165 | * Pan the document when the mosue cursor approaches the edges
166 | * of the window.
167 | */
168 | function pan() {
169 | var range = 0.12,
170 | rangeX = window.innerWidth * range,
171 | rangeY = window.innerHeight * range,
172 | scrollOffset = getScrollOffset();
173 |
174 | // Up
175 | if( mouseY < rangeY ) {
176 | window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
177 | }
178 | // Down
179 | else if( mouseY > window.innerHeight - rangeY ) {
180 | window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
181 | }
182 |
183 | // Left
184 | if( mouseX < rangeX ) {
185 | window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
186 | }
187 | // Right
188 | else if( mouseX > window.innerWidth - rangeX ) {
189 | window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
190 | }
191 | }
192 |
193 | function getScrollOffset() {
194 | return {
195 | x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
196 | y: window.scrollY !== undefined ? window.scrollY : window.pageYOffset
197 | }
198 | }
199 |
200 | return {
201 | /**
202 | * Zooms in on either a rectangle or HTML element.
203 | *
204 | * @param {Object} options
205 | * - element: HTML element to zoom in on
206 | * OR
207 | * - x/y: coordinates in non-transformed space to zoom in on
208 | * - width/height: the portion of the screen to zoom in on
209 | * - scale: can be used instead of width/height to explicitly set scale
210 | */
211 | to: function( options ) {
212 |
213 | // Due to an implementation limitation we can't zoom in
214 | // to another element without zooming out first
215 | if( level !== 1 ) {
216 | zoom.out();
217 | }
218 | else {
219 | options.x = options.x || 0;
220 | options.y = options.y || 0;
221 |
222 | // If an element is set, that takes precedence
223 | if( !!options.element ) {
224 | // Space around the zoomed in element to leave on screen
225 | var padding = 20;
226 | var bounds = options.element.getBoundingClientRect();
227 |
228 | options.x = bounds.left - padding;
229 | options.y = bounds.top - padding;
230 | options.width = bounds.width + ( padding * 2 );
231 | options.height = bounds.height + ( padding * 2 );
232 | }
233 |
234 | // If width/height values are set, calculate scale from those values
235 | if( options.width !== undefined && options.height !== undefined ) {
236 | options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
237 | }
238 |
239 | if( options.scale > 1 ) {
240 | options.x *= options.scale;
241 | options.y *= options.scale;
242 |
243 | magnify( options, options.scale );
244 |
245 | if( options.pan !== false ) {
246 |
247 | // Wait with engaging panning as it may conflict with the
248 | // zoom transition
249 | panEngageTimeout = setTimeout( function() {
250 | panUpdateInterval = setInterval( pan, 1000 / 60 );
251 | }, 800 );
252 |
253 | }
254 | }
255 | }
256 | },
257 |
258 | /**
259 | * Resets the document zoom state to its default.
260 | */
261 | out: function() {
262 | clearTimeout( panEngageTimeout );
263 | clearInterval( panUpdateInterval );
264 |
265 | magnify( { x: 0, y: 0 }, 1 );
266 |
267 | level = 1;
268 | },
269 |
270 | // Alias
271 | magnify: function( options ) { this.to( options ) },
272 | reset: function() { this.out() },
273 |
274 | zoomLevel: function() {
275 | return level;
276 | }
277 | }
278 |
279 | })();
280 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/zoom/zoom.esm.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * reveal.js Zoom plugin
3 | */
4 | var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),owindow.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e}
5 |
--------------------------------------------------------------------------------
/FortranCon2020-community/plugin/zoom/zoom.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealZoom=t()}(this,(function(){"use strict";
2 | /*!
3 | * reveal.js Zoom plugin
4 | */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),owindow.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));
5 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/about-me.md:
--------------------------------------------------------------------------------
1 | ### About me
2 |
3 | * Meteorologist and oceanographer
4 | * Research at University of Miami 🌊
5 | * Founded [Cloudrun](https://cloudrun.co) in 2017
6 | * Authored a Modern Fortran [book](https://www.manning.com/books/modern-fortran) 📖
7 | * I live and work in Boca Raton, FL 🌴
8 | * More at [milancurcic.com](https://milancurcic.com)
9 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/challenges.md:
--------------------------------------------------------------------------------
1 | ## Challenges
2 |
3 | * Currently not funded
4 | * Sometimes we disagree
5 | * Scaling up the community
6 | * We learn as we go
7 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/community.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Community
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/compilers.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Compilers ⚙
4 |
5 |
6 |
7 |
8 |
9 | ### Compilers
10 |
11 | * gfortran currently the only mature open source compiler
12 | * Lack of a Fortran interpreter makes rapid prototyping
13 | difficult
14 | * Flang and LFortran under development (both LLVM based)
15 | * Lacking support for GPUs and other emerging platforms
16 |
17 |
18 |
19 |
20 |
21 | ### Long-term goals
22 |
23 | * Community-developed open source compiler and interpreter
24 | * Prototype language features before including them in the standard
25 | * Native and seamless support for CPUs, GPUs, and other emerging platforms
26 | * Cross-platform for major OS's
27 | * Closer collaboration with commercial vendors
28 |
29 |
30 |
31 |
32 |
33 | ### Compiler talks at FortranCon
34 |
35 | * gfortran talk by Thomas König
36 | * Flang talk by Gary Klimowicz
37 | * LFortran talk by Ondřej Čertík
38 |
39 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/discourse.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ### Growing and nurturing the community
4 |
5 |
6 |
7 |
8 |
9 | ### Growing and nurturing the community
10 |
11 | * Moderated discussion board
12 | * Mailing list
13 | * Newsletter
14 | * Monthly call
15 | * Social channels
16 |
17 |
18 |
19 |
20 |
21 | ### Discussion board
22 |
23 | * Moderated to ensure welcoming, constructive, and respectful discussion
24 | * Since May 4:
25 | - 58 members
26 | - 57 topics
27 | - 397 posts
28 | * https://fortran-lang.discourse.group
29 |
30 |
31 |
32 |
33 |
34 | ### Mailing list
35 |
36 | * Moderated to ensure welcoming, constructive, and respectful discussion
37 | * News and announcements
38 | * Since May 1:
39 | - 61 members
40 | - 16 topics
41 | - 91 posts
42 | * https://groups.io/g/fortran-lang
43 |
44 |
45 |
46 |
47 |
48 | ### Newsletter
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | ### Monthly call
57 |
58 |
59 |
60 |
61 |
62 |
63 | ### Social channels
64 |
65 | * Twitter: https://twitter.com/fortranlang
66 | * Youtube: https://www.youtube.com/channel/UCTYRAlVmMCGGcrMkKxQLurw
67 |
68 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/fpm.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Fortran Package Manager (fpm) 📦
4 |
5 |
6 |
7 |
8 | ### Fortran Package Manager (fpm)
9 |
10 | * Package manager + build system for Fortran
11 | * Inspired by Rust's Cargo 🦀
12 | * Focus on User Experience:
13 | - Easy to install and use
14 | - Package your application or library
15 | - Install dependencies seamlessly and automatically
16 |
17 |
18 |
19 |
20 |
21 | ### fpm is a package manager 📦
22 |
23 | Compile and link external Fortran dependencies by simply specifying a git URL:
24 |
25 | ```toml
26 | [dependencies]
27 | datetime = {git="https://github.com/wavebitscientific/datetime-fortran"}
28 | ```
29 |
30 |
31 |
32 |
33 |
34 | ### fpm is a build system 🔨
35 |
36 | Never again maintain complex Makefiles, CMakeLists, or custom build scripts
37 |
38 |
39 |
40 |
41 |
42 | ### Example use
43 |
44 | ```shell
45 | $ fpm new # create a new Fortran project
46 | $ fpm build # build the project
47 | $ fpm install # (build and) install
48 | $ fpm run # (build and) run the program
49 | $ fpm test # (build and) run tests
50 | ```
51 |
52 |
53 |
54 |
55 |
56 | ### In-depth look at fpm
57 |
58 | * See the fpm talk by Brad Richardson
59 |
60 |
61 |
62 |
63 |
64 | ### fpm on GitHub
65 |
66 | https://github.com/fortran-lang/fpm
67 |
68 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/motivation.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Problem and Motivation
4 |
5 |
6 |
7 |
8 | ### Problem and Motivation
9 |
10 | Fortran is a powerful, easy-to-learn language, and
11 |
12 | 1. It lacks modern tooling
13 | 2. Has a poor ecosystem of libraries
14 | 3. Its users are scattered and disconnected
15 |
16 | ➡ **User adoption and new Fortran projects are diminishing**
17 |
18 |
19 |
20 |
21 |
22 | ### Fortran lacks modern tooling
23 |
24 | * No comprehensive standard library
25 | * No go-to build system
26 | * No package management solution
27 | * Open source compilers few and far between
28 |
29 | ➡ **Great language that can be difficult to work with**
30 |
31 |
32 |
33 |
34 |
35 | ### Poor library ecosystem
36 |
37 | * Fortran started in the pre-internet era
38 | * Before email, websites, or version control
39 | * GitHub? Forget about it!
40 | * Scarce open source library ecosystem
41 |
42 | ➡ **Many wheels re-invented but not shared**
43 |
44 |
45 |
46 |
47 |
48 | ### Fortran users are scattered and disconnected
49 |
50 | * Difficult to find other users
51 | * No central online presence
52 | * Conferences and meetups few and far between
53 |
54 | ➡ **Difficult to stay motivated and makes you re-invent the wheel**
55 |
56 |
57 |
58 |
59 |
60 | ### Fortran also has a PR problem
61 |
62 | * Most of society still only knows of FORTRAN
63 | * Mainframes, punchcards, and UPPERCASE
64 | * Images deeply engraved into the cultural DNA
65 | * Fortran is not the village idiot of programming languages,
66 | yet, it is being treated as such
67 |
68 | ➡ **This is bad. We need to change it.**
69 |
70 |
71 |
72 |
73 |
74 | ### Our desires for Fortran
75 |
76 | * Fortran should be easy and fun to work with
77 | * It should feel like play and not work
78 | * Rich ecosystem of open source libraries
79 | * Run Fortran code on any architecture: CPUs, GPUs, emerging platforms
80 |
81 |
82 |
83 |
84 |
85 | ### How do we get there?
86 |
87 | We need:
88 |
89 | * A rich standard library
90 | * An easy-to-use, fast package manager
91 | * A cutting-edge open source compiler and interpreter
92 | * A modern, beautiful website and learning resources to attract new users
93 | * A welcoming and inclusive online community
94 |
95 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/outlook.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Next steps
4 |
5 |
6 |
7 |
8 |
9 | ### Next steps
10 |
11 | * stdlib and fpm under ongoing development
12 | * Draft an fpm specification, begin Fortran implementation
13 | * Get more users for stdlib and fpm
14 | * Write tutorials for fortran-lang.org
15 | * Collaborate with J3 and WG5 as much as we can
16 |
17 |
18 |
19 |
20 |
21 | ### One year outlook
22 |
23 | * 50+ active code contributors 👫👫
24 | * Stable (non-experimental) release of stdlib
25 | * Fortran implementation of fpm
26 | * fpm can install most modern Fortran projects
27 | * Complete tutorials on most Fortran features
28 |
29 |
30 |
31 |
32 |
33 | ### One year outlook (continued)
34 |
35 | * Google Summer of Code 2021
36 | * Seek sponsorship to support travel to meetings
37 | * NumFocus or non-profit organization
38 | * Present at conferences: FortranCon, SciPyConf, Supercomputing
39 |
40 |
41 |
42 |
43 | ### Ten-year outlook
44 |
45 | * 100+ active code contributors 👫👫👫👫
46 | * Mature open source compiler and interpreter targeting CPUs, GPUs, and other emerging platforms ⚙
47 | * stdlib ships with all major compilers 🧰
48 | * Seek sponsorship to support full-time developers 💵
49 |
50 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/overview.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/pillars.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ### Four pillars of fortran-lang
4 |
5 |
6 |
7 |
8 |
9 | ### Four pillars of fortran-lang
10 |
11 | 1. Standard Library 🧰
12 | 2. Package Manager 📦
13 | 3. Compilers ⚙
14 | 4. Website 🌐
15 |
16 |
17 |
18 |
19 |
20 | ### First pillar: Standard Library 🧰
21 |
22 |
23 |
24 |
25 | ### Second pillar: Package Manager 📦
26 |
27 |
28 |
29 |
30 | ### Third pillar: Compilers ⚙
31 |
32 |
33 |
34 |
35 |
36 | ### Fourth pillar: Website 🌐
37 |
38 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/stdlib.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Fortran Standard Library (stdlib) 🧰
4 |
5 |
6 |
7 |
8 |
9 | ### Why stdlib?
10 |
11 | * Fortran has a limited set of built-in procedures
12 | * Limited capacity for general purpose programming
13 | * Wheels keep getting re-invented
14 | * Many requests to the Fortran Committee can be prototyped in libraries
15 |
16 |
17 |
18 |
19 |
20 | ### Implemented so far
21 |
22 | * 34 procedures across 9 modules:
23 | `ascii`, `error`, `io`, `kinds`, `linalg`, `optval`, `quadrature`, `stats`, `system`
24 | * Compatible with any rank and kind
25 | * 16 direct source code contributors
26 | * 47 total contributors
27 |
28 |
29 |
30 |
31 |
32 | ### In-depth look at stdlib
33 |
34 | * See the next talk by Jérémie Vandenplas
35 |
36 |
37 |
38 |
39 |
40 | ### Links
41 |
42 | * Code: https://github.com/fortran-lang/stdlib
43 | * API docs: https://stdlib.fortran-lang.org
44 |
45 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/takeaways.md:
--------------------------------------------------------------------------------
1 | ### Takeaways
2 |
3 | 1. fortran-lang is a young community project for the betterment of Fortran
4 | 2. Standard library, package manager, and the website are the current ongoing projects
5 | 3. Toward a community compiler and collaboration with vendors and standard committees
6 |
7 | Join us: https://fortran-lang.org
8 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/thank-you.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Thank you! 🙏
4 |
5 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/title.md:
--------------------------------------------------------------------------------
1 | ### Toward a thriving open source Fortran community
2 |
3 | [Milan Curcic](https://github.com/milancurcic),
4 | [Ondřej Čertík](https://github.com/certik),
5 | [Laurence Kedward](https://github.com/lkedward),
6 | [Vincent Magnin](https://github.com/vmagnin),
7 | [Ivan Pribec](https://github.com/ivan-pi),
8 | [Brad Richardson](https://github.com/everythingfunctional),
9 | and [Jérémie Vandenplas](https://github.com/jvdp1)
10 |
11 | 2 July, FortranCon 2020
12 |
--------------------------------------------------------------------------------
/FortranCon2020-community/slides/website.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## fortran-lang.org 🌐
4 |
5 |
6 |
7 |
8 | ### Home of Fortran on the internet
9 |
10 | * A central place for all Fortran users to find everything they need
11 | * Tutorials, compilers, and other resources
12 | * A moderated discussion board
13 | * Mailing list
14 | * Newsletter
15 |
16 |
17 |
20 |
--------------------------------------------------------------------------------
/FortranCon2020-fpm/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2020-fpm
2 |
3 | **Presenter** [Brad Richardson](https://github.com/everythingfunctional)
4 |
5 | **Co-authors**:
6 | [Ondrej Certik](https://github.com/certik),
7 | [Milan Curcic](https://github.com/milancurcic).
8 |
9 | **Title**: Fortran Package Manager
10 |
11 | **Abstract**:
12 | While Fortran is the oldest high level language, it has done quite well in
13 | keeping up with the times in terms of features and capabilities of the language
14 | itself. However, modern practices and developers have become accustomed to tools
15 | and ecosystems which provide many conveniences in a programming environment.
16 | Unfortunately, Fortran has not kept pace with such tooling and ecosystems. One
17 | such tool which has become popular is a package manager. A package manger is a
18 | tool that manages the dependencies of a project on other libraries. This is
19 | accomplished by keeping track of the dependencies, with specifiable version
20 | constraints, and automating the process of fetching them - including transitive
21 | dependencies - for use in the compilation of the project. Often included are the
22 | facilities for compiling, running, and testing the project, as well as searching
23 | for available open source libraries, and generating a template for new projects.
24 | This paper describes the development of just such a tool for Fortran, aptly
25 | named the Fortran Package Manager (FPM).
26 |
--------------------------------------------------------------------------------
/FortranCon2020-fpm/fpm-presentation.odp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-fpm/fpm-presentation.odp
--------------------------------------------------------------------------------
/FortranCon2020-fpm/fpm-presentation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-fpm/fpm-presentation.pdf
--------------------------------------------------------------------------------
/FortranCon2020-stdlib/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2020-stdlib
2 |
3 | **Authors**:
4 | [Jeremie Vandenplas](https://github.com/jvdp1), jeremie.vandenplas@wur.nl, Wageningen University & Research
5 | [Bálint Aradi](https://github.com/aradi), aradi@uni-bremen.de, University of Bremen
6 | [Izaak Beekman](https://github.com/zbeekman), contact@izaakbeekman.com, ParaTools Inc.
7 | [Ondrej Certik](https://github.com/certik), ondrej@certik.us, Los Alamos National Laboratory
8 | [Milan Curcic](https://github.com/milancuric), caomaco@gmail.com, University of Miami
9 | [Pierre de Buyl](https://github.com/pdebuyl), pdebuyl@pdebuyl.be, KU Leuven
10 | [Juan Fiol](https://github.com/fiolj),,
11 | [Michael Hirsch](https://github.com/scivision), info@scivision.dev, SciVision, Inc.
12 | [Ivan Pribec](https://github.com/ivan-pi), ivan.pribec@tum.de, Technical University of Munich
13 | [Nathaniel Shaffer](https://github.com/nshaffer), nrshaffer@protonmail.com, Los Alamos National Laboratory
14 |
15 | **To be acknowledged in the presentation (following comments):**
16 | [Neil Carlson](https://github.com/nncarlson)
17 | [Pedro Costa](https://github.com/p-costa)
18 | [???](https://github.com/JHenneberg)
19 | [Yuichiro Sakamoto](https://github.com/sakamoti)
20 | [Ashwin Vishnu](https://github.com/ashwinvis)
21 |
22 | **Track**: Junior presentations (15 + 5 minutes discussion)
23 |
24 | **Presenter**: [Jeremie Vandenplas](https://github.com/jvdp1)
25 |
26 | **Title**: Fortran Standard Library
27 |
28 | **Abstract**:
29 | The Fortran Standard, as published by the International Organization for Standardization (ISO), does not include a Standard Library.
30 | The language can be extended with new intrinsic procedure and modules, but these must be formally standardized and then implemented by compiler vendors before becoming available to users.
31 | Therefore, the goal of this project is to provide a community driven and agreed upon de facto "standard" library for Modern Fortran, called the Fortran Standard Library (stdlib; https://github.com/fortran-lang/stdlib).
32 | This library aims to provide to the community a set of procedures for science, engineering, and mathematics.
33 | The overall scope of the Fortran Standard Library is therefore similar to the one of SciPy or to the default built-in Matlab scientific environment.
34 | Currently the library includes procedures for catching and handling errors, handling optional arguments, facilitating I/O operations, linear algebra, numerical integration, and descriptive statistics.
35 | Started a few months ago, no less than 15 people already contributed to the development of the Fortran Standard Library and its documentation.
36 | Many other programmers are also involved in active discussions about its development through GitHub issues.
37 | The development of this library is part of the Fortran-lang project and aims to collaborate with the Fortran Standards Committee.
38 |
--------------------------------------------------------------------------------
/FortranCon2020-stdlib/apidocsstdlib.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2020-stdlib/apidocsstdlib.png
--------------------------------------------------------------------------------
/FortranCon2021-fpm/.gitignore:
--------------------------------------------------------------------------------
1 | /*.aux
2 | /*.log
3 | /*.nav
4 | /*.out
5 | /*.snm
6 | /*.toc
7 | /*.bak
8 | /*.pdf
9 | /*.vrb
10 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/bootstrapping.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/bootstrapping.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/bootstrapping.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
159 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/dependencies.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/dependencies.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/features.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/features.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/fpm-projects.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/fpm-projects.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/get-fpm.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/get-fpm.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/layout.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/layout.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/logo-cpp.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/logo-cpp.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/logo-fortran.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/logo-fortran.png
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/logo-haskell.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/logo-haskell.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/logo-python.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/logo-python.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/Figures/logo-rust.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-fpm/Figures/logo-rust.pdf
--------------------------------------------------------------------------------
/FortranCon2021-fpm/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Sebastian Ehlert
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2021: fpm
2 |
3 | ## Authors
4 |
5 | - [Sebastian Ehlert](https://github.com/awvwgk)
6 | - [Ondřej Čertík](https://github.com/certik)
7 | - [Milan Curcic](https://github.com/milancurcic)
8 | - [Jakub Jelínek](https://github.com/kubajj)
9 | - [Laurence Kedward](https://github.com/lkedward)
10 | - [Vincent Magnin](https://github.com/vmagnin)
11 | - [Emanuele Pagone](https://github.com/epagone)
12 | - [Brad Richardson](https://github.com/everythingfunctional)
13 | - [John Urban](https://github.com/urbanjost)
14 |
15 | ## Track
16 |
17 | Fortran-lang minisymposium (12 + 3 minutes discussion)
18 |
19 | ## Presenter
20 |
21 | [Sebastian Ehlert](https://github.com/awvwgk)
22 |
23 | ## Title:
24 |
25 | Fortran package manager
26 |
27 | ## Abstract
28 |
29 | A language-specific package manager is an important element to build an efficient ecosystem of libraries and projects.
30 | Fortran has long missed a dedicated package manager, making the user experience of practitioners cumbersome. With the Fortran package manager (fpm) we are addressing these needs creating a reliable and productive tool that makes building applications and using libraries intuitive.
31 | Fpm takes care of fetching and building all transitive dependencies used to build the main project making especially easy to reuse other projects.
32 | As a cross-platform reproducable development and production environment fpm simplifies the difficulties in building, running, testing, and installing Fortran-centric projects.
33 | Support for all major Fortran compilers and platforms is available.
34 |
35 | Fpm is written in Fortran and built with itself, making it easy to bootstrap and install fpm on any platform with a Fortran compiler.
36 | The positive effect of a Fortran implementation is the easy accessibility of the codebase, which enables the community to contribute back and improve fpm further.
37 | While fpm is relatively new and still rapidly developing, it already found adoption even for large-scale projects today.
38 | Features to incorporate build requirements emerging from developing parallel applications or integrations with GUI environments are planned or under active development.
39 |
40 | ## Slides
41 |
42 | To build the slides use
43 |
44 | ```
45 | lualatex main
46 | lualatex main
47 | ```
48 |
49 | The fonts Source Sans Pro and Source Code Pro are required.
50 |
51 |
52 | ## License
53 |
54 | This talk is available under the MIT license, with exception for the beamer theme which is dual licensed with GPL-3.0-or-later and the LaTeX Project Public License.
55 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/beamercolorthemeMCTC.sty:
--------------------------------------------------------------------------------
1 | % Copyright 2019 Sebastian Ehlert
2 | %
3 | % This file may be distributed and/or modified
4 | %
5 | % 1. under the LaTeX Project Public License and/or
6 | % 2. under the GNU Public License.
7 | %
8 | % See the file doc/licenses/LICENSE for more details.
9 |
10 | \definecolor{darkgrey}{HTML}{929084}
11 | \colorlet{dark}{darkgrey!35!black}
12 | \definecolor{palegrey}{HTML}{DDE0D9}
13 | \colorlet{light}{palegrey!35!white}
14 |
15 | \setbeamercolor{uni blue}{fg=light,bg=blue}
16 | \setbeamercolor{uni grey}{fg=black,bg=darkgrey}
17 | \setbeamercolor{uni yellow}{fg=dark,bg=yellow}
18 |
19 | \setbeamercolor{structure}{fg=dark,bg=light}
20 | \setbeamercolor{normal text}{fg=dark,bg=light!50}
21 | \setbeamercolor{frametitle}{parent=normal text,bg=}
22 |
23 | \setbeamercolor{titlelike}{parent=structure}
24 | \setbeamercolor{author}{parent=normal text}
25 | \setbeamercolor{institute}{parent=normal text}
26 | \setbeamercolor{date}{parent=normal text}
27 |
28 | \setbeamerfont{title in head/foot}{family=\ttfamily}
29 | \setbeamerfont{page number in head/foot}{family=\ttfamily}
30 | \setbeamerfont{subsection in head/foot}{family=\ttfamily}
31 |
32 | \setbeamercolor*{palette primary}{fg=light,bg=blue}
33 | \setbeamercolor*{palette secondary}{parent=structure}
34 | \setbeamercolor*{palette tertiary}{parent=structure,fg=structure.bg,bg=structure.fg}
35 | \setbeamercolor*{palette quaternary}{parent=structure,fg=white,bg=structure.fg}
36 |
37 | \setbeamercolor{block title}{parent=structure,fg=white,bg=structure.fg!75!dark}
38 | \setbeamercolor{block title alerted}{parent=alerted text,fg=white,bg=alerted text.fg!75!dark}
39 | \setbeamercolor{block title example}{parent=example text,fg=white,bg=example text.fg!75!dark}
40 |
41 | \setbeamercolor{block body}{parent=normal text,parent=block title,bg=block title.bg!10!bg}
42 | \setbeamercolor{block body alerted}{parent=normal text,parent=block title alerted,bg=block title alerted.bg!10!bg}
43 | \setbeamercolor{block body example}{parent=normal text,parent=block title example,bg=block title example.bg!10!bg}
44 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/beamerouterthemeMCTC.sty:
--------------------------------------------------------------------------------
1 | % Copyright 2007 by Till Tantau
2 | % Copyright 2015 by Vedran Mileti\'c, Joseph Wright
3 | % Copyright 2019 Sebastian Ehlert
4 | %
5 | % This file may be distributed and/or modified
6 | %
7 | % 1. under the LaTeX Project Public License and/or
8 | % 2. under the GNU Public License.
9 | %
10 | % See the file doc/licenses/LICENSE for more details.
11 |
12 | \setbeamercolor{section in head/foot}{parent=palette tertiary}
13 | \setbeamercolor{subsection in head/foot}{parent=palette secondary}
14 | \setbeamercolor{author in head/foot}{parent=subsection in head/foot}
15 | \setbeamercolor{title in head/foot}{parent=subsection in head/foot}
16 |
17 | \newif\ifbeamer@theme@subsection
18 | \beamer@theme@subsectiontrue
19 |
20 | \DeclareOptionBeamer{subsection}[true]{\csname beamer@theme@subsection#1\endcsname}
21 | \ProcessOptionsBeamer
22 |
23 | \mode
24 |
25 | \AtBeginDocument{
26 | \pgfdeclareverticalshading{beamer@topshade}{\paperwidth}{%
27 | color(0pt)=(bg);
28 | color(1pt)=(black!50!bg)}
29 | }
30 |
31 | \setbeamertemplate{mini frames}[box]
32 | % Head
33 | \defbeamertemplate*{headline}{awvwgk theme}
34 | {%
35 | \begin{beamercolorbox}[colsep=.1pt]{upper separation line head}
36 | \end{beamercolorbox}
37 | \begin{beamercolorbox}{section in head/foot}
38 | \vskip2pt\hskip5pt\raisebox{-6.5pt}{\pgfuseimage{logo}}%
39 | \hskip2pt\insertnavigation{.8\paperwidth}\vskip2pt
40 | \end{beamercolorbox}%
41 | \ifbeamer@theme@subsection%
42 | \begin{beamercolorbox}[colsep=.1pt]{middle separation line head}
43 | \end{beamercolorbox}
44 | \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,%
45 | leftskip=.4cm,rightskip=.4cm plus1fil]{subsection in head/foot}
46 | \usebeamerfont{subsection in head/foot}\insertsubsectionhead
47 | \end{beamercolorbox}%
48 | \vskip-3.625ex
49 | \pgfuseshading{beamer@topshade}
50 | \vskip+3.625ex
51 | \vskip-1pt
52 | \fi%
53 | \begin{beamercolorbox}[colsep=.1pt]{lower separation line head}
54 | \end{beamercolorbox}
55 | \pgfuseshading{beamer@topshade}
56 | \vskip-1pt
57 | }
58 |
59 | \defbeamertemplate*{footline}{awvwgk theme}
60 | {%
61 | %\leavevmode%
62 | %\begin{beamercolorbox}[colsep=.1pt]{upper separation line foot}%
63 | %\end{beamercolorbox}%
64 | \hbox{%
65 | \begin{beamercolorbox}%
66 | [ht=2.5ex,dp=1.125ex,leftskip=.4cm,rightskip=.4cm]%
67 | {author in head/foot}%
68 | \usebeamerfont{title in head/foot}%
69 | \insertshortauthor\ -\ \insertshorttitle\hfill%
70 | \usebeamerfont{page number in head/foot}%
71 | \usebeamertemplate{page number in head/foot}%
72 | \end{beamercolorbox}
73 | }%
74 | \vskip-3.625ex%
75 | \pgfuseshading{beamer@topshade}%
76 | \vskip+3.625ex%
77 | \vskip-1pt%
78 | }
79 |
80 |
81 | \mode
82 |
83 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/plot/fpm-events.txt:
--------------------------------------------------------------------------------
1 | date event description
2 | 2021-09-24 180 FortranCon2021
3 | 2021-08-26 180 0.4.0
4 | 2021-06-23 180 0.3.0
5 | 2021-04-29 180 HN(26977499)
6 | 2021-03-30 180 v0.2.0
7 | 2021-03-06 180 v0.1.4
8 | 2020-12-18 180 v0.1.3
9 | 2020-12-08 180 v0.1.2
10 | 2020-12-05 180 v0.1.1
11 | 2020-11-25 180 v0.1.0
12 | 2020-07-04 180 FortranCon2020
13 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/plot/fpm-projects.plt:
--------------------------------------------------------------------------------
1 | #set terminal svg size 700,700 font "Source Sans Pro,18"
2 | #set tics font "Source Code Pro,18"
3 | set key top left outside horizontal autotitle columnhead
4 |
5 | set xtics rotate by -45 nomirror
6 | set ytics out nomirror
7 | set format x "%Y-%m-%d"
8 | set xdata time
9 | set timefmt "%Y-%m-%d"
10 | set xrange ["2020-04-01":"2021-10-01"]
11 |
12 | set style fill solid border -1
13 | set boxwidth 1 absolute
14 |
15 | plot \
16 | "plot/fpm-projects.txt" using 1:2 smooth cumulative lc rgb "#734f96" lw 2, \
17 | "plot/fpm-events.txt" using 1:2 with boxes lw 0
18 |
--------------------------------------------------------------------------------
/FortranCon2021-fpm/plot/fpm-projects.txt:
--------------------------------------------------------------------------------
1 | date projects
2 | 2020-04-26 1
3 | 2020-05-23 1
4 | 2020-05-23 1
5 | 2020-05-30 1
6 | 2020-05-30 1
7 | 2020-05-30 1
8 | 2020-06-04 1
9 | 2020-06-04 1
10 | 2020-06-04 1
11 | 2020-06-04 1
12 | 2020-06-05 1
13 | 2020-06-10 1
14 | 2020-06-10 1
15 | 2020-06-14 1
16 | 2020-06-17 1
17 | 2020-07-05 1
18 | 2020-07-07 1
19 | 2020-07-07 1
20 | 2020-07-07 1
21 | 2020-07-07 1
22 | 2020-07-07 1
23 | 2020-07-07 1
24 | 2020-07-07 1
25 | 2020-07-07 1
26 | 2020-07-10 1
27 | 2020-07-12 1
28 | 2020-07-15 1
29 | 2020-07-16 1
30 | 2020-07-18 1
31 | 2020-07-30 1
32 | 2020-08-02 1
33 | 2020-08-03 1
34 | 2020-08-03 1
35 | 2020-08-22 1
36 | 2020-08-28 1
37 | 2020-09-12 1
38 | 2020-10-03 1
39 | 2020-10-04 1
40 | 2020-10-05 1
41 | 2020-10-07 1
42 | 2020-10-14 1
43 | 2020-10-31 1
44 | 2020-11-07 1
45 | 2020-11-09 1
46 | 2020-11-10 1
47 | 2020-11-14 1
48 | 2020-11-27 1
49 | 2020-12-13 1
50 | 2020-12-14 1
51 | 2020-12-15 1
52 | 2020-12-16 1
53 | 2020-12-16 1
54 | 2020-12-17 1
55 | 2020-12-20 1
56 | 2020-12-22 1
57 | 2020-12-23 1
58 | 2020-12-23 1
59 | 2020-12-29 1
60 | 2020-12-30 1
61 | 2021-01-03 1
62 | 2021-01-03 1
63 | 2021-01-06 1
64 | 2021-01-12 1
65 | 2021-01-13 1
66 | 2021-01-15 1
67 | 2021-01-16 1
68 | 2021-02-02 1
69 | 2021-02-03 1
70 | 2021-02-05 1
71 | 2021-02-08 1
72 | 2021-02-09 1
73 | 2021-02-10 1
74 | 2021-02-11 1
75 | 2021-02-17 1
76 | 2021-02-18 1
77 | 2021-02-19 1
78 | 2021-02-19 1
79 | 2021-02-19 1
80 | 2021-02-20 1
81 | 2021-02-22 1
82 | 2021-02-24 1
83 | 2021-02-25 1
84 | 2021-03-02 1
85 | 2021-03-12 1
86 | 2021-03-13 1
87 | 2021-03-14 1
88 | 2021-03-16 1
89 | 2021-03-18 1
90 | 2021-03-18 1
91 | 2021-03-19 1
92 | 2021-03-19 1
93 | 2021-03-20 1
94 | 2021-03-22 1
95 | 2021-03-26 1
96 | 2021-03-28 1
97 | 2021-03-28 1
98 | 2021-03-28 1
99 | 2021-03-31 1
100 | 2021-04-02 1
101 | 2021-04-03 1
102 | 2021-04-03 1
103 | 2021-04-03 1
104 | 2021-04-05 1
105 | 2021-04-05 1
106 | 2021-04-07 1
107 | 2021-04-10 1
108 | 2021-04-11 1
109 | 2021-04-16 1
110 | 2021-04-16 1
111 | 2021-04-22 1
112 | 2021-04-23 1
113 | 2021-04-25 1
114 | 2021-04-25 1
115 | 2021-04-26 1
116 | 2021-04-27 1
117 | 2021-05-07 1
118 | 2021-05-07 1
119 | 2021-05-11 1
120 | 2021-05-14 1
121 | 2021-05-18 1
122 | 2021-05-21 1
123 | 2021-05-25 1
124 | 2021-05-26 1
125 | 2021-05-26 1
126 | 2021-05-29 1
127 | 2021-05-31 1
128 | 2021-05-31 1
129 | 2021-06-03 1
130 | 2021-06-03 1
131 | 2021-06-04 1
132 | 2021-06-05 1
133 | 2021-06-06 1
134 | 2021-06-07 1
135 | 2021-06-08 1
136 | 2021-06-15 1
137 | 2021-06-18 1
138 | 2021-06-18 1
139 | 2021-06-23 1
140 | 2021-06-25 1
141 | 2021-06-30 1
142 | 2021-07-02 1
143 | 2021-07-04 1
144 | 2021-07-05 1
145 | 2021-07-06 1
146 | 2021-07-12 1
147 | 2021-07-14 1
148 | 2021-07-15 1
149 | 2021-07-16 1
150 | 2021-07-16 1
151 | 2021-07-16 1
152 | 2021-07-20 1
153 | 2021-07-22 1
154 | 2021-07-24 1
155 | 2021-07-27 1
156 | 2021-08-10 1
157 | 2021-08-11 1
158 | 2021-08-14 1
159 | 2021-08-15 1
160 | 2021-08-17 1
161 | 2021-08-21 1
162 | 2021-08-22 1
163 | 2021-08-26 1
164 | 2021-08-29 1
165 | 2021-08-29 1
166 | 2021-08-29 1
167 | 2021-08-30 1
168 | 2021-08-30 1
169 | 2021-09-08 1
170 | 2021-09-09 1
171 | 2021-09-10 1
172 | 2021-09-11 1
173 | 2021-09-12 1
174 | 2021-09-15 1
175 |
--------------------------------------------------------------------------------
/FortranCon2021-gsoc-fpm-flags/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2021: Handling Compiler Flags in fpm (GSoC)
2 |
3 | __Presenter:__ [Jakub Jelinek](https://github.com/kubajj)
4 |
5 | __Co-Authors:__ [Laurence Kedward](https://github.com/LKedward), [Brad Richardson](https://github.com/everythingfunctional), [Sebastian Ehlert](https://github.com/awvwgk)
6 |
7 | __Session:__ Fortran-lang minisymposium (10 min)
8 |
9 | __Abstract:__
10 | The Fortran Package Manager (fpm) aims to be a Fortran-specific build system to simplify compiling Fortran code and using third-party dependencies.
11 | Fpm is currently in alpha development status and supports a wide range of features.
12 | Recent work, undertaken as part of the Google Summer of Code programme, has implemented the syntax and logic required to provide fine-grain control of compiler flags by package maintainers.
13 | Specifying compiler flags for fpm projects is a complex problem due the existence of multiple Fortran compilers, each with their own set of flags.
14 | Moveover, package maintainers often need to specify different flags for a variety of build profiles, such as ‘debug’ and ‘release’, as well as across a variety of target operating systems.
15 | What is more, some packages require specific compiler flags other than the default ones built into fpm and complex projects with various package dependencies might need specific flags for each package, therefore a priority system for compiler profiles was designed and implemented.
16 |
17 | In this presentation, detail is given on the new functionality for specifying compiler flags in fpm including: the syntax for the manifest file; the behaviour for package dependencies; and common use-case examples.
18 |
--------------------------------------------------------------------------------
/FortranCon2021-linked_list/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2021: Linked List (GSoC)
2 |
3 | __Presenter:__ [Chetan Karwa](https://github.com/ChetanKarwa)
4 |
5 | __Co-Authors:__ [Arjen Markus](https://github.com/arjenmarkus), [Milan Curcic](https://github.com/milancurcic)
6 |
7 | __Session:__ Fortran-lang minisymposium (10 min).
8 |
9 | __Abstract:__
10 |
11 | The Fortran-lang stdlib was introduced to provide extensive support to Fortran developers by providing modules that can be directly used in their programs. A linked list is one of the classical data structures that has numerous applications.
12 | Example:
13 | - It can be used as a self-growing container.
14 | - It can store linearly dependent data. (web history, slides in some presentation, etc)
15 | - Acts as a building block for other data structures such as Priority Queue, Fibonacci Heap, stack, queue, etc.
16 |
17 | The goal of the Google Summer of Code project was to implement an efficient linked list module that is devoid of any memory leaks. The module covers several APIs that are important in the initial phase.
18 | The Linked list developed is a Generic Heterogeneous list i.e. it supports storage of multiple data types in the same list.
19 | The APIs can be further explained in detail in the presentation with suitable examples.
20 |
--------------------------------------------------------------------------------
/FortranCon2021-state-of-fortran/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2021: The State of Fortran
2 |
3 | __Presenter:__ [Laurence Kedward](https://github.com/LKedward)
4 |
5 | __Co-Authors:__
6 | Bálint Aradi,
7 | Ondřej Čertík,
8 | Milan Curcic,
9 | Sebastian Engel,
10 | Rohit Goswami,
11 | Michael Hirsch,
12 | Asdrubal Lozada-Blanco,
13 | Vincent Magnin,
14 | Arjen Markus,
15 | Emanuele Pagone,
16 | Ivan Pribec,
17 | Brad Richardson,
18 | Harris Snyder,
19 | Carlos Une,
20 | John Urban,
21 | Jérémie Vandenplas
22 |
23 | __Session:__ Fortran-lang minisymposium (10 min)
24 |
25 | __Abstract:__
26 | A new community of developers has formed to unite Fortran users and modernize the Fortran ecosystem.
27 | In this presentation, we describe the high-level features of Fortran that continue to make it a good choice for scientists and engineers in the 21st century. We will also outline ongoing community efforts including the development of a Fortran standard library and package manager, the fostering of a friendly and welcoming online community, improved compiler support, and language feature development.
28 | The lessons learned are common across contemporary programming languages and help reduce the learning curve and increase adoption of Fortran.
29 |
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2021-stdlib
2 |
3 | **Authors**:
4 | [Nathaniel Shaffer](https://github.com/nshaffer) (University of Rochester),
5 | [Gabriel Brown](https://github.com/ghbrown) (University of Illinois Urbana-Champaign),
6 | [Ondřej Čertik](https://github.com/certik) (Los Alamos National Laboratory),
7 | [William Clodius](https://githiub.com/wclodius2),
8 | [Milan Curcic](https://github.com/milancuric) (University of Miami),
9 | [Laurence Kedward](https://github.com/lkedward) (University of Bristol),
10 | [Sebastian Ehlert](https://github.com/awvwgk) (University of Bonn),
11 | [Gareth Davies](https://github.com/gareth-nx),
12 | [Aman Godara](https://github.com/Aman-Godara),
13 | [Michael Hirsch](https://github.com/scivision) (Scivision),
14 | [Jing](https://github.com/Jim-215-Fisher),
15 | [Chetan Karwa](https://github.com/chetankarwa) (Sardar Vallabhbhai NIT Surat),
16 | [Arjen Markus](https://github.com/arjenmarkus),
17 | [Ivan Pribec](https://github.com/ivan-pi) (Technical University of Munich),
18 | [Harris Snyder](https://github.com/hsnyder) (Structura Biotechnology, Inc.),
19 | [Jeremie Vandenplas](https://github.com/jvdp1) (Wageningen University & Research),
20 | [Evan Voyles](https://github.com/ejovo13) (Kalamazoo College),
21 |
22 |
23 | **To be acknowledged in the presentation (following comments):**
24 |
25 | **Track**: Minisymposium: fortran-lang
26 |
27 | **Presenter**: [Nathaniel Shaffer](https://github.com/nshaffer)
28 |
29 | **Title**: What's new in the Fortran Standard Library?
30 |
31 | **Abstract**:
32 | The Fortran standard library (stdlib) is now well into its second year of development.
33 | In this past year, stdlib has grown not only in its functionality but in its contributor base, with most of the new development coming from new contributors, including two Google Summer of Code students.
34 | Stdlib provides new functionality for working with bit sets, logging, quadrature, sorting, strings, and more.
35 | In addition to new capabilities in stdlib itself, there have also been several technical improvements to the documentation and build system.
36 | The full API documentation is generated by the FORD tool and hosted online at the fortran-lang website.
37 | Furthermore, Github's Continuous Integration pipeline is used to ensure cross-platform support by building stdlib and running its test suite on every pull request.
38 | There has also been progress toward supporting the Fortran Package Manager (fpm) both for building stdlib as a standalone library and for incorporating stdlib as a dependency in fpm projects.
39 | These enhancements bring stdlib closer to its goal of being a featureful and easy-to-use library for general and widespread use.
40 |
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/contrib.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-stdlib/contrib.png
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/examples/Makefile:
--------------------------------------------------------------------------------
1 | FC = gfortran
2 | STDLIB_CFLAGS = $(shell pkg-config --cflags fortran_stdlib)
3 | STDLIB_LIBS = $(shell pkg-config --libs fortran_stdlib)
4 |
5 | all: ex_bitsets ex_logger ex_sorting
6 |
7 | ex_bitsets: ex_bitsets.f90
8 | $(FC) $(STDLIB_CFLAGS) $^ -o $@ $(STDLIB_LIBS)
9 |
10 | ex_logger: ex_logger.f90
11 | $(FC) $(STDLIB_CFLAGS) $^ -o $@ $(STDLIB_LIBS)
12 |
13 | ex_sorting: ex_sorting.f90
14 | $(FC) $(STDLIB_CFLAGS) $^ -o $@ $(STDLIB_LIBS)
15 |
16 | clean:
17 | $(RM) ex_bitsets
18 | $(RM) ex_logger
19 | $(RM) ex_sorting
20 |
21 |
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/examples/ex_bitsets.f90:
--------------------------------------------------------------------------------
1 | use, intrinsic :: iso_fortran_env, only: output_unit
2 | use stdlib_bitsets
3 | implicit none
4 |
5 | integer :: i
6 | type(bitset_64) :: b1, b2
7 |
8 | ! initialization from string
9 | call b1%from_string('001100')
10 | call b1%write_bitset(output_unit) ! S6B001110
11 |
12 | ! initialization from logical array
13 | b2 = [(.true., i=1,6)]
14 | call b2%write_bitset(output_unit) ! S6B111111
15 |
16 | ! binary operations overwrite first arg
17 | call xor(b1, b2)
18 | call b1%write_bitset(output_unit) ! S6B110001
19 | call b2%write_bitset(output_unit) ! S6B111111
20 |
21 | ! set specific position/contiguous subset (zero-based!)
22 | call b1%set(2, 4)
23 | print *, b1 == b2 ! T
24 | end
25 |
26 |
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/examples/ex_logger.f90:
--------------------------------------------------------------------------------
1 | program ex_logger
2 | use stdlib_logger, only: global_logger
3 | implicit none
4 |
5 | call global_logger%add_log_file('log.txt')
6 |
7 | call global_logger%log_debug('I am invisible')
8 | call global_logger%log_information('Something informative')
9 | call global_logger%log_error('Oopsie daisy')
10 | end program
11 |
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/examples/ex_sorting.f90:
--------------------------------------------------------------------------------
1 | use stdlib_sorting, only: sort_index
2 | use stdlib_kinds, only: int64
3 | implicit none
4 |
5 | integer :: digits(6) = [3,1,4,1,5,9]
6 | character :: chars(6) = ['a','b','c','d','e','f']
7 | integer(int64) :: index(6)
8 | call sort_index(digits, index)
9 | print '(6i1)', digits ! 113459
10 | print '(6i1)', index ! 241356
11 | print '(6a1)', chars(index) ! bdacef
12 | end
13 |
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/fortran_logo_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-stdlib/fortran_logo_256x256.png
--------------------------------------------------------------------------------
/FortranCon2021-stdlib/stdlib-talk.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-stdlib/stdlib-talk.pdf
--------------------------------------------------------------------------------
/FortranCon2021-string/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon 2021: Improving Strings Support in Fortran (GSoC Project)
2 |
3 | __Presenter__: [Aman Godara](https://aman-godara.github.io)
4 |
5 | __Co-Authors__: [Sebastian Ehlert](https://github.com/awvwgk), [Milan Curcic](https://github.com/milancurcic)
6 |
7 | __Session__: Fortran-lang Mini Symposium
8 |
9 | __Abstract__:
10 | To provide better support for strings, the Fortran Standard Library (*stdlib*) introduces `stdlib_string_type`, `stdlib_strings` and `stdlib_stringlist` module.
11 |
12 | Since the start of the project, several string inquiry and manipulation procedures like *pad*, *find*, *replace_all*, etc have been added, adhering to the philosophy of unifying the community and providing simple and intuitive abstraction to the users.
13 |
14 | Every type of usage from common ones like *reversing a string* to peculiar ones like *finding n-th non-overlapping substring* are developed in close collaboration with the community.
15 | Flexible high-level procedures like *slice* catering to every possible need while low-level APIs like *count* are optimized to readily build upon (as stand-alone or in combination with other provided APIs) to meet any specific requirement of a user.
16 |
17 | All procedures work with deferred-length intrinsic character as smoothly as with *string_type*. This allows for a seamless integration of stdlib's string processing with the existing projects. Moreover, APIs being backward compatible will continue to serve old projects even with their latest versions.
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/README.md:
--------------------------------------------------------------------------------
1 | # FortranCon2021-vegetables
2 |
3 | **Presenter** [Brad Richardson](https://everythingfunctional.com)
4 |
5 | **Title**: Your Requirements Specification as an Executable Test Suite
6 |
7 | **Abstract**:
8 | Automated testing is a well established best practice in software development,
9 | so you are writing test suites for your Fortran projects right?
10 | But how useful is your test suite after you have finished writing it?
11 | Does it help you to pinpoint the source of bugs?
12 | Does it help you to make changes to functionality, or get in the way?
13 | Would a new developer find it useful for getting their bearings in your project?
14 | Can you tell which requirement a given test is meant to verify?
15 |
16 | Experience in the nuclear power industry,
17 | with its emphasis on quality assurance and high standards for verification,
18 | provides motivation to always have satisfactory answers to these questions.
19 | This presentation provides guidance for writing a well organized suite of tests that leads to positive answers to the previous questions.
20 | The primary lesson is that a test suite organized as an executable verification of the requirements of the project
21 | provides long term value in the form of easier on-boarding for new team members and increased developer productivity during maintenance activities.
22 | Examples and demonstrations are provided using the Vegetables Unit Testing Framework,
23 | which has been designed to aid in writing test suites of the form described above.
24 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/.gitignore:
--------------------------------------------------------------------------------
1 | build/*
2 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/README.md:
--------------------------------------------------------------------------------
1 | # is_leap_year
2 |
3 | Example project for demonstrating good and bad testing practices.
4 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/fpm.toml:
--------------------------------------------------------------------------------
1 | name = "is_leap_year"
2 | version = "0.1.0"
3 | license = "MIT"
4 | author = "Brad Richardson"
5 | maintainer = "everythingfunctional@protonmail.com"
6 | copyright = "Copyright 2021, Brad Richardson"
7 |
8 | [dev-dependencies]
9 | vegetables = { git = "https://gitlab.com/everythingfunctional/vegetables.git", tag = "v7.2.1" }
10 | strff = { git = "https://gitlab.com/everythingfunctional/strff.git", tag = "v2.1.0" }
11 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/src/is_leap_year_m.f90:
--------------------------------------------------------------------------------
1 | module is_leap_year_m
2 | implicit none
3 | private
4 | public :: is_leap_year
5 | contains
6 | pure function is_leap_year(year)
7 | integer, intent(in) :: year
8 | logical :: is_leap_year
9 |
10 | is_leap_year = mod(year, 4) == 0
11 | end function
12 | end module
13 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/test/bad_test.f90:
--------------------------------------------------------------------------------
1 | module bad_test
2 | use is_leap_year_m, only: is_leap_year
3 | use vegetables, only: &
4 | result_t, test_item_t, assert_not, assert_that, describe, it
5 |
6 | implicit none
7 | private
8 | public :: test_is_leap_year
9 | contains
10 | function test_is_leap_year() result(tests)
11 | type(test_item_t) :: tests
12 |
13 | tests = describe(&
14 | "is_leap_year", &
15 | [ it("is true for leap years", check_leap_year) &
16 | , it("is false for non leap years", check_non_leap_year) &
17 | ])
18 | end function
19 |
20 | function check_leap_year() result(result_)
21 | type(result_t) :: result_
22 |
23 | result_ = &
24 | assert_that(is_leap_year(2016), "2016") &
25 | .and.assert_that(is_leap_year(2000), "2000")
26 | end function
27 |
28 | function check_non_leap_year() result(result_)
29 | type(result_t) :: result_
30 |
31 | result_ = &
32 | assert_not(is_leap_year(1999), "1999") &
33 | .and.assert_not(is_leap_year(1900), "1900")
34 | end function
35 | end module
36 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/test/fancy_test.f90:
--------------------------------------------------------------------------------
1 | module fancy_test
2 | use is_leap_year_m, only: is_leap_year
3 | use strff, only: to_string
4 | use vegetables, only: &
5 | example_t, &
6 | input_t, &
7 | integer_input_t, &
8 | result_t, &
9 | test_item_t, &
10 | assert_not, &
11 | assert_that, &
12 | describe, &
13 | fail, &
14 | it
15 |
16 | implicit none
17 | private
18 | public :: test_is_leap_year
19 | contains
20 | function test_is_leap_year() result(tests)
21 | type(test_item_t) :: tests
22 |
23 | tests = describe(&
24 | "is_leap_year", &
25 | [ it( &
26 | "returns false for years that are not divisible by 4", &
27 | [ example_t(integer_input_t(2002)) &
28 | , example_t(integer_input_t(2003)) &
29 | ], &
30 | check_not_leap_year) &
31 | , it( &
32 | "returns true for years that are divisible by 4 but not by 100", &
33 | [ example_t(integer_input_t(2004)) &
34 | , example_t(integer_input_t(2008)) &
35 | ], &
36 | check_leap_year) &
37 | , it( &
38 | "returns false for years that are divisible by 100 but not by 400", &
39 | [ example_t(integer_input_t(1900)) &
40 | , example_t(integer_input_t(2100)) &
41 | ], &
42 | check_not_leap_year) &
43 | , it( &
44 | "returns true for years that are divisible by 400", &
45 | [ example_t(integer_input_t(2000)) &
46 | , example_t(integer_input_t(2400)) &
47 | ], &
48 | check_leap_year) &
49 | ])
50 | end function
51 |
52 | function check_not_leap_year(input) result(result_)
53 | class(input_t), intent(in) :: input
54 | type(result_t) :: result_
55 |
56 | select type (input)
57 | type is (integer_input_t)
58 | associate(year => input%input())
59 | result_ = assert_not(is_leap_year(year), to_string(year))
60 | end associate
61 | class default
62 | result_ = fail("Didn't get an integer_input_t")
63 | end select
64 | end function
65 |
66 | function check_leap_year(input) result(result_)
67 | class(input_t), intent(in) :: input
68 | type(result_t) :: result_
69 |
70 | select type (input)
71 | type is (integer_input_t)
72 | associate(year => input%input())
73 | result_ = assert_that(is_leap_year(year), to_string(year))
74 | end associate
75 | class default
76 | result_ = fail("Didn't get an integer_input_t")
77 | end select
78 | end function
79 | end module
80 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/test/good_test.f90:
--------------------------------------------------------------------------------
1 | module good_test
2 | use is_leap_year_m, only: is_leap_year
3 | use vegetables, only: &
4 | result_t, test_item_t, assert_not, assert_that, describe, it
5 |
6 | implicit none
7 | private
8 | public :: test_is_leap_year
9 | contains
10 | function test_is_leap_year() result(tests)
11 | type(test_item_t) :: tests
12 |
13 | tests = describe(&
14 | "is_leap_year", &
15 | [ it( &
16 | "returns false for years that are not divisible by 4", &
17 | check_not_divisible_by_4) &
18 | , it( &
19 | "returns true for years that are divisible by 4 but not by 100", &
20 | check_divisible_by_4_but_not_100) &
21 | , it( &
22 | "returns false for years that are divisible by 100 but not by 400", &
23 | check_divisible_by_100_but_not_400) &
24 | , it( &
25 | "returns true for years that are divisible by 400", &
26 | check_divisible_by_400) &
27 | ])
28 | end function
29 |
30 | function check_not_divisible_by_4() result(result_)
31 | type(result_t) :: result_
32 |
33 | result_ = &
34 | assert_not(is_leap_year(2002), "2002") &
35 | .and.assert_not(is_leap_year(2003), "2003")
36 | end function
37 |
38 | function check_divisible_by_4_but_not_100() result(result_)
39 | type(result_t) :: result_
40 |
41 | result_ = &
42 | assert_that(is_leap_year(2004), "2004") &
43 | .and.assert_that(is_leap_year(2008), "2008")
44 | end function
45 |
46 | function check_divisible_by_100_but_not_400() result(result_)
47 | type(result_t) :: result_
48 |
49 | result_ = &
50 | assert_not(is_leap_year(1900), "1900") &
51 | .and.assert_not(is_leap_year(2100), "2100")
52 | end function
53 |
54 | function check_divisible_by_400() result(result_)
55 | type(result_t) :: result_
56 |
57 | result_ = &
58 | assert_that(is_leap_year(2000), "2000") &
59 | .and.assert_that(is_leap_year(2400), "2400")
60 | end function
61 | end module
62 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/test/main.f90:
--------------------------------------------------------------------------------
1 | ! Generated by make_vegetable_driver. DO NOT EDIT
2 | program main
3 | implicit none
4 |
5 | call run()
6 | contains
7 | subroutine run()
8 | use bad_test, only: &
9 | bad_is_leap_year => test_is_leap_year
10 | use fancy_test, only: &
11 | fancy_is_leap_year => test_is_leap_year
12 | use good_test, only: &
13 | good_is_leap_year => test_is_leap_year
14 | use ugly_test, only: &
15 | ugly_is_leap_year => test_is_leap_year
16 | use vegetables, only: test_item_t, test_that, run_tests
17 |
18 | type(test_item_t) :: tests
19 | type(test_item_t) :: individual_tests(4)
20 |
21 | individual_tests(1) = bad_is_leap_year()
22 | individual_tests(2) = fancy_is_leap_year()
23 | individual_tests(3) = good_is_leap_year()
24 | individual_tests(4) = ugly_is_leap_year()
25 | tests = test_that(individual_tests)
26 |
27 | call run_tests(tests)
28 | end subroutine
29 | end program
30 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/is_leap_year/test/ugly_test.f90:
--------------------------------------------------------------------------------
1 | module ugly_test
2 | use is_leap_year_m, only: is_leap_year
3 | use vegetables, only: &
4 | result_t, test_item_t, assert_not, assert_that, describe, it
5 |
6 | implicit none
7 | private
8 | public :: test_is_leap_year
9 | contains
10 | function test_is_leap_year() result(tests)
11 | type(test_item_t) :: tests
12 |
13 | tests = describe("is_leap_year", [it("works", check_is_leap_year)])
14 | end function
15 |
16 | function check_is_leap_year() result(result_)
17 | type(result_t) :: result_
18 |
19 | result_ = &
20 | assert_not(is_leap_year(1)) &
21 | .and.assert_that(is_leap_year(4))
22 | end function
23 | end module
24 |
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/presentation.odp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-vegetables/presentation.odp
--------------------------------------------------------------------------------
/FortranCon2021-vegetables/presentation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/FortranCon2021-vegetables/presentation.pdf
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/.gitignore:
--------------------------------------------------------------------------------
1 | /*.aux
2 | /*.log
3 | /*.nav
4 | /*.out
5 | /*.snm
6 | /*.toc
7 | /*.bak
8 | /*.pdf
9 | /*.vrb
10 |
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/Figures/logo-brew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/PackagingCon2021-fpm/Figures/logo-brew.png
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/Figures/logo-conda-forge.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/PackagingCon2021-fpm/Figures/logo-conda-forge.pdf
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/Figures/logo-fortran.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/PackagingCon2021-fpm/Figures/logo-fortran.png
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/Figures/logo-msys2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/PackagingCon2021-fpm/Figures/logo-msys2.png
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/Figures/logo-spack.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/PackagingCon2021-fpm/Figures/logo-spack.pdf
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/README.md:
--------------------------------------------------------------------------------
1 | # PackagingCon2021: fpm
2 |
3 | ## Authors
4 |
5 | - [Sebastian Ehlert](https://github.com/awvwgk)
6 | - [Ondřej Čertík](https://github.com/certik)
7 | - [Milan Curcic](https://github.com/milancurcic)
8 | - [Jakub Jelínek](https://github.com/kubajj)
9 | - [Laurence Kedward](https://github.com/lkedward)
10 | - [Vincent Magnin](https://github.com/vmagnin)
11 | - [Emanuele Pagone](https://github.com/epagone)
12 | - [Brad Richardson](https://github.com/everythingfunctional)
13 | - [John Urban](https://github.com/urbanjost)
14 |
15 | ## Presenter
16 |
17 | [Sebastian Ehlert](https://github.com/awvwgk)
18 |
19 | ## Title:
20 |
21 | Fortran Package Manager: Toward a rich ecosystem of Fortran packages
22 |
23 | ## Abstract
24 |
25 | Fortran is the oldest programming language still in use today, targeting high-performance scientific and engineering applications.
26 | Traditionally, Fortran software has used build systems that are not portable or are difficult to use or extend.
27 | This has presented a significant barrier to entry for users, and has made it difficult to use libraries as dependencies, or distribute your own library for use in other projects.
28 | Fortran Package Manager (fpm) is a new language-specific package manager and build system.
29 | The key goals are to improve the user experience and nurture the growth of a rich ecosystem of Fortran libraries.
30 |
31 | Fpm assumes sane defaults so that most users can enjoy a zero-configuration experience, while providing options to customize behavior.
32 | Fpm can scaffold a new Fortran project, fetch and build remote dependencies, and run tests and project executables.
33 | It supports multiple compilers, runs on all major operating systems and can bootstrap itself.
34 | While new and rapidly developing, it is already used as a build system for large projects and has been met with an overwhelming response from the Fortran community.
35 | We want to discuss technical challenges that are specific to building Fortran projects and further next steps.
36 |
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/beamercolorthemeMCTC.sty:
--------------------------------------------------------------------------------
1 | % Copyright 2019 Sebastian Ehlert
2 | %
3 | % This file may be distributed and/or modified
4 | %
5 | % 1. under the LaTeX Project Public License and/or
6 | % 2. under the GNU Public License.
7 | %
8 | % See the file doc/licenses/LICENSE for more details.
9 |
10 | \definecolor{darkgrey}{HTML}{929084}
11 | \colorlet{dark}{darkgrey!35!black}
12 | \definecolor{palegrey}{HTML}{DDE0D9}
13 | \colorlet{light}{palegrey!35!white}
14 |
15 | \setbeamercolor{uni blue}{fg=light,bg=blue}
16 | \setbeamercolor{uni grey}{fg=black,bg=darkgrey}
17 | \setbeamercolor{uni yellow}{fg=dark,bg=yellow}
18 |
19 | \setbeamercolor{structure}{fg=dark,bg=light}
20 | \setbeamercolor{normal text}{fg=dark,bg=light!50}
21 | \setbeamercolor{frametitle}{parent=normal text,bg=}
22 |
23 | \setbeamercolor{titlelike}{parent=structure}
24 | \setbeamercolor{author}{parent=normal text}
25 | \setbeamercolor{institute}{parent=normal text}
26 | \setbeamercolor{date}{parent=normal text}
27 |
28 | \setbeamerfont{title in head/foot}{family=\ttfamily}
29 | \setbeamerfont{page number in head/foot}{family=\ttfamily}
30 | \setbeamerfont{subsection in head/foot}{family=\ttfamily}
31 |
32 | \setbeamercolor*{palette primary}{fg=light,bg=blue}
33 | \setbeamercolor*{palette secondary}{parent=structure}
34 | \setbeamercolor*{palette tertiary}{parent=structure,fg=structure.bg,bg=structure.fg}
35 | \setbeamercolor*{palette quaternary}{parent=structure,fg=white,bg=structure.fg}
36 |
37 | \setbeamercolor{block title}{parent=structure,fg=white,bg=structure.fg!75!dark}
38 | \setbeamercolor{block title alerted}{parent=alerted text,fg=white,bg=alerted text.fg!75!dark}
39 | \setbeamercolor{block title example}{parent=example text,fg=white,bg=example text.fg!75!dark}
40 |
41 | \setbeamercolor{block body}{parent=normal text,parent=block title,bg=block title.bg!10!bg}
42 | \setbeamercolor{block body alerted}{parent=normal text,parent=block title alerted,bg=block title alerted.bg!10!bg}
43 | \setbeamercolor{block body example}{parent=normal text,parent=block title example,bg=block title example.bg!10!bg}
44 |
--------------------------------------------------------------------------------
/PackagingCon2021-fpm/beamerouterthemeMCTC.sty:
--------------------------------------------------------------------------------
1 | % Copyright 2007 by Till Tantau
2 | % Copyright 2015 by Vedran Mileti\'c, Joseph Wright
3 | % Copyright 2019 Sebastian Ehlert
4 | %
5 | % This file may be distributed and/or modified
6 | %
7 | % 1. under the LaTeX Project Public License and/or
8 | % 2. under the GNU Public License.
9 | %
10 | % See the file doc/licenses/LICENSE for more details.
11 |
12 | \setbeamercolor{section in head/foot}{parent=palette tertiary}
13 | \setbeamercolor{subsection in head/foot}{parent=palette secondary}
14 | \setbeamercolor{author in head/foot}{parent=subsection in head/foot}
15 | \setbeamercolor{title in head/foot}{parent=subsection in head/foot}
16 |
17 | \newif\ifbeamer@theme@subsection
18 | \beamer@theme@subsectiontrue
19 |
20 | \DeclareOptionBeamer{subsection}[true]{\csname beamer@theme@subsection#1\endcsname}
21 | \ProcessOptionsBeamer
22 |
23 | \mode
24 |
25 | \AtBeginDocument{
26 | \pgfdeclareverticalshading{beamer@topshade}{\paperwidth}{%
27 | color(0pt)=(bg);
28 | color(1pt)=(black!50!bg)}
29 | }
30 |
31 | \setbeamertemplate{mini frames}[box]
32 | % Head
33 | \defbeamertemplate*{headline}{awvwgk theme}
34 | {%
35 | \begin{beamercolorbox}[colsep=.1pt]{upper separation line head}
36 | \end{beamercolorbox}
37 | \begin{beamercolorbox}{section in head/foot}
38 | \vskip2pt\hskip5pt\raisebox{-6.5pt}{\pgfuseimage{logo}}%
39 | \hskip2pt\insertnavigation{.8\paperwidth}\vskip2pt
40 | \end{beamercolorbox}%
41 | \ifbeamer@theme@subsection%
42 | \begin{beamercolorbox}[colsep=.1pt]{middle separation line head}
43 | \end{beamercolorbox}
44 | \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,%
45 | leftskip=.4cm,rightskip=.4cm plus1fil]{subsection in head/foot}
46 | \usebeamerfont{subsection in head/foot}\insertsubsectionhead
47 | \end{beamercolorbox}%
48 | \vskip-3.625ex
49 | \pgfuseshading{beamer@topshade}
50 | \vskip+3.625ex
51 | \vskip-1pt
52 | \fi%
53 | \begin{beamercolorbox}[colsep=.1pt]{lower separation line head}
54 | \end{beamercolorbox}
55 | \pgfuseshading{beamer@topshade}
56 | \vskip-1pt
57 | }
58 |
59 | \defbeamertemplate*{footline}{awvwgk theme}
60 | {%
61 | %\leavevmode%
62 | %\begin{beamercolorbox}[colsep=.1pt]{upper separation line foot}%
63 | %\end{beamercolorbox}%
64 | \hbox{%
65 | \begin{beamercolorbox}%
66 | [ht=2.5ex,dp=1.125ex,leftskip=.4cm,rightskip=.4cm]%
67 | {author in head/foot}%
68 | \usebeamerfont{title in head/foot}%
69 | \insertshortauthor\ -\ \insertshorttitle\hfill%
70 | \usebeamerfont{page number in head/foot}%
71 | \usebeamertemplate{page number in head/foot}%
72 | \end{beamercolorbox}
73 | }%
74 | \vskip-3.625ex%
75 | \pgfuseshading{beamer@topshade}%
76 | \vskip+3.625ex%
77 | \vskip-1pt%
78 | }
79 |
80 |
81 | \mode
82 |
83 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # fortran-lang talks
2 |
3 | Repository to collaborate on fortran-lang talks and presentations.
4 |
5 | ## How to contribute
6 |
7 | If you're working on a presentation about fortran-lang or any of its projects,
8 | submit a PR that adds a subdirectory with the following format:
9 |
10 | ```
11 | -
12 | ```
13 |
14 | and in that directory add a README.md that contains your name, title, and
15 | abstract.
16 | Any other files in the directory will be your presentation assets--slides, web
17 | pages, videos, etc.
18 |
--------------------------------------------------------------------------------
/deRSE23/Discourse_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/Discourse_screenshot.png
--------------------------------------------------------------------------------
/deRSE23/README.md:
--------------------------------------------------------------------------------
1 | # deRSE23 Submission
2 |
3 | Abstract (and slides) for the [deRSE23](https://de-rse23.sciencesconf.org/) conference.
4 |
5 | * Title: Introducing the Fortran-lang community
6 | * Presenter: Ivan Pribec
7 | * Co-authors: Vincent Magnin, Asdrubal Lozada-Blanco, Ondrej Certik, Jeremie Vandenplas, Milan Curcic, Rohit Goswami, Sebastian Ehlert, Ioannis Nikiteas, Gabriele Bellomia, Carl Burkert, Emanuele Pagone, Brad Richardson, Amir Shahmoradi
8 |
9 | ## Abstract
10 |
11 | A thriving community is vital for the success and continuity of a programming language. Despite Fortran’s role in science and engineering and the evolution of the language itself, attracting new users and retaining existing ones has been a challenge for Fortran. To address this, the open-source community Fortran-lang has formed in 2019. Here, we present the efforts of Fortran-lang including the Fortran package manager, standard library, website, and LFortran compiler. Fortran-lang aims to provide a central hub for Fortran users, complementing the language standardization and compiler communities. Building on the best practices in software development, we strive to simplify the language learning process and promote Fortran adoption.
12 |
--------------------------------------------------------------------------------
/deRSE23/Simpsons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/Simpsons.png
--------------------------------------------------------------------------------
/deRSE23/contrib.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/contrib.png
--------------------------------------------------------------------------------
/deRSE23/contributor_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/contributor_graph.png
--------------------------------------------------------------------------------
/deRSE23/deRSE23.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/deRSE23.pdf
--------------------------------------------------------------------------------
/deRSE23/fortran_logo_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/fortran_logo_256x256.png
--------------------------------------------------------------------------------
/deRSE23/fpm_diagram.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/fpm_diagram.pdf
--------------------------------------------------------------------------------
/deRSE23/lfortran_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/lfortran_screenshot.png
--------------------------------------------------------------------------------
/deRSE23/nature_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/nature_screenshot.png
--------------------------------------------------------------------------------
/deRSE23/punch-cards-hires.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/punch-cards-hires.png
--------------------------------------------------------------------------------
/deRSE23/r-source_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/r-source_screenshot.png
--------------------------------------------------------------------------------
/deRSE23/scipy_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/scipy_screenshot.png
--------------------------------------------------------------------------------
/deRSE23/simpson_horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/simpson_horizontal.png
--------------------------------------------------------------------------------
/deRSE23/vscode_fortran.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/vscode_fortran.png
--------------------------------------------------------------------------------
/deRSE23/website_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fortran-lang/talks/186b5b1861afe75643b337ad4e90a8e322331aef/deRSE23/website_screenshot.png
--------------------------------------------------------------------------------