private pure subroutine fill_kv_scalar_buf(kv_buf, kappa, nx, ny, nz)
Broadcast the scalar viscosity kappa into the
interface-located workspace. Boundary interfaces (bed at
k=1, surface at k=nz+1) are forced to zero to match the
closed BCs the column solve assumes; the original scalar
kernel hard-coded those BCs via α_1 = 0 and β_nz = 0.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
integer,
private
::
i
integer,
private
::
j
integer,
private
::
k
Source Code
pure subroutine fill_kv_scalar_buf(kv_buf,kappa,nx,ny,nz)!! Broadcast the scalar viscosity `kappa` into the!! interface-located workspace. Boundary interfaces (bed at!! k=1, surface at k=nz+1) are forced to zero to match the!! closed BCs the column solve assumes; the original scalar!! kernel hard-coded those BCs via `α_1 = 0` and `β_nz = 0`.integer,intent(in)::nx,ny,nzreal(wp),intent(in)::kappareal(wp),intent(out)::kv_buf(nx,ny,nz+1)integer::i,j,kdoconcurrent(k=1:nz+1,j=1:ny,i=1:nx)if(k==1.or.k==nz+1)thenkv_buf(i,j,k)=0.0_wpelsekv_buf(i,j,k)=kappaend if end do end subroutine fill_kv_scalar_buf