;----------------------------------------------- ; Define field plot attributes min/max ; EG 4/10/99 ;----------------------------------------------- FUNCTION fld_pltext, var_name, plttyp, dimplot, hotyp @common @com_eg ; arguments var_name = variable name, ; plttyp = plot type ; dimplot = dimension of plot (1,2) ; outputs structure ; define variable plot attributes (min/max) fldextr = {name:'', assos:'', min: 0.0, max: 0.0, homin:0.0, homax:0.0, min1d:0.0, max1d:0.0, dmax:0.0} ; name of defaults files file_mmx = 'fld_glo_mmx.def' ; min/max print,' ' print,' Reading minmax of ',var_name,' from : ', file_mmx spawn, 'grep -i "\ '+var_name+' " '+hom_def+file_mmx, line line = strcompress(strtrim(line[0], 2)) length = strlen(line) IF length EQ 0 THEN BEGIN print, ' *** no min & max found for field ', var_name, $ ' in file fld_glo_mmx.def' fldextr.min = min(field.data(where(field.data NE valmask))) fldextr.max = max(field.data(where(field.data NE valmask))) fldextr.homin = fldextr.min fldextr.homax = fldextr.max fldextr.min1d = fldextr.min fldextr.max1d = fldextr.max fldextr.dmax = max([abs(fldextr.min), abs(fldextr.max)]) fldextr.assos = var_name ENDIF ELSE BEGIN argvar = str_sep(line, ' ') IF strmid(argvar[1], 0, 1) EQ '@' THEN BEGIN ; get info from other variable friend_name = strmid(argvar[1], 1, strlen(argvar[1])-1) print, ' -> linked to ', friend_name fldextr = fld_pltext(friend_name, plttyp, dimplot, hotyp) fldextr.assos = friend_name ENDIF ELSE BEGIN fldextr.min = float(argvar[1]) fldextr.max = float(argvar[2]) fldextr.homin = !VALUES.F_NAN fldextr.homax = !VALUES.F_NAN fldextr.min1d = !VALUES.F_NAN fldextr.max1d = !VALUES.F_NAN fldextr.dmax = !VALUES.F_NAN IF n_elements(argvar) GE 5 THEN BEGIN fldextr.homin = float(argvar[3]) fldextr.homax = float(argvar[4]) ENDIF IF n_elements(argvar) GE 7 THEN BEGIN fldextr.min1d = float(argvar[5]) fldextr.max1d = float(argvar[6]) ENDIF IF free_1d_minmax EQ 'yes' THEN BEGIN IF hotyp EQ 't' THEN BEGIN fldextr.homin = !VALUES.F_NAN fldextr.homax = !VALUES.F_NAN ENDIF fldextr.min1d = !VALUES.F_NAN fldextr.max1d = !VALUES.F_NAN ENDIF IF n_elements(argvar) GE 8 THEN BEGIN fldextr.dmax = float(argvar[7]) ENDIF tempvar = SIZE(TEMPORARY(argvar)) fldextr.assos = var_name ENDELSE ENDELSE fldextr.name = var_name return, fldextr END