All Projects → scivision → Fortran2018 Examples

scivision / Fortran2018 Examples

Licence: mit
Fortran 2018 standard examples with broad applications

Programming Languages

fortran
972 projects

Labels

Projects that are alternatives of or similar to Fortran2018 Examples

Learning Cmake
learning cmake
Stars: ✭ 2,524 (+905.58%)
Mutual labels:  cmake
Skui
Skia-based C++ UI framework
Stars: ✭ 218 (-13.15%)
Mutual labels:  cmake
How To Export Cpp Library
An OS-agnostic C++ library template in plain CMake.
Stars: ✭ 228 (-9.16%)
Mutual labels:  cmake
Vcmi
Open-source engine for Heroes of Might and Magic III
Stars: ✭ 2,514 (+901.59%)
Mutual labels:  cmake
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-17.13%)
Mutual labels:  cmake
Ios Cmake
A blank iOS app build system written in CMake. Includes building a dynamically linked C++ framework and bundling it into the app.
Stars: ✭ 220 (-12.35%)
Mutual labels:  cmake
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (-21.51%)
Mutual labels:  cmake
Cfs
The Core Flight System (cFS)
Stars: ✭ 238 (-5.18%)
Mutual labels:  cmake
Compiler
Pawn compiler for SA-MP with bug fixes and new features - runs on Windows, Linux, macOS
Stars: ✭ 209 (-16.73%)
Mutual labels:  cmake
Gtest Demo
Unit test demo using Google Test.
Stars: ✭ 227 (-9.56%)
Mutual labels:  cmake
Papyros
General issue tracking and wikis for Papyros
Stars: ✭ 205 (-18.33%)
Mutual labels:  cmake
Directx Vs Templates
Direct3D Visual Studio Templates
Stars: ✭ 205 (-18.33%)
Mutual labels:  cmake
Lirios
🏠 General issue tracking and wiki for Liri
Stars: ✭ 228 (-9.16%)
Mutual labels:  cmake
Fixed point
C++ Binary Fixed-Point Arithmetic
Stars: ✭ 199 (-20.72%)
Mutual labels:  cmake
Sanitizers Cmake
CMake modules to help use sanitizers
Stars: ✭ 232 (-7.57%)
Mutual labels:  cmake
Astera
A C99 Cross Platform 2D Game Library
Stars: ✭ 193 (-23.11%)
Mutual labels:  cmake
Repository
Repository of LuaDist modules available for installation using the luadist-git command line tool
Stars: ✭ 218 (-13.15%)
Mutual labels:  cmake
Flingengine
A Vulkan game engine with a focus on data oriented design
Stars: ✭ 239 (-4.78%)
Mutual labels:  cmake
Scikit Build
Improved build system generator for CPython C, C++, Cython and Fortran extensions
Stars: ✭ 234 (-6.77%)
Mutual labels:  cmake
Frut
Building JUCE projects using CMake made easy
Stars: ✭ 228 (-9.16%)
Mutual labels:  cmake

Fortran 2018 Examples

Actions Status Actions Status

Easy examples of scientific computing with modern, powerful, easy Fortran 2018 standard. Fortran 2018 began as the TS18508 extension, formerly known as Fortran 2015.

Modern Fortran benefits from modern CMake, which supports Fortran features such as

  • submodule
  • preprocessing
  • detecting specific support of Fortran features (so users know their compiler is too old)

Based on widespread compiler support and beneficial features, most new and upgraded Fortran programs should use at least portions of the Fortran 2008 standard.

Prereq

  • Linux: apt install cmake gfortran
  • Mac: brew install gcc cmake
  • Windows MSYS2: pacman -S mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-cmake

Build

The CMake or Meson build system automatically walks through the subdirectories:

CMake

cmake -B build
cmake --build build --parallel

cd build
ctest --parallel 4 --output-on-failure

Meson

meson build

meson test -C build

Compilers

Intel oneAPI

Intel oneAPI has complete Fortran 2018 support. Use Intel compilers (oneAPI or Parallel Studio) by:

  • MacOS or Linux:

    cmake --preset=intel
    
  • Windows

    cmake --preset=intelwin
    

Programs

Each directory has its own README and examples.

  • array/: Array math in modern CMake and Fortran, including MKL, BLAS, LAPACK and LAPACK95.
  • block/: Highly useful block element is demonstrated
  • coarray/: modern Fortran is the only major compiled language standard with intrinsic massively parallel arrays.
  • contiguous/: Fortran 2008 contiguous array examples, including Fortran preprocessor with modern CMake.
  • git/ Git tracability
  • mpi/: MPI parallel computing examples
  • namelist/: Fortran 90 / 2003 Namelist parsing -- native text config files for Fortran
  • openmp/: OpenMP threading exmaples
  • random/: random numbers with modern Fortran

  • io/: modern Fortran File I/O including resolving absolute path

  • real/: Numerous examples dealing with practical features of real floating point numbers, including sentinel NaN and polymorphism.
  • character/: String handling is easy and performant in modern Fortran.
  • standard/: advanced features that can be done with Fortran standard coding
  • submodule: Fortran 2008 and CMake ≥ 3.12 enable even better large program architecture with submodule
  • system/: system (hardware) functionality accessible via Fortran

Companion libraries and examples

Resources

Fortran standards

Books

Compiler User Guides

Surveys

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].