;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; lib.cjs_graphics.ncl ; Carl Schreck (cjschrec@ncsu.edu) ; April 2014 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Copyright (c) 2010, North Carolina State University ; All rights reserved. ; This work licensed under BSD 3-Clause License. Full terms in LICENSE.txt ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; undef ( "cjs_add_vectors" ) procedure cjs_add_vectors( \ io_wks [1] : graphic , \ io_basePlot [1] : graphic , \ i_uData [*][*] : numeric , \ ; lat x lon i_vData [*][*] : numeric , \ ; lat x lon i_vecRes [1] : logical \ ) begin ; cjs_add_vectors ; Customize overlaid vectors vecRes = True vecRes@gsnLeftString = "" vecRes@gsnRightString = "" vecRes@gsnFrame = False vecRes@gsnDraw = False if( .not.isatt( i_vecRes, "vecNotStrm" ).or.( i_vecRes@vecNotStrm ) ) then vecRes@vcVectorDrawOrder = "PostDraw" vecRes@vcRefMagnitudeF = 5 vecRes@vcRefLengthF = 0.040 vecRes@vcMinDistanceF = 0.03 vecRes@vcGlyphStyle = "CurlyVector" vecRes@vcLineArrowColor = "black" vecRes@vcLineArrowThicknessF = 2 ; ...vector legend vecRes@vcRefAnnoOn = True vecRes@vcRefAnnoArrowUseVecColor = False if( isatt( i_vecRes, "fontHeightF" ) ) then vecRes@vcRefAnnoFontHeightF := i_vecRes@fontHeightF else vecRes@vcRefAnnoFontHeightF := 0.02 end if vecRes@vcRefAnnoString1 = "$VMG$ m s~S~-1~N~" vecRes@vcRefAnnoString2On = False vecRes@vcRefAnnoOrthogonalPosF = 0 vecRes@vcRefAnnoZone = 1 vecRes@vcRefAnnoJust = "BottomRight" if( i_vecRes ) then copy_VarAtts( i_vecRes, vecRes ) end if vectPlot = gsn_csm_vector( io_wks, i_uData, i_vData, vecRes ) else vecRes@stMinLineSpacingF = 0.005 vecRes@stMinDistanceF = 0.030 vecRes@stMinArrowSpacingF = 0.030 vecRes@stArrowLengthF = 0.01 if( i_vecRes ) then copy_VarAtts( i_vecRes, vecRes ) end if vectPlot = gsn_csm_streamline( io_wks, i_uData, i_vData, vecRes ) end if overlay( io_basePlot, vectPlot ) end ; cjs_add_vectors