type_properties_manager Derived Type

type, public :: type_properties_manager


Inherits

type~~type_properties_manager~~InheritsGraph type~type_properties_manager type_properties_manager type~type_material_manager type_material_manager type~type_properties_manager->type~type_material_manager materials holder_wrfs holder_wrfs type~type_material_manager->holder_wrfs wrf type~holder_dens holder_dens type~type_material_manager->type~holder_dens den type~holder_gccs holder_gccs type~type_material_manager->type~holder_gccs gcc type~holder_hcfs holder_hcfs type~type_material_manager->type~holder_hcfs hcf type~holder_sphs holder_sphs type~type_material_manager->type~holder_sphs sph type~holder_thcs holder_thcs type~type_material_manager->type~holder_thcs thc type~holder_vhcs holder_vhcs type~type_material_manager->type~holder_vhcs vhc type~abst_den abst_den type~holder_dens->type~abst_den p type~abst_gcc abst_gcc type~holder_gccs->type~abst_gcc p type~abst_hcf abst_hcf type~holder_hcfs->type~abst_hcf p type~abst_sph abst_sph type~holder_sphs->type~abst_sph p type~abst_thc abst_thc type~holder_thcs->type~abst_thc p type~abst_vhc abst_vhc type~holder_vhcs->type~abst_vhc p type~abst_hcf_base abst_hcf_base type~abst_hcf->type~abst_hcf_base base type~abst_hcf_impedance abst_hcf_impedance type~abst_hcf->type~abst_hcf_impedance impedance type~abst_hcf_viscosity abst_hcf_viscosity type~abst_hcf->type~abst_hcf_viscosity viscosity

Inherited by

type~~type_properties_manager~~InheritedByGraph type~type_properties_manager type_properties_manager type~type_ftdss type_ftdss type~type_ftdss->type~type_properties_manager property

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

  • 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_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))

procedure, private, pass(self) :: calc_hydraulic_properties_array

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

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

  • 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_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))

generic, public :: calc_thc => calculate_thc_scalar, calculate_thc_array

  • 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_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 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 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))

procedure, private, pass(self) :: calc_thermal_properties_array

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

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

  • 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

generic, public :: calc_vhc => calculate_vhc_scalar, calculate_vhc_array

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

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

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

procedure, private, pass(self) :: calculate_hcf_impl_array

procedure, private, pass(self) :: calculate_hcf_impl_scalar

procedure, private, pass(self) :: calculate_hcf_scalar

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

procedure, private, pass(self) :: calculate_qw_array

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

procedure, private, pass(self) :: calculate_qw_scalar

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

procedure, private, pass(self) :: calculate_thc_array

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

procedure, private, pass(self) :: calculate_thc_impl_array

procedure, private, pass(self) :: calculate_thc_impl_scalar

procedure, private, pass(self) :: calculate_thc_scalar

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

procedure, private, pass(self) :: calculate_vhc_array

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

procedure, private, pass(self) :: calculate_vhc_impl_array

procedure, private, pass(self) :: calculate_vhc_impl_scalar

procedure, private, pass(self) :: calculate_vhc_scalar

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

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

Source Code

    type :: type_properties_manager
        type(type_material_manager) :: materials
    contains
        procedure, public :: initialize => initialize_properties_manager

        ! --- Public Generic Interfaces (API remains unchanged) ---
        generic, public :: calc_thc => calculate_thc_scalar, calculate_thc_array
        generic, public :: calc_vhc => calculate_vhc_scalar, calculate_vhc_array
        generic, public :: calc_qw => calculate_qw_scalar, calculate_qw_array
        generic, public :: calc_water_content => calculate_water_content, calculate_water_content_array
        generic, public :: calc_dQw_dT => calculate_dQw_dT, calculate_dQw_dT_array
        generic, public :: calc_thermal => calc_thermal_properties_scalar, calc_thermal_properties_array
        generic, public :: calc_hcf => calculate_hcf_scalar, calculate_hcf_array
        generic, public :: calc_hydraulic => calc_hydraulic_properties_scalar, calc_hydraulic_properties_array

        ! --- Wrapper Procedures (Public facing) ---
        procedure, private, pass(self) :: calculate_thc_scalar
        procedure, private, pass(self) :: calculate_thc_array
        procedure, private, pass(self) :: calculate_vhc_scalar
        procedure, private, pass(self) :: calculate_vhc_array
        procedure, private, pass(self) :: calculate_qw_scalar
        procedure, private, pass(self) :: calculate_qw_array
        procedure, private, pass(self) :: calc_thermal_properties_scalar
        procedure, private, pass(self) :: calc_thermal_properties_array
        procedure, private, pass(self) :: calculate_hcf_scalar
        procedure, private, pass(self) :: calculate_hcf_array
        procedure, private, pass(self) :: calc_hydraulic_properties_scalar
        procedure, private, pass(self) :: calc_hydraulic_properties_array

        ! --- Implementation Procedures (Private, do the actual work) ---
        procedure, private, pass(self) :: calculate_thc_impl_scalar
        procedure, private, pass(self) :: calculate_thc_impl_array
        procedure, private, pass(self) :: calculate_vhc_impl_scalar
        procedure, private, pass(self) :: calculate_vhc_impl_array
        procedure, private, pass(self) :: calc_thermal_properties_impl_scalar
        procedure, private, pass(self) :: calc_thermal_properties_impl_array
        procedure, private, pass(self) :: calculate_hcf_impl_scalar
        procedure, private, pass(self) :: calculate_hcf_impl_array
        procedure, private, pass(self) :: calc_hydraulic_properties_impl_scalar
        procedure, private, pass(self) :: calc_hydraulic_properties_impl_array

        procedure, private, nopass :: calculate_water_content
        procedure, private, nopass :: calculate_water_content_array
        procedure, private, nopass :: calculate_dQw_dT
        procedure, private, nopass :: calculate_dQw_dT_array

        procedure, public, pass(self) :: get_phase_dens
        procedure, public, pass(self) :: get_phase_vhcs
        procedure, public, pass(self) :: get_phase_thcs
        procedure, public, pass(self) :: get_phase_sphs

        procedure, private, pass(self) :: get_pointers_for_region
    end type type_properties_manager