[daip] Problem with UVFLG and INTEXT for TIMERANG=0 ?

James M. Anderson anderson at gfz-potsdam.de
Mon Dec 14 09:27:46 EST 2015


Hello,

I am having a problem running UVFLG with INTEXT.  My problem is that
even though I do not set TIMERANG (because I want to flag all times),
UVFLG gives me the following error:

KG29  > UVFLG1: Task UVFLG  (release of 31DEC16) begins
KG29  > UVFLG1: ZTXOP2: using translated file name =
KG29  > UVFLG1: ZTXOP2: /dsk1/anderson/astro/GFZ/VLBI/data/CONT14/AIPS/uvflag_13
KG29  > UVFLG1: ZTXOP2: .dat
KG29  > UVFLG1: ERROR: TIME1 > TIME2
KG29  > UVFLG1: TIME1:   0/  0  00.0    TIME2:   0/  0  00.0
KG29  > UVFLG1: ZCLOSE: DOES NOT PERFORM TEXT FILE CLOSES AS OF 15OCT87
KG29  > UVFLG1: Purports to die of UNNATURAL causes
KG29  > UVFLG1: kg29         31DEC16 TST: Cpu=       0.0  Real=       0


My inputs are:
>inp
AIPS 1: UVFLG:  Task to Flag selected UV data on disk.
AIPS 1: Adverbs     Values                 Comments
AIPS 1: ----------------------------------------------------------------
AIPS 1: INNAME     'CONT14_13'             UV data (name).
AIPS 1: INCLASS    'UVDATA'                UV data (class).
AIPS 1: INSEQ         2                    UV data (seq. #).  0 => high
AIPS 1: INDISK        1                    Disk unit #.  0 => any
AIPS 1: INTEXT     'PWD:uvflag_13.dat'     Text file name.
AIPS 1: SOURCES    *all ' '                Sources selected/deselected
AIPS 1: CALCODE    ' '                     Calibration code
AIPS 1: QUAL         -1                    Qualifier: -1 => any
AIPS 1: SUBARRAY      0                    Subarray number 0=>all.
AIPS 1:                                    Elevation is flagged: 0=>1
AIPS 1: SELBAND      -1                    Bandwidth to flag (kHz)
AIPS 1: SELFREQ      -1                    Frequency to flag (MHz)
AIPS 1: FREQID       -1                    Freq. ID to flag. -1=>all.
AIPS 1:                                    0=> first Freq. ID.
AIPS 1: TIMERANG   *all 0                  Time: start day,hr,min,sec
AIPS 1:                                          stop day,hr,min,sec.
AIPS 1: BCHAN         1                    First frequency channel
AIPS 1: ECHAN         0                    Last channel 0=>all
AIPS 1: BIF           0                    First IF 0=>1
AIPS 1: EIF           0                    Last IF 0=>all
AIPS 1: ANTENNAS      1        *rest 0     Antennas
AIPS 1: BASELINE   *all 0                  Baselines with ANTENNAS
AIPS 1: STOKES     ' '                     Stokes' parameters
AIPS 1: OUTFGVER      0                    Flag table version number
AIPS 1:                                       Used w single-source too
AIPS 1: APARM      *all 0                  1:flag elevations>APAR(1) deg
AIPS 1:                                    2:flag elevations<APAR(2) deg
AIPS 1:                                    3:Factor of suppression of
AIPS 1:                                      spurious fringes caused by
AIPS 1:                                      pulse cal when fringe
AIPS 1:                                      rate close to zero.
AIPS 1:                                      It must be >1
AIPS 1:                                      0 => do not flag due to
AIPS 1:                                        this reason
AIPS 1:                                    4:>0 => Print source, time,
AIPS 1:                                       baseline,  U,V of expected
AIPS 1:                                       zero fringe rate (U=0)
AIPS 1:                                      0 => do not print
AIPS 1:                                    5: > 0 flag for shadowing
AIPS 1:                                    6: flag for cross-talk
AIPS 1:                                      (see help)
AIPS 1:                                    7: Number lines to print if
AIPS 1:                                       INTEXT is used 0 -> 100
AIPS 1: OPCODE     'FLAG'                  'FLAG','UFLG', 'REAS', 'WILD'
AIPS 1: REASON     *all ' '                Reason (24 char.)
AIPS 1: DOHIST        1                    > 0 -> add to history



And the content of my INTEXT file is:
ANT_NAME='KE' BIF=5 EIF=5 BCHAN=1  ECHAN=1  REASON='BAD AUTOCORRELATION' /
ANT_NAME='MA' BIF=6 EIF=6 BCHAN=1  ECHAN=0  REASON='BAD AUTOCORRELATION' /
ANT_NAME='TS' BIF=2 EIF=2 BCHAN=16 ECHAN=18 REASON='BAD AUTOCORRELATION' /
ANT_NAME='WF' BIF=4 EIF=4 BCHAN=16 ECHAN=18 REASON='BAD AUTOCORRELATION' /
ANT_NAME='KE' BIF=1 EIF=1 BCHAN=1  ECHAN=0  REASON='BAD AUTOCORRELATION' /



Looking at AIPS_ROOT/APL/PGM/NOTST/UVFLG.FOR I see that in the UVFTRD
subroutine, the value of RDAYN is subtracted from the day numbers in
TIMERANG.  Since I am using ANT_NAME, RDAYN is not set to 0.0 and is
instead some relaively large number (the observations take place in
May, so RDAYN = 137).  Then, in subroutine UVFTAB, XT1 and XT2 are
REAL (so 32 bit IEEE floating point), so when the code reaches

      IF (ABS(XT2-XT1).LT.1.E-6) THEN
         XT1 = XT1 - 1.0 / 172800.
         XT2 = XT2 + 1.0 / 172800.
         END IF

But since 137.0 - 1.0 / 172800. = 137.0 for 32 bit IEEE floating
point (1.0 / 172800. / 137.0 = 4.2e-08, which is less than the 32 bit
machine epsilon), the condition still holds that XT1.EQ.XT2, and so in

      IF (XT1.GE.XT2) THEN

the program fails.

If I explicitly put in some TIMERANG=-1,0,0,0,9999,0,0,0 entries in
the INTEXT lines, UVFLG will run.

Is this how things should work?


Have a good day,


James M Anderson




-- 
James M Anderson
Geodesy and Remote Sensing
GPS/Galileo Earth Observation
Tel.: +49 (0)331/288-28948
Fax: +49 (0)331/288-1111
E-Mail: anderson at gfz-potsdam.de
___________________________________

Helmholtz-Zentrum Potsdam
Deutsches GeoForschungsZentrum GFZ
Stiftung des öff. Rechts Land Brandenburg
Telegrafenberg A6
14473 Potsdam
Germany



More information about the Daip mailing list