patch_init(dim, npatch, nwall, nwind);
for (ip=0; ip < np; ip++) {
bb = aa+ip;
patch_lop(false, false, n, nw, wall, windata);
if (NULL != mask) {
patch_lop(false, false, n, nw, mask, winmask);
for (iw=0; iw < nw; iw++) {
known[iw] = (winmask[iw] != 0.);
}
find_mask(nw, known, bb);
}
for (mis=iw=0; iw < nw; iw++) {
if (!bb->mis[iw]) mis++;
}
if (mis > nh) { /* enough equations */
find_pef(nw, windata, bb, nh);
} else if (ip > 1) { /* use last PEF */
for (ih=0; ih < nh; ih++) {
bb->flt[ih] = (bb-1)->flt[ih];
}
}
patch_close();
}
|