File: dk211.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 (41 lines) | stat: -rw-r--r-- 1,027 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
      DOUBLE PRECISION FUNCTION DK211(I,A,B,X)
      DOUBLE PRECISION F6211, A, B, X, XX, C1, C2, AAJ, C3
      DIMENSION  X(1)
      XX = X(I)
      IF ( (B * XX) ** 2 - A ** 2 ) 100,1,200
    1 CONTINUE
      IF (A .NE. B * XX) GO TO 50
      F6211 = 0.5D0 * (DLOG (DABS(2.0D0 * B * XX)) ) **2
      DK211 = F6211
      RETURN
   50 CONTINUE
      F6211 = 0.0D0
      DK211 = F6211
      RETURN
  100 CONTINUE
      F6211 = DLOG(DABS(A))* DLOG(DABS(XX))
      C1 =-B * XX / A
      C2 = 1.0D0
      J = 0
  110 J = J + 1
      AAJ = J
      C2 = C2 * C1
      C3 = C2 / (AAJ ** 2)
      F6211 = F6211 - C3
      IF(DABS(C3) .GT. 0.1D-5)   GO TO 110
      DK211 = F6211
      RETURN
  200 CONTINUE
      F6211 = (DLOG(DABS(B* XX)) ** 2) / 2.0D0
      C1 =-A / (B * XX)
      C2 = 1.0D0
      J = 0
  210 J = J + 1
      AAJ = J
      C2 = C2 * C1
      C3 = C2 / (AAJ ** 2)
      F6211 = F6211 + C3
      IF(DABS(C3) .GT. 0.1D-5)   GO TO 210
      DK211 = F6211
      RETURN
      END