File: timeeq.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 (78 lines) | stat: -rw-r--r-- 2,545 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
      SUBROUTINE TIMEEQ (B,BBAR,C,CBAR,R,IENTRY,NCOL,TIM)
C
C     TIMEEQ SOLVES THE TIME AND CORE FUNCTIONS FOR DECOMP AND CDCOMP
C
      INTEGER         SYSBUF
      REAL            MB(1),MC(1),K1,K2,K3,K4,K5
      COMMON /NTIME / LNTIME, TCONS(15)
     1       /SYSTEM/ KSYSTM(65)
C
      EQUIVALENCE     (KSYSTM( 1),SYSBUF),(KSYSTM(40),NBPW),
     1                (KSYSTM(55),IPREC ),(TCONS (1) ,AAIO),
     2                (TCONS ( 2),AAPAK ),(TCONS (8),MB(1)),
     3                (TCONS (12),MC(1) )
C
C
      IRET  = 0
      IENTR = IENTRY
    1 AMB   = MB(IPREC)
      AMC   = MC(IPREC)
      IF (NBPW .LT. 60) GO TO 2
      AMB   = 3.0*AMB
      AMC   = 3.0*AMC
    2 AIO   = AAIO
      APAK  = AAPAK
      IF (IENTR .EQ. 1) GO TO 10
      AMB   = 5.*AMB
      AMC   = 5.*AMC
      AIO   = AIO+AIO
      APAK  = 1.1*APAK
   10 IF (IRET .EQ. 1) GO TO 20
      TIM = FLOAT(NCOL)*(AMB*BBAR*R+AMC*(BBAR*C+BBAR*CBAR+B*CBAR+
     1      2.0*C*CBAR)+AIO*BBAR*(B+BBAR-R-1.0))*1.E-06
      RETURN
C
C
      ENTRY TFIN (AB,ABBAR,AC,ACBAR,AR,JENTRY,ANCOL,TIMEX)
C     ====================================================
C
      IRET  = 1
      IENTR = JENTRY
      GO TO 1
   20 TIMEX = 0.
      K1    = ANCOL - AB - ABBAR - ABBAR
      IF (K1 .LE. 0.) GO TO 30
      TIMEX = K1*(AMB*ABBAR*AR+AIO*ABBAR*(AB+ABBAR-AR)+APAK*(AB+ABBAR*
     1        2.))
   30 K2  = AB + ABBAR
      K3  = K2
      IF (ANCOL .GE. AB+ABBAR+ABBAR) GO TO 35
      K2  = ANCOL - ABBAR
      K3  = AB + ABBAR
      IF (ANCOL .LT. AB+ABBAR) K3 = ANCOL
   35 TIMEX = TIMEX+.5*K2*(ABBAR*K2*AMB+(K3-AR)*(AIO-AMB)*ABBAR+
     1        2.*APAK*ABBAR+APAK*K2)
      IF (ANCOL .LT. AB+ABBAR+ABBAR) GO TO 40
      K4 = AB + ABBAR - AR
      K5 = AB + 1.5*ABBAR
      IF (AB .GT. AR) K4 = ABBAR
      GO TO 50
   40 K4 = ANCOL - AR
      K5 = ANCOL
      IF (ANCOL-AR .GT. ABBAR) K4 = ABBAR
   50 TIMEX = TIMEX+ABBAR**3/3.*AMB+K4**3*.5*AIO+APAK*ABBAR*K5
      TIMEX = (TIMEX+(ANCOL-ABBAR)*(AMC*(ABBAR*AC+AB*ACBAR+ABBAR*ACBAR+
     1        AC*ACBAR)+APAK*(AC+ACBAR)))*1.E-06
      RETURN
C
C
      ENTRY RCORE (IB,IBBAR,IC,ICBAR,INCOL,KENTRY,NX,IR)
C     ==================================================
C     ENTRY FOR THE CORE FUNCTION
C
      IR = (NX-((IB+IBBAR+1) +2*KENTRY*MIN0(INCOL,IB+IBBAR+IBBAR)+
     1     2*KENTRY*IC*(IBBAR+2)+2*ICBAR*KENTRY*(MIN0(IB+IBBAR,INCOL)+1)
     2     +2*KENTRY*IC*ICBAR +IC+ICBAR*KENTRY+ICBAR)-6*SYSBUF)/
     3     (2*KENTRY*IBBAR)
      RETURN
      END