assemble_in_mat_sol Subroutine

public subroutine assemble_in_mat_sol(mat, num, nelt, nline, tind, m_elt, compt)


Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout) :: mat

mat_solv type

integer(kind=I4), intent(in) :: num

element number

integer(kind=I4), intent(in) :: nelt

size of elemental matrix

integer(kind=I4), intent(in) :: nline

number of lines

integer(kind=I4), intent(in), dimension(nelt):: tind

index table of elemental matrix

real(kind=R8), intent(in), dimension(nelt, nelt):: m_elt

elemental matrix

integer(kind=I4), intent(inout), dimension(2):: compt

number to index the position in the solver matrix


Called by

proc~~assemble_in_mat_sol~~CalledByGraph proc~assemble_in_mat_sol assemble_in_mat_sol proc~assembly_fe_film_reynolds assembly_FE_film_reynolds proc~assembly_fe_film_reynolds->proc~assemble_in_mat_sol proc~solve_fe_film solve_FE_film proc~solve_fe_film->proc~assembly_fe_film_reynolds proc~compute_corner_fluxes compute_corner_fluxes proc~compute_corner_fluxes->proc~assembly_fe_film_reynolds proc~elementary_full_domain_fe_film_reynolds elementary_full_domain_FE_film_reynolds proc~elementary_full_domain_fe_film_reynolds->proc~solve_fe_film proc~elementary_full_domain_fe_film_reynolds->proc~compute_corner_fluxes proc~multi_scale_solve_fe_film multi_scale_solve_fe_film proc~multi_scale_solve_fe_film->proc~solve_fe_film proc~solve_fe_prob solve_fe_prob proc~solve_fe_prob->proc~solve_fe_film proc~solve_fe_prob->proc~compute_corner_fluxes proc~solve_ms_prob solve_ms_prob proc~solve_ms_prob->proc~multi_scale_solve_fe_film proc~test_rough_fe test_rough_fe proc~test_rough_fe->proc~solve_fe_prob proc~test_bearing_x_fe test_bearing_x_fe proc~test_bearing_x_fe->proc~solve_fe_prob proc~test_pocket_fe test_pocket_fe proc~test_pocket_fe->proc~solve_fe_prob proc~test_bearing_y_fe test_bearing_y_fe proc~test_bearing_y_fe->proc~solve_fe_prob proc~test_slider_fe test_slider_fe proc~test_slider_fe->proc~solve_fe_prob proc~run_test run_test proc~run_test->proc~test_rough_fe proc~run_test->proc~test_bearing_x_fe proc~run_test->proc~test_pocket_fe proc~run_test->proc~test_bearing_y_fe proc~run_test->proc~test_slider_fe proc~test_slider_ms test_slider_ms proc~run_test->proc~test_slider_ms proc~test_rough_ms test_rough_ms proc~run_test->proc~test_rough_ms proc~test_slider_ms->proc~solve_ms_prob proc~test_rough_ms->proc~solve_ms_prob program~main main program~main->proc~run_test

Contents

Source Code


Source Code

   subroutine assemble_in_mat_sol(mat, num, nelt, nline, tind, m_elt, compt)
   implicit none
   type(MAT_SOLV),   intent(inout)                        :: mat     !! *mat_solv type*
   integer(kind=I4), intent(in   )                        :: num     !! *element number*
   integer(kind=I4), intent(in   )                        :: nelt    !! *size of elemental matrix*
   integer(kind=I4), intent(in   )                        :: nline   !! *number of lines*
   integer(kind=I4), intent(in   ), dimension(nelt)       :: tind    !! *index table of elemental matrix*
   real(kind=R8),    intent(in   ), dimension(nelt, nelt) :: m_elt   !! *elemental matrix*
   integer(kind=I4), intent(inout), dimension(2)          :: compt   !! *number to index the position in the solver matrix*

      integer(kind=I4) :: i, j

      ! check compt
      if (compt(2) > mat%nt) stop 'compt > matrix size in assemble_in_mat_sol'

      do j = 1, nline
         mat%eltvar(compt(1)) = tind(j)
         compt(1) = compt(1) +1
      enddo
      mat%eltptr(num+1) = compt(1)

      do j = 1, nelt
         do i = 1, nelt
            mat%a_elt(compt(2)) = m_elt(i, j)
            compt(2) = compt(2) + 1
         enddo
      enddo
   return
   endsubroutine assemble_in_mat_sol