Soil_ Derived Type

type, public :: Soil_


Components

Type Visibility Attributes Name Initial
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
character(len=:), public, allocatable :: config
real(kind=real64), public, allocatable :: lambda(:)
real(kind=real64), public, allocatable :: kappa(:)
real(kind=real64), public, allocatable :: e0(:)
real(kind=real64), public, allocatable :: P0(:)
real(kind=real64), public, allocatable :: Py(:)
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, pass :: initSoil

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

    Arguments

    Type IntentOptional Attributes Name
    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, pass :: init_by_latlon_Soil

  • public subroutine init_by_latlon_Soil(this, latitude, longitude, depth, division)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: latitude(1:4)
    real(kind=real64), intent(in) :: longitude(1:4)
    real(kind=real64), intent(in) :: depth
    integer(kind=int32), intent(in) :: division(1:3)

generic, public :: init => initSoil, init_by_latlon_Soil

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

    Arguments

    Type IntentOptional Attributes Name
    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 init_by_latlon_Soil(this, latitude, longitude, depth, division)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: latitude(1:4)
    real(kind=real64), intent(in) :: longitude(1:4)
    real(kind=real64), intent(in) :: depth
    integer(kind=int32), intent(in) :: division(1:3)

generic, public :: create => initSoil, init_by_latlon_Soil

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

    Arguments

    Type IntentOptional Attributes Name
    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 init_by_latlon_Soil(this, latitude, longitude, depth, division)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: latitude(1:4)
    real(kind=real64), intent(in) :: longitude(1:4)
    real(kind=real64), intent(in) :: depth
    integer(kind=int32), intent(in) :: division(1:3)

generic, public :: new => initSoil, init_by_latlon_Soil

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

    Arguments

    Type IntentOptional Attributes Name
    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 init_by_latlon_Soil(this, latitude, longitude, depth, division)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: latitude(1:4)
    real(kind=real64), intent(in) :: longitude(1:4)
    real(kind=real64), intent(in) :: depth
    integer(kind=int32), intent(in) :: division(1:3)

procedure, public :: nn => nn_Soil

  • public function nn_Soil(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: ne => ne_Soil

  • public function ne_Soil(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: nne => nne_Soil

  • public function nne_Soil(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: nd => nd_Soil

  • public function nd_Soil(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: import => importSoil

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

    Arguments

    Type IntentOptional Attributes Name
    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 :: resize => resizeSoil

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

    Arguments

    Type IntentOptional Attributes Name
    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 Attributes Name
    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 Attributes Name
    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 Attributes Name
    class(Soil_), intent(inout) :: obj
    character(len=*), intent(in) :: name

procedure, public :: msh => mshSoil

  • public subroutine mshSoil(obj, name)

    Arguments

    Type IntentOptional Attributes Name
    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 Attributes Name
    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 Attributes Name
    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 Attributes Name
    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 Attributes Name
    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 Attributes Name
    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 Attributes Name
    class(Soil_), intent(inout) :: obj
    character(len=*), intent(in) :: FileName
    character(len=*), intent(in), optional :: format
    integer(kind=int32), intent(inout), optional :: objID

procedure, public :: getNvalue => getNvalueSoil

  • public function getNvalueSoil(obj, borings, VoronoiRatio, MovingAverageFilter, Delaunay) result(Nvalue)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: obj
    type(Boring_), intent(in), optional :: borings(:)
    real(kind=real64), intent(in), optional :: VoronoiRatio
    logical, intent(in), optional :: MovingAverageFilter
    logical, intent(in), optional :: Delaunay

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

procedure, public :: convertNvalue2Vs => convertNvalue2VsSoil

  • public pure function convertNvalue2VsSoil(obj, Nvalue, Formula, H, Yg, St) result(Vs)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(in) :: obj
    real(kind=real64), intent(in) :: Nvalue(:)
    integer(kind=int32), intent(in) :: Formula
    real(kind=real64), intent(in), optional :: H(:)
    real(kind=real64), intent(in), optional :: Yg(:)
    real(kind=real64), intent(in), optional :: St(:)

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

procedure, public :: GL => Ground_level_of_Soil

  • public function Ground_level_of_Soil(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: setSoilType => setSoilType_SoilClass

  • public subroutine setSoilType_SoilClass(this, config)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    character(len=*), intent(in) :: config

procedure, public :: JGS_coeff_subgrade_react => JGS_coeff_subgrade_react_Soil

  • public function JGS_coeff_subgrade_react_Soil(this, B, Is) result(k)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: B
    real(kind=real64), intent(in), optional :: Is

    Return Value real(kind=real64)

procedure, public :: JGS_subgrade_displacement => JGS_subgrade_displacement_Soil

  • public function JGS_subgrade_displacement_Soil(this, area, weight, Is) result(u)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: area
    real(kind=real64), intent(in) :: weight
    real(kind=real64), intent(in), optional :: Is

    Return Value real(kind=real64)

procedure, public :: raining => raining_Soil

  • public subroutine raining_Soil(this, precipitation_mm)

    Arguments

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

procedure, public :: cultivate => cultivate_Soil

  • public subroutine cultivate_Soil(this, depth, VoidRatio)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    real(kind=real64), intent(in) :: depth
    real(kind=real64), intent(in) :: VoidRatio

procedure, public :: updateVoidRatio => updateVoidRatio_Soil

  • public subroutine updateVoidRatio_Soil(this, range, VoidRatio)

    Arguments

    Type IntentOptional Attributes Name
    class(Soil_), intent(inout) :: this
    type(Range_), intent(in) :: range
    real(kind=real64), intent(in) :: VoidRatio

procedure, public :: sync => syncSoil

  • public subroutine syncSoil(obj, from, mpid)

    Arguments

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