properties_properties_manager Module


Uses

  • module~~properties_properties_manager~~UsesGraph module~properties_properties_manager properties_properties_manager iso_fortran_env iso_fortran_env module~properties_properties_manager->iso_fortran_env module~module_calculate module_calculate module~properties_properties_manager->module~module_calculate module~module_control module_control module~properties_properties_manager->module~module_control module~module_core module_core module~properties_properties_manager->module~module_core module~module_input module_input module~properties_properties_manager->module~module_input module~properties_material_manager properties_material_manager module~properties_properties_manager->module~properties_material_manager calculate_wrf calculate_wrf module~module_calculate->calculate_wrf module~calculate_density calculate_density module~module_calculate->module~calculate_density module~calculate_gcc calculate_gcc module~module_calculate->module~calculate_gcc module~calculate_hcf calculate_hcf module~module_calculate->module~calculate_hcf module~calculate_linalg calculate_linalg module~module_calculate->module~calculate_linalg module~calculate_specific_heat calculate_specific_heat module~module_calculate->module~calculate_specific_heat module~calculate_thermal_conductivity calculate_thermal_conductivity module~module_calculate->module~calculate_thermal_conductivity module~calculate_volumetric_heat_capacity calculate_volumetric_heat_capacity module~module_calculate->module~calculate_volumetric_heat_capacity module~module_control->iso_fortran_env module~module_control->module~module_core module~module_control->module~module_input module~control_iteration control_iteration module~module_control->module~control_iteration module~control_openmp control_openmp module~module_control->module~control_openmp module~control_time control_time module~module_control->module~control_time core_check_nan core_check_nan module~module_core->core_check_nan module~core_allocate core_allocate module~module_core->module~core_allocate module~core_check_range core_check_range module~module_core->module~core_check_range module~core_deallocate core_deallocate module~module_core->module~core_deallocate module~core_error core_error module~module_core->module~core_error module~core_fortran_utils core_fortran_utils module~module_core->module~core_fortran_utils module~core_string_utils core_string_utils module~module_core->module~core_string_utils module~core_types core_types module~module_core->module~core_types module~core_unique core_unique module~module_core->module~core_unique module~core_vtk core_vtk module~module_core->module~core_vtk module~core_vtk_vtk_constants core_vtk_vtk_constants module~module_core->module~core_vtk_vtk_constants module~inout_input inout_input module~module_input->module~inout_input module~properties_material_manager->iso_fortran_env module~properties_material_manager->module~module_calculate module~properties_material_manager->module~module_input module~calculate_density->iso_fortran_env module~calculate_density->module~module_core module~calculate_density->module~module_input module~calculate_gcc->iso_fortran_env module~calculate_gcc->module~module_core module~calculate_gcc->module~module_input module~calculate_hcf->iso_fortran_env module~calculate_hcf->module~module_core module~calculate_hcf->module~module_input module~calculate_linalg_matrix_ops calculate_linalg_matrix_ops module~calculate_linalg->module~calculate_linalg_matrix_ops module~calculate_linalg_matvec calculate_linalg_matvec module~calculate_linalg->module~calculate_linalg_matvec module~calculate_linalg_vector_ops calculate_linalg_vector_ops module~calculate_linalg->module~calculate_linalg_vector_ops module~calculate_specific_heat->iso_fortran_env module~calculate_specific_heat->module~module_core module~calculate_specific_heat->module~module_input module~calculate_thermal_conductivity->iso_fortran_env module~calculate_thermal_conductivity->module~module_core module~calculate_thermal_conductivity->module~module_input module~calculate_volumetric_heat_capacity->iso_fortran_env module~calculate_volumetric_heat_capacity->module~module_core module~calculate_volumetric_heat_capacity->module~calculate_density module~calculate_volumetric_heat_capacity->module~inout_input module~control_iteration->iso_fortran_env module~control_iteration->module~module_calculate module~control_iteration->module~module_input module~control_openmp->iso_fortran_env module~control_openmp->module~module_input module~control_time->iso_fortran_env module~control_time->module~module_core module~control_time->module~module_input module~core_allocate->iso_fortran_env module~core_allocate->module~core_error module~core_check_range->iso_fortran_env module~core_deallocate->iso_fortran_env module~core_deallocate->module~core_error module~core_error->iso_fortran_env stdlib_logger stdlib_logger module~core_error->stdlib_logger module~core_fortran_utils_memory_stats_wrapper core_fortran_utils_memory_stats_wrapper module~core_fortran_utils->module~core_fortran_utils_memory_stats_wrapper module~core_fortran_utils_signal_flag_wrapper core_fortran_utils_signal_flag_wrapper module~core_fortran_utils->module~core_fortran_utils_signal_flag_wrapper module~core_fortran_utils_system_info_wrapper core_fortran_utils_system_info_wrapper module~core_fortran_utils->module~core_fortran_utils_system_info_wrapper module~core_string_utils->iso_fortran_env module~core_string_utils->module~core_allocate module~core_types_array core_types_array module~core_types->module~core_types_array module~core_types_gauss core_types_gauss module~core_types->module~core_types_gauss module~core_types_pointer core_types_pointer module~core_types->module~core_types_pointer module~core_types_variable core_types_variable module~core_types->module~core_types_variable module~core_types_vector core_types_vector module~core_types->module~core_types_vector module~module_type_matrix module_type_matrix module~core_types->module~module_type_matrix module~core_unique->iso_fortran_env module~core_unique->module~core_allocate stdlib_sorting stdlib_sorting module~core_unique->stdlib_sorting module~core_vtk->iso_fortran_env module~core_vtk->module~core_allocate module~core_vtk->module~core_deallocate module~core_vtk->module~core_types module~core_vtk->module~core_unique module~core_vtk->module~core_vtk_vtk_constants iso_c_binding iso_c_binding module~core_vtk->iso_c_binding module~core_vtk_vtk_wrapper core_vtk_vtk_wrapper module~core_vtk->module~core_vtk_vtk_wrapper module~core_vtk_vtu_wrapper core_vtk_vtu_wrapper module~core_vtk->module~core_vtk_vtu_wrapper module~core_vtk->stdlib_sorting module~core_vtk_vtk_constants->iso_fortran_env module~inout_input->iso_fortran_env module~inout_input->module~module_core json_module json_module module~inout_input->json_module module~inout_project_settings inout_project_settings module~inout_input->module~inout_project_settings module~inout_input->stdlib_logger stdlib_strings stdlib_strings module~inout_input->stdlib_strings module~calculate_linalg_matrix_ops->iso_fortran_env module~calculate_linalg_matrix_ops->module~module_core module~calculate_linalg_matvec->iso_fortran_env module~calculate_linalg_matvec->module~module_core module~calculate_linalg_vector_ops->iso_fortran_env module~core_fortran_utils_memory_stats_wrapper->iso_fortran_env module~core_c_utils core_c_utils module~core_fortran_utils_memory_stats_wrapper->module~core_c_utils module~core_fortran_utils_signal_flag_wrapper->iso_fortran_env module~core_fortran_utils_signal_flag_wrapper->iso_c_binding module~core_fortran_utils_signal_flag_wrapper->stdlib_logger module~core_c_utils_signal_flag core_c_utils_signal_flag module~core_fortran_utils_signal_flag_wrapper->module~core_c_utils_signal_flag module~core_fortran_utils_system_info_wrapper->iso_fortran_env module~core_fortran_utils_system_info_wrapper->iso_c_binding module~core_fortran_utils_system_info_wrapper->stdlib_strings module~core_fortran_utils_system_info_wrapper->module~core_c_utils module~core_types_array->iso_fortran_env module~core_types_array->module~core_allocate module~core_types_array->module~core_deallocate module~core_types_gauss->iso_fortran_env module~core_types_pointer->iso_fortran_env module~core_types_variable->iso_fortran_env module~core_types_variable->module~core_allocate module~core_types_vector->iso_fortran_env module~core_vtk_vtk_wrapper->iso_c_binding module~core_vtk_vtu_wrapper->iso_c_binding module~inout_project_settings->iso_fortran_env module~inout_project_settings->module~module_core module~core_types_matrix core_types_matrix module~module_type_matrix->module~core_types_matrix module~core_types_matrix_coo core_types_matrix_coo module~module_type_matrix->module~core_types_matrix_coo module~core_types_matrix_crs core_types_matrix_crs module~module_type_matrix->module~core_types_matrix_crs module~core_types_matrix_dense core_types_matrix_dense module~module_type_matrix->module~core_types_matrix_dense module~core_c_utils->iso_c_binding module~core_c_utils->module~core_c_utils_signal_flag module~core_c_utils_memory_stats core_c_utils_memory_stats module~core_c_utils->module~core_c_utils_memory_stats module~core_c_utils_system_info core_c_utils_system_info module~core_c_utils->module~core_c_utils_system_info module~core_c_utils_signal_flag->iso_c_binding module~core_types_matrix->iso_fortran_env module~core_types_matrix_coo->iso_fortran_env module~core_types_matrix_coo->module~core_allocate module~core_types_matrix_coo->module~core_deallocate module~core_types_matrix_coo->module~core_types_matrix module~core_types_matrix_crs->iso_fortran_env module~core_types_matrix_crs->module~core_allocate module~core_types_matrix_crs->module~core_deallocate module~core_types_matrix_crs->module~core_types_matrix module~core_types_matrix_dense->iso_fortran_env module~core_types_matrix_dense->module~core_allocate module~core_types_matrix_dense->module~core_deallocate module~core_types_matrix_dense->module~core_types_matrix module~core_c_utils_memory_stats->iso_c_binding module~core_c_utils_system_info->iso_c_binding

