uf->,u and vf->,v are 3-dimensional arrays (of the same size) of wind velocity vector data, where the first dimension represents time, the second dimension represents latitude, and the third dimension represents longitude (verify this with print(getfilevardims(uf,’u’))). By using the syntax (0,:,:), you are selecting the vector field for the full latitude/longitude range for the first time step only. Note that the vector plot covers only a small area of the map. This is because the latitude values you specified in lines 20-25 only go from 20 to 60, and the longitude values go from -140 to -52.5 (you can verify this by using print to print these values out). These latitude/longitude values roughly cover the area which is the United States, so this is where you’ll see the vector plot overlaid. As described in example 5 for gsn_contour_map, the gsn_vector_map function creates two plots, the vector plot and the map plot. The map plot is what’s returned from the function, and the vector plot is returned as an attribute of the map plot called ‘vector.’ In the call to gsn_vector_scalar_map, the syntax ‘(::2)’ is being used to ‘thin’ the vectors, that is, only every other data point is passed on to the plotting function. Source.