!=====================================================================
! NGWM: Wmap, A Package for Producing Daily Weather Maps and Plotting
!       Station Model Data
!=====================================================================
!
! WMAP is a collection of subroutines that will allow the user to
! create daily weather maps like the ones appearing in major U.S.
! newspapers. Full color is available. Functionality also exists
! for plotting station model data (temperature, pressure, wind speed,
! cloud cover, and so forth) in accordance with the World Meteorological
! Organization (WMO) guidelines. It is also possible to plot icons
! representing daily weather (like "snow", "thunderstorms," and so forth).
!
!---------------------------------------------------------------------
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
! set/Get internal parameters
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! NG_WMDFLT  (sama as NG_WMRSET)
! NG_WMRSET  to reset all parameters to their default values.
!
! NG_WMSETC  to give a value of type CHARACTER to a parameter.
! NG_WMSETI  to give a value of type INTEGER to a parameter.
! NG_WMSETR  to give a value of type REAL to a parameter.
!
! NG_WMGETC  to get a value of type CHARACTER.
! NG_WMGETI  to get a value of type INTEGER.
! NG_WMGETR  to get a value of type REAL.
!
! ~~~~~~~~~~~~~~~~
! Working Routines
! ~~~~~~~~~~~~~~~~
!
! NG_WMBARB  plotting wind barb
! NG_WMDRFT  plotting front lines
! NG_WMDRRG  plotting regions indicating weather patterns or temperatures
! NG_WMLABC  plotting city names and daily HI/LOWs
! NG_WMLABS  plotting special symbols and icons for daily weather
! NG_WMLABT  plotting regional temperature labels
! NG_WMLABW  plotting regional weather labels
! NG_WMLGND  plotting legends at the bottom of a weather map
! NG_WMSTNM  plotting station model data
! NG_WMVECT  plotting vectors not over maps
! NG_WMVMAP  plotting vectors over map
! NG_WMVLBL  plotting informational label box
!
!=====================================================================
!
! SUBROUTINE NG_WMBARB(X,Y,U,V)
!
! This subroutine plots wind barbs with the origin of the barb at
! (X,Y).  U and V are the components of the wind vector.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMDRFT(N,X,Y)
!
! This subroutine draws a front along the line determined by the
! world coordinates  (X(I),Y(I)) for I=1,N.  A spline curve is
! fit to the points, so only a few points need be supplied.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMDRRG(N,X,Y,ITYPE,NC,XC,YC)
!
! This subroutine draws a closed region filled as per the
! value of ITYPE.  Legal values for ITYPE are:
!
!   ITYPE = 'INDEXnnn' where "nnn" denotes a color index.
!         = 'T' for thunderstorms.
!         = 'SH' for showers.
!         = 'R' for rain.
!         = 'F' for flurries.
!         = 'SN' for snow.
!         = 'I' for ice.
!
! If NC is greater than 2, then the region resulting from the
! spline fit to (X(I),Y(I),I=1,N) will be clipped against the
! region in (XC(I),YC(I),I=1,NC) .
!
! X,Y and XC,YC are world coordinate values.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMLABC(X,Y,CITY,TEMPS)
!
! Plot the city name in CITY and the daily temperatures
! in TEMPS in two lines, all centered at (X,Y).  The
! text will be surrounded with a box in the background
! color.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMLABS(X,Y,SYMTYP)
!
! Plot the symbol indicated by the string SYMTYP.  The symbol
! is centered at (X,Y), where X and Y are world coordinates.
! Legal values for SYMTYP are:
!
!        'HI'
!        'LOW'
!        'ARROW'
!        'DOT'
!        'CLOUD'
!        'ICE'
!        'IS' (Intermittent showers)
!        'IT' (Sunny, chance of T-storms)
!        'MC' (Mostly cloudy)
!        'MS' (Mostly sunny)
!        'RAIN'
!        'RS' (Rain and snow)
!        'SNOWFLAKES'
!        'SUN'
!        'THUNDERSTORM'
!        'VECTOR'
!        'WIND'
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMLABT(X,Y,LABEL,IFLG)
!
! Plots regional temperature labels with the option of
! plotting arrows, depending on the value of IFLG.
!
! If IFLG =
!
!      0 - Plots the label centered at (X,Y).
!      1-12 plots the label with an arrow positioned as per:
!
!
!
!                     6   5   4   3   2
!                      \   \  |  /   /
!                       \   \ | /   /
!                        -----------
!                        |         |
!                   7 -- |  LABEL  | -- 1
!                        |         |
!                        -----------
!                       /   / | \  \
!                      /   /  |  \  \
!                     8   9  10  11  12
!
!
!
! For IFLG=1 through 12 the tip of the arrow is positioned at (X,Y).
! For IFLG=0, only the label is drawn and not the arrow.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMLABW(X,Y,LABEL)
!
! Plot the label contained in the character variable LABEL
! centered at (X,Y), where X and Y are world coordinates.
! The labels are drawn with a shadow box.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMLGND(X,Y,NTYPE,IROWS,ICOLS)
!
! Subroutine for producing legends. NTYPE specifies what legends
! are to be drawn:
!
!   NTYPE = 1  Plot the legend for the weather types.  There are
!              six weather types: showers; T-storms; rain; flurries;
!              snow; ice.  The coordinate (X,Y) for this type
!              specifies the lower left corner of the legend.
!         = 2  Plot the legend for the front types.  There are
!              three front types: cold; warm; stationary.  The
!              (X,Y) coordinate for this legend specifies the
!              lower right corner of the legend.
!         = 3  Plot the explanatory legend.  The (X,Y) coordinate
!              for this legend specifies the bottom center of the
!              legend.
!
! IROWS and ICOLS specify how many rows and columns there should
! be in displaying the weather types, these values are significant
! only when NTYPE=1.  Choices for IROWSxICOLS are: 1x6, 2x3, 3x2,
! and 6x1.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMSTNM(X,Y,IMDAT)
!
! This subroutine plots station model data as per the NOAA/WMO
! guidelines.  (X,Y) is a world coordinate specifying the center
! of the tail of the windbarb shaft.  IMDAT is a CHARACTER*5 array
! of length 9 that contains the coded model data.  The first member
! of the  IMDAT array contains IR,IX,H,VV (in that order), and the
! second member contains N,DD,FF (in that order).  The remaining members
! of IMDAT contain, as their first character, a group identifier.
!
! In a little more detail:
!
!    IMDAT(1)( 1: 1) = iR - precipitation data indictor.
!    IMDAT(1)( 2: 2) = iX - weather data and station type indicator.
!    IMDAT(1)( 3: 3) =  h - height above ground of base lowest cloud.
!    IMDAT(1)( 4: 5) = VV - visibility in miles and fractions for
!                           imperial units (UNT=0), or kilometers
!                           in metric units (UNT=1).
!
!    IMDAT(2)( 1: 1) =  N - total amount of cloud cover.
!    IMDAT(2)( 2: 3) = dd - direction from which wind is blowing.
!    IMDAT(2)( 4: 5) = ff - wind speed in knots.
!
!    For I=3,9 if IMDAT(I)(1:1) =
!
!            '1', then IMDAT(I)(2:2) =  sn - sign of temperature
!                      IMDAT(I)(3:5) = TTT - current air temperature
!
!            '2', then IMDAT(I)(2:2) =  sn - sign of temperature
!                      IMDAT(I)(3:5) =  Td - dew point
!
!            '3', then IMDAT(I)(2:5) =  PO - station pressure
!
!            '4', then IMDAT(I)(2:5) =  PPPP - pressure reduced to sea level
!
!            '5', then IMDAT(I)(2:2) =   a - characteristic of barograph trace
!                      IMDAT(I)(3:5) = ppp - pressure change, last 3 hrs.
!
!            '6', then IMDAT(I)(2:4) = RRR - precipitation
!                      IMDAT(I)(5:5) =  tr - time duration of precipitation
!
!            '7', then IMDAT(I)(2:3) =  ww - present weather
!                      IMDAT(I)(4:4) =  W1 - most significant past weather
!                      IMDAT(I)(5:5) =  W2 - 2nd most significant past weather
!
!            '8', then IMDAT(I)(2:2) =  Nh - fraction of sky cover
!                      IMDAT(I)(3:3) =  CL - cloud type, low clouds
!                      IMDAT(I)(4:4) =  CM - cloud type, medium clouds
!                      IMDAT(I)(5:5) =  CH - cloud type, high clouds
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMVECT(X,Y,U,V)
!
! This subroutine plots wind vectors with the origin of the vector at
! (X,Y).  U and V are the components of the wind vector.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMVMAP(X,Y,U,V)
!
! This subroutine plots wind vectors over a map with the origin
! of the vector at lat/lon coordinate (X,Y).  U and V are the
! components of the wind vector.
!
!---------------------------------------------------------------------
!
! SUBROUTINE NG_WMVLBL(X,Y)
!
! This subroutine plots an informational label box using the
! current settings for vactor scaling "VRS" and "VRN".  The
! (X,Y) coordinate specifies the lower right hand corner of
! the box position.  The settings for "VLB" and "VLF" specify
! the background and foreground colors for the box and "VSC"
! specifies the scale factor.
!
!=====================================================================
! "Color" internal parameters
!=====================================================================
!
! Name  Default  Description
! AOC   -1       Color index for the outlines of arrows (outlines drawn only if AOC is non-negative).
! ASC   -1       Color index for the shadows of arrows (shadows are drawn only if ASC is non-negative).
! AWC    1       Color index for the interior of arrows.
! CBC    1       Color index to be used for backgrounds of city and daily high/low labels.
! CC1    2       Color index for the interior of a cloud symbol.
! CC2    1       Color index for the outline of the cloud symbol.
! CC3    1       Color index for the shadow of the cloud symbol.
! CFC    1       Color index to use for cold front symbols.
! COL    1       Color index to use for all objects that require only a single color setting.
! DBC    0       Color index to be used for the background shadow for the dots marking the city locations.
! DTC    1       Color index to use for the dots marking the city locations.
! HIB    0       Background color index for the "H" drawn for the high pressure symbols.
! HIC    1       Color index of the circumscribed circle for the "H" drawn for the high pressure symbols.
! HIF    1       Color index for the "H" drawn for the high pressure symbols.
! HIS    1       Color index for the shadow of the high pressure symbols
! LC1    2       Color index for the interior of the lightning bolt symbol
! LC2    1       Color index for the outline of the lightning bolt symbol.
! LC3    1       Color index for the shadow of the lightning bolt symbol
! LOB    1       Color index for the background of the "L" drawn for the low pressure symbols.
! LOC    1       Color index for the circumscribed circle for the "L" drawn for the low pressure symbols.
! LOF    0       Color index for the "L" drawn for the low pressure symbols.
! LOS    0       Color index for the shadow of the low pressure symbols.
! RBS   -1       Color index to use for the background of the regional temperature labels (plotted only if RBS is non-negative).
! RC1    1       Color index for the outline of the boxes drawn for the regional weather labels.
! RC2    0       Color index for the backgrounds of the boxes used for the regional weather labels.
! RC3    1       Color index for the shadow color of the boxes used for the regional weather labels.
! RC4    1       Color index for the text string used for regional weather labels.
! RC5   -1       Color for the outlines of the characters in the text strings used for regional weather labels (plotted only if RC5 is non-negative).
! RFC    1       Color index to be used for the foreground of regional temperature labels and cities.
! RLS   -1       Color index to use for shadows of regional temperature labels.
! ROS   -1       Color index to use for the outlines of the regional temperature labels (plotted only if ROS is non-negative).
! SC1    2       Color index to be used for the center of the sun symbol.
! SC2    3       Color index for the points of the sun symbol.
! SC3    1       Color index for the outline of the sun symbol.
! SC4    1       Color index for the shadow of the sun symbol.
! T1C    1       One color to use for the alternating colors of the dashes in the tropical fronts.
! T2C    1       A second color to use for the alternating colors of the dashes in the tropical fronts.
! VCC    1       Color index for vector color.
! VLB    1       Color index for vector label background.
! VLF    1       Color index for vector label foreground.
! WFC    1       Color index to use for warm front symbols.
!
!=====================================================================
! Refer "NCAR menu" for interfacing WMAP in detail
!=====================================================================