open-catalog
open-catalog copied to clipboard
This catalog is a collaborative effort to consolidate the collective wisdom of performance experts on the best practices for performance. It consists of a glossary and a list of checks for the C, C++...
In Fortran, Fused multiply-add was imtroduced as `IEEE_FMA` in Fortran 2018 standard, so modern codebases may use it. In Fortran 2023 draft, it is located at 17.11.4.
Assuming one has the following code: ``` subroutine test_b(b) real(8) :: b interface subroutine test_a end subroutine test_a end interface call test_a end subroutine test_b subroutine test_a(a) real :: a...
NAG compiler requires to define variable before its usage in type declaration section. For example, the following code is not correct: ```fortran subroutine test(a, n) implicit none real(8) :: a(n)...
In old days, some compilers did not support `flush` statement or support `flush` via call. So, some codebases uses `flush` as ```fortran call flush(file_descriptor) ``` It would be nice to...
Some Fortran codebases actively uses `#include` preprocessor statements. Usually, it compiles nicely, however, preprocessor of NAG compiler has the following limits: | Item | Limits | | --- | ---...