; Open the data file and read the variables needed. ncdf = Obj_New('ncdf_data', 'air.mon.mean.nc') time = ncdf -> ReadVariable('time') lat = ncdf -> ReadVariable('lat') lon = ncdf -> ReadVariable('lon') level = ncdf -> ReadVariable('level') air = ncdf -> ReadVariable('air') Obj_Destroy, ncdf ; Create lat and lon arrays for this ncep data. lon_ncep_360 = Rebin(lon, 144, 73) lat_ncep = Rebin(Reform(lat, 1, 73), 144, 73) ; Convert lons to -180 to 180 for ease of mapping, later. lon_ncep = ((lon_ncep_360 + 180) MOD 360) - 180 ; Find the various indices required. I want 925 mbars, ; above 45 degrees of latitude, 1987 to 2007. levelIndex = Where(level EQ 925.0) Print, 'Level Index:', levelIndex latindex = Value_Locate(lat, 45) Print, 'Lat Index: ', latindex ; Convert time to month, day, year. jd = Julday(1, 1, 1, 0, 0, 0) + (time/24.D) Caldat, jd, month, day, year yearindex = Where(year GE 1987) yearindex = yearindex[0] Print, 'Year Index: ', yearindex ; Trim date arrays. month = month[yearindex:*] day = day[yearindex:*] year = year[yearindex:*] ; Trim temperature array according to indices. air = air[*, 0:latindex, levelindex, yearindex:*] air = Reform(air) ; Scale air temperatures. air = Temporary(air) * 0.01 + 127.65 ; Trim navigational arrays. lat_ncep = lat_ncep[*, 0:latIndex] lon_ncep = lon_ncep[*, 0:latIndex] ; Find September monthly indices. sepIndices = Where(month EQ 9) ; Create the temperature data set. air_temp = air[*, *, sepIndices] END