28 lines
1.2 KiB
COBOL
28 lines
1.2 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. RWD-DYNAMICS.
|
|
ENVIRONMENT DIVISION.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 LOCAL-OMEGA PIC 9V9(5) VALUE 1.0.
|
|
01 LOCAL-K PIC 9V9(5) VALUE 0.1.
|
|
01 J PIC 9(4).
|
|
01 K-INDEX PIC 9(4).
|
|
01 SUMSIN PIC S9(7)V9(5).
|
|
LINKAGE SECTION.
|
|
01 I OCCURS 1000 TIMES PIC S9(5)V9(5).
|
|
01 I-DOT OCCURS 1000 TIMES PIC S9(5)V9(5).
|
|
01 PHASE PIC S9(5)V9(5).
|
|
|
|
PROCEDURE DIVISION USING I I-DOT PHASE.
|
|
ENTRY "RWD-DYNAMICS" USING I I-DOT PHASE.
|
|
MOVE 0 TO SUMSIN
|
|
PERFORM VARYING J FROM 1 BY 1 UNTIL J > 1000
|
|
COMPUTE I-DOT(J) ROUNDED = LOCAL-OMEGA * I(J)
|
|
PERFORM VARYING K-INDEX FROM 1 BY 1 UNTIL K-INDEX > 1000
|
|
COMPUTE I-DOT(J) ROUNDED = I-DOT(J) + LOCAL-K * FUNCTION SIN(I(K-INDEX) - I(J))
|
|
END-PERFORM
|
|
COMPUTE SUMSIN = SUMSIN + FUNCTION SIN(I(J))
|
|
END-PERFORM
|
|
COMPUTE PHASE = PHASE + 0.01 * SUMSIN
|
|
GOBACK.
|
|
END PROGRAM RWD-DYNAMICS.
|