A testbased on Gary Scott's issue described here.
This test reproduction is devoted to Paul Rich & Co. for GNU gfortran users
program test
module module_vector | |
use, intrinsic :: iso_fortran_env, only : I32=>int32 | |
implicit none | |
private | |
public :: size | |
public :: vector | |
type vector |
A testbased on Gary Scott's issue described here.
This test reproduction is devoted to Paul Rich & Co. for GNU gfortran users
program test
This test is a tentative to investigate the abstraction overhead in modern Fortran: it could be not well-posed and not interesting at all, it is just a replay of a question on a Google Group CLF thread
The overhead.f90
test porgram contains
module adt_foo_class | |
implicit none | |
private | |
type, abstract, public :: adt_foo | |
private | |
contains | |
private | |
procedure(sym_operator), pass(lhs), deferred :: foo_multiply_foo | |
procedure(assignment), pass(lhs), deferred :: assign_foo | |
generic, public :: operator(*) => foo_multiply_foo |
module adt_foo_class | |
implicit none | |
private | |
type, abstract, public :: adt_foo | |
private | |
contains | |
private | |
procedure(sym_operator), pass(lhs), deferred :: foo_multiply_foo | |
procedure(assignment), pass(lhs), deferred :: assign_foo | |
generic, public :: operator(*) => foo_multiply_foo |