C C MONGO PLOTTING ROUTINE WITH USER DEFINED SPECIFICS C DEVELOPED BY SAUNDERS B. KRAMER JR., CODE 692 C C XX1 PLOT LOWER X AXIS LIMIT IN DEVICE COORDINATES - R*4 C XX2 PLOT UPPER X AXIS LIMIT IN DEVICE COORDINATES - R*4 C YY1 PLOT LOWER Y AXIS LIMIT IN DEVICE COORDINATES - R*4 C YY2 PLOT UPPER Y AXIS LIMIT IN DEVICE COORDINATES - R*4 C XT1 Y LABEL LOWER X AXIS LIMIT IN DEVICE COORDINATES - R*4 C XT2 Y LABEL UPPER X AXIS LIMIT IN DEVICE COORDINATES - R*4 C YT1 X LABEL LOWER Y AXIS LIMIT IN DEVICE COORDINATES - R*4 C YT2 X LABEL UPPER Y AXIS LIMIT IN DEVICE COORDINATES - R*4 C TT1 TITLE LOWER Y AXIS LIMIT IN DEVICE COORDINATES - R*4 C TT2 TITLE UPPER Y AXIS LIMIT IN DEVICE COORDINATES - R*4 C XNUMH SIZE OF X SCALE CHARACTERS - R*4 C YNUMH SIZE OF Y SCALE CHARACTERS - R*4 C XTXTH SIZE OF X LABEL CHARACTERS - R*4 C YTXTH SIZE OF Y LABEL CHARACTERS - R*4 C TITLH SIZE OF TITLE CHARACTERS - R*4 C XLAB CONTROLS X AXIS SCALING AND LABELLING - I*4 C 0 PRINT ALL SCALES AND X LABEL C 1 SKIP FIRST SCALE C 2 SKIP LAST SCALE C 3 SKIP FIRST AND LAST SCALE C 4 NO SCALES C YLAB PARALLELS XLAB ABOVE FOR Y AXIS - I*4 C XTLEN SIZE OF X AXIS LARGE TICKS - R*4 C YTLEN SIZE OF Y AXIS LARGE TICKS - R*4 C XSTRING X LABEL STRING - C*50 C YSTRING Y LABEL STRING - C*50 C TITLE TITLE STRING - C*50 C TYPE INDICATES INDEPENDENT AXIS FORMAT - I*4 C -6 TIME FORMAT (YEAR//DAY) YEAR INTERVALS C -5 TIME FORMAT (YEAR) * C -4 TIME FORMAT (HOUR) DAY INTERVALS C -3 TIME FORMAT (DAY) * C -2 TIME FORMAT (DAY//HOUR) * C -1 TIME FORMAT (YEAR//DAY) * C 0 STANDARD C 1 LOGARITHMIC INDEPENDENT AXIS, STANDARD Y AXIS C 2 LOGARITHMIC DEPENDENT AXIS, STANDARD X AXIS C 3 LOGARITHMIC INDEPENDENT AND DEPENDENT AXIS C XLOW PLOT LOWER X AXIS LIMIT IN USER COORDINATES - R*4 C XHIGH PLOT UPPER X AXIS LIMIT IN USER COORDINATES - R*4 C YLOW PLOT LOWER Y AXIS LIMIT IN USER COORDINATES - R*4 C YHIGH PLOT LOWER Y AXIS LIMIT IN USER COORDINATES - R*4 C SSPANX SPACING OF INDEPENDENT AXIS SMALL TICKS - R*4 C BSPANX SPACING OF INDEPENDENT AXIS LARGE TICKS - R*4 C SSPANY SPACING OF DEPENDENT AXIS SMALL TICKS - R*4 C BSPANY SPACING OF DEPENDENT AXIS LARGE TICKS - R*4 C XFORM FORTRAN FORMAT OF INDEPENDENT AXIS SCALING - C*10 C YFORM FORTRAN FORMAT OF DEPENDENT AXIS SCALING - C*10 C SUBROUTINE GRID(XX1,XX2,YY1,YY2,XT1,XT2,YT1,YT2,TT1,TT2, C XNUMH,YNUMH,XTXTH,YTXTH,TITLH,XLAB,YLAB, C XTLEN,YTLEN,XSTRING,YSTRING,TITLE,TYPE, C XLOW,XHIGH,YLOW,YHIGH,SSPANX,BSPANX, C SSPANY,BSPANY,XFORM,YFORM) CHARACTER*1 TCHAR CHARACTER*10 VALUE,XFORM,YFORM CHARACTER*50 XSTRING,YSTRING,TITLE INTEGER*4 XNUM,YNUM,XLAB,YLAB,TYPE LOGICAL TIME REAL*8 TLOW,THIGH,DEC,CONVERT C C DETERMINE IF INDEPENDENT AXIS HAS TIME SCALE C TIME = .FALSE. IF (TYPE.LT.0) TIME = .TRUE. IF (.NOT.TIME) GOTO 30 C C CONVERT CALENDAR TIME INTO DECIMAL YEAR C TLOW = CONVERT(XLOW) THIGH = CONVERT(XHIGH) 30 CONTINUE C C DRAW BOX C CALL MGOSETLOC(XX1,YY1,XX2,YY2) CALL MGOLINE(XX1,YY1,XX1,YY2) CALL MGOLINE(XX1,YY2,XX2,YY2) CALL MGOLINE(XX2,YY2,XX2,YY1) CALL MGOLINE(XX2,YY1,XX1,YY1) C C DRAW TIME (INDEPENDENT) AXIS TICK MARKS C IF (.NOT.TIME) GOTO 40 CALL MGOSETEXPAND(XNUMH) CALL BIGTICK(XX1,XX2,YY1,YY2,TLOW,THIGH,BSPANX, C XLAB,XTLEN,TYPE) CALL SMALLTICK(XX1,XX2,YY1,YY2,TLOW,THIGH,SSPANX, C XTLEN,TYPE) GOTO 45 40 CONTINUE C C DRAW INDEPENDENT AXIS LARGE TICK MARKS AND LABEL C IF (TYPE.EQ.1.OR.TYPE.EQ.3) THEN ISCALE = 1 ELSE ISCALE = 0 END IF CALL MGOSETEXPAND(XNUMH) CALL LRGTICK(YY1,YY2,XX1,XX2,XLOW,XHIGH,BSPANX, C XFORM,XTLEN,XLAB,ISCALE) C C DRAW INDEPENDENT AXIS SMALL TICK MARKS C IF (TYPE.EQ.1.OR.TYPE.EQ.3) THEN CALL LOGTICK(YY1,YY2,XX1,XX2,XLOW,XHIGH,SSPANX,XTLEN) ELSE CALL SMLTICK(YY1,YY2,XX1,XX2,XLOW,XHIGH,SSPANX,XTLEN) END IF C 45 CONTINUE C C DRAW DEPENDENT AXIS LARGE TICK MARKS AND LABEL C IF (TYPE.EQ.2.OR.TYPE.EQ.3) THEN ISCALE = 1 ELSE ISCALE = 0 END IF CALL MGOSETEXPAND(YNUMH) XX1 = -XX1 CALL LRGTICK(XX1,XX2,YY1,YY2,YLOW,YHIGH, C BSPANY,YFORM,YTLEN,YLAB,ISCALE) C C DRAW DEPENDENT AXIS SMALL TICK MARKS C XX1 = -XX1 IF (TYPE.EQ.2.OR.TYPE.EQ.3) THEN CALL LOGTICK(XX1,XX2,YY1,YY2,YLOW,YHIGH,SSPANY,YTLEN) ELSE CALL SMLTICK(XX1,XX2,YY1,YY2,YLOW,YHIGH,SSPANY,YTLEN) END IF C C LABEL TITLE C CALL STRINGSET(XX1,TT1,XX2,TT2,TITLE,50,1,TITLH) C C LABEL INDEPENDENT AXIS C CALL STRINGSET(XX1,YT1,XX2,YT2,XSTRING,50,1,XTXTH) C C LABEL DEPENDENT AXIS C CALL MGOSETANGLE(90.) CALL STRINGSET(XT1,YY1,XT2,YY2,YSTRING,50,1,YTXTH) CALL MGOSETANGLE(0.) C C RESET LOCATION,SIZE AND WEIGHT C CALL MGOSETLOC(XX1,YY1,XX2,YY2) CALL MGOSETEXPAND(1.0) CALL MGOSETLWEIGHT(1) C RETURN END