krn_coo_to_csr Subroutine

public subroutine krn_coo_to_csr(me)

Type Bound

krn_t

Arguments

Type IntentOptional Attributes Name
class(krn_t), intent(inout) :: me

Calls

proc~~krn_coo_to_csr~~CallsGraph proc~krn_coo_to_csr krn_t%krn_coo_to_csr proc~coo_to_csr coo_to_csr proc~krn_coo_to_csr->proc~coo_to_csr mkl_sparse_convert_csr mkl_sparse_convert_csr proc~coo_to_csr->mkl_sparse_convert_csr mkl_sparse_d_create_coo mkl_sparse_d_create_coo proc~coo_to_csr->mkl_sparse_d_create_coo mkl_sparse_d_export_csr mkl_sparse_d_export_csr proc~coo_to_csr->mkl_sparse_d_export_csr proc~check_status check_status proc~coo_to_csr->proc~check_status interface~to_str to_str proc~check_status->interface~to_str proc~str_from_int str_from_int interface~to_str->proc~str_from_int proc~str_from_real str_from_real interface~to_str->proc~str_from_real

Called by

proc~~krn_coo_to_csr~~CalledByGraph proc~krn_coo_to_csr krn_t%krn_coo_to_csr program~reims_p reims_p program~reims_p->proc~krn_coo_to_csr

Source Code

subroutine krn_coo_to_csr(me)
    class(krn_t), intent(inout) :: me
    integer :: nb_state_vars,i
    type(coo_csr_t(:)), allocatable :: temp
    nb_state_vars = sum(me%nb_state_vars)
    call coo_to_csr(nb_state_vars, me%exp)

    if(size(me%imp%coo_col)>me%imp%idx-1) then
        allocate(coo_csr_t(me%imp%idx-1)::temp) 
        do i = 1, me%imp%idx-1
          temp%coo_col(i) = me%imp%coo_col(i)
          temp%coo_row(i) = me%imp%coo_row(i)
          temp%coo_ptr(i) = me%imp%coo_ptr(i)

          temp%csr_val(i) = me%imp%csr_val(i)
          temp%perm(i)    = me%imp%perm(i)
        enddo          

        call move_alloc(temp,me%imp)
    endif

    call coo_to_csr(nb_state_vars, me%imp)
end subroutine krn_coo_to_csr