Subtract ->
Arg DC1 : ^&A|L : Integer <- DCData
    DC2 : A|L : Integer <- DCData         

Do Sub 'DC1' DC2 Key
With Key, Value from DC1

/

Sub Subtract ->                                       Sub Subtract ->
Arg DC1 : ^&List : Integer <- DCData                  Arg DC1 : ^&Array : DCData 
    DC2 : List : Integer <- DCData                        DC2 : Array : DCData 
    Key : Integer                                         N : Integer

Error = . ..                                          Error = . ..

If DC2->>!Key then                                    If N > DC2._ | !DC2.N then
 DC1->Key = .                                          DC1.N = .
Else                                                  Else
 R1 = DC1->Key ..                                      R1 = DC1.N ..

 R2 = DC2->Key                                         R2 = DC2.N

 If R1.Time = R2.Time = Key then                       If R1.Time = R2.Time = N then
  R1.F -= R2.F                                          R1.F -= R2.F
  R1.FF -= R2.FF                                        R1.FF -= R2.FF
  R1.RFF -= R2.RFF                                      R1.RFF -= R2.RFF
 Else                                                  Else
  Error = ERR_DC_TIME                                   Error = ERR_DC_TIME
 ;                                                     ;  
;                                                     ;

If Error                                              If Error
 Exit Error                                            Exit Error
Else                                                  Else
 /                                                     /