vmix_split_kd_heat_salt_impl Subroutine

private pure subroutine vmix_split_kd_heat_salt_impl(nx, ny, nzp1, kt, ks)

Explicit-shape args so the do concurrent stays descriptor-walk free (assumed-shape dummies in a do concurrent make NVHPC walk descriptors per launch – this runs every stage).

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nx
integer, intent(in) :: ny
integer, intent(in) :: nzp1
real(kind=wp), intent(in) :: kt(nx,ny,nzp1)
real(kind=wp), intent(inout) :: ks(nx,ny,nzp1)

Called by

proc~~vmix_split_kd_heat_salt_impl~~CalledByGraph proc~vmix_split_kd_heat_salt_impl vmix_split_kd_heat_salt_impl proc~vmix_split_kd_heat_salt vmix_split_kd_heat_salt proc~vmix_split_kd_heat_salt->proc~vmix_split_kd_heat_salt_impl proc~vmix_apply_in_stage vmix_apply_in_stage proc~vmix_apply_in_stage->proc~vmix_split_kd_heat_salt proc~run_stage run_stage proc~run_stage->proc~vmix_apply_in_stage proc~run_stage_split run_stage_split proc~run_stage_split->proc~vmix_apply_in_stage proc~ocean_dyn_step ocean_dyn_step proc~ocean_dyn_step->proc~run_stage proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~run_stage_split proc~engine_step engine_step proc~engine_step->proc~ocean_dyn_step proc~engine_step->proc~ocean_dyn_step_split

Variables

Type Visibility Attributes Name Initial
integer, private :: i
integer, private :: j
integer, private :: k

Source Code

   pure subroutine vmix_split_kd_heat_salt_impl(nx, ny, nzp1, kt, ks)
      !! Explicit-shape args so the do concurrent stays descriptor-walk
      !! free (assumed-shape dummies in a do concurrent make NVHPC walk
      !! descriptors per launch -- this runs every stage).
      integer, intent(in) :: nx, ny, nzp1
      real(wp), intent(in) :: kt(nx, ny, nzp1)
      real(wp), intent(inout) :: ks(nx, ny, nzp1)

      integer :: i, j, k

      do concurrent(k=1:nzp1, j=1:ny, i=1:nx)
         ks(i, j, k) = kt(i, j, k)
      end do
   end subroutine vmix_split_kd_heat_salt_impl