witness_seed/cobol/witness_seed_3.0/src/RWD.cob

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.