construct_type_hcf_viscosity Module Function

module function construct_type_hcf_viscosity(water_viscosity_model) result(structure)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: water_viscosity_model

Return Value class(abst_hcf_viscosity), allocatable


Calls

proc~~construct_type_hcf_viscosity~~CallsGraph proc~construct_type_hcf_viscosity construct_type_hcf_viscosity calc_viscosity calc_viscosity proc~construct_type_hcf_viscosity->calc_viscosity

Called by

proc~~construct_type_hcf_viscosity~~CalledByGraph proc~construct_type_hcf_viscosity construct_type_hcf_viscosity interface~construct_type_hcf_viscosity construct_type_hcf_viscosity interface~construct_type_hcf_viscosity->proc~construct_type_hcf_viscosity proc~construct_hcf_viscosity construct_hcf_viscosity proc~construct_hcf_viscosity->interface~construct_type_hcf_viscosity proc~create_type_hcf_base_impedance_viscosity create_type_hcf_base_impedance_viscosity proc~create_type_hcf_base_impedance_viscosity->proc~construct_hcf_viscosity proc~create_type_hcf_base_viscosity create_type_hcf_base_viscosity proc~create_type_hcf_base_viscosity->proc~construct_hcf_viscosity proc~create_type_hcf_impedance_viscosity create_type_hcf_impedance_viscosity proc~create_type_hcf_impedance_viscosity->proc~construct_hcf_viscosity proc~create_type_hcf_viscosity create_type_hcf_viscosity proc~create_type_hcf_viscosity->proc~construct_hcf_viscosity proc~initialize_holder_hcfs initialize_holder_hcfs proc~initialize_holder_hcfs->proc~create_type_hcf_base_impedance_viscosity proc~initialize_holder_hcfs->proc~create_type_hcf_base_viscosity proc~initialize_holder_hcfs->proc~create_type_hcf_impedance_viscosity proc~initialize_holder_hcfs->proc~create_type_hcf_viscosity interface~initialize_holder_hcfs holder_hcfs%initialize_holder_hcfs interface~initialize_holder_hcfs->proc~initialize_holder_hcfs

Source Code

    module function construct_type_hcf_viscosity(water_viscosity_model) result(structure)
        implicit none
        integer(int32), intent(in) :: water_viscosity_model
        class(abst_hcf_viscosity), allocatable :: structure

        if (allocated(structure)) deallocate (structure)

        select case (water_viscosity_model)
        case (1)
            allocate (type_hcf_viscosity_exp :: structure)
        case (2)
            allocate (type_hcf_viscosity_supercool :: structure)
        end select

        select type (this => structure)
        type is (type_hcf_viscosity_exp)
            this%mu_zero = this%calc_viscosity(15.0d0)
        type is (type_hcf_viscosity_supercool)
            this%mu_zero = this%calc_viscosity(15.0d0)
        end select

    end function construct_type_hcf_viscosity