Research Article

High-Performance Design Patterns for Modern Fortran

Listing 7

type, extends(co_object):: tensor
  private
  real, allocatable:: global_f(:)[:]
contains
  !
  procedure:: assign_local_to_global
  procedure:: multiply_by_local
  procedure:: add_to_local
  procedure:: x     => df_dx
  generic:: operator()    => &
      multiply_by_local
  generic:: assignment(=)  => &
      assign_local_to_global
  !
end type