aboutsummaryrefslogtreecommitdiff
path: root/orrs/src/efu.f
blob: eb28f310a1786f0a6a17d9658f14c3d034811c3b (plain)
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

      PROGRAM EFU
      PARAMETER(NX=2001)
      DIMENSION Y(NX), S(NX), U(NX), F(NX)
C
      PI = 4.0*ATAN(1.0)
C
      YWALL = -4.8

      YMAX  =  40.0
C
      N = NX
C
      DO I=1, N
        Y(I) = YMAX*FLOAT(I-1)/FLOAT(N-1)
      ENDDO
C
      DO I = 1, N
        S(I) = EXP(-(Y(I)+YWALL)**2)
      ENDDO
C
      I = 1
      U(I) = 0.
      F(I) = 0.
      DO I = 2, N
        DY = Y(I) - Y(I-1)
        U(I) = U(I-1) + 0.5*(S(I)+S(I-1))*DY
        F(I) = F(I-1) + 0.5*(U(I)+U(I-1))*DY
      ENDDO
      SMAX = 1.0
C
      UE = U(N)
      DO I = 1, N
        F(I) = F(I)/UE
        U(I) = U(I)/UE
        S(I) = S(I)/UE
      ENDDO
      SMAX = SMAX/UE
C
      DSUM = 0.
      TSUM = 0.
      ESUM = 0.
      DO I = 2, N
        DY =  Y(I) - Y(I-1)
        UA = (U(I) + U(I-1))*0.5
        DSUM = DSUM + (1.0 - UA   )   *DY
        TSUM = TSUM + (1.0 - UA   )*UA*DY
        ESUM = ESUM + (1.0 - UA**2)*UA*DY
      ENDDO
C
      WRITE(*,*) N, DSUM/TSUM, 1.0/(SMAX*TSUM)
      DO I = 1, N
        WRITE(*,*) Y(I)/TSUM, U(I), S(I)*TSUM
      ENDDO
C
      STOP
      END