Used by

  • module~~properties_properties_manager~~UsedByGraph module~properties_properties_manager properties_properties_manager module~module_properties module_properties module~module_properties->module~properties_properties_manager module~hydraulic_hydraulic_assemble hydraulic_hydraulic_assemble module~hydraulic_hydraulic_assemble->module~module_properties module~input_output input_output module~input_output->module~module_properties module~main_ftdss Main_FTDSS module~main_ftdss->module~module_properties module~module_hydraulic module_hydraulic module~main_ftdss->module~module_hydraulic module~module_output module_output module~main_ftdss->module~module_output module~module_thermal module_thermal module~main_ftdss->module~module_thermal module~main_hydraulic main_hydraulic module~main_hydraulic->module~module_properties module~main_hydraulic->module~hydraulic_hydraulic_assemble module~main_thermal main_thermal module~main_thermal->module~module_properties module~input_output_base input_output_base module~input_output_base->module~input_output module~input_output_obaservation input_output_obaservation module~input_output_obaservation->module~input_output module~input_output_overall_base input_output_overall_base module~input_output_overall_base->module~input_output module~input_output_overall_vtk input_output_overall_vtk module~input_output_overall_vtk->module~input_output module~input_output_overall_vtu input_output_overall_vtu module~input_output_overall_vtu->module~input_output module~input_output_system_logger input_output_system_logger module~input_output_system_logger->module~input_output module~main_hydraulic_crs main_hydraulic_crs module~main_hydraulic_crs->module~main_hydraulic module~main_thermal_crs main_thermal_crs module~main_thermal_crs->module~main_thermal module~module_hydraulic->module~main_hydraulic module~module_output->module~input_output module~module_thermal->module~main_thermal

