+IDENTIFICATION DIVISION
+PROGRAM-ID Damped_Oscillator
+
+ENVIRONMENT DIVISION
+ENGINE Anabrid-THAT
+TIMEBASE 1ms
+REQUIRES COEFFICIENT 5
+REQUIRES INTEGRATOR 2
+REQUIRES INVERTER 1
+REQUIRES SUMMER 2
+
+DATA DIVISION
+OUTPUT OUT.U y
+ALIAS COEFFICIENT.1 InitialPosition
+ALIAS COEFFICIENT.2 InitialSpeed
+ALIAS COEFFICIENT.3 SpringForce
+ALIAS COEFFICIENT.4 Damping # linear to speed
+ALIAS COEFFICIENT.5 Mass # 1 / mass
+
+PROGRAM DIVISION
+# Colors being used for wiring
+# - black: y0
+# - blue: y0’
+# - green: y0’’
+# - yellow: y’’, y’
+# - red: y
+-1 -> InitialPosition -> -y0 # -initial position of the mass
+-1 -> InitialSpeed -> y0s’ # y’ is scaled to be within -1..+1
++1, y0s’, y0s’ -> Summer.1 -> y0’
+
+y’’, IC:y0’ -> INTEGRATOR.1 -> -y’
+-y’,IC:-y0 -> INTEGRATOR.2 -> y
+y -> SpringForce -> S*y # springforce times displacement
+-y’ -> INVERTER.1 -> y’
+y’ -> Damping -> D*y’ # damping times speed
+10:S*y, 10:D*y’ -> SUMMER.2 -> -(Dy’+Sy)
+-(Dy’+Sy) -> Mass -> -1/m*(Dy’+Sy)=y’’
+
+OPERATION DIVISION
+MODE REPEAT
+OP-TIME 57ms