aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/ncarutil/conbdn.f
diff options
context:
space:
mode:
Diffstat (limited to 'sys/gio/ncarutil/conbdn.f')
-rw-r--r--sys/gio/ncarutil/conbdn.f342
1 files changed, 342 insertions, 0 deletions
diff --git a/sys/gio/ncarutil/conbdn.f b/sys/gio/ncarutil/conbdn.f
new file mode 100644
index 00000000..cd7ca00d
--- /dev/null
+++ b/sys/gio/ncarutil/conbdn.f
@@ -0,0 +1,342 @@
+C
+C
+C +-----------------------------------------------------------------+
+C | |
+C | Copyright (C) 1986 by UCAR |
+C | University Corporation for Atmospheric Research |
+C | All Rights Reserved |
+C | |
+C | NCARGRAPHICS Version 1.00 |
+C | |
+C +-----------------------------------------------------------------+
+C
+C
+c +noao: block data conbdn changed to run time initialization
+c BLOCKDATA CONBDN
+ subroutine conbdn
+C
+C
+C
+C COMMON DATA
+C
+C NOTE THE COMMON BLOCKS LISTED INCLUDE ALL THE COMMON USED BY
+C THE ENTIRE CONRAN FAMILY, NOT ALL MEMBERS WILL USE ALL
+C THE COMMON DATA.
+C
+C CONRA1
+C CL-ARRAY OF CONTOUR LEVELS
+C NCL-NUMBER OF CONTOUR LEVELS
+C OLDZ-Z VALUE OF LEFT NEIGHBOR TO CURRENT LOCATION
+C PV-ARRAY OF PREVIOUS ROW VALUES
+C HI-LARGEST CONTOUR PLOTTED
+C FLO-LOWEST CONTOUR PLOTTED
+C FINC-INCREMENT LEVEL BETWEEN EQUALLY SPACED CONTOURS
+C CONRA2
+C REPEAT-FLAG TO TRIANGULATE AND DRAW OR JUST DRAW
+C EXTRAP-PLOT DATA OUTSIDE OF CONVEX DATA HULL
+C PER-PUT PERIMETER ARROUND PLOT
+C MESS-FLAG TO INDICATE MESSAGE OUTPUT
+C ISCALE-SCALING SWITCH
+C LOOK-PLOT TRIANGLES FLAG
+C PLDVLS-PLOT THE DATA VALUES FLAG
+C GRD-PLOT GRID FLAG
+C CON-USER SET OR PROGRAM SET CONTOURS FLAG
+C CINC-USER OR PROGRAM SET INCREMENT FLAG
+C CHILO-USER OR PROGRAM SET HI LOW CONTOURS
+C LABON-FLAG TO CONTROL LABELING OF CONTOURS
+C PMIMX-FLAG TO CONTROL THE PLOTTING OF MIN"S
+C AND MAX"S
+C SCALE-THE SCALE FACTOR FOR CONTOUR LINE VALUES
+C AND MIN , MAX PLOTTED VALUES
+C FRADV-ADVANCE FRAME BEFORE PLOTTING TRIANGUALTION
+C EXTRI-ONLY PLOT TRIANGULATION
+C BPSIZ-BREAKPOINT SIZE FOR DASHPATTERNS
+C LISTOP-LIST OPTIONS ON UNIT6 FLAG
+C CONRA3
+C IREC-PORT RECOVERABLE ERROR FLAG
+C CONRA4
+C NCP-NUMBER OF DATA POINTS USED AT EACH POINT FOR
+C POLYNOMIAL CONSTRUCTION.
+C NCPSZ-MAX SIZE ALLOWED FOR NCP
+C CONRA5
+C NIT-FLAG TO INDICATE STATUS OF SEARCH DATA BASE
+C ITIPV-LAST TRIANGLE INTERPOLATION OCCURRED IN
+C CONRA6
+C XST-X COORDINATE START POINT FOR CONTOURING
+C YST-Y COORDINATE START POINT FOR CONTOURING
+C XED-X COORDINATE END POINT FOR CONTOURING
+C YED-Y COORDINATE END POINT FOR CONTOURING
+C STPSZ-STEP SIZE FOR X,Y CHANGE WHEN CONTOURING
+C IGRAD-NUMBER OF GRADUATIONS FOR CONTOURING(STEP SIZE)
+C IG-RESET VALUE FOR IGRAD
+C XRG-X RANGE OF COORDINATES
+C YRG-Y RANGE OF COORDINATES
+C BORD-PERCENT OF FRAME USED FOR CONTOUR PLOT
+C PXST-X PLOTTER START ADDRESS FOR CONTOURS
+C PYST-Y PLOTTER START ADDRESS FOR CONTOURS
+C PXED-X PLOTTER END ADDRESS FOR CONTOURS
+C PYED-Y PLOTTER END ADDRESS FOR CONTOURS
+C ITICK-NUMBER OF TICK MARKS FOR GRIDS AND PERIMETERS
+C CONRA7
+C TITLE-SWITCH TO INDICATE IF TITLE OPTION ON OR OFF
+C ISTRNG-CHARACTER STRING OF TITLE
+C ICNT-CHARACTER COUNT OF ISTRNG
+C ITLSIZ-SIZE OF TITLE IN PWRIT UNITS
+C CONRA8
+C IHIGH-DEFAULT COLOR (INTENSITY) INDEX SETTING
+C INMAJ-CONTOUR LEVEL COLOR (INTENSITY) INDEX FOR MAJOR LINES
+C INMIN-CONTOUR LEVEL COLOR (INTENSITY) INDEX FOR MINOR LINES
+C INLAB-TITLE AND MESSAGE COLOR (INTENSITY) INDEX
+C INDAT-DATA VALUE COLOR (INTENSITY) INDEX
+C FORM-THE FORMAT FOR PLOTTING THE DATA VALUES
+C LEN-THE NUMBER OF CHARACTERS IN THE FORMAT
+C IFMT-SIZE OF THE FORMAT FIELD
+C LEND-DEFAULT FORMAT LENGTH
+C IFMTD-DEFAULT FORMAT FIELD SIZE
+C ISIZEP-SIZE OF THE PLOTTED DATA VALUES
+C CONRA9
+C X-ARRAY OF X COORDINATES OF CONTOURS DRAWN AT CURRENT CONTOUR
+C LEVEL
+C Y-ARRAY OF Y COORDINATES OF CONTOURS DRAWN AT CURRENT CONTOUR
+C LEVEL
+C NP-COUNT IN X AND Y
+C MXXY-SIZE OF X AND Y
+C TR-TOP RIGHT CORNER VALUE OF CURRENT CELL
+C BR-BOTTOM RIGHT CORNER VALUE OF CURRENT CELL
+C TL-TOP LEFT CORNER VALUE OF CURRENT CELL
+C BL-BOTTOM LEFT CORNER VALUE OF CURRENT CELL
+C CONV-CURRENT CONTOUR VALUE
+C XN-X POSITION WHERE CONTOUR IS BEING DRAWN
+C YN-Y POSITION WHERE CONTOUR IS BEING DRAWN
+C ITLL-TRIANGLE WHERE TOP LEFT CORNER OF CURRENT CELL LIES
+C IBLL-TRIANGLE OF BOTTOM LEFT CORNER
+C ITRL-TRIANGLE OF TOP RIGHT CORNER
+C IBRL-TRIANGLE OF BOTTOM LEFT CORNER
+C XC-X COORDINATE OF CURRENT CELL
+C YC-Y CORRDINATE OF CURRENT CELL
+C ITLOC-IN CONJUNCTION WITH PV STORES THE TRIANGLE WHERE PV
+C VALUE CAME FROM
+C CONR10
+C NT-NUMBER OF TRIANGLES GENERATED
+C NL-NUMBER OF LINE SEGMENTS
+C NTNL-NT+NL
+C JWIPT-POINTER INTO IWK WHERE WHERE TRIANGLE POINT NUMBERS
+C ARE STORED
+C JWIWL-IN IWK THE LOCATION OF A SCRATCH SPACE
+C JWIWP-IN IWK THE LOCATION OF A SCRATCH SPACE
+C JWIPL-IN IWK THE LOCATION OF END POINTS FOR BORDER LINE
+C SEGMENTS
+C IPR-IN WK THE LOCATION OF THE PARTIAL DERIVITIVES AT EACH
+C DATA POINT
+C ITPV-THE TRIANGLE WHERE THE PREVIOUS VALUE CAME FROM
+C CONR11
+C NREP-NUMBER OF REPETITIONS OF DASH PATTERN BEFORE A LABEL
+C NCRT-NUMBER OF CRT UNITS FOR A DASH MARK OR BLANK
+C ISIZEL-SIZE OF CONTOUR LINE LABELS
+C NDASH-ARRAY CONTAINING THE NEGATIVE VALUED CONTOUR DASH
+C PATTERN
+C MINGAP-NUMBER OF UNLABELED LINES BETWEEN EACH LABELED ONE
+C IDASH-POSITIVE VALUED CONTOUR DASH PATTERN
+C ISIZEM-SIZE OF PLOTTED MINIMUMS AND MAXIMUMS
+C EDASH-EQUAL VALUED CONTOUR DASH PATTERN
+C TENS-DEFAULT TENSION SETTING FOR SMOOTHING
+C CONR12
+C IXMAX,IYMAX-MAXINUM X AND Y COORDINATES RELATIVE TO THE
+C SCRATCH ARRAY, SCRARR
+C XMAX,YMAX-MAXIMUM X AND Y COORDINATES RELATIVE TO USERS
+C COORDINATE SPACE
+C CONR13
+C XVS-ARRAY OF THE X COORD FOR SHIELDING
+C YVS-ARRAY OF THE Y COORD FOR SHIELDING
+C IXVST-POINTER (VIA LOC) TO THE USERS X ARRAY FOR SHIELDING
+C IYVST-POINTER (VIA LOC) TO THE USERS Y ARRAY FOR SHIELDING
+C ICOUNT-COUNT OF THE SHIELD ELEMENTS
+C SPVAL-SPECIAL VALUE USED TO HALT CONTOURING AT THE SHIELD
+C BOUNDRY
+C SHIELD-LOGICAL FLAG TO SIGNAL STATUS OF SHIELDING
+C SLDPLT-LOGICAL FLAG TO INDICTE STATUS OF SHIEDL PLOTTING
+C CONR14
+C LINEAR-C1 LINAER INTERPOLATIN FLAG
+C
+C
+ COMMON /CONRA1/ CL(30) ,NCL ,OLDZ ,PV(210),
+ 1 FINC ,HI ,FLO
+ COMMON /CONRA2/ REPEAT ,EXTRAP ,PER ,MESS,
+ 1 ISCALE ,LOOK ,PLDVLS ,GRD,
+ 2 CINC ,CHILO ,CON ,LABON,
+ 3 PMIMX ,SCALE ,FRADV ,EXTRI,
+ 4 BPSIZ ,LISTOP
+ COMMON /CONRA3/ IREC
+ COMMON /CONRA4/ NCP ,NCPSZ
+ COMMON /CONRA5/ NIT ,ITIPV
+ COMMON /CONRA6/ XST ,YST ,XED ,YED,
+ 1 STPSZ ,IGRAD ,IG ,XRG,
+ 2 YRG ,BORD ,PXST ,PYST,
+ 3 PXED ,PYED ,ITICK
+ COMMON /CONRA7/ TITLE ,ICNT ,ITLSIZ
+ COMMON /CONRA8/ IHIGH ,INMAJ ,INLAB ,INDAT,
+ 1 LEN ,IFMT ,LEND ,
+ 2 IFMTD ,ISIZEP ,INMIN
+ COMMON /CONRA9/ ICOORD(500),NP ,MXXY ,TR,
+ 1 BR ,TL ,BL ,CONV,
+ 2 XN ,YN ,ITLL ,IBLL,
+ 3 ITRL ,IBRL ,XC ,YC,
+ 4 ITLOC(210) ,JX ,JY ,ILOC ,
+ 5 ISHFCT ,XO ,YO ,IOC ,NC
+ COMMON /CONR10/ NT ,NL ,NTNL ,JWIPT,
+ 1 JWIWL ,JWIWP ,JWIPL ,IPR ,
+ 2 ITPV
+ COMMON /CONR11/ NREP ,NCRT ,ISIZEL ,
+ 1 MINGAP ,ISIZEM ,
+ 2 TENS
+ COMMON /CONR12/ IXMAX ,IYMAX ,XMAX ,YMAX
+ LOGICAL REPEAT ,EXTRAP ,PER ,MESS,
+ 1 LOOK ,PLDVLS ,GRD ,LABON,
+ 2 PMIMX ,FRADV ,EXTRI ,CINC,
+ 3 TITLE ,LISTOP ,CHILO ,CON
+ COMMON /CONR13/XVS(50),YVS(50),ICOUNT,SPVAL,SHIELD,
+ 1 SLDPLT
+ LOGICAL SHIELD,SLDPLT
+ COMMON /CONR14/LINEAR
+ LOGICAL LINEAR
+ logical first
+ COMMON /CONR15/ ISTRNG
+ CHARACTER*64 ISTRNG
+ COMMON /CONR16/ FORM
+ CHARACTER*10 FORM
+ COMMON /CONR17/ NDASH, IDASH, EDASH
+ CHARACTER*10 NDASH, IDASH, EDASH
+ COMMON /RANINT/ IRANMJ, IRANMN, IRANTX
+ COMMON /RAQINT/ IRAQMJ, IRAQMN, IRAQTX
+ COMMON /RASINT/ IRASMJ, IRASMN, IRASTX
+C
+ SAVE
+C
+C
+c +noao: parameter added to avoid clobbering initialization done
+c by conop[1-4].
+ data first /.true./
+ if (.not. first) return
+ first = .false.
+c -noao
+C
+c DATA ICOUNT,SHIELD,SLDPLT,LINEAR/0,.FALSE.,.FALSE.,.FALSE./
+ ICOUNT = 0
+ SHIELD = .FALSE.
+ SLDPLT = .FALSE.
+ LINEAR = .FALSE.
+c
+c DATA REPEAT,EXTRAP,PER/.FALSE.,.FALSE.,.TRUE./
+ REPEAT = .FALSE.
+ EXTRAP = .FALSE.
+ PER = .TRUE.
+c
+c DATA FRADV,EXTRI,BPSIZ/.TRUE.,.FALSE.,0.0/
+ FRADV = .TRUE.
+ EXTRI = .FALSE.
+ BPSIZ = 0.0
+c
+c DATA TITLE,MESS,LOOK/.FALSE.,.TRUE.,.FALSE./
+ TITLE = .FALSE.
+ MESS = .TRUE.
+ LOOK = .FALSE.
+c
+c DATA PLDVLS,GRD/.FALSE.,.FALSE./
+ PLDVLS = .FALSE.
+ GRD = .FALSE.
+c
+c DATA CON,CINC,CHILO/.FALSE.,.FALSE.,.FALSE./
+ CON = .FALSE.
+ CINC = .FALSE.
+ CHILO = .FALSE.
+c
+c DATA SCALE,PMIMX/1.,.FALSE./
+ SCALE = 1.
+ PMIMX = .FALSE.
+c
+c DATA ISIZEP,ISIZEM,TENS/8,15,2.5/
+ ISIZEP = 8
+ ISIZEM = 15
+ TENS = 2.5
+c
+c DATA INMAJ,INMIN,INLAB,INDAT/1, 1, 1, 1/
+ INMAJ = 2
+ INMIN = 1
+ INLAB = 2
+ INDAT = 1
+c
+c DATA IRANMJ, IRANMN, IRANTX /1, 1, 1/
+ IRANMJ = 2
+ IRANMN = 1
+ IRANTX = 1
+c
+c DATA IRASMJ, IRASMN, IRASTX /1, 1, 1/
+ IRASMJ = 2
+ IRASMN = 1
+ IRASTX = 1
+c
+c DATA IRAQMJ, IRAQMN, IRAQTX /1, 1, 1/
+ IRAQMJ = 2
+ IRAQMN = 1
+ IRAQTX = 1
+c
+c DATA LABON/.TRUE./,LISTOP/.FALSE./
+ LABON = .TRUE.
+ LISTOP = .FALSE.
+c
+c DATA BORD,ITICK/.9,10/
+ BORD = .9
+ ITICK = 10
+c
+c DATA ISCALE,ITLSIZ/0,16/
+ ISCALE = 0
+ ITLSIZ = 16
+c
+c DATA ITIPV,NIT,NCL/0,0,0/
+ ITIPV = 0
+ NIT = 0
+ NCL = 0
+c
+c DATA NCPSZ/25/
+ NCPSZ = 25
+c
+c DATA IHIGH/255/
+ IHIGH = 255
+c
+c DATA NCP /4/
+ NCP = 4
+c
+c DATA IREC /1/
+ IREC = 1
+c
+c DATA LEN,IFMT,LEND,IFMTD/0,0,7,10/
+ LEN = 0
+ IFMT = 0
+ LEND = 7
+ IFMTD = 10
+c
+c DATA IGRAD,IG/40,40/
+ IGRAD = 40
+ IG = 40
+c
+c DATA NREP,NCRT,ISIZEL,MXXY,MINGAP/6,3,9,500,3/
+ NREP = 6
+ NCRT = 3
+ ISIZEL = 9
+ MXXY = 500
+ MINGAP = 3
+c
+c DATA IDASH(1:1)/' '/
+ IDASH(1:1) = ' '
+c
+c DATA NDASH(1:1)/' '/
+ NDASH(1:1) = ' '
+c
+c DATA EDASH(1:1)/' '/
+ EDASH(1:1) = ' '
+c
+c DATA ISHFCT/9/
+ ISHFCT = 9
+c
+c - noao
+ END