Skip to content

UCL-ARC/fortran-tooling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UCL ARC Fortran Tooling Recommendations and Examples

This repository aims to improve Fortran best practices within UCL and the wider Fortran community by documenting a growing list of Fortran tools recommended by UCL ARC.

Topics covered

  • benchmarking
  • building
  • compiling
  • debugging
  • documentation
  • formatting
  • interfaces
  • libraries
  • package management
  • profiling and tracing
  • testing

ARC Fortran projects

Name Start End Repo Opportunity Tools Lessons
CONQUEST May 2023 May 2024 GitHub #781 Make, VTune, Advisor
ALPS Aug 2022 Jul 2023 GitHub #691 Autotools, Ford
FruitDemand Apr 2021 Mar 2023 #382 Make, Ford, PFUnit
Trove Jan 2021 Aug 2021 #404
Zacros Jan 2021 Sep 2022 #349 & older CMake, CTest

src code

There are two src codes within this repository mesh_generator and poisson. These are designed to work together.

  • mesh_generator generates a basic square 2D triangular mesh (see mesh_generator.f90 for more details).
  • poisson is a solver which finds the solution of the steady-state heat conduction equation represented by the Poisson equation over a 2D traingular mesh (see poisson.f90 for more details).

Building

We are utilising cmake (see CMakeLists.txt) for our build system. Therefore, to build this repository, please run the following

cmake -B build 

This will create a build directory from within which the project can be compiled...

cd build
make

This will produce executables for the two src codes, fortran-tooling-mesh-generator and fortran-tooling-poisson.

Running the src

Mesh generator

./build/fortran-tooling-mesh-generator <box_size> <edge_size>

Poisson solver

./build/fortran-tooling-poisson # then respond to prompt with the mesh name, likely to be `square_mesh`

Running the tests

To run the tests run ctest from within the build directory.