;NAME: mapreadwsodaily ; ;PURPOSE: ; Read one of Nick's WSO files into a 2-D array ; ordered by lattitude ; ;MODIFICATION HISTORY: ; Mar 2002 (tjd, tdunn@ucsd.edu) function mapreadwsodaily,file OPENR,UNIT,file,/GET_LUN ARRAY = FLTARR(73,30) HOLDER = FLTARR(73,30) ;this is big enough to have latX at the start and end ;PRINT,'' PRINT, 'mapreadwsodaily working on - ', file ;PRINT, '' LINE = '' PASSEDHEADER = 0 CTLINE = 0 I = 0 ROW = 0 ON_HOLD = 0 WHILE(ROW LE 72) DO BEGIN READF, UNIT, LINE ; PRINT, LINE I = STRPOS(LINE, 'CT', I) IF (I NE -1) THEN BEGIN LAT = STRMID(LINE,7, 3) ; PRINT, LAT IF (ROW eq 0 ) THEN BEGIN ; calculate displacement ; EX, if the first LAT is 355 ; we want to place that information in ; ROW 1, not ROW 0. ; So, Displacement = (360 - (first lat))/ 5 FIRST_LAT = LAT ENDIF ; DROW = ROW + ( (360 - FIRST_LAT) / 5) ;for re-ordering DROW = ROW ; no re-ordering ; DISP = (360 - FIRST_LAT) / 5 ; IF (DROW GE 72) THEN DROW = DROW - 72 ; ;PRINT, '*********DISPLACEMENT************' ; ;Print, 'DISPLACEMENT is', DISP ; ;Print, ' ROW =',ROW, '-> DROW',DROW ; ;PRINT, '********DISPLACEMENT************' ; ;PRINT, ROW NUM1 = STRMID(LINE,20,8) NUM2 = STRMID(LINE,29,8) NUM3 = STRMID(LINE,38,8) NUM4 = STRMID(LINE,47,8) NUM5 = STRMID(LINE,56,8) NUM6 = STRMID(LINE,65,8) CTLINE = 1 PASSEDHEADER = 1 ARRAY[DROW,0] = NUM1 ARRAY[DROW,1] = NUM2 ARRAY[DROW,2] = NUM3 ARRAY[DROW,3] = NUM4 ARRAY[DROW,4] = NUM5 ARRAY[DROW,5] = NUM6 ;PRINT,'1th array elt is now',ARRAY[ROW,1] ; PRINT,'4thth array elt is now',ARRAY[ROW,4] ;end "if we are in a row containing 'CT' " ENDIF IF (I EQ -1) THEN BEGIN IF (PASSEDHEADER EQ 1 ) THEN BEGIN CTLINE = CTLINE + 1 ; PRINT, 'CTLINE is', CTLINE NUM1 = STRMID(LINE,02,8) NUM2 = STRMID(LINE,11,8) NUM3 = STRMID(LINE,20,8) NUM4 = STRMID(LINE,29,8) NUM5 = STRMID(LINE,38,8) NUM6 = STRMID(LINE,47,8) NUM7 = STRMID(LINE,56,8) NUM8 = STRMID(LINE,65,8) IF (CTLINE EQ 2) THEN BEGIN ARRAY[DROW,6] = NUM1 ARRAY[DROW,7] = NUM2 ARRAY[DROW,8] = NUM3 ARRAY[DROW,9] = NUM4 ARRAY[DROW,10] = NUM5 ARRAY[DROW,11] = NUM6 ARRAY[DROW,12] = NUM7 ARRAY[DROW,13] = NUM8 ENDIF IF (CTLINE EQ 3) THEN BEGIN ARRAY[DROW,14] = NUM1 ARRAY[DROW,15] = NUM2 ARRAY[DROW,16] = NUM3 ARRAY[DROW,17] = NUM4 ARRAY[DROW,18] = NUM5 ARRAY[DROW,19] = NUM6 ARRAY[DROW,20] = NUM7 ARRAY[DROW,21] = NUM8 ENDIF IF (CTLINE EQ 4) THEN BEGIN ARRAY[DROW,22] = NUM1 ARRAY[DROW,23] = NUM2 ARRAY[DROW,24] = NUM3 ARRAY[DROW,25] = NUM4 ARRAY[DROW,26] = NUM5 ARRAY[DROW,27] = NUM6 ARRAY[DROW,28] = NUM7 ARRAY[DROW,29] = NUM8 ROW = ROW + 1 ENDIF ;end "if we are not in a CT = 1 row" ENDIF ;end "if we passed the header" ENDIF ;end "while row is LE 71" ENDWHILE CLOSE,UNIT FREE_LUN,UNIT return,array end