[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