SoybeanClass Module



Variables

Type Visibility Attributes Name Initial
integer(kind=int32), public, parameter :: PF_SOY_OBJECT_WISE = 1
integer(kind=int32), public, parameter :: PF_DEFORMATION_ANALYSIS = 100
integer(kind=int32), public, parameter :: PF_DEFAULT_SOYBEAN_ASIZE = 300

Derived Types

type, public ::  soybean_internode_info_

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, allocatable :: FinalInterNodeLength(:)
real(kind=real64), public, allocatable :: FinalPetioleLength(:)
real(kind=real64), public, allocatable :: FinalLeafLength(:)
real(kind=real64), public, allocatable :: FinalLeafWidth(:)

type, public ::  soybean_NodeID_Branch_

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: ID(:)

Type-Bound Procedures

procedure, public :: sync => syncsoybean_NodeID_Branch

type, public ::  soybean_

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public :: stem_division(1:3) = [3, 3, 30]
integer(kind=int32), public :: peti_division(1:3) = [3, 3, 30]
integer(kind=int32), public :: leaf_division(1:3) = [10, 1, 20]
integer(kind=int32), public :: root_division(1:3) = [2, 2, 20]
character(len=20), public :: growth_habit
character(len=2), public :: growth_stage
integer(kind=int32), public :: Num_Of_Node
integer(kind=int32), public :: num_leaf
integer(kind=int32), public :: num_stem_node
integer(kind=int32), public :: Num_Of_Root
integer(kind=int32), public :: TYPE_STEM = 1
integer(kind=int32), public :: TYPE_LEAF = 2
integer(kind=int32), public :: TYPE_ROOT = 3
integer(kind=int32), public :: MaxLeafNum = PF_DEFAULT_SOYBEAN_ASIZE
integer(kind=int32), public :: MaxRootNum = PF_DEFAULT_SOYBEAN_ASIZE
integer(kind=int32), public :: MaxStemNum = PF_DEFAULT_SOYBEAN_ASIZE
logical, public :: determinate
integer(kind=int32), public :: max_num_leaf_per_petiole = 3
integer(kind=int32), public :: ms_node
integer(kind=int32), public :: br_node(PF_DEFAULT_SOYBEAN_ASIZE)
integer(kind=int32), public :: br_from(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: ms_length
real(kind=real64), public :: br_length(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: ms_width
real(kind=real64), public :: br_width(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: ms_angle_ave
real(kind=real64), public :: br_angle_ave(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: ms_angle_sig
real(kind=real64), public :: br_angle_sig(PF_DEFAULT_SOYBEAN_ASIZE)
integer(kind=int32), public :: mr_node
integer(kind=int32), public :: brr_node(PF_DEFAULT_SOYBEAN_ASIZE)
integer(kind=int32), public :: brr_from(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: mr_length
real(kind=real64), public :: brr_length(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: mr_width
real(kind=real64), public :: brr_width(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: mr_angle_ave
real(kind=real64), public :: brr_angle_ave(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: mr_angle_sig
real(kind=real64), public :: brr_angle_sig(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: peti_size_ave(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: peti_size_sig(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: peti_width_ave(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: peti_width_sig(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: peti_angle_ave(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: peti_angle_sig(PF_DEFAULT_SOYBEAN_ASIZE)
real(kind=real64), public :: leaf_angle_ave(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_angle_sig(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_length_ave(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_length_sig(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_width_ave(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_width_sig(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_thickness_ave(PF_DEFAULT_SOYBEAN_ASIZE*3)
real(kind=real64), public :: leaf_thickness_sig(PF_DEFAULT_SOYBEAN_ASIZE*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(:)
real(kind=real64), public, allocatable :: stemYoungModulus(:)
real(kind=real64), public, allocatable :: leafYoungModulus(:)
real(kind=real64), public, allocatable :: rootYoungModulus(:)
real(kind=real64), public, allocatable :: stemPoissonRatio(:)
real(kind=real64), public, allocatable :: leafPoissonRatio(:)
real(kind=real64), public, allocatable :: rootPoissonRatio(:)
real(kind=real64), public, allocatable :: stemDensity(:)
real(kind=real64), public, allocatable :: leafDensity(:)
real(kind=real64), public, allocatable :: rootDensity(:)
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(:)
type(ContactMechanics_), public :: contact
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 = ""
logical, public :: property_deform_material_density = .false.
logical, public :: property_deform_material_YoungModulus = .false.
logical, public :: property_deform_material_PoissonRatio = .false.
logical, public :: property_deform_material_CarbonDiffusionCoefficient = .false.
logical, public :: property_deform_initial_Displacement = .false.
logical, public :: property_deform_initial_Stress = .false.
logical, public :: property_deform_boundary_TractionForce = .false.
logical, public :: property_deform_boundary_Displacement = .false.
logical, public :: property_deform_gravity = .false.
real(kind=real64), public :: Gravity_acceralation = 9.810d0
real(kind=real64), public :: PenaltyParameter = 100000.0d0
logical, public :: GaussPointProjection = .false.
integer(kind=int32), public, allocatable :: NodeID_MainStem(:)
type(soybean_NodeID_Branch_), public, allocatable :: NodeID_Branch(:)
logical, public :: inLoop = .false.
real(kind=real64), public :: hours = 0.0d0
real(kind=real64), public :: FullyExpanded_stem_threshold = 0.10d0
integer(kind=int32), public :: MaxBranchNum = 20
type(soybean_internode_info_), public, allocatable :: InterNodeInfo(:)
real(kind=real64), public :: default_Leaf_growth_ratio = 1.0d0/3.0d0
real(kind=real64), public :: default_Stem_growth_ratio = 1.0d0/3.0d0
integer(kind=int32), public, allocatable :: MainStem_num_branch(:)
real(kind=real64), public :: apical_dominance_distance = 1.0d0
real(kind=real64), public :: CV_stem_length_ave = 0.03d0
real(kind=real64), public :: CV_stem_length_sig = 0.001d0
real(kind=real64), public :: CV_stem_width_ave = 0.003d0
real(kind=real64), public :: CV_stem_width_sig = 0.00001d0
real(kind=real64), public :: CV_leaf_length_ave = 0.03d0
real(kind=real64), public :: CV_leaf_length_sig = 0.001d0
real(kind=real64), public :: CV_leaf_width_ave = 0.02d0
real(kind=real64), public :: CV_leaf_width_sig = 0.0005d0
real(kind=real64), public :: CV_leaf_thickness_ave = 0.005d0
real(kind=real64), public :: CV_leaf_thickness_sig = 0.0001d0
real(kind=real64), public :: VC_stem_length_ave = 0.04d0
real(kind=real64), public :: VC_stem_length_sig = 0.001d0
real(kind=real64), public :: VC_stem_width_ave = 0.004d0
real(kind=real64), public :: VC_stem_width_sig = 0.0001d0
real(kind=real64), public :: VC_leaf_length_ave = 0.03d0
real(kind=real64), public :: VC_leaf_length_sig = 0.001d0
real(kind=real64), public :: VC_leaf_width_ave = 0.03d0
real(kind=real64), public :: VC_leaf_width_sig = 0.0005d0
real(kind=real64), public :: VC_leaf_thickness_ave = 0.001d0
real(kind=real64), public :: VC_leaf_thickness_sig = 0.00001d0
character(len=36), public :: UUID
real(kind=real64), public :: apical_carbon_concentration = 0.01d0
real(kind=real64), public, allocatable :: Photosynthate_n(:)
real(kind=real64), public, allocatable :: reaction_n(:)

Type-Bound Procedures

procedure, public, pass :: initsoybean
procedure, public, pass :: init_as_seed_soybean
generic, public :: init => initsoybean, init_as_seed_soybean
procedure, public :: VC => VCSoybean
procedure, public :: remove => removeSoybean
procedure, public :: create => initsoybean
procedure, public :: new => initsoybean
procedure, public :: sowing => initsoybean
procedure, public :: export => exportSoybean
procedure, public :: expanition => expanitionSoybean
procedure, public :: development => developmentSoybean
procedure, public :: checkProperties => checkPropertiesSoybean
procedure, public :: setPoints => setPointsSoybean
procedure, public :: setProperties => setPropertiesSoybean
procedure, public :: set_stem_length_by_list => set_stem_length_by_list_Soybean
procedure, public :: set_stem_angle_by_list => set_stem_angle_by_list_Soybean
procedure, public :: addStem => addStemSoybean
procedure, public :: setPropertiesDensity => setPropertiesDensitySoybean
procedure, public :: setPropertiesYoungModulus => setPropertiesYoungModulusSoybean
procedure, public :: setPropertiesPoissonRatio => setPropertiesPoissonRatioSoybean
procedure, public :: setPropertiesInitialDisplacement => setPropertiesInitialDisplacementSoybean
procedure, public :: setPropertiesInitialStress => setPropertiesInitialStressSoybean
procedure, public :: setPropertiesBoundaryTractionForce => setPropertiesBoundaryTractionForceSoybean
procedure, public :: setPropertiesBoundaryDisplacement => setPropertiesBoundaryDisplacementSoybean
procedure, public :: setPropertiesGravity => setPropertiesGravitySoybean
procedure, public :: setFEMDomains => setFEMDomainsSoybean
procedure, public :: setFEMDomain => setFEMDomainsSoybean
procedure, public :: setYoungModulus => setYoungModulusSoybean
procedure, public :: setPoissonRatio => setPoissonRatioSoybean
procedure, public :: setDensity => setDensitySoybean
procedure, public :: runSimulation => runSimulationSoybean
procedure, public :: runSimulator => runSimulationSoybean
procedure, public :: readyFor => readyForSoybean
procedure, public :: stemlength => stemlengthSoybean
procedure, public :: NumberOfBranch => NumberOfBranchSoybean
procedure, public :: isMainStem => isMainStemSoybean
procedure, public :: isBranchStem => isBranchStemSoybean
procedure, public :: checkYoungModulus => checkYoungModulusSoybean
procedure, public :: checkPoissonRatio => checkPoissonRatioSoybean
procedure, public :: checkDensity => checkDensitySoybean
procedure, public :: checkMemoryRequirement => checkMemoryRequirementSoybean
procedure, public :: getYoungModulus => getYoungModulusSoybean
procedure, public :: getPoissonRatio => getPoissonRatioSoybean
procedure, public :: getDensity => getDensitySoybean
procedure, public :: getVertices => getVerticesSoybean
procedure, public :: getYoungModulusField => getYoungModulusFieldSoybean
procedure, public :: getPoissonRatioField => getPoissonRatioFieldSoybean
procedure, public :: getDensityField => getDensityFieldSoybean
procedure, public :: getDiffusionCoefficient => getDiffusionCoefficientSoybean
procedure, public :: getElementList => getElementListSoybean
procedure, public :: getGlobalElementIdx => getGlobalElementIdxSoybean
procedure, public :: get_stem_length_list => get_stem_length_list_Soybean
procedure, public :: get_stem_angle_list => get_stem_angle_list_Soybean
procedure, public :: MassMatrix => MassMatrixSoybean
procedure, public :: StiffnessMatrix => StiffnessMatrixSoybean
procedure, public :: findApical => findApicalSoybean
procedure, public :: grow => growSoybean
procedure, public :: getVolume => getVolumeSoybean
procedure, public :: getVolumePerElement => getVolumePerElementSoybean
procedure, public :: getBioMass => getBiomassSoybean
procedure, public :: getElementBiomass => getElementBiomassSoybean
procedure, public :: getTotalWeight => getTotalWeightSoybean
procedure, public :: getSubDomain => getSubDomainSoybean
procedure, public :: getSubDomainType => getSubDomainTypeSoybean
procedure, public :: setSubDomain => setSubDomainSoybean
procedure, public :: getPoints => getPointsSoybean
procedure, public :: getRadius => getRadiusSoybean
procedure, public :: getCenter => getCenterSoybean
procedure, public :: getDistanceFromGround => getDistanceFromGroundSoybean
procedure, public :: getNumberOfPoint => getNumberOfPointSoybean
procedure, public :: getNumberOfElement => getNumberOfElementSoybean
procedure, public :: getDistanceToGroundFromStemID => getDistanceToGroundFromStemIDSoybean
procedure, public :: getDistanceToGroundFromRootID => getDistanceToGroundFromRootIDSoybean
procedure, public :: getLeafCosValue => getLeafCosValueSoybean
procedure, public :: getRangeOfNodeID => getRangeOfNodeIDSoybean
procedure, public :: getFEMDomainPointers => getFEMDomainPointersSoybean
procedure, public :: fall_leaf => fall_leafSoybean
procedure, public :: getFEMDomains => to_FEMDomainsSoybean
procedure, public :: to_FEMDomains => to_FEMDomainsSoybean
procedure, public :: getPPFD => getPPFDSoybean
procedure, public :: getSpectrum => getSpectrumSoybean
procedure, public :: to_R_FR => to_R_FRSoybean
procedure, public :: getDisplacement => getDisplacementSoybean
procedure, public :: getEigenMode => getEigenModeSoybean
procedure, public, pass :: getPhotoSynthesisSoybean
procedure, public, pass :: getPhotoSynthesis_by_env_soybean
generic, public :: getPhotoSynthesis => getPhotoSynthesis_by_env_soybean, getPhotoSynthesisSoybean
procedure, public :: getPhotoSynthesisSpeedPerVolume => getPhotoSynthesisSpeedPerVolumeSoybean
procedure, public :: getLeafArea => getLeafAreaSoybean
procedure, public :: getIntersectLeaf => getIntersectLeafSoybean
procedure, public :: getOverwrapLeaf => getIntersectLeafSoybean
procedure, public :: searchStem => searchStemSoybean
procedure, public :: searchPetiole => searchPetioleSoybean
procedure, public :: searchLeaf => searchLeafSoybean
procedure, public :: export_eig => export_eigSoybean
procedure, public :: getStressField => getStressFieldSoybean
procedure, public :: maxleafID => maxleafIDSoybean
procedure, public :: maxInterNodeID => maxInterNodeIDSoybean
procedure, public :: maxPetioleID => maxPetioleIDSoybean
procedure, public :: maxStemID => maxStemIDSoybean
procedure, public :: convertDataFormat => convertDataFormatSoybean
procedure, public :: fixReversedElements => fixReversedElementsSoybean
procedure, public :: resize => resizeSoybean
procedure, public :: deform => deformSoybean
procedure, public :: sync => syncSoybean
procedure, public :: show => showSoybean
procedure, public :: gmsh => gmshSoybean
procedure, public :: msh => mshSoybean
procedure, public :: vtk => vtkSoybean
procedure, public :: stl => stlSoybean
procedure, public :: ply => plySoybean
procedure, public :: json => jsonSoybean
procedure, public :: ns => nsSoybean
procedure, public :: ne => neSoybean
procedure, public :: nn => nnSoybean
procedure, public :: np => nnSoybean
procedure, public :: branchID => branchIDSoybean
procedure, public :: nn_range => nn_rangeSoybean
procedure, public :: height => height_Soybean
procedure, public :: xmin => x_min_Soybean
procedure, public :: x_min => x_min_Soybean
procedure, public :: ymin => y_min_Soybean
procedure, public :: y_min => y_min_Soybean
procedure, public :: zmin => z_min_Soybean
procedure, public :: z_min => z_min_Soybean
procedure, public :: xmax => x_max_Soybean
procedure, public :: x_max => x_max_Soybean
procedure, public :: ymax => y_max_Soybean
procedure, public :: y_max => y_max_Soybean
procedure, public :: zmax => z_max_Soybean
procedure, public :: z_max => z_max_Soybean
procedure, public :: WaterAbsorption => WaterAbsorptionSoybean
procedure, public :: move => moveSoybean
procedure, public :: rotate => rotateSoybean
procedure, public :: numleaf => numleafsoybean
procedure, public :: numstem => numstemsoybean
procedure, public :: numroot => numrootsoybean
procedure, public :: laytracing => laytracingsoybean
procedure, public :: SinkSourceFlow => SinkSourceFlowSoybean
procedure, public :: update => updateSoybean
procedure, public :: updateFlowers => updateFlowersSoybean
procedure, public :: updatePods => updatePodsSoybean
procedure, public :: AddNode => addNodeSoybean
procedure, public :: AddPhytomere => addNodeSoybean
procedure, public, pass :: resizeStem => resizeStemSoybean
procedure, public, pass :: rotateStem => rotateStemSoybean
procedure, public, pass :: resizePetiole => resizePetioleSoybean
procedure, public, pass :: rotatePetiole => rotatePetioleSoybean
procedure, public, pass :: resizeLeaf => resizeLeafSoybean
procedure, public, pass :: setFinalInterNodeLength => setFinalInternodeLengthSoybean
procedure, public, pass :: setFinalPetioleLength => setFinalPetioleLengthSoybean
procedure, public, pass :: setFinalLeafLength => setFinalLeafLengthSoybean
procedure, public, pass :: setFinalLeafWidth => setFinalLeafWidthSoybean
procedure, public :: ElementID2NodeID => ElementID2NodeIDSoybean
procedure, public, pass :: getcarbon_concentration => getCarbon_concentrationSoybean
procedure, public, pass :: getRespiration => getRespirationSoybean
procedure, public, pass :: getCarbonFlow => getCarbonFlowSoybean

type, public ::  soybeanp_

Components

Type Visibility Attributes Name Initial
type(soybean_), public, pointer :: soybeanp => null()

type, public ::  SoybeanCanopy_

Components

Type Visibility Attributes Name Initial
real(kind=real64), public :: inter_row
real(kind=real64), public :: intra_row
type(soybean_), public, allocatable :: Canopy(:,:)

Functions

public function numleafsoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function numstemsoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function numrootsoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function getVolumeSoybean(obj, stem, leaf, root) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
logical, intent(in), optional :: stem
logical, intent(in), optional :: leaf
logical, intent(in), optional :: root

Return Value real(kind=real64)

public function getVolumePerElementSoybean(obj) result(volume)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

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

public function getBiomassSoybean(obj, stem, leaf, root) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
logical, intent(in), optional :: stem
logical, intent(in), optional :: leaf
logical, intent(in), optional :: root

Return Value real(kind=real64)

public function getElementBiomassSoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

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

public function getTotalWeightSoybean(obj, stem, leaf, root, waterDensity) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
logical, intent(in), optional :: stem
logical, intent(in), optional :: leaf
logical, intent(in), optional :: root
real(kind=real64), intent(in), optional :: waterDensity

Return Value real(kind=real64)

public function stemlengthSoybean(obj, StemID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
integer(kind=int32), intent(in) :: StemID

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

public function NumberOfBranchSoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function findApicalSoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32), allocatable, (:)

public pure function nnSoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function neSoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function nsSoybean(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32)

public function getSubDomainSoybean(obj, id) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: id

Return Value type(FEMDomain_)

public function getSubDomainTypeSoybean(obj, id) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: id

Return Value character(len=:), allocatable

public pure function isMainStemSoybean(obj, StemNodeID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: StemNodeID

Return Value logical

public pure function isBranchStemSoybean(obj, StemNodeID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: StemNodeID

Return Value logical

public pure function branchIDSoybean(obj, StemNodeID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: StemNodeID

Return Value integer(kind=int32), allocatable

public function readyForSoybean(obj, Simulator) result(ready)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
integer(kind=int32), intent(in) :: Simulator

Return Value logical

public pure function getPointsSoybean(obj, leaf, stem, root) result(points)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
logical, intent(in), optional :: leaf
logical, intent(in), optional :: stem
logical, intent(in), optional :: root

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

public function getDistanceFromGroundSoybean(obj) result(distance_per_nodes)

$OMP parallel do private(i) $OMP end parallel do

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

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

public function getNumberOfPointSoybean(obj) result(NumberOfPoint)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32), allocatable, (:)

public function getNumberOfElementSoybean(obj) result(NumberOfElement)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value integer(kind=int32), allocatable, (:)

public recursive function getDistanceToGroundFromStemIDSoybean(obj, dist_in, stem_id) result(dist_ground)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
real(kind=real64), intent(in) :: dist_in
integer(kind=int32), intent(in) :: stem_id

Return Value real(kind=real64)

public recursive function getDistanceToGroundFromRootIDSoybean(obj, dist_in, root_id) result(dist_ground)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
real(kind=real64), intent(in) :: dist_in
integer(kind=int32), intent(in) :: root_id

Return Value real(kind=real64)

public function getRangeOfNodeIDSoybean(obj, stem, leaf, root) result(id_range)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
logical, intent(in), optional :: stem
logical, intent(in), optional :: leaf
logical, intent(in), optional :: root

Return Value integer(kind=int32), (2)

public function getSpectrumSoybean(obj, light, Transparency, Resolution, num_threads, leaf) result(spectrum)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(Light_), intent(in) :: light
real(kind=real64), intent(in), optional :: Transparency
real(kind=real64), intent(in), optional :: Resolution
integer(kind=int32), intent(in), optional :: num_threads
type(Leaf_), intent(inout), optional :: leaf(:)

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

public function getPPFDSoybean(obj, light, Transparency, Resolution, num_threads, leaf) result(ppfd)

なぜか失敗

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(Light_), intent(in) :: light
real(kind=real64), intent(in), optional :: Transparency
real(kind=real64), intent(in), optional :: Resolution
integer(kind=int32), intent(in), optional :: num_threads
type(Leaf_), intent(inout), optional :: leaf(:)

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

public function getLeafCosValueSoybean(obj, light, num_threads) result(elem_cosins)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(Light_), intent(in) :: light
integer(kind=int32), intent(in), optional :: num_threads

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

public function getPhotoSynthesisSoybean(obj, light, Air, dt, Transparency, Resolution, ppfd) result(photosynthesis)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(Light_), intent(in) :: light
type(Air_), intent(in) :: Air
real(kind=real64), intent(in) :: dt
real(kind=real64), intent(in), optional :: Transparency
real(kind=real64), intent(in), optional :: Resolution
real(kind=real64), intent(in), optional :: ppfd(:)

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

public function getPhotoSynthesis_by_env_soybean(this, env, dt, Transparency, soybean_canopy) result(elem_photosynthesis)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
class(Environment_), intent(in) :: env
real(kind=real64), intent(in) :: dt
real(kind=real64), intent(in), optional :: Transparency
type(soybean_), intent(inout), optional :: soybean_canopy(:)

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

public function getPhotoSynthesisSpeedPerVolumeSoybean(obj, light, Air, dt, Transparency, Resolution, ppfd) result(photosynthesis)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(Light_), intent(in) :: light
type(Air_), intent(in) :: Air
real(kind=real64), intent(in) :: dt
real(kind=real64), intent(in), optional :: Transparency
real(kind=real64), intent(in), optional :: Resolution
real(kind=real64), intent(in), optional :: ppfd(:)

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

public function convertDataFormatSoybean(obj, scalar, new_format) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
real(kind=real64), intent(in) :: scalar(:)
integer(kind=int32), intent(in) :: new_format

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

public function getLeafAreaSoybean(obj) result(LeafArea)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value real(kind=real64)

public function getIntersectLeafSoybean(obj, soybeans, light, except) result(leaf)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(soybean_), intent(inout) :: soybeans(:)
type(Light_), intent(in), optional :: light
integer(kind=int32), intent(in), optional :: except

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

public pure function getRadiusSoybean(obj) result(radius)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value real(kind=real64)

public pure function getCenterSoybean(obj) result(center)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value real(kind=real64), (3)

public function getDisplacementSoybean(obj, ground_level, penalty, traction_force, debug, itrmax, tol) result(disp)

$OMP parallel $OMP do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
real(kind=real64), intent(in) :: ground_level
real(kind=real64), intent(in), optional :: penalty
real(kind=real64), intent(in), optional :: traction_force(:)
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: itrmax
real(kind=real64), intent(in), optional :: tol

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

public function getFEMDomainPointersSoybean(obj, algorithm) result(FEMDomainPointers)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
integer(kind=int32), intent(in), optional :: algorithm

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

public function getObjectPointersSoybean(obj) result(FEMDomainPointers)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in), target :: obj

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

public function checkYoungModulusSoybean(obj) result(all_young_modulus_is_set)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value logical

public function checkPoissonRatioSoybean(obj) result(all_young_modulus_is_set)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value logical

public function checkDensitySoybean(obj) result(all_young_modulus_is_set)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj

Return Value logical

public function getYoungModulusSoybean(obj, DomainID, ElementID) result(YoungModulus)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: DomainID
integer(kind=int32), intent(in) :: ElementID

Return Value real(kind=real64)

public function getPoissonRatioSoybean(obj, DomainID, ElementID) result(PoissonRatio)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: DomainID
integer(kind=int32), intent(in) :: ElementID

Return Value real(kind=real64)

public function getDensitySoybean(obj, DomainID, ElementID) result(Density)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: DomainID
integer(kind=int32), intent(in) :: ElementID

Return Value real(kind=real64)

public function getEigenModeSoybean(obj, ground_level, penalty, debug, Frequency, EbOM_Algorithm, num_mode, femsolver) result(EigenVectors)

$OMP parallel $OMP do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
real(kind=real64), intent(in) :: ground_level
real(kind=real64), intent(in), optional :: penalty
logical, intent(in), optional :: debug
real(kind=real64), intent(inout), allocatable :: Frequency(:)
character(len=*), intent(in), optional :: EbOM_Algorithm
integer(kind=int32), intent(in), optional :: num_mode
type(FEMSolver_), intent(inout), optional :: femsolver

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

public function searchStemSoybean(this, stemID, InterNodeID) result(node_id)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID

Return Value integer(kind=int32)

public function searchPetioleSoybean(this, stemID, InterNodeID, PetioleID) result(node_id)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
integer(kind=int32), intent(in) :: PetioleID

Return Value integer(kind=int32)

public function searchLeafSoybean(this, stemID, InterNodeID, PetioleID, LeafID) result(leaf_id)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
integer(kind=int32), intent(in) :: PetioleID
integer(kind=int32), intent(in) :: LeafID

Return Value integer(kind=int32)

public function maxStemIDSoybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value integer(kind=int32)

public function maxInterNodeIDSoybean(this, StemID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: StemID

Return Value integer(kind=int32)

public function maxPetioleIDSoybean(this, StemID, InterNodeID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: StemID
integer(kind=int32), intent(in) :: InterNodeID

Return Value integer(kind=int32)

public function maxleafIDSoybean(this, StemID, InterNodeID, PetioleID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: StemID
integer(kind=int32), intent(in) :: InterNodeID
integer(kind=int32), intent(in) :: PetioleID

Return Value integer(kind=int32)

public function getYoungModulusFieldSoybean(this) result(YoungModulus)

Arguments

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

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

public function getPoissonRatioFieldSoybean(this) result(PoissonRatio)

Arguments

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

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

public function getDensityFieldSoybean(this) result(Density)

Arguments

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

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

public function getGlobalElementIdxSoybean(this, x_min, x_max, y_min, y_max, z_min, z_max, debug) result(GlobalElementIdx)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: x_max
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: y_max
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: z_max
logical, intent(in), optional :: debug

Return Value integer(kind=int32), allocatable, (:)

public function getElementListSoybean(this, x_min, x_max, y_min, y_max, z_min, z_max, debug) result(ElementList)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: x_max
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: y_max
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: z_max
logical, intent(in), optional :: debug

Return Value integer(kind=int32), allocatable, (:,:)

public function getStressFieldSoybean(this, displacement, i, j, option) result(StressField)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: displacement(:)
integer(kind=int32), intent(in), optional :: i
integer(kind=int32), intent(in), optional :: j
character(len=*), intent(in), optional :: option

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

public function getCarbon_concentrationSoybean(this, env, FixBoundary, FixValue) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
type(Environment_), intent(in) :: env
integer(kind=int32), intent(inout), allocatable :: FixBoundary(:)
real(kind=real64), intent(inout), allocatable :: FixValue(:)

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

public function ElementID2NodeIDSoybean(this, ElementIDs) result(NodeIDs)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
integer(kind=int32), intent(in) :: ElementIDs(:)

Return Value integer(kind=int32), allocatable, (:)

public function getRespirationSoybean(this, env) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
type(Environment_), intent(in) :: env

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

public function getCarbonFlowSoybean(this, photosynthesis, respiration, FixBoundary, FixValue, Photosynthate_n, dt, penalty, DiffusionCoeff, debug, RHS, Matrix, tol, algorithm) result(Photosynthate)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: this
real(kind=real64), intent(in) :: photosynthesis(:)
real(kind=real64), intent(in) :: respiration(:)
integer(kind=int32), intent(in) :: FixBoundary(:)
real(kind=real64), intent(in) :: FixValue(:)
real(kind=real64), intent(in) :: Photosynthate_n(:)
real(kind=real64), intent(in) :: dt
real(kind=real64), intent(in) :: penalty
real(kind=real64), intent(in) :: DiffusionCoeff(:)
logical, intent(in), optional :: debug
real(kind=real64), intent(inout), optional, allocatable :: RHS(:)
type(CRS_), intent(inout), optional :: Matrix
real(kind=real64), intent(in), optional :: tol
character(len=*), intent(in), optional :: algorithm

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

public function getDiffusionCoefficientSoybean(this) result(DiffusionCoefficient)

Arguments

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

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

public function to_FEMDomainsSoybean(this) result(femdomains)

Arguments

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

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

public function nn_rangeSoybean(this, organ_type, ID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
character(len=*), intent(in) :: organ_type
integer(kind=int32), intent(in) :: ID

Return Value integer(kind=int32), (1:2)

public function MassMatrixSoybean(obj, debug) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
logical, intent(in), optional :: debug

Return Value type(CRS_)

public function StiffnessMatrixSoybean(obj, penalty, debug) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
real(kind=real64), intent(in), optional :: penalty
logical, intent(in), optional :: debug

Return Value type(CRS_)

public function to_R_FRSoybean(this, spectrum) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this
real(kind=real64), intent(in) :: spectrum(:,:)

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

public function get_stem_length_list_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

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

public function get_stem_angle_list_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

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

public function height_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)

public function x_min_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)

public function x_max_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)

public function y_min_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)

public function y_max_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)

public function z_min_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)

public function z_max_Soybean(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: this

Return Value real(kind=real64)


Subroutines

public subroutine VCSoybean(this)

Arguments

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

public recursive subroutine updateSoybean(obj, stem_id, root_id, leaf_id, overset_margin, debug)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: stem_id
integer(kind=int32), intent(in), optional :: root_id
integer(kind=int32), intent(in), optional :: leaf_id
real(kind=real64), intent(in), optional :: overset_margin
logical, intent(in), optional :: debug

public subroutine initsoybean(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, profiler)

Arguments

Type IntentOptional Attributes Name
class(soybean_), 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
logical, intent(in), optional :: profiler

public subroutine growSoybean(obj, dt, light, air, temp, simple, add_apical)

Arguments

Type IntentOptional Attributes Name
class(soybean_), 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
logical, intent(in), optional :: simple
logical, intent(in), optional :: add_apical

public subroutine SinkSourceFlowSoybean(obj, simple)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
logical, intent(in), optional :: simple

public subroutine expanitionSoybean(obj)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

public subroutine developmentSoybean(obj)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

public subroutine updateFlowersSoybean(obj)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

public subroutine updatePodsSoybean(obj)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

public subroutine WaterAbsorptionSoybean(obj, temp, dt)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in) :: temp
real(kind=real64), intent(in) :: dt

public subroutine exportSoybean(obj, FilePath, FileName, SeedID, withSTL, withMesh)

Arguments

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

public subroutine showSoybean(obj, name)

Arguments

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

public subroutine gmshSoybean(obj, name, num_threads, single_file)

$OMP parallel num_threads(n) private(i) $OMP do

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
character(len=*), intent(in) :: name
integer(kind=int32), intent(in), optional :: num_threads
logical, intent(in), optional :: single_file

public subroutine mshSoybean(obj, name, num_threads)

$OMP parallel num_threads(n) private(i) $OMP do $OMP end do $OMP end parallel

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
character(len=*), intent(in) :: name
integer(kind=int32), intent(in), optional :: num_threads

public subroutine vtkSoybean(obj, name, num_threads, single_file, scalar_field, vector_field, tensor_field, field_name)

$OMP parallel num_threads(n) private(i) $OMP do $OMP end do $OMP end parallel $OMP parallel num_threads(n) private(i) $OMP do $OMP end do $OMP end parallel $OMP parallel num_threads(n) private(i) $OMP do $OMP end do $OMP end parallel

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
character(len=*), intent(in) :: name
integer(kind=int32), intent(in), optional :: num_threads
logical, intent(in), optional :: single_file
real(kind=real64), intent(in), optional :: scalar_field(:)
real(kind=real64), intent(in), optional :: vector_field(:,:)
real(kind=real64), intent(in), optional :: tensor_field(:,:,:)
character(len=*), intent(in), optional :: field_name

public subroutine jsonSoybean(obj, name)

Arguments

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

public subroutine stlSoybean(obj, name, num_threads, single_file)

$OMP parallel num_threads(n) private(i) $OMP do $OMP end do $OMP end parallel

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
character(len=*), intent(in) :: name
integer(kind=int32), intent(in), optional :: num_threads
logical, intent(in), optional :: single_file

public subroutine plySoybean(obj, name, num_threads, single_file)

$OMP parallel num_threads(n) private(i) $OMP do $OMP end do $OMP end parallel

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
character(len=*), intent(in) :: name
integer(kind=int32), intent(in), optional :: num_threads
logical, intent(in), optional :: single_file

public subroutine moveSoybean(obj, x, y, z, reset)

Arguments

Type IntentOptional Attributes Name
class(soybean_), 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 laytracingsoybean(obj, light, Transparency, Resolution)

$OMP parallel do private(j) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(Light_), intent(in) :: light
real(kind=real64), intent(in), optional :: Transparency
real(kind=real64), intent(in), optional :: Resolution

public subroutine addNodeSoybean(obj, StemNodeID, RootNodeID, peti_width_ave, peti_width_sig, peti_size_ave, peti_size_sig, peti_angle_ave, peti_angle_sig, leaf_thickness_ave, leaf_thickness_sig, leaf_length_ave, leaf_length_sig, leaf_width_ave, leaf_width_sig, leaf_angle_sig, leaf_angle_ave, mainstem_to_branch)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: StemNodeID
integer(kind=int32), intent(in), optional :: RootNodeID
real(kind=real64), intent(in), optional :: peti_width_ave
real(kind=real64), intent(in), optional :: peti_width_sig
real(kind=real64), intent(in), optional :: peti_size_ave
real(kind=real64), intent(in), optional :: peti_size_sig
real(kind=real64), intent(in), optional :: peti_angle_ave
real(kind=real64), intent(in), optional :: peti_angle_sig
real(kind=real64), intent(in), optional :: leaf_thickness_ave
real(kind=real64), intent(in), optional :: leaf_thickness_sig
real(kind=real64), intent(in), optional :: leaf_length_ave
real(kind=real64), intent(in), optional :: leaf_length_sig
real(kind=real64), intent(in), optional :: leaf_width_ave
real(kind=real64), intent(in), optional :: leaf_width_sig
real(kind=real64), intent(in), optional :: leaf_angle_sig
real(kind=real64), intent(in), optional :: leaf_angle_ave
logical, intent(in), optional :: mainstem_to_branch

public subroutine addStemSoybean(obj, stemid, rotx, roty, rotz, json)

Arguments

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

public subroutine deformSoybean(obj, displacement, penaltyparameter, groundLevel, disp, x_min, x_max, y_min, y_max, z_min, z_max)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
real(kind=real64), intent(in), optional :: displacement(:)
real(kind=real64), intent(in), optional :: penaltyparameter
real(kind=real64), intent(in), optional :: groundLevel
real(kind=real64), intent(in), optional :: disp(3)
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: x_max
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: y_max
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: z_max

public subroutine fall_leafSoybean(obj, BranchID, InterNodeID, with_petiole)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
integer(kind=int32), intent(in) :: BranchID
integer(kind=int32), intent(in) :: InterNodeID
logical, intent(in), optional :: with_petiole

public subroutine removeSoybean(obj, root)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
logical, intent(in), optional :: root

public subroutine resizeSoybean(obj, StemID, StemLength)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: StemID
real(kind=real64), intent(in), optional :: StemLength(:)

public subroutine setSubDomainSoybean(obj, domain, id)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(FEMDomain_), intent(in) :: domain
integer(kind=int32), intent(in) :: id

public subroutine checkPropertiesSoybean(obj, Simulator)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: obj
integer(kind=int32), intent(in) :: Simulator

public subroutine setPropertiesDensitySoybean(obj)

$OMP parallel do private(i) $OMP parallel do private(j) $OMP end parallel do $OMP end parallel do stem $OMP parallel do private(i) $OMP parallel do private(j) $OMP end parallel do $OMP end parallel do root $OMP parallel do private(i) $OMP parallel do private(j) $OMP end parallel do $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

public subroutine setPropertiesYoungModulusSoybean(obj, default_value)

$OMP parallel do private(i) $OMP parallel do private(i) $OMP parallel do private(i)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value

public subroutine setPropertiesCarbonDiffusionCoefficientSoybean(obj, default_value)

$OMP parallel do private(i) $OMP parallel do private(i) $OMP parallel do private(i)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value

public subroutine setPropertiesPoissonRatioSoybean(obj, default_value)

$OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value

public subroutine setPropertiesInitialDisplacementSoybean(obj, default_value)

$OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value

public subroutine setPropertiesInitialStressSoybean(obj, default_value)

$OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value

public subroutine setPropertiesBoundaryTractionForceSoybean(obj, default_value, xrange, yrange, zrange)

$OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value
real(kind=real64), intent(in), optional :: xrange(2)
real(kind=real64), intent(in), optional :: yrange(2)
real(kind=real64), intent(in), optional :: zrange(2)

public subroutine setPropertiesBoundaryDisplacementSoybean(obj, default_value, xrange, yrange, zrange)

$OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do $OMP parallel do private(i) $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value
real(kind=real64), intent(in), optional :: xrange(2)
real(kind=real64), intent(in), optional :: yrange(2)
real(kind=real64), intent(in), optional :: zrange(2)

public subroutine setPropertiesGravitySoybean(obj, default_value, xrange, yrange, zrange)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: default_value
real(kind=real64), intent(in), optional :: xrange(2)
real(kind=real64), intent(in), optional :: yrange(2)
real(kind=real64), intent(in), optional :: zrange(2)

public subroutine setPropertiesSoybean(obj, density, YoungModulus, PoissonRatio, InitialStress, InitialDisplacement, BoundaryTractionForce, BoundaryDisplacement, Gravity, xr, yr, zr, default_value)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
logical, intent(in), optional :: density
logical, intent(in), optional :: YoungModulus
logical, intent(in), optional :: PoissonRatio
logical, intent(in), optional :: InitialStress
logical, intent(in), optional :: InitialDisplacement
logical, intent(in), optional :: BoundaryTractionForce
logical, intent(in), optional :: BoundaryDisplacement
logical, intent(in), optional :: Gravity
real(kind=real64), intent(in), optional :: xr(2)
real(kind=real64), intent(in), optional :: yr(2)
real(kind=real64), intent(in), optional :: zr(2)
real(kind=real64), intent(in), optional :: default_value

public subroutine runSimulationSoybean(obj, Simulator, error_tolerance, debug, z_min)

!$OMP parallel do private(i,j) !$OMP end parallel do

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout), target :: obj
integer(kind=int32), intent(in) :: Simulator
real(kind=real64), intent(in), optional :: error_tolerance
logical, intent(in), optional :: debug
real(kind=real64), intent(in) :: z_min

public subroutine setPointsSoybean(obj, points)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in) :: points(:,:)

public subroutine fixReversedElementsSoybean(obj)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj

public subroutine syncSoybean(obj, mpid, from)

! !

Read more…

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
type(MPI_), intent(inout) :: mpid
integer(kind=int32), intent(in) :: from

public subroutine syncSoybeans(soybeans, mpid)

Arguments

Type IntentOptional Attributes Name
type(soybean_), intent(inout) :: soybeans(:)
type(MPI_), intent(inout) :: mpid

public subroutine syncsoybean_NodeID_Branch(obj, from, mpid)

Arguments

Type IntentOptional Attributes Name
class(soybean_NodeID_Branch_), intent(inout) :: obj
integer(kind=int32), intent(in) :: from
type(MPI_), intent(inout) :: mpid

public subroutine syncsoybean_NodeID_BranchVector(obj, from, mpid)

Arguments

Type IntentOptional Attributes Name
type(soybean_NodeID_Branch_), intent(inout), allocatable :: obj(:)
integer(kind=int32), intent(in) :: from
type(MPI_), intent(inout) :: mpid

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

Arguments

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

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(in) :: Obj

public recursive subroutine setYoungModulusSoybean(obj, YoungModulus, stem, root, leaf, ElementList)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in) :: YoungModulus
logical, intent(in), optional :: stem
logical, intent(in), optional :: root
logical, intent(in), optional :: leaf
integer(kind=int32), intent(in), optional :: ElementList(:,:)

public recursive subroutine setPoissonRatioSoybean(obj, PoissonRatio, stem, root, leaf, ElementList)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in) :: PoissonRatio
logical, intent(in), optional :: stem
logical, intent(in), optional :: root
logical, intent(in), optional :: leaf
integer(kind=int32), intent(in), optional :: ElementList(:,:)

public recursive subroutine setDensitySoybean(obj, Density, stem, root, leaf, ElementList)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: obj
real(kind=real64), intent(in) :: Density
logical, intent(in), optional :: stem
logical, intent(in), optional :: root
logical, intent(in), optional :: leaf
integer(kind=int32), intent(in), optional :: ElementList(:,:)

public subroutine resizeStemSoybean(this, stemID, InterNodeID, Length, Width)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
real(kind=real64), intent(in), optional :: Length
real(kind=real64), intent(in), optional :: Width

public subroutine rotateStemSoybean(this, stemID, InterNodeID, Angles)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
real(kind=real64), intent(in) :: Angles(1:3)

public subroutine resizePetioleSoybean(this, stemID, InterNodeID, PetioleID, Length, Width)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
integer(kind=int32), intent(in) :: PetioleID
real(kind=real64), intent(in), optional :: Length
real(kind=real64), intent(in), optional :: Width

public subroutine rotatePetioleSoybean(this, stemID, InterNodeID, PetioleID, Angles)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
integer(kind=int32), intent(in) :: PetioleID
real(kind=real64), intent(in) :: Angles(1:3)

public subroutine resizeLeafSoybean(this, stemID, InterNodeID, PetioleID, LeafID, Length, Width)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
integer(kind=int32), intent(in) :: PetioleID
integer(kind=int32), intent(in) :: LeafID
real(kind=real64), intent(in), optional :: Length
real(kind=real64), intent(in), optional :: Width

public subroutine growStemSoybean(this, stemID, InterNodeID, dt)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
integer(kind=int32), intent(in) :: stemID
integer(kind=int32), intent(in) :: InterNodeID
real(kind=real64), intent(in) :: dt

public subroutine setFinalInternodeLengthSoybean(this, Length, StemID)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: Length(:)
integer(kind=int32), intent(in) :: StemID

public subroutine setFinalPetioleLengthSoybean(this, Length, StemID)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: Length(:)
integer(kind=int32), intent(in) :: StemID

public subroutine setFinalLeafLengthSoybean(this, Length, StemID)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: Length(:)
integer(kind=int32), intent(in) :: StemID

public subroutine setFinalLeafWidthSoybean(this, Width, StemID)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: Width(:)
integer(kind=int32), intent(in) :: StemID

public subroutine export_eigSoybean(this, Name, Frequency, ModeVectors, stress_type)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
character(len=*), intent(in) :: Name
real(kind=real64), intent(in) :: Frequency(:)
real(kind=real64), intent(in) :: ModeVectors(:,:)
character(len=*), intent(in), optional :: stress_type

public subroutine setFEMDomainsSoybean(this, femdomains)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
type(FEMDomain_), intent(in) :: femdomains(:)

public subroutine getVerticesSoybean(this, Vertices, VertexIDs)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(inout), allocatable :: Vertices(:)
integer(kind=int32), intent(inout), allocatable :: VertexIDs(:)

public subroutine set_stem_length_by_list_Soybean(this, stem_length_list)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: stem_length_list(:)

public subroutine set_stem_angle_by_list_Soybean(this, stem_angle_list)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: stem_angle_list(:,:)

public subroutine init_as_seed_soybean(this, radius, division)

Arguments

Type IntentOptional Attributes Name
class(soybean_), intent(inout) :: this
real(kind=real64), intent(in) :: radius(1:3)
integer(kind=int32), intent(in) :: division(1:3)