Divergence_Vector3D Subroutine

public subroutine Divergence_Vector3D(this, df)

Arguments

TypeIntentOptionalAttributesName
class(Vector3D), intent(in) :: this
type(c_ptr), intent(inout) :: df

Contents

Source Code


Source Code

  subroutine Divergence_Vector3D(this,df)
    implicit none
    class(Vector3D),intent(in) :: this
    type(c_ptr),intent(inout) :: df
    !Local
    real(prec),pointer :: f_p(:,:,:,:,:,:)
    type(c_ptr) :: fc

    call c_f_pointer(this%interior_gpu,f_p, &
                     [this%interp%N+1,this%interp%N+1,this%interp%N+1,this%nelem,this%nvar,3])

    fc = c_loc(f_p(1,1,1,1,1,1))
    call self_blas_matrixop_dim1_3d(this%interp%dMatrix_gpu,fc,df, &
                                    this%interp%N,this%interp%N,this%nvar,this%nelem,this%blas_handle)

    fc = c_loc(f_p(1,1,1,1,1,2))
    call self_blas_matrixop_dim2_3d(this%interp%dMatrix_gpu,fc,df, &
                                    1.0_c_prec,this%interp%N,this%interp%N,this%nvar,this%nelem,this%blas_handle)

    fc = c_loc(f_p(1,1,1,1,1,3))
    call self_blas_matrixop_dim3_3d(this%interp%dMatrix_gpu,fc,df, &
                                    1.0_c_prec,this%interp%N,this%interp%N,this%nvar,this%nelem,this%blas_handle)

    f_p => null()

  endsubroutine Divergence_Vector3D