newtonian_viscosity_mod Module

Provides a simple concrete implementation for the abstract_viscosity type, for a Newtonian fluid.


Uses

  • module~~newtonian_viscosity_mod~~UsesGraph module~newtonian_viscosity_mod newtonian_viscosity_mod module~viscosity_mod viscosity_mod module~newtonian_viscosity_mod->module~viscosity_mod factual_mod factual_mod module~newtonian_viscosity_mod->factual_mod iso_fortran_env iso_fortran_env module~newtonian_viscosity_mod->iso_fortran_env module~viscosity_mod->factual_mod module~viscosity_mod->iso_fortran_env

Used by

  • module~~newtonian_viscosity_mod~~UsedByGraph module~newtonian_viscosity_mod newtonian_viscosity_mod module~ice_shelf_mod ice_shelf_mod module~ice_shelf_mod->module~newtonian_viscosity_mod

Contents


Interfaces

public interface newtonian_viscosity

  • private pure function constructor(viscosity_value) result(this)

    Arguments

    Type IntentOptional AttributesName
    real(kind=r8), intent(in) :: viscosity_value

    The numerical value of the viscosity which this type is meant to return.

    Return Value type(newtonian_viscosity)

    The viscosity object being created.


Derived Types

type, public, extends(abstract_viscosity) :: newtonian_viscosity

An implementation of Newtonian (constant) viscosity for a glacier.

Components

TypeVisibility AttributesNameInitial
real(kind=r8), private :: viscosity_value =1.0_r8

Constructor

private pure function constructor(viscosity_value)

Type-Bound Procedures

procedure, public :: ice_viscosity => newtonian_ice_viscosity

Returns the viscosity for the ice.


Functions

private pure function constructor(viscosity_value) result(this)

Arguments

Type IntentOptional AttributesName
real(kind=r8), intent(in) :: viscosity_value

The numerical value of the viscosity which this type is meant to return.

Return Value type(newtonian_viscosity)

The viscosity object being created.

private function newtonian_ice_viscosity(this, velocity, temperature, time) result(viscosity)

Arguments

Type IntentOptional AttributesName
class(newtonian_viscosity), intent(in) :: this
class(vector_field), intent(in) :: velocity

The velocity field of the ice for which the velocity is being calculated

real(kind=r8), intent(in) :: temperature

The temperature of the ice for which viscosity is being calculated.

real(kind=r8), intent(in), optional :: time

The time at which the viscosity is being calculated. If not present then assumed to be same as previous value passed.

Return Value class(scalar_field), pointer

The value of the viscosity