File: idplot.f

package info (click to toggle)
nastran 0.1.95-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, sid
  • size: 122,540 kB
  • sloc: fortran: 284,409; sh: 771; makefile: 324
file content (84 lines) | stat: -rw-r--r-- 2,194 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
      SUBROUTINE IDPLOT (IDX)
C
      COMMON /OUTPUT/ SKPOUT(32,6),ID(32)
      COMMON /PLTDAT/ SKPPLT(2),XYMIN(2),XYMAX(2),AXYMAX(2),EDGE(12)
     1,      SKPA(3),CNTX,CNTY,SKPB(4),PLTYPE
      INTEGER PLTYPE
C
      INTEGER BLANK
      REAL SAVE(2,4)
      DATA BLANK,LINSIZ / 1H ,3 /
C
C     DOES A PLOT ID EXIST AT ALL
C
      IDX = 1
      DO 101 I = 1,20
      IF (ID(I).NE.BLANK)  GO TO 102
  101 CONTINUE
      IDX = 0
      GO TO 200
C
  102 DO 103 I = 1,2
      SAVE(I,1) = XYMIN(I)
      XYMIN(I) = 0.
      SAVE(I,2) = XYMAX(I)
      XYMAX(I) = AXYMAX(I)+EDGE(I)
      SAVE(I,3) = AXYMAX(I)
      AXYMAX(I) = XYMAX(I)
      SAVE(I,4) = EDGE(I)
      EDGE(I) = 0.
  103 CONTINUE
      NLINES = (AXYMAX(2)-7.*CNTY) / FLOAT(2*LINSIZ) + .1
      IF (IABS(PLTYPE).NE.1)  GO TO 122
C
C     FILL TOP HALF OF PLOT WITH X-AXIS LINES ALL THE WAY ACROSS.
C
      CALL AXIS (0,0,0,0,0,-1)
      DO 111 I = 1,NLINES
      Y = XYMAX(2) - FLOAT((I-1)*LINSIZ)
      CALL AXIS (XYMIN(1),Y,XYMAX(1),Y,1,0)
  111 CONTINUE
C
C     PRINT THE PLOT ID 2 TIMES IN THE MIDDLE OF THE PLOT.
C
      CALL PRINT (0,0,0,0,0,-1)
      X = XYMIN(1) + AMAX1(0.,(AXYMAX(1)-80.*CNTX)/2.)
      YY = Y-CNTY
      DO 116 I = 1,2
      Y = YY - CNTY*FLOAT(I-1)
      CALL PRINT (X,Y,1,ID,20,0)
  116 CONTINUE
C
C     FILL BOTTOM HALF OF PLOT WITH X-AXIS LINES ALL THE WAY ACROSS.
C
      CALL AXIS (0,0,0,0,0,-1)
      DO 121 I = 1,NLINES
      Y = XYMIN(2) + FLOAT((I-1)*LINSIZ)
      CALL AXIS (XYMIN(1),Y,XYMAX(1),Y,1,0)
  121 CONTINUE
      CALL AXIS (0,0,0,0,0,1)
      GO TO 125
C
C     NOT A CRT PLOTTER. TYPE THE ID ONCE AT THE BOTTOM OF THE PAPER.
C
  122 CALL PRINT (0,0,0,0,0,-1)
      X = XYMIN(1) + AMAX1(0.,(AXYMAX(1)-80.*CNTX)/2.)
      Y = 0.
      IF (PLTYPE.LT.0)  Y=CNTY/2.
      CALL PRINT (X,Y,1,ID,20,0)
C
C     END OF ID PLOT. PUT BLANKS IN THE PLOT ID.
C
  125 CALL PRINT (0,0,0,0,0,1)
      DO 126 I = 1,20
      ID(I) = BLANK
  126 CONTINUE
      DO 127 I = 1,2
      XYMIN(I) = SAVE(I,1)
      XYMAX(I) = SAVE(I,2)
      AXYMAX(I) = SAVE(I,3)
      EDGE(I) = SAVE(I,4)
  127 CONTINUE
C
  200 RETURN
      END