File: pcoord.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 (61 lines) | stat: -rw-r--r-- 1,899 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
      SUBROUTINE PCOORD (PEN)
C
C     PLOTS A COORDINATE TRIAD AT THE LOWER RIGHT CORNER OF A STRUCTURAL
C     PLOT. THIS ROUTINE IS CALLED ONLY BY DRAW
C
C     WRITTEN BY G.CHAN/UNISYS      10/1990
C
      INTEGER         PEN,FPLTIT,SYM(2)
      COMMON /XXPARM/ IDUMM(215),FPLTIT
      COMMON /PLTDAT/ IDUM20(20),SIZE,IDUM2(2),CNTCHR(2)
      COMMON /DRWAXS/ G(3,4)
C
C
C     COMPUTE THE ORIGIN, WHICH IS A FUNCTION OF FRAME SIZE, CHARACTER
C     VERTICAL AND HORIZONTAL SCALES, PRESENCE OF PTITLE LINE, AND THE
C     OVERALL SIZE OF THE TRIAD
C
C     ALL THE NUMERIC MULTIPLIERS USED BELOW WERE WORKED OUT WITH FRAME
C     SIZE OF 1023.0. THEY SHOULD BE APPLICABLE TO FRAME SIZE OF 3000.
C
      X2 = 0.0
      Y2 = 0.0
      Y1 = 0.0
      DO 10 I = 1,3
      IF (G(2,I) .GT. X2) X2 = G(2,I)
      IF (G(3,I) .LT. Y2) Y2 = G(3,I)
      IF (G(3,I) .GT. Y1) Y1 = G(3,I)
   10 CONTINUE
      DE = 1.8*CNTCHR(1)
      SF = 2.7*CNTCHR(2)
      IF (FPLTIT .EQ. 0) SF = 1.3*SF
      SF = SF/(Y1-Y2)
      X1 = SIZE - X2*SF - DE
      Y1 = -Y2*SF
      IF (FPLTIT .NE. 0) Y1 = Y1 + 0.8*CNTCHR(2)
      EP = 0.0001
      OF = -1.
      IF (G(2,1).LE.EP .AND. G(2,2).LE.EP .AND. G(2,3).LE.EP) OF = +1.
      IF (OF .EQ. +1.) X1 = X1 - DE
C
C     DRAW THE X-Y-Z COORDINATE TRIAD
C     DRAW A CIRCLE AT THE ORIGIN IF ANY AXIS IS IN LINE WITH VIEWER
C
      SYM(1) = 6
      SYM(2) = 0
      DE = 0.8*CNTCHR(1)
      OF = 1.3*OF*CNTCHR(1)
      DO 30 I = 1,3
      X2 = G(2,I)*SF + X1
      Y2 = G(3,I)*SF + Y1
      CALL LINE (X1,Y1,X2,Y2,PEN,0)
      IF (ABS(G(2,I))+ABS(G(3,I)) .GE. EP) GO TO 20
      CALL SYMBOL (X1,Y1,SYM,0)
      CALL TIPE (X2+OF,Y2,1,G(I,4),1,0)
      GO TO 30
   20 IF (G(2,I) .GT. 0.0) CALL TIPE (X2+DE,Y2,1,G(I,4),1,0)
      IF (G(2,I) .LE. 0.0) CALL TIPE (X2-DE,Y2,1,G(I,4),1,0)
   30 CONTINUE
C
      RETURN
      END