StemClass Module



Contents


Derived Types

type, public :: Stem_

Components

TypeVisibility AttributesNameInitial
type(FEMDomain_), public :: FEMDomain
real(kind=real64), public :: Thickness
real(kind=real64), public :: length
real(kind=real64), public :: width
real(kind=real64), public :: MaxThickness
real(kind=real64), public :: Maxlength
real(kind=real64), public :: Maxwidth
real(kind=real64), public :: center_bottom(3)
real(kind=real64), public :: center_top(3)
real(kind=real64), public :: radius_bottom(3)
real(kind=real64), public :: radius_top(3)
real(kind=real64), public :: outer_normal_bottom(3)
real(kind=real64), public :: outer_normal_top(3)
real(kind=real64), public :: rot_x =0.0d0
real(kind=real64), public :: rot_y =0.0d0
real(kind=real64), public :: rot_z =0.0d0
real(kind=real64), public :: disp_x =0.0d0
real(kind=real64), public :: disp_y =0.0d0
real(kind=real64), public :: disp_z =0.0d0
integer(kind=int32), public :: EdgeNodeID(4)
integer(kind=int32), public :: EdgeElemID(4)
real(kind=real64), public :: maxdiameter
real(kind=real64), public :: mindiameter
real(kind=real64), public :: minlength
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 :: A_PointElementID
integer(kind=int32), public :: B_PointElementID
integer(kind=int32), public :: xnum =10
integer(kind=int32), public :: ynum =10
integer(kind=int32), public :: znum =10
real(kind=real64), public, allocatable:: DryDensity(:)
real(kind=real64), public, allocatable:: WaterContent(:)
integer(kind=int32), public :: Division
type(Stem_), public, pointer:: pStem

Type-Bound Procedures

procedure, public :: Init => initStem
procedure, public :: rotate => rotateStem
procedure, public :: grow => growStem
procedure, public :: resize => resizeStem
procedure, public :: move => moveStem
procedure, public :: connect => connectStem
procedure, public :: getCoordinate => getCoordinateStem
procedure, public :: getLength => getLengthStem
procedure, public :: gmsh => gmshStem
procedure, public :: msh => mshStem
procedure, public :: vtk => vtkStem
procedure, public :: stl => stlStem
procedure, public :: export => exportStem
procedure, public :: getVolume => getVolumeStem
procedure, public :: getBiomass => getBiomassStem

Functions

public function getCoordinateStem(obj, nodetype) result(ret)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
character(len=*), intent(in) :: nodetype

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

public function getLengthStem(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(in) :: obj

Return Value real(kind=real64)

public function getVolumeStem(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(in) :: obj

Return Value real(kind=real64)

public function getBiomassStem(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(in) :: obj

Return Value real(kind=real64)


Subroutines

public subroutine initStem(obj, config, regacy, Thickness, length, width, MaxThickness, Maxlength, MaxWidth, rotx, roty, rotz, location)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
character(len=*), intent(in), optional :: config
logical, intent(in), optional :: regacy
real(kind=real64), intent(in), optional :: Thickness
real(kind=real64), intent(in), optional :: length
real(kind=real64), intent(in), optional :: width
real(kind=real64), intent(in), optional :: MaxThickness
real(kind=real64), intent(in), optional :: Maxlength
real(kind=real64), intent(in), optional :: MaxWidth
real(kind=real64), intent(in), optional :: rotx
real(kind=real64), intent(in), optional :: roty
real(kind=real64), intent(in), optional :: rotz
real(kind=real64), intent(in), optional :: location(3)

public subroutine resize(obj, x, y, z)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z

public subroutine exportStem(obj, FileName, StemID)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(in) :: obj
character(len=*), intent(in) :: FileName
integer(kind=int32), intent(inout), optional :: StemID

public recursive subroutine rotateStem(obj, x, y, z, reset)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
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 moveStem(obj, x, y, z, reset)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
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 subroutine connectStem(obj, direct, stem)

Arguments

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

public subroutine gmshStem(obj, name)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
character(len=*), intent(in) :: name

public subroutine mshStem(obj, name)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
character(len=*), intent(in) :: name

public subroutine vtkStem(obj, name)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
character(len=*), intent(in) :: name

public subroutine stlStem(obj, name)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
character(len=*), intent(in) :: name

public subroutine resizeStem(obj, x, y, z)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout), optional :: obj
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z

public subroutine growStem(obj, length, length_rate, width_rate)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: length
real(kind=real64), intent(in), optional :: length_rate
real(kind=real64), intent(in), optional :: width_rate

public subroutine rescaleStem(obj, x, y, z)

Arguments

Type IntentOptional AttributesName
class(Stem_), intent(inout), optional :: obj
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z