program Plasmapropagation; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes, SysUtils, CustApp, { you can add units after this } math, Physikunit, protokollunit, lowlevelunit; type { TPlasmapropagation } TPlasmapropagation = class(TCustomApplication) protected procedure DoRun; override; public constructor Create(TheOwner: TComponent); override; destructor Destroy; override; end; { TPlasmapropagation } procedure TPlasmapropagation.DoRun; var simulation: tSimulation; start,zeitPhysik,zeitDatei: double; prot: tProtokollant; s,t,u: string; begin prot:=tProtokollant.create('error'); if paramcount<>1 then begin prot.schreibe('Bitte genau einen Parameter übergeben, nämlich die Parameterdatei!',true); halt(1); end; start:=now; zeitDatei:=0; zeitPhysik:=0; simulation:=tSimulation.create(paramstr(1),prot,'simulation'); while simulation.iteriereSchritt(start,zeitPhysik,zeitDatei) do ; case errorCode of 2: prot.schreibe('Simulation wurde auf halbem Wege abgebrochen wegen Überlaufs.',true); 3: prot.schreibe('Simulation wurde auf halbem Wege abgebrochen wegen Benutzereingriffs.',true); end{of case}; simulation.free; prot.schreibe('fertig!',true); s:=timetostr(now-start); t:=timetostr(zeitDatei); u:=timetostr(zeitPhysik); while length(s)