# Most common topics of GitHub Fortran projects

**URL:** <https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312>\
**Category:** Uncategorized\
**Created:** [March 7, 2025, 1:33pm UTC](https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312 "2025-03-07T13:33:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [March 7, 2025, 1:33pm UTC](https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312/1 "2025-03-07T13:33:56Z")

</div>

I wrote [Python functions](https://github.com/Beliavsky/Github-repo-metrics) to get data for a GitHub repo by scraping the landing page. GitHub does have an API to get such data, but I was hitting rate limits. For my list of Fortran codes, below are the topics that 5 or more repos listed, with the full list [here](https://github.com/Beliavsky/Github-repo-metrics/blob/main/topic_counts.txt). Topics (listed in the About section of a repo) are an under-used feature on GitHub, with many repos not specifying any topics. The handling of topics is quite literal, with `fortran-2008` and `fortran2008` considered distinct. A list of repos for each topic is [here](https://github.com/Beliavsky/Github-repo-metrics/blob/main/topic_counts_and_repos.txt). We knew lots of Fortranners were doing CFD :). The numbers do not reflect projects not in my list. Given a list of topics, one could query GitHub with `language:fortran topic:foo` to get overall numbers.

Eventually I would like to create a web site for my list of codes, so that they can be filtered by topic, stars, license etc. There are about 2600 projects in the list, and scraping their data takes about 40 minutes. This could be done daily and saved, so that query results would be immediate.

615 fortran  
186 fortran-package-manager  
49 cfd  
49 modern-fortran  
48 fpm  
48 python  
45 mpi  
42 simulation  
41 linear-algebra  
39 fortran2008  
38 fortran-library  
35 astrophysics  
33 quantum-chemistry  
30 fortran90  
30 hpc  
29 numerical-optimization  
28 numerical-methods  
27 optimization  
27 physics  
26 statistics  
23 fortran2003  
22 c  
22 interpolation  
21 computational-chemistry  
21 high-performance-computing  
21 scientific-computing  
20 openmp  
19 astronomy  
19 chemistry  
19 gpu  
19 parallel-computing  
18 density-functional-theory  
18 fortran-tutorial  
17 machine-learning  
17 materials-science  
17 molecular-dynamics  
16 computational-fluid-dynamics  
16 fluid-dynamics  
16 library  
16 ode  
16 oop  
15 geophysics  
15 numerical-integration  
14 atmospheric-modelling  
14 fem  
14 hdf5  
14 lapack  
14 parallel  
14 seismology  
13 blas  
13 climate  
13 electronic-structure  
13 rng  
13 turbulence  
12 coarray-fortran  
12 eigenvalues  
12 finite-element-methods  
12 navier-stokes  
12 netcdf  
12 plotting  
11 constrained-optimization  
11 earth-science  
11 finite-difference  
11 graphics  
11 hydrology  
11 matlab  
11 modeling  
11 monte-carlo  
11 strings  
11 unit-testing  
10 automatic-differentiation  
10 climate-model  
10 cuda  
10 differential-equations  
10 finite-volume  
10 fortran-2018  
10 quantum-mechanics  
10 special-functions  
10 svd  
10 tight-binding  
9 coarray  
9 deep-learning  
9 dft  
9 finite-elements  
9 fortran-language  
9 fortran95  
9 hartree-fock  
9 openacc  
9 particle-physics  
9 quadrature  
9 random  
8 benchmark  
8 bindings  
8 computational-physics  
8 julia  
8 least-squares  
8 linux  
8 monte-carlo-simulation  
8 neural-network  
8 nuclear-physics  
8 plot  
8 r  
8 radiative-transfer  
8 regex  
7 cpp  
7 database  
7 f2py  
7 fft  
7 finite-element-analysis  
7 fluid-simulation  
7 fortran-modules  
7 geodesy  
7 gpu-computing  
7 hydrodynamics  
7 interoperability  
7 matrix  
7 molecular-modeling  
7 music  
7 nonlinear-equations  
7 nonlinear-optimization  
7 nwp  
7 object-oriented  
7 plasma-physics  
7 regression  
7 root-finding  
7 runge-kutta  
7 science  
7 solver  
7 sparse-matrix  
7 spectroscopy  
7 string-manipulation  
7 thermodynamics  
7 timer  
7 vasp  
7 weather  
6 compiler  
6 condensed-matter-physics  
6 eigenvectors  
6 finite-difference-method  
6 fortran77  
6 large-eddy-simulation  
6 linear-equations  
6 magnetohydrodynamics  
6 numerical-weather-prediction  
6 ode-solver  
6 optimization-algorithms  
6 parser  
6 probability-distribution  
6 quantum-espresso  
6 sparse-linear-systems  
6 splines  
5 ab-initio  
5 abaqus  
5 astrodynamics  
5 atmosphere  
5 atmospheric-science  
5 cmake  
5 command-line  
5 cplusplus  
5 delaunay-triangulation  
5 derivative-free-optimization  
5 direct-numerical-simulation  
5 fortran2018  
5 gfortran  
5 gpu-acceleration  
5 hacktoberfest  
5 linked-list  
5 mesh  
5 meteorology  
5 model  
5 molecular-simulation  
5 numerical-analysis  
5 numpy  
5 object-oriented-fortran  
5 object-oriented-programming  
5 oceanography  
5 parsing  
5 pde-solver  
5 performance  
5 petsc  
5 physics-simulation  
5 random-number-generator  
5 regular-expressions  
5 solar-physics  
5 string  
5 tensor  
5 testing  
5 time-series  
5 umat  
5 unstructured-meshes  
5 vector

---

<div class="post-metadata">

**Author:** ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)\
**Post date:** [March 7, 2025, 5:50pm UTC](https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312/2 "2025-03-07T17:50:30Z")

</div>

Perfect!

Is there a way to figure out when a given repository was created? One way is to look at the first commit (although the commit might be older if the repo lived somewhere else first, such as locally on the author’s computer).

I would like to plot some statistics in time, like the number of new github repositories created per month.

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [March 7, 2025, 7:12pm UTC](https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312/3 "2025-03-07T19:12:14Z")

</div>

Yes, the API can return the `created_at` field. The Python script

```auto
from github_util import repo_info

dd = repo_info("Reference-LAPACK", "lapack")
keys = ["description", "created_at", "updated_at", "pushed_at", "size",
    "watchers_count", "language", "forks_count", "open_issues", "topics"]
for key in keys:
    print(key, dd[key])

```

calling this [module](https://github.com/Beliavsky/Github-repo-metrics/blob/main/github_util.py) gives

```auto
Successfully fetched data for Reference-LAPACK/lapack
description LAPACK development repository
created_at 2016-04-29T03:19:39Z
updated_at 2025-03-07T15:04:26Z
pushed_at 2025-03-07T15:04:21Z
size 34183
watchers_count 1595
language Fortran
forks_count 450
open_issues 153
topics ['blas', 'eigenvalues', 'eigenvectors', 'lapack', 'lapacke', 'linear-algebra', 'linear-equations', 'matrix-factorization', 'singular-values', 'svd']

```

---

<div class="post-metadata">

**Author:** ![urbanjost](https://avatars.discourse-cdn.com/v4/letter/u/0ea827/32.png) [@urbanjost](https://fortran-lang.discourse.group/u/urbanjost)\
**Post date:** [March 7, 2025, 8:19pm UTC](https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312/4 "2025-03-07T20:19:21Z")

</div>

I never got that to work a long while back, so I have been using curl to grab the info as JSON via commands like

```
 curl 'https://api.github.com/users/urbanjost/repos?per_page=1000'

```

but seeing your results I think I need to revisit how to best query the repository date.

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [March 9, 2025, 2:07pm UTC](https://fortran-lang.discourse.group/t/most-common-topics-of-github-fortran-projects/9312/5 "2025-03-09T14:07:48Z")

</div>

One can create a list of the repos with the most stars for each topic, given data for individual repos and lists of repos by topic. A [Python script](https://github.com/Beliavsky/Github-repo-metrics/blob/main/xsort_by_stars.py) gives output such as the following, with the full output [here](https://github.com/Beliavsky/Github-repo-metrics/blob/main/topics_by_stars.txt). The license and the other topics of a repo are also shown on the same line. Only projects in my list are included, so the list is incomplete.

```auto
Topic: fortran
--------------------------------------------------
1300 https://github.com/wrf-model/WRF - License: License - Additional Topics: weather, simulation, climate, model, forecast, nwp, wrf
1100 https://github.com/fortran-lang/stdlib - License: MIT license - Additional Topics: sorting, statistics, numpy, strings, stdlib, linear-algebra, hash, probability-distribution, blas, rng, quadrature, numerical-methods, lapack, fortran-library, fortran-package-manager, fortran-stdlib
1000 https://github.com/lfortran/lfortran - License: License - Additional Topics: library, jupyter, compiler, interactive, repl, jupyter-notebook, jupyter-kernels, fortran-compiler
808 https://github.com/mapmeld/fortran-machine - License: BSD-3-Clause license - Additional Topics: None
424 https://github.com/wavebitscientific/functional-fortran - License: BSD-3-Clause license - Additional Topics: functional-programming
422 https://github.com/modern-fortran/neural-fortran - License: MIT license - Additional Topics: machine-learning, deep-learning, neural-network, parallel, cnn

Topic: cfd
--------------------------------------------------
399 https://github.com/Nek5000/Nek5000 - License: License - Additional Topics: flow, hpc, fluid, spectral, navier-stokes, high-order, sem, anl
272 https://github.com/ucns3d-team/UCNS3D - License: GPL-3.0 license - Additional Topics: simulation, compressible-fluid-dynamics, computational-fluid-dynamics, unstructured-meshes, compressible-flows
242 https://github.com/code-saturne/code_saturne - License: GPL-2.0 license - Additional Topics: c, fortran, finite-volume, navier-stokes, mpi-applications, pyqt, turbulence, hpc-applications
235 https://github.com/CGNS/CGNS - License: License - Additional Topics: c, fortran, hdf5, fluid-dynamics, cgns, parallel-io, cfd-general-notation
220 https://github.com/p-costa/CaNS - License: MIT license - Additional Topics: fortran, gpu, high-performance-computing, gpu-computing, turbulence, fluid-dynamics, computational-fluid-dynamics, fluid-simulation

Topic: machine-learning
--------------------------------------------------
422 https://github.com/modern-fortran/neural-fortran - License: MIT license - Additional Topics: deep-learning, neural-network, fortran, parallel, cnn
284 https://github.com/cdslaborg/paramonte - License: UnknownLICENSE.md - Additional Topics: python, c, cpp, fortran, monte-carlo, matlab, machine-learning-algorithms, openmp, mpi, markov-chain, adaptive-learning, machine-learning-library, sampling, bayesian-inference, mcmc, monte-carlo-simulations, numerical-integration, bayesian-statistics
269 https://github.com/rouyang2017/SISSO - License: Apache-2.0 license - Additional Topics: compressed-sensing, symbolic-regression, material-science, big-data-analytics
101 https://github.com/Cambridge-ICCS/FTorch - License: MIT license - Additional Topics: python, deep-learning, fortran, torch, pytorch, interoperability, hacktoberfest
39 https://github.com/BerkeleyLab/inference-engine - License: License - Additional Topics: deep-learning, neural-network, inference, artificial-intelligence, neural-networks, artificial-neural-networks, feedforward-neural-network, ann, fortran-2023

Topic: optimization
--------------------------------------------------
331 https://github.com/libprima/prima - License: BSD-3-Clause license - Additional Topics: python, matlab, constrained-optimization, numerical-optimization, nonlinear-optimization, unconstrained-optimization, prima, powell, blackbox-optimization, modern-fortran, cobyla, derivative-free-optimization, simulation-based-optimization, bobyqa, newuoa, uobyqa, lincoa, zeroth-order-method
113 https://github.com/stfc/PSyclone - License: BSD-3-Clause license - Additional Topics: python, compiler, fortran, parallel-computing, high-performance-computing, finite-elements, finite-difference, finite-volume, hacktoberfest
100 https://github.com/pdfo/pdfo - License: BSD-3-Clause license - Additional Topics: python, fortran, simulation, matlab, constrained-optimization, numerical-optimization, nonlinear-optimization, optimization-algorithms, unconstrained-optimization, powell, blackbox-optimization, cobyla, derivative-free-optimization, zeroth-order-optimization, simulation-based-optimization, bobyqa, newuoa, uobyqa, lincoa
94 https://github.com/jacobwilliams/slsqp - License: License - Additional Topics: fortran, constrained-optimization, numerical-optimization, sqp, fortran-package-manager, nnls

```
