|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4608 (0x1200) Types: TextFile Names: »IBO2«
└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files └─⟦this⟧
«ff» 9000 PROC RUNMODEL 9001 IF TBEGIN>=TEND THEN 9002 PRINT "ERROR: START-VAERDIEN ER STOERRE END SLUT-VAERDIEN" 9003 STOP 9004 ENDIF 9005 LET ABSERROR=ABS(ABSERROR); RELERROR=ABS(RELERROR) 9006 LET DTMIN=ABS(DTMIN); DTMAX=ABS(DTMAX); DT=ABS(DT) 9007 IF DTMAX=0 THEN LET DTMAX=TEND-TBEGIN 9008 IF DT=0 THEN LET DT=DTMAX/100 9009 IF DT>DTMAX THEN LET DT=DTMAX 9010 IF DTMIN=0 THEN LET DTMIN=DT/1000 9011 IF DT<DTMIN THEN LET DTMIN=DT 9012 IF RUNNO=1 THEN 9013 LET T=TBEGIN; NEXTREP=TBEGIN 9014 FOR I=1 TO NUMDIF 9015 LET VBEGIN(I)=V(I) 9016 NEXT I 9017 ELSE 9018 IF T>=TEND THEN EXEC RESTART 9019 ENDIF 9020 LET DTFULL=DT; STOPCOND=0 9021 EXEC MODEL 9022 IF (REPINT>0 AND NEXTREP=T) OR REPINT=0 THEN 9023 EXEC REPORT 9024 LET NEXTREP=T+REPINT 9025 ENDIF 9026 IF T>=TEND OR STOPCOND THEN GOTO 9055 9027 LET TLAST=T; DT=DTFULL; TNEXT=TLAST+DT 9028 IF TNEXT>TEND THEN 9029 LET TNEXT=TEND; DT=TNEXT-TLAST 9030 ELSE 9031 IF TNEXT>NEXTREP AND REPINT>0 THEN 9032 LET TNEXT=NEXTREP; DT=TNEXT-TLAST 9033 ENDIF 9034 ENDIF 9035 FOR I=1 TO NUMDIF 9036 LET VLAST(I)=V(I); DLAST(I)=D(I) 9037 NEXT I 9038 EXEC TAKESTEP 9039 WHILE NOT ERRORACC OR (STOPCOND AND DT>DTMIN) DO 9040 IF DT<=DTMIN THEN 9041 PRINT "ERROR: THE REQUESTED INTEGRATION ACCURACY" 9042 PRINT " CAN NOT BE ACHIEVED" 9043 STOP 9044 ENDIF 9045 LET DT=DT/2 9046 IF DT<DTMIN THEN LET DT=DTMIN 9047 LET DTFULL=DT; TNEXT=TLAST+DT 9048 EXEC TAKESTEP 9049 ENDWHILE 9050 IF ERRORLOW AND DT<DTMAX AND DT=DTFULL THEN 9051 LET DTFULL=2*DTFULL 9052 IF DTFULL>DTMAX THEN LET DTFULL=DTMAX 9053 ENDIF 9054 GOTO 9022 9055 LET RUNNO=RUNNO+1; DT=DTFULL 9056 IF REPINT<0 THEN LET NEXTREP=TEND 9057 ENDPROC *** KRUNMODEL *** 9058 PROC START 9059 DIM V(NUMDIF),D(NUMDIF),VLAST(NUMDIF),DLAST(NUMDIF),VBEGIN(NUMDIF) 9060 LET RUNNO=1; DT=0; DTMIN=0; DTMAX=0; TBEGIN=0; TEND=0; REPINT=-1 9061 LET ABSERROR=0; RELERROR=.0001; ERRORACC=1; ERRORLOW=0 9062 ENDPROC *** START *** 9063 PROC RESTART 9064 LET T=TBEGIN; NEXTREP=TBEGIN 9065 FOR I=1 TO NUMDIF 9066 LET V(I)=VBEGIN(I) 9067 NEXT I 9068 ENDPROC *** RESTART *** 9500 PROC TAKESTEP 9501 DIM A1(NUMDIF),A2(NUMDIF),A3(NUMDIF),A4(NUMDIF),A5(NUMDIF) 9502 FOR I=1 TO NUMDIF 9503 LET TEMP=DT*DLAST(I); A1(I)=TEMP 9504 LET V(I)=VLAST(I)+.25*TEMP 9505 NEXT I 9506 LET T=TLAST+.25*DT 9507 EXEC MODEL 9508 FOR I=1 TO NUMDIF 9509 LET TEMP=DT*D(I); A2(I)=TEMP 9510 LET V(I)=VLAST(I)+(.09375*A1(I)+.28125*TEMP) 9511 NEXT I 9512 LET T=TLAST+.375*DT 9513 EXEC MODEL 9514 FOR I=1 TO NUMDIF 9515 LET TEMP=DT*D(I); A3(I)=TEMP 9516 LET V(I)=VLAST(I)+(.879381*A1(I)-3.2772*A2(I)+3.32089*TEMP) 9517 NEXT I 9518 LET T=TLAST+.923077*DT 9519 EXEC MODEL 9520 FOR I=1 TO NUMDIF 9521 LET TEMP=DT*D(I); A4(I)=TEMP 9522 LET DV=2.03241*A1(I)-8*A2(I)+7.17349*A3(I)-.205897*TEMP 9523 LET V(I)=VLAST(I)+DV 9524 NEXT I 9525 LET T=TLAST+DT 9526 EXEC MODEL 9527 FOR I=1 TO NUMDIF 9528 LET TEMP=DT*D(I); A5(I)=TEMP 9529 LET DV=-.296296*A1(I)+2*A2(I)-1.38168*A3(1) 9530 LET V(I)=VLAST(I)+(DV+.452973*A4(I)-.275*TEMP) 9531 NEXT I 9532 LET T=TLAST+.5*DT 9533 EXEC MODEL 9534 LET I=1; ERRORACC=1; ERRORLOW=1 9535 WHILE I<=NUMDIF AND ERRORACC DO 9536 LET DV=2.77778E-03*A1(I)-2.99415E-02*A3(I)-2.91999E-02*A4(I) 9537 LET IERROR=DV+.02*A5(I)+3.63636E-02*DT*D(I) 9538 LET DV=.115741*A1(I)+.548928*A3(I)+.535331*A4(I)-.2*A5(I) 9539 LET V(I)=VLAST(I)+DV+IERROR 9540 LET TEMP=ABSERROR+RELERROR*ABS(V(I)); IERROR=ABS(IERROR) 9541 LET ERRORACC=IERROR<=TEMP; ERRORLOW=ERRORLOW AND IERROR<.02*TEMP 9542 LET I=I+1 9543 ENDWHILE 9544 LET T=TNEXT 9545 EXEC MODEL 9546 ENDPROC *** TAKESTEP *** «nul»