array_operations_add_scalar_to_diagonal_submod.f90 Source File


This file depends on

sourcefile~~array_operations_add_scalar_to_diagonal_submod.f90~~EfferentGraph sourcefile~array_operations_add_scalar_to_diagonal_submod.f90 array_operations_add_scalar_to_diagonal_submod.f90 sourcefile~array_operations_mod.f90 array_operations_mod.f90 sourcefile~array_operations_add_scalar_to_diagonal_submod.f90->sourcefile~array_operations_mod.f90

Contents


Source Code

submodule (array_operations_mod) array_operations_add_scalar_to_diagonal_submod
   !! a submodule for add_scalar_to_diagonal subroutines
   implicit none
   !---------------------------------------------------------------------------!
   contains
      !------------------------------------------------------------------------!
      !------------------------------------------------------------------------!
      module subroutine add_scalar_to_diagonal_int32(matrix_, scalar_)
          !! add a scalar value to the matrix diagonal  (integer).
          integer(int32), intent(inout) :: matrix_(:,:)
          integer(int32), intent(in) :: scalar_
          !--------------------------------------------------------------------!
          integer(int32) :: i_, size_
          !--------------------------------------------------------------------!
          size_ = size(matrix_, dim = 1)
          !--------------------------------------------------------------------!
          do i_ = 1, size_
            matrix_(i_, i_) = matrix_(i_, i_) + scalar_
          enddo
          !--------------------------------------------------------------------!
      end subroutine add_scalar_to_diagonal_int32
      !------------------------------------------------------------------------!
      !------------------------------------------------------------------------!
      module subroutine add_scalar_to_diagonal_sp(matrix_, scalar_)
          !! add a scalar value to the matrix diagonal (single precision).
          real(sp), intent(inout) :: matrix_(:,:)
          real(sp), intent(in) :: scalar_
          !--------------------------------------------------------------------!
          integer(int32) :: i_, size_
          !--------------------------------------------------------------------!
          size_ = size(matrix_, dim = 1)
          !--------------------------------------------------------------------!
          do i_ = 1, size_
            matrix_(i_, i_) = matrix_(i_, i_) + scalar_
          enddo
         !---------------------------------------------------------------------!
      end subroutine add_scalar_to_diagonal_sp
      !------------------------------------------------------------------------!
      !------------------------------------------------------------------------!
      module subroutine add_scalar_to_diagonal_dp(matrix_, scalar_)
         !! add a scalar value to the matrix diagonal 
         real(dp), intent(inout) :: matrix_(:,:)
         real(dp), intent(in) :: scalar_
         !---------------------------------------------------------------------!
         integer(int32) :: i_, size_
         !---------------------------------------------------------------------!
         size_ = size(matrix_, dim = 1)
         !---------------------------------------------------------------------!
         do i_ = 1, size_
           matrix_(i_, i_) = matrix_(i_, i_) + scalar_
         enddo
         !---------------------------------------------------------------------!
      end subroutine add_scalar_to_diagonal_dp
   !---------------------------------------------------------------------------!
end submodule array_operations_add_scalar_to_diagonal_submod