[daip] FRING problem for too many antennas

Eric Greisen egreisen at nrao.edu
Tue Dec 20 11:20:12 EST 2011


Olaf Wucknitz wrote:
> Addendum to the FRING issue:
> 
> KRING has exactly the same problem.
> 
> The trouble with UVFLG can be "solved" by setting MAXBAS in UVFLG.FOR to 
> something higher and doing the same with a number of array sizes (500). I 
> have not delved deeply into the code to understand exactly which number 
> should be used here to account for MAXANT=90. Is MAXANT*(MAXANT+1)/2 
> required? In that case we could simply use MXBASE defined in PUVD.INC.
> Or maybe we even need MAXANT*MAXANT?
> 
> Cheers,
> Olaf
> 
> 
> 
> On Tue, 20 Dec 2011, Olaf Wucknitz wrote:
> 
>> Hi,
>>
>> I experience a problem using FRING on a LOFAR dataset with 49 stations. The 
>> task crashes at the end when writing to the history file with the following 
>> error message:
>>
>> forrtl: severe (27): too many records in I/O statement, unit -5, file 
>> Internal Formatted Write
>>
>> This seems to be caused by the following lines in FRING.FOR (starting in line 
>> 1540):
>>
>> C                                        Antenna weights.
>>      LIMIT = 9
>>      WRITE (HILINE,2050) TSKNAM, (ANTWT(I), I = 1,LIMIT)
>>      CALL HIADD (LUN2, HILINE, BUFF2, IERR)
>>      IF (IERR.NE.0) GO TO 190
>>      IF (NANT.LE.LIMIT) GO TO 190
>>      LIMIT = MIN (18, NANT)
>>      WRITE (HILINE,2051) TSKNAM, (ANTWT(I), I = 10,LIMIT)
>>      CALL HIADD (LUN2, HILINE, BUFF2, IERR)
>>      IF ((IERR.NE.0) .OR. (NANT.LE.LIMIT)) GO TO 190
>>      LIMIT = MIN (27, NANT)
>>      WRITE (HILINE,2051) TSKNAM, (ANTWT(I), I = 19,LIMIT)
>>      CALL HIADD (LUN2, HILINE, BUFF2, IERR)
>>      IF ((IERR.NE.0) .OR. (NANT.LE.LIMIT)) GO TO 190
>>      LIMIT = MIN (36, NANT)
>>      WRITE (HILINE,2051) TSKNAM, (ANTWT(I), I = 27,LIMIT)
>>      CALL HIADD (LUN2, HILINE, BUFF2, IERR)
>>
>>
>> The final write should really start with I=28 instead of 27. But since the 
>> number of antennas may be even higher, I suggest something like the following 
>> instead:
>>
>>
>> C                                        Antenna weights.
>>      ITEMP = 1
>> 160   LIMIT = MIN (ITEMP+8,NANT)
>>      WRITE (HILINE,2050) TSKNAM, (ANTWT(I), I = ITEMP,LIMIT)
>>      CALL HIADD (LUN2, HILINE, BUFF2, IERR)
>>      ITEMP = ITEMP + 9
>>      IF (ITEMP.LE.NANT) GO TO 160
>>
>>
>>
>> UVFLG is also producing corrupted flags for the same data set, but I still 
>> have to find out why. This may also be a problem of the data and not of 
>> UVFLG.
>>
>>
>>
>> Cheers,
>> Olaf
>>
> 

Many thanks - you are encountering code from before the Fortran 77 era 
with its parameter statements.  We have parameters now for UVFLG (MXBASE 
= 90 * 91 / 2) and the ANTWT HI writing should have been done right even 
before parameters...

The MNJ tomorrow in 31DEC11 and 31DEC12 will contain corrections.

Eric Greisen




More information about the Daip mailing list