FarmClass Module



Contents


Derived Types

type, public :: Farm_

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
procedure, public :: sowing => initFarm
procedure, public :: fertilize => fertilizeFarm
procedure, public :: diagnosis => diagnosisFarm
procedure, public :: grow => growFarm
procedure, public :: export => exportFarm

Subroutines

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

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

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

public subroutine diagnosisFarm(obj, FileName)

Arguments

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

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