!=====================================================================
! NGSF: Softfill, A Software Fill Package
!=====================================================================
!
! The graphics package SOFTFILL allows the user to fill a polygonal
! subset of the plotter frame in any of various ways. It contains the
! user-callable subroutines SFSGFA, SFWRLD, SFNORM, SFGETC, SFGETI,
! SFGETP, SFGETR, SFSETC, SFSETI, SFSETP, and SFSETR.
!
!---------------------------------------------------------------------
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
! set/Get internal parameters
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! NG_SFRSET  to reset all parameters to their default values.
!
! NG_SFSETC  to give a value of type CHARACTER to a parameter.
! NG_SFSETI  to give a value of type INTEGER to a parameter.
! NG_SFSETR  to give a value of type REAL to a parameter.
! NG_SFSETP  to define a new dot pattern.
!
! NG_SFGETC  to get a value of type CHARACTER.
! NG_SFGETI  to get a value of type INTEGER.
! NG_SFGETR  to get a value of type REAL.
! NG_SFGETP  to get the current dot pattern.
!
! *** CNCARG adding one internal parameter 'SC', specify the scaling
!     factor of polymark drawn by the SPPS routine NG_POINTS.  The
!     default value is 1.0
!
! ~~~~~~~~~~~~~~~~
! Working Routines
! ~~~~~~~~~~~~~~~~
!
! NG_SFSGFA, NG_SFWRLD, and NG_SFNORM
!
! The routine SFSGFA can be made to fill polygons by calling the GKS
! routine GFA or by calling the lower-level SOFTFILL routines SFWRLD
! and SFNORM. If all area fills are done using SFSGFA, then the way
! in which they are done can be changed by modifying the value of a
! single internal parameter of SOFTFILL.
!
! The routines SFWRLD and SFNORM may be called directly by the user
! to fill polygons with parallel lines or with dots, polymarkers,
! or  selected characters arrayed in a regular rectangular pattern.
! By calling these routines more than once for a given polygon, one
! can create effects like cross-hatching, use combinations of lines
! and dots, and so on.
!
! Use SFWRLD if the coordinates are user coordinates in the range
! specified by the current window (as defined by arguments 5 through
! 8 of the last call to the SPPS routine SET or by the last call to
! the GKS routine GSWN). Use SFNORM if the coordinates are fractional
! coordinates - real values between 0 and 1.
!
! *** CNCARG remove the working array arguments: DST, NST, IND,and NND
!
!---------------------------------------------------------------------
!
! Internal Parameters: SOFTFILL has eight (nine) internal parameters
!
! 'TY'  Type of fill to be used by SFSGFA
!
!       -1 to -4 => patterns using lines in 1 to 4 different directions
!                   and varying in density as the argument ICI varies;
!
!       0 => color fill, by calling GFA, with ICI specifying the color
!            index;
!
!       1 => simulated color fill, using lines in one direction,
!            with ICI specifying the color index;
!
!       2 => simulated color fill, using lines in two directions, with
!            ICI specifying the color index).
!
!       The default value is 0.
!
!       Note: 'AN' and 'SP' used, and, 'DO' should be zero
!
!---------
!
! 'AN'  Angle of fill lines, in degrees counterclockwise from horizontal.
!       The default value is 0.0.
!
! 'SP'  Spacing of fill lines, in the fractional coordinate system.
!       The default value is 0.00125.
!
!       Note: 'AN' and 'SP' will be used for all conditions
!
!---------
!
! 'DO'  Dot fill selector (0 => line fill; non-zero => dot fill).
!       Use a positive value to have NG_POINTS draw the dots or a
!       negative value to have NG_DOTS draw them (masked by LDP).
!       The default value is 0, which implies line fill.
!
!       DO > 0: CALL NG_POINTS(XP, YP, NP, CH, 0, SZ=DS, IC=DC)
!       DO < 0: CALL NG_DOTS  (XP, YP, NP, DS, DC, 0)
!
!       Note: 'DS', 'DC', 'CH', and 'LDP' used only for non-zero 'DO'
!
! 'DS'  Dot size (fractional-system diameter) for the use in calls to
!       NG_DOTS and NG_POINTS
!       The default value is 0.01.
!
! 'DC'  Dot color index for the use in calls to NG_DOTS and NG_POINTS.
!       The default value is 1.
!
! 'CH'  Character selector (-n => GKS polymarker n; 0 => dots;
!       +n => CHAR(n)) for the use in calls to NG_POINTS.
!       The default value is 0.
!
! 'LDP' An 8x8 array of type INTEGER, containing nothing but 0s (the
!       dot is not drawn) and 1s (the dot is drawn), describing the
!       dot pattern to be used when 'DO' is set non-zero to select
!       dot fill, rather than line fill.
!       The default value is 1.
!
!=====================================================================
! Refer "NCAR menu" for interfacing SOFTFILL in detail
!=====================================================================