Rice_ Derived Type

type, public :: Rice_


Contents


Components

TypeVisibility AttributesNameInitial
character(len=20), public :: growth_habit
character(len=2), public :: growth_stage
integer(kind=int32), public :: Num_Of_Node
integer(kind=int32), public :: Num_Of_Root
integer(kind=int32), public :: MaxLeafNum =300
integer(kind=int32), public :: MaxRootNum =300
integer(kind=int32), public :: MaxStemNum =300
integer(kind=int32), public :: ms_node
integer(kind=int32), public :: br_node(300)
integer(kind=int32), public :: br_from(300)
real(kind=real64), public :: ms_length
real(kind=real64), public :: br_length(300)
real(kind=real64), public :: ms_width
real(kind=real64), public :: br_width(300)
real(kind=real64), public :: ms_angle_ave
real(kind=real64), public :: br_angle_ave(300)
real(kind=real64), public :: ms_angle_sig
real(kind=real64), public :: br_angle_sig(300)
integer(kind=int32), public :: mr_node
integer(kind=int32), public :: brr_node(300)
integer(kind=int32), public :: brr_from(300)
real(kind=real64), public :: mr_length
real(kind=real64), public :: brr_length(300)
real(kind=real64), public :: mr_width
real(kind=real64), public :: brr_width(300)
real(kind=real64), public :: mr_angle_ave
real(kind=real64), public :: brr_angle_ave(300)
real(kind=real64), public :: mr_angle_sig
real(kind=real64), public :: brr_angle_sig(300)
real(kind=real64), public :: peti_size_ave(300)
real(kind=real64), public :: peti_size_sig(300)
real(kind=real64), public :: peti_width_ave(300)
real(kind=real64), public :: peti_width_sig(300)
real(kind=real64), public :: peti_angle_ave(300)
real(kind=real64), public :: peti_angle_sig(300)
real(kind=real64), public :: leaf_angle_ave(300*3)
real(kind=real64), public :: leaf_angle_sig(300*3)
real(kind=real64), public :: leaf_length_ave(300*3)
real(kind=real64), public :: leaf_length_sig(300*3)
real(kind=real64), public :: leaf_width_ave(300*3)
real(kind=real64), public :: leaf_width_sig(300*3)
real(kind=real64), public :: leaf_thickness_ave(300*3)
real(kind=real64), public :: leaf_thickness_sig(300*3)
character(len=3), public :: Stage
character(len=200), public :: name
integer(kind=int32), public :: stage_id =0
real(kind=real64), public :: dt
type(Seed_), public :: Seed
type(PlantNode_), public, allocatable:: NodeSystem(:)
type(PlantRoot_), public, allocatable:: RootSystem(:)
type(Stem_), public, allocatable:: Stem(:)
type(Leaf_), public, allocatable:: Leaf(:)
type(Root_), public, allocatable:: Root(:)
type(Soil_), public, allocatable:: Soil
type(Mesh_), public :: struct
integer(kind=int32), public, allocatable:: leaf2stem(:,:)
integer(kind=int32), public, allocatable:: stem2stem(:,:)
integer(kind=int32), public, allocatable:: root2stem(:,:)
integer(kind=int32), public, allocatable:: root2root(:,:)
type(FEMDomain_), public, allocatable:: leaf_list(:)
type(FEMDomain_), public, allocatable:: stem_list(:)
type(FEMDomain_), public, allocatable:: root_list(:)
real(kind=real64), public :: time
real(kind=real64), public :: seed_length
real(kind=real64), public :: seed_width
real(kind=real64), public :: seed_height
real(kind=real64), public, allocatable:: stem_angle(:,:)
real(kind=real64), public, allocatable:: root_angle(:,:)
real(kind=real64), public, allocatable:: leaf_angle(:,:)
character(len=200), public :: stemconfig =" "
character(len=200), public :: rootconfig =" "
character(len=200), public :: leafconfig =" "

Type-Bound Procedures

procedure, public :: addStem => addStemRice

  • public subroutine addStemRice(obj, stemid, rotx, roty, rotz, json)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: stemid
    real(kind=real64), intent(in), optional :: rotx
    real(kind=real64), intent(in), optional :: roty
    real(kind=real64), intent(in), optional :: rotz
    character(len=*), intent(in), optional :: json

