PROGRAM PIE C C C This program accepts parameters from either a command file defined C as a start parm or ineractively from the VDU. C C BYTE IPF(30), ITLE(25), FMT(20), FNME(30) BYTE CMD(80), ICL, ISAV, SAVFIL(30), NAMDIV(10, 25) LOGICAL COLOUR, VDU, CMDOUT C LU = 5 CALL GETMCR(CMD, N) IF (.NOT.(N.LE.3.OR.(N.EQ.4.AND.CMD(4).EQ.' '))) GOTO 2000 VDU = .TRUE. PRINT 213 READ(LU, 2020) ISAV 2020 FORMAT(A1) IF (.NOT.(ISAV.EQ.'Y'.OR.ISAV.EQ.'y')) GOTO 2030 CMDOUT = .TRUE. PRINT 214 READ(LU, 2050) SAVFIL 2050 FORMAT(30A1) SAVFIL(30) = 0 OPEN(UNIT = 2, NAME = SAVFIL, STATUS = 'new', CARRIAGECONTROL *= 'list') GOTO 2040 2030 CONTINUE CMDOUT = .FALSE. 2040 CONTINUE GOTO 2010 2000 CONTINUE VDU = .FALSE. LU = 1 CMD(N + 1) = 0 I = 4 IF (.NOT.(CMD(4).EQ.'@')) GOTO 2060 I = I + 1 2060 CONTINUE OPEN(UNIT = 1, NAME = CMD(I), STATUS = 'old', READONLY) 2010 CONTINUE IF (.NOT.(VDU)) GOTO 2080 PRINT 200 2080 CONTINUE READ(LU, *) NPLTS IF (.NOT.(NPLTS.GT.1)) GOTO 2100 PRINT 500 2100 CONTINUE IF (.NOT.(CMDOUT)) GOTO 2120 WRITE(2, *) NPLTS 2120 CONTINUE IF (.NOT.(VDU)) GOTO 2140 PRINT 201 2140 CONTINUE READ(LU, 2160) IPF 2160 FORMAT(30A1) IPF(30) = 0 IF (.NOT.(CMDOUT)) GOTO 2170 WRITE(2, 2190) IPF 2190 FORMAT(30A1) 2170 CONTINUE IF (.NOT.(VDU)) GOTO 2200 PRINT 202 2200 CONTINUE READ(LU, 2220) ICL 2220 FORMAT(A1) IF (.NOT.(CMDOUT)) GOTO 2230 WRITE(2, 2250) ICL 2250 FORMAT(A1) 2230 CONTINUE IF (.NOT.(ICL.EQ.Y.OR.ICL.EQ.'y')) GOTO 2260 COLOUR = .TRUE. GOTO 2270 2260 CONTINUE COLOUR = .FALSE. 2270 CONTINUE DO 2280 I = 1, NPLTS IF (.NOT.(VDU.AND.(NPLTS.GT.1))) GOTO 2300 WRITE(LU, 2320) I 2320 FORMAT('0PARAMTERS FOR PLOT ',I2) 2300 CONTINUE IF (.NOT.(VDU)) GOTO 2330 PRINT 203 2330 CONTINUE READ(LU, *) XSTART, YSTART IF (.NOT.(CMDOUT)) GOTO 2350 WRITE(2, *) XSTART, YSTART 2350 CONTINUE IF (.NOT.(VDU)) GOTO 2370 PRINT 204 2370 CONTINUE READ(LU, *) FACT IF (.NOT.(CMDOUT)) GOTO 2390 WRITE(2, *) FACT 2390 CONTINUE IF (.NOT.(VDU)) GOTO 2410 PRINT 205 2410 CONTINUE READ(LU, 2430) ITLE 2430 FORMAT(25A1) IF (.NOT.(CMDOUT)) GOTO 2440 WRITE(2, 2460) ITLE 2460 FORMAT(25A1) 2440 CONTINUE CALL CNVTUC(30, ITLE) IF (.NOT.(VDU)) GOTO 2470 PRINT 206 2470 CONTINUE DO 2490 JNME = 1, 25 READ(LU, 2510) (NAMDIV(N, JNME), N = 1, 10) 2510 FORMAT(10A1) IF (.NOT.(CMDOUT)) GOTO 2520 WRITE(2, 2540) (NAMDIV(N, JNME), N = 1, 10) 2540 FORMAT(10A1) 2520 CONTINUE IF (.NOT.(NAMDIV(1, JNME).EQ.'/')) GOTO 2550 GOTO 2500 2550 CONTINUE CALL CNVTUC(10, NAMDIV(1, JNME)) 2490 CONTINUE 2500 CONTINUE JNME = JNME - 1 IF (.NOT.(VDU)) GOTO 2570 PRINT 208 2570 CONTINUE READ(LU, 2590) FNME 2590 FORMAT(30A1) IF (.NOT.(CMDOUT)) GOTO 2600 WRITE(2, 2620) FNME 2620 FORMAT(30A1) 2600 CONTINUE FNME(30) = 0 IF (.NOT.(VDU)) GOTO 2630 PRINT 209 2630 CONTINUE READ(LU, 2650) FMT 2650 FORMAT(20A1) IF (.NOT.(CMDOUT)) GOTO 2660 WRITE(2, 2680) FMT 2680 FORMAT(20A1) 2660 CONTINUE IF (.NOT.(FMT(1).NE.'(')) GOTO 2690 CALL STINSE('(', 1, FMT, 19) 2690 CONTINUE J = 20 2710 IF (.NOT.(J.NE.0)) GOTO 2730 IF (.NOT.(FMT(J).NE.' ')) GOTO 2740 FMT(J + 1) = ')' GOTO 2730 2740 CONTINUE 2720 J = J - 1 GOTO 2710 2730 CONTINUE IF (.NOT.(VDU)) GOTO 2760 PRINT 207 2760 CONTINUE IF (.NOT.(VDU)) GOTO 2780 PRINT 210 2780 CONTINUE READ(LU, *) BSTART IF (.NOT.(CMDOUT)) GOTO 2800 WRITE(2, *) BSTART 2800 CONTINUE IF (.NOT.(VDU)) GOTO 2820 PRINT 211 2820 CONTINUE READ(LU, *) BINC IF (.NOT.(CMDOUT)) GOTO 2840 WRITE(2, *) BINC 2840 CONTINUE IF (.NOT.(VDU)) GOTO 2860 PRINT 212 2860 CONTINUE READ(LU, *) NBARS IF (.NOT.(CMDOUT)) GOTO 2880 WRITE(2, *) NBARS C 2880 CONTINUE IF (.NOT.(I.EQ.1)) GOTO 2900 IST = 0 GOTO 2910 2900 CONTINUE IST = I 2910 CONTINUE CALL PIE1(IPF, COLOUR, XSTART, YSTART, FACT, ITLE, IST) IF (.NOT.(BSTART.EQ.0..AND.BINC.EQ.0..AND.NBARS.EQ.0)) GOTO 2920 IST = 2 GOTO 2930 2920 CONTINUE IST = 1 2930 CONTINUE IF (.NOT.(I.EQ.NPLTS)) GOTO 2940 IST = ABS(IST) GOTO 2950 2940 CONTINUE IST = - IST 2950 CONTINUE CALL PIE2(FNME, FMT, , NAMDIV, BSTART, BINC, NBARS, IST) 2280 CONTINUE WRITE(5, 2960) (IPF(I), I = 1, 29) 2960 FORMAT(' Pie Plot is in file ',29A1) STOP 200 FORMAT('$Enter number of plots (integer) ->') 201 FORMAT('$Enter name of output plot file ->') 202 FORMAT('$Colour ? (Y/N) ->') 203 FORMAT('$Enter coords bottom/left (X,Y) ->') 204 FORMAT('$Enter amplification factor ->') 205 FORMAT('$Enter pie chart title (30 max) ->') 206 FORMAT(' Enter pie segment names - one per line', /, ' finish with * a slash (/)') 207 FORMAT('0If data is already processed answer 0 to', /, ' the follo *wing three questions') 208 FORMAT('$Enter name of input data file ->') 209 FORMAT('$Enter read format (F-type) ->') 210 FORMAT('$Enter value of first seg (real) ->') 211 FORMAT('$Enter segment increment (real) ->') 212 FORMAT('$Number of segments (integer) ->') 213 FORMAT('$Save answers in a file ?(Y/N) ->') 214 FORMAT('$Enter name of save file ->') 500 FORMAT('0All plots will be done without any inter-plot delays.') END