Derived Types

type, private ::  type_material_pointers

Components

Type Visibility Attributes Name Initial
class(abst_den), public, pointer :: den => null()
class(abst_gcc), public, pointer :: gcc => null()
class(abst_hcf), public, pointer :: hcf => null()
class(abst_thc), public, pointer :: thc => null()
class(abst_vhc), public, pointer :: vhc => null()
class(abst_wrf), public, pointer :: wrf => null()

type, public ::  type_phase_property

Components

Type Visibility Attributes Name Initial
real(kind=real64), public :: gas
real(kind=real64), public :: ice
real(kind=real64), public :: solid
real(kind=real64), public :: water

type, public ::  type_properties_manager

Components

Type Visibility Attributes Name Initial
type(type_material_manager), public :: materials

Type-Bound Procedures

generic, public :: calc_dQw_dT => calculate_dQw_dT, calculate_dQw_dT_array
generic, public :: calc_hcf => calculate_hcf_scalar, calculate_hcf_array
generic, public :: calc_hydraulic => calc_hydraulic_properties_scalar, calc_hydraulic_properties_array
procedure, private, pass(self) :: calc_hydraulic_properties_array
procedure, private, pass(self) :: calc_hydraulic_properties_impl_array
procedure, private, pass(self) :: calc_hydraulic_properties_impl_scalar
procedure, private, pass(self) :: calc_hydraulic_properties_scalar
generic, public :: calc_qw => calculate_qw_scalar, calculate_qw_array
generic, public :: calc_thc => calculate_thc_scalar, calculate_thc_array
generic, public :: calc_thermal => calc_thermal_properties_scalar, calc_thermal_properties_array
procedure, private, pass(self) :: calc_thermal_properties_array
procedure, private, pass(self) :: calc_thermal_properties_impl_array
procedure, private, pass(self) :: calc_thermal_properties_impl_scalar
procedure, private, pass(self) :: calc_thermal_properties_scalar
generic, public :: calc_vhc => calculate_vhc_scalar, calculate_vhc_array
generic, public :: calc_water_content => calculate_water_content, calculate_water_content_array
procedure, private, nopass :: calculate_dQw_dT
procedure, private, nopass :: calculate_dQw_dT_array
procedure, private, pass(self) :: calculate_hcf_array
procedure, private, pass(self) :: calculate_hcf_impl_array
procedure, private, pass(self) :: calculate_hcf_impl_scalar
procedure, private, pass(self) :: calculate_hcf_scalar
procedure, private, pass(self) :: calculate_qw_array
procedure, private, pass(self) :: calculate_qw_scalar
procedure, private, pass(self) :: calculate_thc_array
procedure, private, pass(self) :: calculate_thc_impl_array
procedure, private, pass(self) :: calculate_thc_impl_scalar
procedure, private, pass(self) :: calculate_thc_scalar
procedure, private, pass(self) :: calculate_vhc_array
procedure, private, pass(self) :: calculate_vhc_impl_array
procedure, private, pass(self) :: calculate_vhc_impl_scalar
procedure, private, pass(self) :: calculate_vhc_scalar
procedure, private, nopass :: calculate_water_content
procedure, private, nopass :: calculate_water_content_array
procedure, public, pass(self) :: get_phase_dens
procedure, public, pass(self) :: get_phase_sphs
procedure, public, pass(self) :: get_phase_thcs
procedure, public, pass(self) :: get_phase_vhcs
procedure, private, pass(self) :: get_pointers_for_region
procedure, public :: initialize => initialize_properties_manager