procedure, public :: Init => initRice

  • public subroutine initRice(obj, config, regacy, mass, water_content, radius, location, x, y, z, PlantRoot_diameter_per_seed_radius, max_PlantNode_num, Variety, FileName, max_leaf_num, max_stem_num, max_root_num)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    character(len=*), intent(in), optional :: config
    logical, intent(in), optional :: regacy
    real(kind=real64), intent(in), optional :: mass
    real(kind=real64), intent(in), optional :: water_content
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: location(3)
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    real(kind=real64), intent(in), optional :: PlantRoot_diameter_per_seed_radius
    integer(kind=int32), intent(in), optional :: max_PlantNode_num
    character(len=*), intent(in), optional :: Variety
    character(len=*), intent(in), optional :: FileName
    integer(kind=int32), intent(in), optional :: max_leaf_num
    integer(kind=int32), intent(in), optional :: max_stem_num
    integer(kind=int32), intent(in), optional :: max_root_num

procedure, public :: new => initRice

  • public subroutine initRice(obj, config, regacy, mass, water_content, radius, location, x, y, z, PlantRoot_diameter_per_seed_radius, max_PlantNode_num, Variety, FileName, max_leaf_num, max_stem_num, max_root_num)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    character(len=*), intent(in), optional :: config
    logical, intent(in), optional :: regacy
    real(kind=real64), intent(in), optional :: mass
    real(kind=real64), intent(in), optional :: water_content
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: location(3)
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    real(kind=real64), intent(in), optional :: PlantRoot_diameter_per_seed_radius
    integer(kind=int32), intent(in), optional :: max_PlantNode_num
    character(len=*), intent(in), optional :: Variety
    character(len=*), intent(in), optional :: FileName
    integer(kind=int32), intent(in), optional :: max_leaf_num
    integer(kind=int32), intent(in), optional :: max_stem_num
    integer(kind=int32), intent(in), optional :: max_root_num

procedure, public :: sowing => initRice

  • public subroutine initRice(obj, config, regacy, mass, water_content, radius, location, x, y, z, PlantRoot_diameter_per_seed_radius, max_PlantNode_num, Variety, FileName, max_leaf_num, max_stem_num, max_root_num)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    character(len=*), intent(in), optional :: config
    logical, intent(in), optional :: regacy
    real(kind=real64), intent(in), optional :: mass
    real(kind=real64), intent(in), optional :: water_content
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: location(3)
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    real(kind=real64), intent(in), optional :: PlantRoot_diameter_per_seed_radius
    integer(kind=int32), intent(in), optional :: max_PlantNode_num
    character(len=*), intent(in), optional :: Variety
    character(len=*), intent(in), optional :: FileName
    integer(kind=int32), intent(in), optional :: max_leaf_num
    integer(kind=int32), intent(in), optional :: max_stem_num
    integer(kind=int32), intent(in), optional :: max_root_num

procedure, public :: export => exportRice

  • public subroutine exportRice(obj, FilePath, FileName, SeedID, withSTL, withMesh)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    character(len=*), intent(in), optional :: FilePath
    character(len=*), intent(in) :: FileName
    integer(kind=int32), intent(inout), optional :: SeedID
    logical, intent(in), optional :: withSTL
    logical, intent(in), optional :: withMesh

procedure, public :: grow => growRice

  • public subroutine growRice(obj, dt, light, air, temp)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    real(kind=real64), intent(in) :: dt
    type(Light_), intent(inout), optional :: light
    type(air_), intent(in), optional :: air
    real(kind=real64), intent(in), optional :: temp

procedure, public :: show => showRice

  • public subroutine showRice(obj, name)

    Arguments

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

procedure, public :: gmsh => gmshRice

  • public subroutine gmshRice(obj, name)

    Arguments

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

procedure, public :: msh => mshRice

  • public subroutine mshRice(obj, name)

    Arguments

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

procedure, public :: stl => stlRice

  • public subroutine stlRice(obj, name)

    Arguments

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

procedure, public :: json => jsonRice

  • public subroutine jsonRice(obj, name)

    Arguments

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

procedure, public :: WaterAbsorption => WaterAbsorptionRice

  • public subroutine WaterAbsorptionRice(obj, temp, dt)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    real(kind=real64), intent(in) :: temp
    real(kind=real64), intent(in) :: dt

procedure, public :: move => moveRice

  • public subroutine moveRice(obj, x, y, z)

    Arguments

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

procedure, public :: numleaf => numleafRice

  • public function numleafRice(obj) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: numstem => numstemRice

  • public function numstemRice(obj) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: numroot => numrootRice

  • public function numrootRice(obj) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: laytracing => laytracingRice

  • public subroutine laytracingRice(obj, light)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj
    type(Light_), intent(in) :: light

procedure, public :: SinkSourceFlow => SinkSourceFlowRice

  • public subroutine SinkSourceFlowRice(obj)

    Arguments

    Type IntentOptional AttributesName
    class(Rice_), intent(inout) :: obj