/*-------------------------------------------------------------------- NAS Parallel Benchmarks 2.3 UPC version - BT source code tree 2004 - GWU - HPCL -- check bt.c for complete information --------------------------------------------------------------------*/ #include #include #include "functions.h" void z_backsubstitute( int first, int last, int c ) { /*-------------------------------------------------------------------- --------------------------------------------------------------------*/ /*-------------------------------------------------------------------- c back solve : if last cell, then generate U(ksize)=rhs(ksize) c else assume U(ksize) is loaded in un_pack backsub_info c so just use it c after call u(kstart) will be sent to next cell --------------------------------------------------------------------*/ int i, j, k, m, n, isize, jsize, ksize, kstart; k = 0; kstart = 0; isize = cell_size[c][0] - endc[c][0] - 1; jsize = cell_size[c][1] - endc[c][1] - 1; ksize = cell_size[c][2] - 1; if( last == 0 ) { for( i=startc[c][0]; i<=isize; i++ ) { for( j=startc[c][1]; j<=jsize; j++ ) { /*-------------------------------------------------------------------- c U(ksize) uses info from previous cell if not last cell c-------------------------------------------------------------------*/ for( n=0; nkstart; k-- ) { for( n=0; n