Soil_ Derived Type

type, public :: Soil_


Contents


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

  • 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

procedure, public :: import => importSoil

  • 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

procedure, public :: create => initSoil

  • 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

procedure, public :: new => initSoil

  • 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

procedure, public :: resize => resizeSoil

  • 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

procedure, public :: rotate => rotateSoil

  • 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

procedure, public :: move => moveSoil

  • 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

procedure, public :: gmsh => gmshSoil

  • public subroutine gmshSoil(obj, name)

    Arguments

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

procedure, public :: msh => mshSoil

  • public subroutine mshSoil(obj, name)

    Arguments

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

procedure, public :: vtk => vtkSoil

  • 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

procedure, public :: deform => deformSoil

  • 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

procedure, public :: PreFlightCheck => PreFlightCheckSoil

  • public subroutine PreFlightCheckSoil(obj)

    Arguments

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

procedure, public :: fertilize => fertilizeSoil

  • 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

procedure, public :: diagnosis => diagnosisSoil

  • public subroutine diagnosisSoil(obj, FileName)

    Arguments

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

procedure, public :: export => exportSoil

  • 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