EarClass Module



Derived Types

type, public ::  Ear_

Components

Type Visibility Attributes Name Initial
type(FEMDomain_), public :: FEMDomain
real(kind=real64), public :: Length
real(kind=real64), public :: Width
real(kind=real64), public :: Angle
type(Stem_), public, pointer :: pStem
integer(kind=int32), public :: division(1:3) = [6, 6, 30]
integer(kind=int32), public, allocatable :: I_planeNodeID(:)
integer(kind=int32), public, allocatable :: I_planeElementID(:)
integer(kind=int32), public, allocatable :: II_planeNodeID(:)
integer(kind=int32), public, allocatable :: II_planeElementID(:)
integer(kind=int32), public :: A_PointNodeID
integer(kind=int32), public :: B_PointNodeID
integer(kind=int32), public :: C_PointNodeID
integer(kind=int32), public :: D_PointNodeID
integer(kind=int32), public :: A_PointElementID
integer(kind=int32), public :: B_PointElementID
real(kind=real64), public :: disp_x
real(kind=real64), public :: disp_y
real(kind=real64), public :: disp_z
real(kind=real64), public, allocatable :: YoungModulus(:)
real(kind=real64), public, allocatable :: PoissonRatio(:)
real(kind=real64), public, allocatable :: Density(:)
real(kind=real64), public, allocatable :: Stress(:,:,:)
real(kind=real64), public, allocatable :: Displacement(:,:)

Type-Bound Procedures

procedure, public :: Init => initEar
procedure, public :: move => moveEar
procedure, public :: rotate => rotateEar
procedure, public :: getCoordinate => getCoordinateEar
procedure, public :: connect => connectEar
procedure, public :: vtk => vtkEar
procedure, public :: stl => stlEar

Functions

public function getCoordinateEar(this, nodetype) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Ear_), intent(in) :: this
character(len=*), intent(in) :: nodetype

Return Value real(kind=real64), allocatable, (:)


Subroutines

public subroutine initEar(this, Length, width, Angle, debug, x_num, y_num, z_num, Leaf_angle_z)

Arguments

Type IntentOptional Attributes Name
class(Ear_), intent(inout) :: this
real(kind=real64), intent(in) :: Length
real(kind=real64), intent(in) :: width
real(kind=real64), intent(in) :: Angle
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: x_num
integer(kind=int32), intent(in), optional :: y_num
integer(kind=int32), intent(in), optional :: z_num
real(kind=real64), intent(in), optional :: Leaf_angle_z

public subroutine vtkEar(this, name)

Arguments

Type IntentOptional Attributes Name
class(Ear_), intent(inout) :: this
character(len=*), intent(in) :: name

public recursive subroutine moveEar(this, x, y, z, reset)

Arguments

Type IntentOptional Attributes Name
class(Ear_), intent(inout) :: this
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z
logical, intent(in), optional :: reset

public recursive subroutine rotateEar(this, x, y, z)

Arguments

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

public subroutine connectEar(obj, direct, stem)

Arguments

Type IntentOptional Attributes Name
class(Ear_), intent(inout) :: obj
character(len=2), intent(in) :: direct
class(Stem_), intent(inout) :: stem

public subroutine stlEar(obj, name)

Arguments

Type IntentOptional Attributes Name
class(Ear_), intent(inout) :: obj
character(len=*), intent(in) :: name