| 1 | C \ e-+-+-+-+-+ P O L A R . F T -+-+-+-+-+\r |
| 2 | C\r |
| 3 | C * OR 4-MAR-1984 HA.\r |
| 4 | C\r |
| 5 | C AUFRUF: CALL POLAR (RAD,WINK,NPTS,INC,LINTYP,INTEG,RMAX,SCAL)\r |
| 6 | C\r |
| 7 | C RAD: FELD, IN DEM DIE RADIALKOMPONENTEN DER ZU ZEICHNENDEN\r |
| 8 | C KURVE GESPEICHERT SIND.\r |
| 9 | C\r |
| 10 | C WINK: FELD, IN DEM DIE IM BOGENMASS GEMESSENEN WINKELGROESSEN\r |
| 11 | C GESPEICHERT SIND.\r |
| 12 | C\r |
| 13 | C NPTS: ANZAHL DER FELDELEMNTE VON RAD UND WINK\r |
| 14 | C\r |
| 15 | C INC: SCHRITTWEITE IN DEN BEIDEN FELDERN RAD, WINK.\r |
| 16 | C\r |
| 17 | C LINTYP: SPEZIFIZIERT DIE ZEICHENART DER KURVE.\r |
| 18 | C\r |
| 19 | C LINTYP>0: DIE KOORDINATENPUNKTE WERDEN DURCH EINE LINIE\r |
| 20 | C VERBUNDEN UND JEDER N-TE PUNKT (N=LINTYP) AUS DER REIHE\r |
| 21 | C DER PUNKTE, DIE ZUM ZEICHNEN DER KURVE BENOETIGT WERDEN, WIRD \r |
| 22 | C MIT EINEM SYMBOL VERSEHEN.\r |
| 23 | C\r |
| 24 | C LINTYP=0: ALLE KOORDINATEN PUNKTE WERDEN DURCH EINE LINIE VERBUNDEN.\r |
| 25 | C SYMBOLE WERDEN NICHT GEZEICHNET.\r |
| 26 | C\r |
| 27 | C LINTYP<0: JEDER N-TE (N=ABS(LINTYP)) DER PUNKTE, DIE ZUM ZEICHNEN\r |
| 28 | C DER KURVE BENOETIGT WERDEN, WIRD MIT EINEM SYMBOL VERSEHEN.\r |
| 29 | C DAS ZEICHNEN DER KURVE SELBST UNTERBLEIBT.\r |
| 30 | C\r |
| 31 | C INTEG: ERHAELT EINEN WERT ZWISCHEN 0 UND 15. HIERDURCH WIRD\r |
| 32 | C BEI LINTYP.NE.0 DAS SYMBOL SPEZIFIZIERT, DAS BEI DEN DURCH\r |
| 33 | C LINTYP AUSGEWAEHLTEN PUNKTEN GEZEICHNET WERDEN SOLL.\r |
| 34 | C SIEHE HIERZU SYMBOL ROUTINE.\r |
| 35 | C\r |
| 36 | C RMAX: IST RMAX>0, SO WIRD AUCH DAS ZUR KURVE GEHOERIGE KOORDINATEN-\r |
| 37 | C SYSTEM GEZEICHNET. DESSEN ACHSEN VERLAUFEN PARALLEL ZUR X-,\r |
| 38 | C BZW. Y-PLOTTERACHSEUND HABEN JEWEILS DIE LAENGE RMAX.\r |
| 39 | C DURCH CALL PLOT(X,Y,-3) MUSS DER BENUTZER DEN URSPRUNG (X,Y) \r |
| 40 | C SEINES KOORDINATENSYSTEMS SELBST DEFINIEREN. EIN MASSTABSFAKTOR\r |
| 41 | C ZUM ZEICHNEN DER KURVE WIRD VON POLAR DERART BESTIMMT, DASS DIE\r |
| 42 | C GESAMMTE ZEICHNUNG PLATZ FINDET.\r |
| 43 | C\r |
| 44 | C RMAX=0: ES WIRD KEIN KOORDINATENSYSTEM GEZEICHNET. ZUM ZEICHNEN DER\r |
| 45 | C KURVE WIRD ALS MASSSTABSFAKTOR DER WERT VON SCAL BENUTZT.\r |
| 46 | C\r |
| 47 | C RMAX<0: ES WIRD KEIN KOORDINATEN SYSTEM GEZEICHNET. ZU ZEICHNEN\r |
| 48 | C DER KURVE WIRD EIN MASSSTABSFAKTOR WIE FUER RMAX>0 BESTIMMT.\r |
| 49 | C\r |
| 50 | C SCAL:: MASSTABSFAKTOR ZUM ZEICHNEN DER KURVE. ER HAT NUR BEDEUTUNG,\r |
| 51 | C WENN RMAX=0 IST.\r |
| 52 | C\r |
| 53 | SUBROUTINE POLAR(RAD,WINK,NPTS,INC,LINTYP,INTEG,RMAX,SCAL)\r |
| 54 | REAL RAD(NPTS),WINK(NPTS),RMAX,SCAL\r |
| 55 | INTEGER NPTS,INC,LINTYP,INTEG\r |
| 56 | C\r |
| 57 | C\r |
| 58 | REAL X,Y,SKAL\r |
| 59 | INTEGER I,NPT,PENPOS,PENUP,PENDWN\r |
| 60 | DATA PENUP,PENDWN /3,2/\r |
| 61 | C\r |
| 62 | SKAL=SCAL @ THE DEFAULT FACTOR\r |
| 63 | IF (RMAX.EQ.0) GOTO 20 @ NO AXIS AT ALL, TAKE SCAL FOR SCALING\r |
| 64 | C\r |
| 65 | SKAL=0 @ NOW WE COMPUTE THE SCALE FACTOR\r |
| 66 | DO 15 I=1,NPTS,INC\r |
| 67 | 15 SKAL=AMAX1(SKAL,ABS(RAD(I))) @ HERE WE SEARCH FOR THE MAXIMUM OF RADIANTS\r |
| 68 | SKAL=ABS(RMAX)/SKAL @ AND THIS IS THE NEW FACTOR\r |
| 69 | C\r |
| 70 | 20 CONTINUE @ SCALE FACTOR IS STORED IN SKAL\r |
| 71 | PENPOS=PENUP @ THE FISRT POINT IS ALWAYS PLOTTED WITH PEN UP\r |
| 72 | NPT=0\r |
| 73 | DO 25 I=1,NPTS,INC\r |
| 74 | W=WINK(I)\r |
| 75 | X=RAD(I)*SKAL*COS(W) @ AND NOW WE COMPUTE X AND Y COMPONNENTS\r |
| 76 | Y=RAD(I)*SKAL*SIN(W)\r |
| 77 | IF (LINTYP) 30,40,50 @ HERE WE DECIDE HOW TO PLOTTC\r |
| 78 | 30 IF(MOD(NPT,ABS(LINTYP)).NE.0) GOTO 25\r |
| 79 | CALL SYMBOL(X,Y,.4,INTEG,0,-1) @ LINTYP<0, SINGLE SYMBOL ONLY\r |
| 80 | GOTO 25\r |
| 81 | C\r |
| 82 | 40 CALL XYPLOT(X,Y,PENPOS) @ LINTYP=0, LINE ONLY\r |
| 83 | PENPOS=PENDWN\r |
| 84 | GOTO 25\r |
| 85 | C\r |
| 86 | 50 CALL XYPLOT(X,Y,PENPOS) @ LINTYP>0, LINE+SYMBOL\r |
| 87 | PENPOS=PENDWN\r |
| 88 | IF (MOD(NPT,LINTYP).NE.0) GOTO 25\r |
| 89 | CALL SYMBOL (X,Y,.4,INTEG,0,-1)\r |
| 90 | C\r |
| 91 | 25 NPT=NPT+1 @ HERE WE COUNT THE NUMBER OF POINTS SCANNED\r |
| 92 | RETURN\r |
| 93 | END\r |
| 94 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |