File: sdcom1.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 (85 lines) | stat: -rw-r--r-- 2,054 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
85
      SUBROUTINE SDCOM1 (P,AC,WA,WB)
C
      INTEGER         AC(1),ROW,C,START
      REAL            P(1),WA(1),WB(1)
      COMMON /SDCOMX/ ROW,C,SPFLG,START,FRSTPC,LASTPL,LASTI
C
      J  = 1
      L  = 1
      K1 = LASTPL + 1
      IEND   = MIN0(LASTPL,LASTI)
      ISTART = MAX0(K1,START)
      IF (C .EQ. LASTPL) GO TO 200
      IF (START .GT. LASTPL) GO TO 100
      DO 48 I = START,IEND
      PI   =-P(I)/P(1)
      IJMK = J - I
      ILMK = L - I
      DO 10 K = I,LASTPL
      WB(K+IJMK) = PI*P(K) + WA(K+ILMK)
   10 CONTINUE
      L = ILMK + K1
      DO 18 K = K1,C
      IF (AC(K) .GT. 0) GO TO 12
      WB(K+IJMK) = PI*P(K)
      GO TO 18
   12 WB(K+IJMK) = PI*P(K) + WA(L)
      L = L + 1
   18 CONTINUE
      J = IJMK + C + 1
      P(I) = PI
   48 CONTINUE
      IF (LASTPL .GE. LASTI) RETURN
  100 DO 148 I = ISTART,LASTI
      PI   = -P(I)/P(1)
      IJMK = J - I
      IF (AC(I) .LT. 0) GO TO 120
      DO 118 K = I,C
      IF (AC(K) .GT. 0) GO TO 112
      WB(K+IJMK) = PI*P(K)
      GO TO 118
  112 WB(K+IJMK) = PI*P(K) + WA(L)
      L = L + 1
  118 CONTINUE
      GO TO 140
  120 DO 128 K = I,C
      WB(K+IJMK) = PI*P(K)
  128 CONTINUE
  140 J = IJMK + C + 1
      P(I) = PI
  148 CONTINUE
      RETURN
C
  200 IF (START .GT. LASTPL) GO TO 300
      DO 248 I = START,IEND
      PI   = -P(I)/P(1)
      IJMK = J - I
      ILMK = L - I
      DO 238 K = I,LASTPL
      WB(K+IJMK) = PI*P(K) + WA(K+ILMK)
  238 CONTINUE
      J = IJMK + K1
      L = ILMK + K1
      P(I) = PI
  248 CONTINUE
      IF (LASTPL .GE. LASTI) RETURN
  300 DO 348 I = ISTART,LASTI
      PI   = -P(I)/P(1)
      IJMK = J - I
      IF (AC(I) .LT. 0) GO TO 320
      DO 318 K = I,C
      IF (AC(K) .GT. 0) GO TO 312
      WB(K+IJMK) = PI*P(K)
      GO TO 318
  312 WB(K+IJMK) = PI*P(K) + WA(L)
      L = L + 1
  318 CONTINUE
      GO TO 340
  320 DO 328 K = I,C
      WB(K+IJMK) = PI*P(K)
  328 CONTINUE
  340 J = IJMK + C + 1
      P(I) = PI
  348 CONTINUE
      RETURN
      END