SoilClass Module



Variables

Type Visibility Attributes Name Initial
integer(kind=int32), public, parameter :: PF_N2Vs_Imai = 1
integer(kind=int32), public, parameter :: PF_N2Vs_OhtaGoto = 2
integer(kind=int32), public, parameter :: PF_N2Vs_JAPANROAD_1 = 3
integer(kind=int32), public, parameter :: PF_N2Vs_JAPANROAD_2 = 4

Derived Types

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
procedure, public, pass :: init_by_latlon_Soil
generic, public :: init => initSoil, init_by_latlon_Soil
generic, public :: create => initSoil, init_by_latlon_Soil
generic, public :: new => initSoil, init_by_latlon_Soil
procedure, public :: nn => nn_Soil
procedure, public :: ne => ne_Soil
procedure, public :: nne => nne_Soil
procedure, public :: nd => nd_Soil
procedure, public :: import => importSoil
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
procedure, public :: getNvalue => getNvalueSoil
procedure, public :: convertNvalue2Vs => convertNvalue2VsSoil
procedure, public :: GL => Ground_level_of_Soil
procedure, public :: setSoilType => setSoilType_SoilClass
procedure, public :: JGS_coeff_subgrade_react => JGS_coeff_subgrade_react_Soil
procedure, public :: JGS_subgrade_displacement => JGS_subgrade_displacement_Soil
procedure, public :: raining => raining_Soil
procedure, public :: cultivate => cultivate_Soil
procedure, public :: updateVoidRatio => updateVoidRatio_Soil
procedure, public :: sync => syncSoil

Functions

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, (:)

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, (:)

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)

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)

public function Ground_level_of_Soil(this) result(ret)

Arguments

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

Return Value real(kind=real64)

public function nn_Soil(this) result(ret)

Arguments

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

Return Value integer(kind=int32)

public function ne_Soil(this) result(ret)

Arguments

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

Return Value integer(kind=int32)

public function nne_Soil(this) result(ret)

Arguments

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

Return Value integer(kind=int32)

public function nd_Soil(this) result(ret)

Arguments

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

Return Value integer(kind=int32)


Subroutines

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

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)

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 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

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

public subroutine diagnosisSoil(obj, FileName)

Arguments

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

public subroutine gmshSoil(obj, name)

Arguments

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

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

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

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

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

public subroutine mshSoil(obj, name)

Arguments

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

public subroutine PreFlightCheckSoil(obj)

Arguments

Type IntentOptional Attributes Name
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 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

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

public subroutine raining_Soil(this, precipitation_mm)

Arguments

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

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

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

public subroutine setSoilType_SoilClass(this, config)

Arguments

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