FactoryClass Module



Interfaces

public interface operator(//)


Derived Types

type, public ::  Factory_

Type-Bound Procedures

procedure, public :: cube => cube_Factory
procedure, public :: sphere => Sphere_Factory
procedure, public :: soybean => Soybean_Factory
procedure, public, pass :: move_forall_femdomain_Factory
procedure, public, pass :: move_foreach_femdomain_Factory
procedure, public, pass :: move_foreach_soybean_Factory => move_foreach_Soybean_Factory
generic, public :: move => move_forall_femdomain_Factory, move_foreach_femdomain_Factory, move_foreach_soybean_Factory
procedure, public, pass :: rotate_forall_Factory
procedure, public, pass :: rotate_foreach_Factory
generic, public :: rotate => rotate_forall_Factory, rotate_foreach_Factory
procedure, public, pass :: resize_forall_Factory
procedure, public, pass :: resize_foreach_Factory
generic, public :: resize => resize_forall_Factory, resize_foreach_Factory

Functions

public function cube_Factory(this, division, n) result(cubes)

!$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
integer(kind=int32), intent(in) :: division(1:3)
integer(kind=int32), intent(in) :: n

Return Value type(FEMDomain_), (n)

public function Sphere_Factory(this, division, n) result(Spheres)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
integer(kind=int32), intent(in) :: division(1:3)
integer(kind=int32), intent(in) :: n

Return Value type(FEMDomain_), (n)

public function Soybean_Factory(this, config, n) result(Soybeans)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
character(len=*), intent(in) :: config
integer(kind=int32), intent(in) :: n

Return Value type(soybean_), (n)

public function appendFEMDomainVector(dv1, dv2) result(ret)

Arguments

Type IntentOptional Attributes Name
type(FEMDomain_), intent(in) :: dv1(:)
type(FEMDomain_), intent(in) :: dv2(:)

Return Value type(FEMDomain_), allocatable, (:)


Subroutines

public subroutine move_foreach_femdomain_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(FEMDomain_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in) :: y(:)
real(kind=real64), intent(in) :: z(:)

public subroutine move_forall_femdomain_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(FEMDomain_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x
real(kind=real64), intent(in) :: y
real(kind=real64), intent(in) :: z

public subroutine move_foreach_Soybean_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(soybean_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in) :: y(:)
real(kind=real64), intent(in) :: z(:)

public subroutine move_forall_Soybean_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(soybean_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x
real(kind=real64), intent(in) :: y
real(kind=real64), intent(in) :: z

public subroutine rotate_foreach_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(FEMDomain_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in) :: y(:)
real(kind=real64), intent(in) :: z(:)

public subroutine rotate_forall_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(FEMDomain_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x
real(kind=real64), intent(in) :: y
real(kind=real64), intent(in) :: z

public subroutine resize_foreach_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(FEMDomain_), intent(inout) :: objects(:)
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in) :: y(:)
real(kind=real64), intent(in) :: z(:)

public subroutine resize_forall_Factory(this, objects, x, y, z)

$OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(Factory_), intent(in) :: this
type(FEMDomain_), intent(inout) :: objects(:)
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z