but I'd like to have area weighed averaged value. How should I told ferret that x and y is long and lat for averaging computations,
With temp[x=@ave,y=@ave], Ferret does compute the area weighted average if the horizontal axes are longitude and latitude. If the axes aren't longitude and latitude, Ferret computes x=@ave and y=@ave separately (I think), which may not coincide with the correct area-weighted average.
I don't know if it's possible to compute the area of each gridbox within Ferret. You may have to supply that information from outside. Then,
let area_temp = temp * boxarea
let area_average_temp = area_temp[x=@sum,y=@sum] / boxarea[x=@sum,y=@sum]