Index: src/fill_fblock.c =================================================================== --- src/fill_fblock.c (revision 9894) +++ src/fill_fblock.c (working copy) @@ -23,6 +23,7 @@ ibandB, irfAfid, irfBfid, + idfABfid, ants[64], swapped, present, @@ -44,7 +45,8 @@ DifxBaseline *pbl; DifxDatastream *pdsA, *pdsB; - DifxFreq *pfr; + DifxFreq *pfr, + *pdfr; // first fill in the frequency block structure @@ -55,6 +57,8 @@ pdsB = D->datastream + pbl->dsB; for (i=0; inFreq; i++) { + idfABfid = pbl->destFq[i]; + pdfr = D->freq + idfABfid; for (j=0; j<*pbl->nPolProd; j++) { ibandA = pbl->bandA[i][j]; @@ -76,6 +80,13 @@ irfAfid = pdsA->zoomFreqId[irbAfid]; pfr = D->freq + irfAfid; } + if (irfAfid != idfABfid) + { // bandA is member of outputband; register the output instead! + //printf("info: .inp baseline %d pol %d: A fq %d != destFq %d, using destFq instead and mark as Zoom\n", i, j, irfAfid, idfABfid); + pfr = pdfr; + zoom = TRUE; + irfAfid = idfABfid; + } // stuff ref station fblock structure pfb[nprod].stn[0].pol = pol; pfb[nprod].stn[0].ant = pdsA->antennaId; @@ -105,6 +116,13 @@ irfBfid = pdsB->zoomFreqId[irbBfid]; pfr = D->freq + irfBfid; } + if (irfBfid != idfABfid) + { // bandB is member of outputband; register the output instead! + //printf("info: .inp baseline %d pol %d: B fq %d != destFq %d, using destFq instead and mark as Zoom\n", i, j, irfBfid, idfABfid); + pfr = pdfr; + zoom = TRUE; + irfBfid = idfABfid; + } // stuff rem station fblock structure pfb[nprod].stn[1].pol = pol; pfb[nprod].stn[1].ant = pdsB->antennaId;