[daip] Re: AIPS : two problems

Eric Greisen egreisen at nrao.edu
Thu Apr 15 16:40:35 EDT 2004


R. Niruj Mohan writes:

 > 2. I ran into another more complicated problem with POSSM when I tried
 > plotting the spectra of individual baselines. I use
 > aparm (1)=1; aparm (9)=2
 > docalib -1; solint=0; nplot=9;
 > flagver=1 (FG has flags applied to all channels)
 > bparm=1,n,n (i changed the value of n but the problem remains)
 > 
     As usual POSSM is full of bugs.  I have corrected then per

11563.  April 15, 2004          POSSM                   Eric
        The divide by channel 0 option had some errors:
        1. The counter of failures was no re-zeroed and so blocked all
        plotting after it exceeded the count of the number of
        samples.
        2. The flux test compared a flux cutoff with the square of the
        flux.
        3. It forced BCHAN to 1, ECHAN to Nchan, and DOCAL to false
        for no good reason and would not use a single channel as the
        channel zero.  Fix help file for DOCAL - the rest were not
        mentioned.
        4. Its count of Vis subtracted an omitted correlators count
        despite the fact that they are blanked suitably.
        Moved nowhere.

The corrections have been putbck in 31DEC04.  I will put a diff
following this note in case you want to try to fix your version.  The
line numbers will not match your version because POSSM has had
numerous other changes since your version.

Eric Greisen

205d204
<             NOMIT = 0
315c314
<      *   NXBASL, IXANT(50), IXBASL(50), J1, J2
---
>      *   NXBASL, IXANT(50), IXBASL(50)
627c626
< C                                       Divide by channel 0
---
> C                                       Divide by channel 0?
630,646c629,637
<          BPARM(4) = MAX (0.0, BPARM(4))
<          BPARM(4) = BPARM(4) * BPARM(4)
<          I = CATBLK(KINAX+JLOCF)
<          J1 = BPARM(2) + 0.1
<          J2 = BPARM(3) + 0.1
<          IF (J1.LE.0.0) J1 = (I+1) / 8
<          IF (J2.LE.0.0) J2 = (((I+1) * 7) / 8) - 1
<          IF (J2.LT.J1) THEN
<             J1 = (I+1) / 8
<             J2 = (((I+1) * 7) / 8) - 1
<             END IF
<          IF (J2.GT.ECHAN) J2 = ECHAN
<          IF (J1.LT.BCHAN) J1 = BCHAN
<          BPARM(2) = J1
<          BPARM(3) = J1
<          WRITE (MSGTXT,1100) J1, J2
<          CALL MSGWRT (3)
---
>          IF (DOCAL) THEN
>             WRITE (MSGTXT,1100)
>             CALL MSGWRT (2)
>             DOCAL = .FALSE.
>             END IF
>          IF ((BCHAN.NE.1) .AND. (ECHAN.NE.CATBLK(KINAX+JLOCF))) THEN
>             BCHAN = 1
>             ECHAN = CATBLK(KINAX+JLOCF)
>             END IF
762c753,754
<  1100 FORMAT ('Using channels',I5,' to',I5,' as channel 0')
---
>  1100 FORMAT ('DOCALIB=1 & BPARM(1)=1 incompatible, setting ',
>      *   'DOCALIB=-1')
790d781
<       LOGICAL   GOTSOM
969c960,967
<  60      IF (DIVCH0) CALL DIVCHZ (VIS, IRET)
---
>  60      IF (DIVCH0) THEN
>             CALL DIVCHZ (VIS, IRET)
>             IF ((IRET.LT.0) .AND. (NPRI.LT.11)) THEN
>                WRITE (MSGTXT,1030) IANT1, IANT2, RPARM(ILOCT+1)
>                CALL MSGWRT (6)
>                NPRI = NPRI + 1
>                END IF
>             END IF
1052d1049
<       GOTSOM = .FALSE.
1083d1079
<                GOTSOM = .TRUE.
1088c1084,1085
<       IF (.NOT.GOTSOM) THEN
---
>       XCOUNT = XCOUNT - NOMIT
>       IF (XCOUNT.LT.1) THEN
1220c1217
<  1515 FORMAT ('Rejected',I5,' correlators due to low channel 0',
---
>  1515 FORMAT ('Rejected',I5,' visibilities due to low channel 0',
1246c1243
<      *   IROUND, NFAIL
---
>      *   IROUND
1255,1256d1251
<       SAVE NFAIL
<       DATA NFAIL /0/
1260,1261c1255,1262
<       FCHAN = IROUND (BPARM(2))
<       LCHAN = IROUND (BPARM(3))
---
>       BPARM(4) = MAX (0.0, BPARM(4))
>       I = ECHAN - BCHAN + 1
>       FCHAN = IROUND(BPARM(2))
>       IF (FCHAN.GT.I) FCHAN = 0
>       LCHAN = IROUND(BPARM(3))
>       IF (LCHAN.GT.I) LCHAN = 0
>       IF (FCHAN.LE.0) FCHAN = (I+1) / 8
>       IF (LCHAN.LE.0) LCHAN = (((I+1) * 7) / 8) - 1
1262a1264,1268
>       IF (NUMCHZ.LT.2) THEN
>          FCHAN = (I+1) / 8
>          LCHAN = (((I+1) * 7) / 8) - 1
>          NUMCHZ = LCHAN - FCHAN + 1
>          END IF
1282,1286d1287
<             DENOM = CHZ(1,LOOPIF,LOOPS) * CHZ(1,LOOPIF,LOOPS) +
<      *              CHZ(2,LOOPIF,LOOPS) * CHZ(2,LOOPIF,LOOPS)
<             IF (DENOM.LE.0.0) THEN
<                NFAIL = NFAIL + 1
<                END IF
1299a1301
>                IRET = -1
3605d3606
<             NOMIT = 0




More information about the Daip mailing list