[daip] CPASS bug

Kristine Spekkens spekkens at astro.cornell.edu
Tue Aug 6 13:02:53 EDT 2002


Hello,

 My name is Kristine Spekkens; I am a graduate student at Cornell
University.  I am reducing VLA spectral line data at L-band with AIPS
(31DEC02).  In particular, I am trying to calibrate the bandpass of a
dataset for which the two central channels are corrupt, but the rest of
the channels (~60 of them) make a very stable, almost linear bandpass.
So, I figured I would try to fit a polynomial solution to the "good"
calibrator data with CPASS.

 When I execute the task (with a message level of 2), however, it appears
to begin finding polynomial solutions, but then prints

>NIT  NF       F              GTG

ad infinitum until I abort it.  The format declaration for this output is
found on line 3873 of the source code CPASS.FOR, followed by a declaration
of variables apparently corresponding those values:
800 FORMAT(' NIT NF',9X, 'F', 21X, 'GTG')
810 FORMAT(' ',I3,1X,I4,1X,1PD22.15,2X,1PD15.8)

These declarations are used to print messages to the user starting on line
3651; it seems as though the message I am getting should only be printed
once, as a header to the information which follows (about each iteration
of the bandpass solution).  That bit of the code reads:

C
C INITIALIZE PARAMETERS AND CONSTANTS
C
      IF (MSGLVL .GE. 1) THEN
         WRITE(MSGTXT,800)
         CALL MSGWRT (3)
         END IF
C
      CALL SETPAR(N)
      UPD1 = .TRUE.
      IRESET = 0
      NFEVAL = 0
      NMODIF = 0
      NLINCG = 0
      FSTOP = F
      ZERO = 0.D0
      ONE = 1.D0
      NM1 = N - 1
C
C WITHIN THIS ROUTINE THE ARRAY W(LOLDG) IS SHARED BY W(LHYR)
C
      LHYR = LOLDG
C
C CHECK PARAMETERS AND SET CONSTANTS
C
      CALL CHKUCP(LWTEST,MAXFUN,NWHY,N,ALPHA,EPSMCH,
     *     ETA,PEPS,RTEPS,RTOL,RTOLSQ,STEPMX,FTEST,
     *     XTOL,XNORM,X,LW,SMALL,TINY,ACCRCY)
      IF (NWHY .LT. 0) GO TO 120
      CALL SETUCR(SMALL,NFTOTL,NITER,N,F,FNEW,
     *     FM,GTG,OLDF,SFUN,G,X)
      FOLD = FNEW
      IF (MSGLVL .GE. 1) THEN
         WRITE(MSGTXT,810) NITER,NFTOTL,FNEW,GTG
         CALL MSGWRT (3)
         END IF

 So it seems that somewhere between the write at the top of this chunk
{WRITE(MSGTXT,800)} and the one at the bottom {WRITE(MSGTXT,810)
NITER,NFTOTL,FNEW,GTG}, the program is getting caught in an infinite loop
which causes repeated printing of the header.

 I'd be happy to provide the inputs to CPASS that I used if you think that
it would help.

 Thanks,

Kristine


----------------------------------------------------
Kristine Spekkens
Graduate Student, Department of Astronomy
Cornell University, Ithaca NY 14853
spekkens at astro.cornell.edu
----------------------------------------------------




More information about the Daip mailing list