1 SUBROUTINE ENER(nnod,nn,nr,nl,x,y,wx,wy,dfi,
2 * EP,EK,E1,SQn)
3 IMPLICIT REAL*8(A-H,O-Z)
4 include ‘type’
5 real*8 EP,EK,E1,EF,SQN
6 real*8 x(NDIM),y(NDIM)
7 real*8 wx(NDIM),wy(NDIM),dfi(NDIM)
8 yh=0.d0
9 EP=0.D0
10 EK=0.D0
11 EF=0.D0
12 SQN=0.D0
13 Nl1=Nl-1
14 N1=NNOD-1
15 DO I=NR,NL-1
16 F1=wx(i)
17 F2=wx(i+1)
18 Ps1=wY(i)
19 Ps2=wY(i+1)
20 DF1=DFI(I)
21 DF2=DFI(I+1)
22 SR=DSQRT(((X(I)-X(I+1))**2.+(Y(I)-Y(I+1))**2))
23 SQN=SQN+X(I)*(Y(I+1)-Y(I))-Y(I)*(X(I+1)-X(I))
24 EK=EK+SR*(F1*DF1*2.+F2*DF1+F1*DF2+F2*DF2*2.)
25 end do
26 DO I=Nr,Nl-1
27 Y0=Y(I)-YH
28 Y1=Y(I+1)-YH
29 Ps1=wY(i)
30 Ps2=wY(i+1)
31 EP=EP-(Y0**2+Y0*Y1+Y1**2)*(X(I+1)-X(I))
32 EF=EF+(Ps2-Ps1)
33 end do
34 fr=1
35 EP=EP/(6.d0*FR**2)
36 EK=EK/12.D0
37 EF=EF*0.5D0
38 E1=EK+EP
39 SQN=SQN*0.5D0
40 RETURN
41 END
Рис. 70. Листинг подпрограммы для реализации алгоритма вычисления интегральных характеристик (используется при решении нестационарной задачи)