calc_vhc_gauss_point_3phase_apparent Module Function

pure elemental module function calc_vhc_gauss_point_3phase_apparent(self, state) result(VHC)

Arguments

Type IntentOptional Attributes Name
class(type_vhc_3phase_apparent), intent(in) :: self
type(type_state), intent(in) :: state

Return Value real(kind=real64)


Calls

proc~~calc_vhc_gauss_point_3phase_apparent~~CallsGraph proc~calc_vhc_gauss_point_3phase_apparent calc_vhc_gauss_point_3phase_apparent interface~calc_vhc_3a calc_vhc_3a proc~calc_vhc_gauss_point_3phase_apparent->interface~calc_vhc_3a proc~calc_vhc_3a calc_vhc_3a interface~calc_vhc_3a->proc~calc_vhc_3a

Called by

proc~~calc_vhc_gauss_point_3phase_apparent~~CalledByGraph proc~calc_vhc_gauss_point_3phase_apparent calc_vhc_gauss_point_3phase_apparent interface~calc_vhc_gauss_point_3phase_apparent type_vhc_3phase_apparent%calc_vhc_gauss_point_3phase_apparent interface~calc_vhc_gauss_point_3phase_apparent->proc~calc_vhc_gauss_point_3phase_apparent

Source Code

    module pure elemental function calc_vhc_gauss_point_3phase_apparent(self, state) result(VHC)
        implicit none
        class(type_vhc_3phase_apparent), intent(in) :: self
        type(type_state), intent(in) :: state
        real(real64) :: VHC

        real(real64) :: phi1, phi2, phi3

        phi1 = 1.0d0 - state%porosity
        phi2 = state%water_content
        if (phi2 > state%porosity) phi2 = state%porosity
        if (phi2 < 0.0d0) phi2 = 0.0d0
        phi3 = 1.0d0 - phi1 - phi2

        VHC = calc_vhc_3a(self%material1, phi1, self%material2, phi2, self%material3, phi3, &
                          state%latent_heat, state%density_water, state%dQw_dT)
    end function calc_vhc_gauss_point_3phase_apparent