File: alg18.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 (31 lines) | stat: -rw-r--r-- 857 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
      SUBROUTINE ALG18 (BETA1,BETA2,I1,I2,FACT,X0,Y0,S0,XR,Y1,X1,Y2,RDI
     1US,S,C1)
C
      DIMENSION S(80)
C
      DELX=XR/FLOAT(I2-I1)
      XX=X0
      I3=I1+1
      IF (BETA1.EQ.BETA2) GO TO 20
      Y1=-COS(BETA1/C1)/(SIN(BETA1/C1)-SIN(BETA2/C1))
      X1=SIN(BETA1/C1)/(SIN(BETA1/C1)-SIN(BETA2/C1))
      Y2=TAN((BETA1+BETA2)/(2.0*C1))
      RDIUS=ABS(1.0/(SIN(BETA1/C1)-SIN(BETA2/C1)))
      Y2=Y2*FACT+Y0
      Y1=Y1*FACT+Y0
      X1=X1*FACT+X0
      RDIUS=RDIUS*FACT
      DO 10 J=I3,I2
      XX=XX+DELX
      PHI1=ATAN(-1./SQRT(RDIUS**2-(XX-X1)**2)*(XX-X1))
      IF ((BETA1-BETA2).LT.0.0) PHI1=-PHI1
      PHI2=ABS(BETA1/C1-PHI1)
10    S(J)=RDIUS*PHI2+S0
      RETURN
20    AM=TAN(BETA1/C1)
      DO 30 J=I3,I2
      XX=XX+DELX
30    S(J)=(XX-X0)*SQRT(AM*AM+1.0)+S0
      Y2=AM*(XX-X0)+Y0
      RETURN
      END