Skip to content

Commit 1f14a71

Browse files
authored
Merge pull request #28 from openscm/add-fortitude
Add fortitude
2 parents 54868a4 + 3d24a1b commit 1f14a71

File tree

8 files changed

+27
-15
lines changed

8 files changed

+27
-15
lines changed

.pre-commit-config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ repos:
4444
- id: ruff
4545
args: [ --fix, --exit-non-zero-on-fix ]
4646
- id: ruff-format
47+
- repo: https://github.com/PlasmaFAIR/fortitude-pre-commit
48+
# Fortitude version.
49+
rev: v0.7.5
50+
hooks:
51+
- id: fortitude
52+
args: ["--fix", "--unsafe-fixes", "--preview"]
4753
- repo: https://github.com/astral-sh/uv-pre-commit
4854
rev: 0.5.21
4955
hooks:

changelog/28.trivial.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added [fortitude](https://github.com/PlasmaFAIR/fortitude) for linting the Fortran

fortitude.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[check]
2+
# TODO: think about adding other rules
3+
select = [ "C", "E", "S" ]
4+
ignore = [ ]
5+
line-length = 120

src/example_fgen_basic/get_wavelength.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module m_get_wavelength
77

88
use kind_parameters, only: dp
99

10-
implicit none
10+
implicit none (type, external)
1111
private
1212

1313
real(kind=dp), parameter, public :: speed_of_light = 2.99792e8_dp

src/example_fgen_basic/get_wavelength_wrapper.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module m_get_wavelength_w ! Convention to date: just suffix wrappers with _w
1515
! and the original function should have the same name.
1616
! ("o_" for original)
1717

18-
implicit none
18+
implicit none (type, external)
1919
private
2020

2121
public :: get_wavelength

src/example_fgen_basic/kind_parameters.f90

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@
22
!> See https://fortran-lang.org/learn/best_practices/floating_point/
33
module kind_parameters
44

5-
implicit none
6-
public
5+
implicit none (type, external)
6+
private
77

88
!> Single precision real numbers, 6 digits, range 10⁻³⁷ to 10³⁷-1; 32 bits
9-
integer, parameter :: sp = selected_real_kind(6, 37)
9+
integer, parameter, public :: sp = selected_real_kind(6, 37)
1010
!> Double precision real numbers, 15 digits, range 10⁻³⁰⁷ to 10³⁰⁷-1; 64 bits
11-
integer, parameter :: dp = selected_real_kind(15, 307)
11+
integer, parameter, public :: dp = selected_real_kind(15, 307)
1212
!> Quadruple precision real numbers, 33 digits, range 10⁻⁴⁹³¹ to 10⁴⁹³¹-1; 128 bits
13-
integer, parameter :: qp = selected_real_kind(33, 4931)
13+
integer, parameter, public :: qp = selected_real_kind(33, 4931)
1414

1515
!> Char length for integers, range -2⁷ to 2⁷-1; 8 bits
16-
integer, parameter :: i1 = selected_int_kind(2)
16+
integer, parameter, public :: i1 = selected_int_kind(2)
1717
!> Short length for integers, range -2¹⁵ to 2¹⁵-1; 16 bits
18-
integer, parameter :: i2 = selected_int_kind(4)
18+
integer, parameter, public :: i2 = selected_int_kind(4)
1919
!> Length of default integers, range -2³¹ to 2³¹-1; 32 bits
20-
integer, parameter :: i4 = selected_int_kind(9)
20+
integer, parameter, public :: i4 = selected_int_kind(9)
2121
!> Long length for integers, range -2⁶³ to 2⁶³-1; 64 bits
22-
integer, parameter :: i8 = selected_int_kind(18)
22+
integer, parameter, public :: i8 = selected_int_kind(18)
2323

2424
end module kind_parameters

tests/unit/main.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ program tester_unit
55
use testdrive, only: run_testsuite, new_testsuite, testsuite_type, select_suite, run_selected, get_argument
66
use test_get_wavelength, only: collect_get_wavelength_tests
77

8-
implicit none
8+
implicit none (type, external)
99
integer :: stat, is
1010
character(len=:), allocatable :: suite_name, test_name
1111
type(testsuite_type), allocatable :: testsuites(:)
@@ -47,7 +47,7 @@ program tester_unit
4747
end if
4848

4949
if (stat > 0) then
50-
write (error_unit, '(i0, 1x, a)') stat, "test(s) failed!"
50+
write (error_unit, "(i0, 1x, a)") stat, "test(s) failed!"
5151
error stop 1
5252
end if
5353

tests/unit/test_get_wavelength.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
module test_get_wavelength
33

44
! How to print to stdout
5-
use ISO_Fortran_env, only: stdout => OUTPUT_UNIT
5+
use, intrinsic :: ISO_Fortran_env, only: stdout => OUTPUT_UNIT
66
use testdrive, only: new_unittest, unittest_type, error_type, check
77

88
use kind_parameters, only: dp
99

10-
implicit none
10+
implicit none (type, external)
1111
private
1212

1313
public :: collect_get_wavelength_tests

0 commit comments

Comments
 (0)