eq_update_vars_interface Abstract Interface

abstract interface
public subroutine eq_update_vars_interface(this, source, dest, source2, scalar, scalar2)

Arguments

Type IntentOptional AttributesName
class(equation), intent(inout), target:: this

The routine is called on this equation.

integer(kind=ip), intent(in) :: source

The first source for the update. Can be either -1 (RHS), 0 (main) or between 1 and ntmp (temporary).

integer(kind=ip), intent(in) :: dest

The destination for the update. Can be either -1 (RHS), 0 (main) or between 1 and ntmp (temporary).

integer(kind=ip), intent(in), optional :: source2

The second source for the update. Can be either -1 (RHS), 0 (main) or between 1 and ntmp (temporary).

real(kind=wp), intent(in), optional :: scalar

The scalar multiplying the first source.

real(kind=wp), intent(in), optional :: scalar2

The scalar multiplying the second source.

Description

The routine that updates the variables defined in an equation. This is used to make the time integrator agnostic to how storage for the variables in the system of equations are set up.

After completion: this%var(dest) = scalar*this%var(source)+scalar2*this%var(source2)