SoilClass Module



Contents


Derived Types

type, public :: Soil_

Components

TypeVisibility AttributesNameInitial
type(FEMDomain_), public :: FEMDomain
type(Boring_), public, allocatable:: Boring(:)
type(LinearSolver_), public :: solver
real(kind=real64), public, allocatable:: disp(:,:)
real(kind=real64), public, allocatable:: YoungModulus(:)
real(kind=real64), public, allocatable:: PoissonRatio(:)
real(kind=real64), public, allocatable:: Density(:)
real(kind=real64), public, allocatable:: VoidRatio(:)
real(kind=real64), public, allocatable:: Cohesion(:)
real(kind=real64), public, allocatable:: FrictionAngle(:)
real(kind=real64), public :: depth
real(kind=real64), public :: length
real(kind=real64), public :: width
integer(kind=int32), public :: num_x
integer(kind=int32), public :: num_y
integer(kind=int32), public :: num_z
real(kind=real64), public :: x
real(kind=real64), public :: y
real(kind=real64), public :: z
real(kind=real64), public :: N_kg =0.0d0
real(kind=real64), public :: P_kg =0.0d0
real(kind=real64), public :: K_kg =0.0d0
real(kind=real64), public :: Ca_kg =0.0d0
real(kind=real64), public :: Mg_kg =0.0d0
real(kind=real64), public :: S_kg =0.0d0
real(kind=real64), public :: Fe_kg =0.0d0
real(kind=real64), public :: Mn_kg =0.0d0
real(kind=real64), public :: B_kg =0.0d0
real(kind=real64), public :: Zn_kg =0.0d0
real(kind=real64), public :: Mo_kg =0.0d0
real(kind=real64), public :: Cu_kg =0.0d0
real(kind=real64), public :: Cl_kg =0.0d0
real(kind=real64), public :: C_N_ratio
real(kind=real64), public :: EC

Type-Bound Procedures

procedure, public :: init => initSoil
procedure, public :: import => importSoil
procedure, public :: create => initSoil
procedure, public :: new => initSoil
procedure, public :: resize => resizeSoil
procedure, public :: rotate => rotateSoil
procedure, public :: move => moveSoil
procedure, public :: gmsh => gmshSoil
procedure, public :: msh => mshSoil
procedure, public :: vtk => vtkSoil
procedure, public :: deform => deformSoil
procedure, public :: PreFlightCheck => PreFlightCheckSoil
procedure, public :: fertilize => fertilizeSoil
procedure, public :: diagnosis => diagnosisSoil
procedure, public :: export => exportSoil

Subroutines

public subroutine importSoil(obj, name, Boring, dem, x_num, y_num, z_num, radius, depth)

Arguments

Type IntentOptional AttributesName
class(Soil_), intent(inout) :: obj
character(len=*), intent(in), optional :: name
type(Boring_), intent(in), optional :: Boring(:)
type(DigitalElevationModel_), intent(in), optional :: dem
integer(kind=int32), intent(in), optional :: x_num
integer(kind=int32), intent(in), optional :: y_num
integer(kind=int32), intent(in), optional :: z_num
real(kind=real64), intent(in), optional :: radius
real(kind=real64), intent(in), optional :: depth

public subroutine initSoil(obj, config, x_num, y_num, z_num)

Arguments

Type IntentOptional AttributesName
class(Soil_), intent(inout) :: obj
character(len=*), intent(in), optional :: config
integer(kind=int32), intent(in), optional :: x_num
integer(kind=int32), intent(in), optional :: y_num
integer(kind=int32), intent(in), optional :: z_num

public subroutine fertilizeSoil(obj, Fertilizer, 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(Soil_), intent(inout) :: obj
type(Fertilizer_), intent(in), optional :: Fertilizer
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 exportSoil(obj, FileName, format, objID)

Arguments

Type IntentOptional AttributesName
class(Soil_), intent(inout) :: obj
character(len=*), intent(in) :: FileName
character(len=*), intent(in), optional :: format
integer(kind=int32), intent(inout), optional :: objID

public subroutine diagnosisSoil(obj, FileName)

Arguments

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

public subroutine gmshSoil(obj, name)

Arguments

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

public subroutine vtkSoil(obj, name, scalar, vector, tensor, field, ElementType)

Arguments

Type IntentOptional AttributesName
class(Soil_), intent(inout) :: obj
character(len=*), intent(in) :: name
real(kind=real64), intent(in), optional :: scalar(:)
real(kind=real64), intent(in), optional :: vector(:,:)
real(kind=real64), intent(in), optional :: tensor(:,:,:)
character(len=*), intent(in), optional :: field
integer(kind=int32), intent(in), optional :: ElementType

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

Arguments

Type IntentOptional AttributesName
class(Soil_), 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 rotateSoil(obj, x, y, z)

Arguments

Type IntentOptional AttributesName
class(Soil_), 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 moveSoil(obj, x, y, z)

Arguments

Type IntentOptional AttributesName
class(Soil_), 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 mshSoil(obj, name)

Arguments

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

public subroutine PreFlightCheckSoil(obj)

Arguments

Type IntentOptional AttributesName
class(Soil_), intent(inout), target:: obj

public subroutine deformSoil(obj, disp, x_min, x_max, y_min, y_max, z_min, z_max, BCRangeError)

Arguments

Type IntentOptional AttributesName
class(Soil_), intent(inout), target:: obj
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
real(kind=real64), intent(in), optional :: BCRangeError