Creation and use of a new VecScatter object ZV_all that will be duplicated over all processors, instead of using ZV_SeqZero that is available only on the zeroth processor,
Rewritting/reorganization of both non-zeros counting and filling loops for ZM_MC and ZM_M, so that counting and filling procedure follow the same pattern,
Some allocations/initializations have been moved to match the new loops and also fit better into the routine outlines.
Also, IMPORTANT: I look into including the case of broken network (with rapid_net_mat_break.f90) when initializing IV_cols/IV_cols_duplicate. These two vectors are initialized using IM_index_up. However, the IM_index_up variable is updated, along with ZM_Net, in rapid_net_mat_break.f90. So, the case of broken network seems to be accounted for.
The main changes with the new commits are:
Also, IMPORTANT: I look into including the case of broken network (with rapid_net_mat_break.f90) when initializing IV_cols/IV_cols_duplicate. These two vectors are initialized using IM_index_up. However, the IM_index_up variable is updated, along with ZM_Net, in rapid_net_mat_break.f90. So, the case of broken network seems to be accounted for.