Panicle_ Derived Type

type, public :: Panicle_


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) = [5, 5, 5]
integer(kind=int32), public :: rice_seed_division(1:3) = [3, 3, 3]
integer(kind=int32), public :: wheat_seed_division(1:3) = [2, 2, 2]
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 :: default_rice_seed_interval = 3.0d0/1000.0d0
real(kind=real64), public :: default_rice_seed_branch_length = 3.0d0/1000.0d0
real(kind=real64), public :: default_rice_seed_length = 6.0d0/1000.0d0
real(kind=real64), public :: default_rice_seed_width = 4.0d0/1000.0d0
real(kind=real64), public :: default_rice_seed_thickness = 2.0d0/1000.0d0
real(kind=real64), public :: default_rice_panicle_curvature = 0.20d0
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 => initPanicle

  • public recursive subroutine initPanicle(this, Length, width, Node, shape_factor, debug, x_num, y_num, z_num, rice, rice_seed_interval, rice_seed_branch_length, rice_seed_length, rice_seed_width, rice_seed_thickness, rice_panicle_curvature, rice_seed_division, wheat, panicle_config, Arabidopsis)

    Arguments

    Type IntentOptional Attributes Name
    class(Panicle_), intent(inout) :: this
    real(kind=real64), intent(in) :: Length
    real(kind=real64), intent(in) :: width
    integer(kind=int32), intent(in), optional :: Node
    real(kind=real64), intent(in), optional :: shape_factor
    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
    logical, intent(in), optional :: rice
    real(kind=real64), intent(in), optional :: rice_seed_interval
    real(kind=real64), intent(in), optional :: rice_seed_branch_length
    real(kind=real64), intent(in), optional :: rice_seed_length
    real(kind=real64), intent(in), optional :: rice_seed_width
    real(kind=real64), intent(in), optional :: rice_seed_thickness
    real(kind=real64), intent(in), optional :: rice_panicle_curvature
    integer(kind=int32), intent(in), optional :: rice_seed_division(1:3)
    logical, intent(in), optional :: wheat
    type(panicle_config_), intent(in), optional :: panicle_config
    logical, intent(in), optional :: Arabidopsis

procedure, public :: move => movePanicle

  • public recursive subroutine movePanicle(this, x, y, z, reset)

    Arguments

    Type IntentOptional Attributes Name
    class(Panicle_), 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

procedure, public :: rotate => rotatePanicle

  • public recursive subroutine rotatePanicle(this, x, y, z)

    Arguments

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

procedure, public :: getCoordinate => getCoordinatePanicle

  • public function getCoordinatePanicle(this, nodetype) result(ret)

    Arguments

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

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

procedure, public :: connect => connectPanicle

  • public subroutine connectPanicle(obj, direct, stem)

    Arguments

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

procedure, public :: vtk => vtkPanicle

  • public subroutine vtkPanicle(this, name)

    Arguments

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

procedure, public :: stl => stlPanicle

  • public subroutine stlPanicle(obj, name)

    Arguments

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

procedure, public :: ply => plyPanicle

  • public subroutine plyPanicle(obj, name)

    Arguments

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

procedure, public :: remove => removePanicle

  • public subroutine removePanicle(this)

    Arguments

    Type IntentOptional Attributes Name
    class(Panicle_), intent(inout) :: this