File: dkint.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 (59 lines) | stat: -rw-r--r-- 1,487 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
      DOUBLE PRECISION FUNCTION DKINT(I,J,A,B,IV,IW,R,Z)
      DOUBLE PRECISION BINT, C1P, C2P, C1, C2, AW, A, B, R, Z,DKJ, DKEF
      DOUBLE PRECISION SP1
      DIMENSION  R(1) , Z(1)
      BINT = 0.0D0
      IW1 = IW + 1
      C1P = B
      C2P = A
      C1 = C1P
      C2 = C2P
      AW = 0.0D0
      IF( R(I) .NE. 0.0D0 .AND. R(J) .NE. 0.0D0 ) AW = DLOG(R(J)/R(I))
      DO 100 IT = 1,IW1
      IC = IW - IT + 1
      IF (IC.EQ.0) C1 = 1.0D0
      IF (IT.EQ.1) C2 = 1.0D0
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C THE FOLLOWING CODE REPLACES DOUBLE PRECISION FUNCTION DKEF
C
      IF(IT.EQ.1) GO TO 20
      IN=1
      ID=1
      DO 10 K=2,IT
      IN=IN*(IW-K+2)
      ID=ID*(K-1)
   10 CONTINUE
      DKEF=IN/ID
      GO TO 30
   20 DKEF=1.0D0
   30 CONTINUE
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C THE FOLLOWING CODE REPLACES DOUBLE PRECISION FUNCTION DKJ
C
      IS1 = IC+IV+1
      IF(IS1.EQ.0) GO TO 60
      SP1=IS1
      DKJ=( R(J)**IS1 - R(I)**IS1 )  /  SP1
      GO TO 70
   60 DKJ = AW
   70 CONTINUE
C
C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
      BINT = BINT + C1 ** IC *DKJ * C2 ** (IT - 1) * DKEF
      C1 = C1P
      C2 = C2P
  100 CONTINUE
      AW = IW
      BINT = BINT / AW
      DKINT = BINT
      RETURN
      END