Farm_ Derived Type

type, public :: Farm_


Contents


Components

TypeVisibility AttributesNameInitial
type(soybean_), public, allocatable:: Soybean(:,:)
type(Soil_), public :: Soil
integer(kind=int32), public :: num_of_ridge
integer(kind=int32), public :: num_of_plant_per_ridge
real(kind=real64), public :: width_of_ridge
real(kind=real64), public :: width_of_plant_per_ridge
real(kind=real64), public :: length_of_farm
real(kind=real64), public :: width_of_farm
real(kind=real64), public :: soil_depth
real(kind=real64), public :: seed_depth
integer(kind=int32), public :: total_num_of_plant
real(kind=real64), public :: plant_density
real(kind=real64), public :: plant_density_m
real(kind=real64), public :: total_weight_of_seed
real(kind=real64), public :: total_area
real(kind=real64), public :: g_per_100seed
real(kind=real64), public :: locale(2)
real(kind=real64), public :: Water_kg

Type-Bound Procedures

procedure, public :: init => initFarm

  • public subroutine initFarm(obj, crop_name, num_of_ridge, num_of_plant_per_ridge, width_of_ridge, width_of_plant_per_ridge, length_of_farm, width_of_farm, soil_depth, seed_depth, g_per_100seed, meter, single, Variety)

    Arguments

    Type IntentOptional AttributesName
    class(Farm_), intent(inout) :: obj
    character(len=*), intent(in) :: crop_name
    integer(kind=int32), intent(in), optional :: num_of_ridge
    integer(kind=int32), intent(in), optional :: num_of_plant_per_ridge
    real(kind=real64), intent(in), optional :: width_of_ridge
    real(kind=real64), intent(in), optional :: width_of_plant_per_ridge
    real(kind=real64), intent(in), optional :: length_of_farm
    real(kind=real64), intent(in), optional :: width_of_farm
    real(kind=real64), intent(in), optional :: soil_depth
    real(kind=real64), intent(in), optional :: seed_depth
    real(kind=real64), intent(in), optional :: g_per_100seed
    logical, intent(in), optional :: meter
    logical, intent(in), optional :: single
    character(len=*), intent(in), optional :: Variety

procedure, public :: sowing => initFarm

  • public subroutine initFarm(obj, crop_name, num_of_ridge, num_of_plant_per_ridge, width_of_ridge, width_of_plant_per_ridge, length_of_farm, width_of_farm, soil_depth, seed_depth, g_per_100seed, meter, single, Variety)

    Arguments

    Type IntentOptional AttributesName
    class(Farm_), intent(inout) :: obj
    character(len=*), intent(in) :: crop_name
    integer(kind=int32), intent(in), optional :: num_of_ridge
    integer(kind=int32), intent(in), optional :: num_of_plant_per_ridge
    real(kind=real64), intent(in), optional :: width_of_ridge
    real(kind=real64), intent(in), optional :: width_of_plant_per_ridge
    real(kind=real64), intent(in), optional :: length_of_farm
    real(kind=real64), intent(in), optional :: width_of_farm
    real(kind=real64), intent(in), optional :: soil_depth
    real(kind=real64), intent(in), optional :: seed_depth
    real(kind=real64), intent(in), optional :: g_per_100seed
    logical, intent(in), optional :: meter
    logical, intent(in), optional :: single
    character(len=*), intent(in), optional :: Variety

procedure, public :: fertilize => fertilizeFarm

  • public subroutine fertilizeFarm(obj, N_kg, P_kg, K_kg, Ca_kg, Mg_kg, S_kg, Fe_kg, Mn_kg, B_kg, Zn_kg, Mo_kg, Cu_kg, Cl_kg)

    Arguments

    Type IntentOptional AttributesName
    class(Farm_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: N_kg
    real(kind=real64), intent(in), optional :: P_kg
    real(kind=real64), intent(in), optional :: K_kg
    real(kind=real64), intent(in), optional :: Ca_kg
    real(kind=real64), intent(in), optional :: Mg_kg
    real(kind=real64), intent(in), optional :: S_kg
    real(kind=real64), intent(in), optional :: Fe_kg
    real(kind=real64), intent(in), optional :: Mn_kg
    real(kind=real64), intent(in), optional :: B_kg
    real(kind=real64), intent(in), optional :: Zn_kg
    real(kind=real64), intent(in), optional :: Mo_kg
    real(kind=real64), intent(in), optional :: Cu_kg
    real(kind=real64), intent(in), optional :: Cl_kg

procedure, public :: diagnosis => diagnosisFarm

  • public subroutine diagnosisFarm(obj, FileName)

    Arguments

    Type IntentOptional AttributesName
    class(Farm_), intent(inout) :: obj
    character(len=*), intent(in), optional :: FileName

procedure, public :: grow => growFarm

  • public subroutine growFarm(obj, dt, temp, crop_name)

    Arguments

    Type IntentOptional AttributesName
    class(Farm_), intent(inout) :: obj
    real(kind=real64), intent(in) :: dt
    real(kind=real64), intent(in) :: temp
    character(len=*), intent(in) :: crop_name

procedure, public :: export => exportFarm

  • public subroutine exportFarm(obj, FileName, withSTL, withMesh, TimeStep)

    Arguments

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