File: mapset.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 (44 lines) | stat: -rw-r--r-- 972 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
      SUBROUTINE MAPSET(X1,Y1,X2,Y2,KI1,KJ1,KI2,KJ2,L)
C
C     POINT 1 IS LOWER LEFT CORNER OF FRAME
C     POINT 2 IS UPPER RIGHT CORNER OF FRAME
C     I,J ARE IN PLOTTER UNITS
C     X,Y ARE IN PHYSICAL UNITS
C     L IS OUTPUT FLAG, 1=I,J ARE INTEGER, 2=I,J ARE REAL
C
      EQUIVALENCE (I1,ZI1),(J1,ZJ1),(I2,ZI2),(J2,ZJ2)
      EQUIVALENCE (I,ZI),(J,ZJ)
C
      I1=KI1
      J1=KJ1
      I2=KI2
      J2=KJ2
      LL=L
C
      IF(L.EQ.2) GO TO 100
      A=FLOAT(I2-I1)/(X2-X1)
      B=FLOAT(I1)-A*X1
      C=FLOAT(J2-J1)/(Y2-Y1)
      D=FLOAT(J1)-C*Y1
      RETURN
  100 A=(ZI2-ZI1)/(X2-X1)
      B=ZI1-A*X1
      C=(ZJ2-ZJ1)/(Y2-Y1)
      D=ZJ1-C*Y1
      RETURN
C
C
C***********************************************************************
C
      ENTRY MAP(X,Y,KI,KJ)
      IF(LL.EQ.2) GO TO 200
      I=A*X+B+0.5
      J=C*Y+D+0.5
      GO TO 300
  200 ZI=A*X+B
      ZJ=C*Y+D
  300 KI=I
      KJ=J
      RETURN
C
      END