Functions

private function calculate_hcf_array(self, material_id, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_hcf_impl_array(self, ptrs, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_hcf_impl_scalar(self, ptrs, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function calculate_hcf_scalar(self, material_id, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function calculate_qw_array(self, material_id, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_qw_scalar(self, material_id, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function calculate_thc_array(self, material_id, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_thc_impl_array(self, ptrs, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_thc_impl_scalar(self, ptrs, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function calculate_thc_scalar(self, material_id, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function calculate_vhc_array(self, material_id, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_vhc_impl_array(self, ptrs, states) result(vals)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))

private function calculate_vhc_impl_scalar(self, ptrs, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function calculate_vhc_scalar(self, material_id, state) result(val)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: state

Return Value real(kind=real64)

private function get_phase_dens(self, material_id) result(phase_property)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id

Return Value type(type_phase_property)

private function get_phase_sphs(self, material_id) result(phase_property)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id

Return Value type(type_phase_property)

private function get_phase_thcs(self, material_id) result(phase_property)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id

Return Value type(type_phase_property)

private function get_phase_vhcs(self, material_id) result(phase_property)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id

Return Value type(type_phase_property)


Subroutines

private subroutine calc_hydraulic_properties_array(self, material_id, states, kflhs)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: states(:)
real(kind=real64), intent(inout) :: kflhs(size(states))

private subroutine calc_hydraulic_properties_impl_array(self, ptrs, states, kflhs)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)
real(kind=real64), intent(inout) :: kflhs(size(states))

private subroutine calc_hydraulic_properties_impl_scalar(self, state, ptrs, kflh)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_state), intent(inout) :: state
type(type_material_pointers), intent(in) :: ptrs
real(kind=real64), intent(inout) :: kflh

private subroutine calc_hydraulic_properties_scalar(self, material_id, state, kflh)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: state
real(kind=real64), intent(inout) :: kflh

private subroutine calc_thermal_properties_array(self, material_id, states, thcs, vhcs)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: states(:)
real(kind=real64), intent(inout) :: thcs(size(states))
real(kind=real64), intent(inout) :: vhcs(size(states))

private subroutine calc_thermal_properties_impl_array(self, ptrs, states, thcs, vhcs)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)
real(kind=real64), intent(inout) :: thcs(size(states))
real(kind=real64), intent(inout) :: vhcs(size(states))

private subroutine calc_thermal_properties_impl_scalar(self, state, ptrs, thc, vhc)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_state), intent(inout) :: state
type(type_material_pointers), intent(in) :: ptrs
real(kind=real64), intent(inout) :: thc
real(kind=real64), intent(inout) :: vhc

private subroutine calc_thermal_properties_scalar(self, material_id, state, thc, vhc)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: material_id
type(type_state), intent(inout) :: state
real(kind=real64), intent(inout) :: thc
real(kind=real64), intent(inout) :: vhc

private pure elemental subroutine calculate_dQw_dT(ptrs, state)

Arguments

Type IntentOptional Attributes Name
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: state

private pure subroutine calculate_dQw_dT_array(ptrs, states)

Arguments

Type IntentOptional Attributes Name
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)

private pure elemental subroutine calculate_water_content(ptrs, state)

Arguments

Type IntentOptional Attributes Name
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: state

private pure subroutine calculate_water_content_array(ptrs, states)

Arguments

Type IntentOptional Attributes Name
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)

private subroutine get_pointers_for_region(self, target_id, material_id, ptrs)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
integer(kind=int32), intent(in) :: target_id
integer(kind=int32), intent(in) :: material_id
type(type_material_pointers), intent(inout) :: ptrs

private subroutine initialize_properties_manager(self, input, ierr)

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(inout) :: self
type(type_input), intent(in) :: input
integer(kind=int32), intent(inout) :: ierr