;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ;COPYRIGHT (C) 1981 BY DIGITAL EQUIPMENT CORPORATION ; VERSION 6 FORTRA.VER March 81 ; Mini-test of Fortran using UETP .R SETSRC *CP [5,33,FORTRA] *LIB:[5,33] *SCAN *^Z .SET DEFAULT PROTECTION <000> BEGIN:: ; Files needed in the UTP: area: ; FORTRA.VER This file ; FORTRA.SFD Work area must be protected <777> ; ARRAYS.FOR ; ASCII.FOR ; BINARY.FOR ; DO.FOR ; GOTO.FOR ; IF.FOR ; IMAGE.FOR ; LIB.FOR ; RANDOM.FOR ; SUBFUN.FOR ; T4DDT.FOR .RUN UTP:SENDER *TYPE START *BLABEL BEGIN: *TEST FORTRA *SEND Start of Fortran test. *EXIT ; Clean up .NOERROR .DELETE ARRAYS.REL,ASCII.LST,ASCII.REL,BINARY.REL,DO.REL,GOTO.REL,IF.REL .DELETE IMAGE.REL,LIB.REL,RANDOM.REL,SUBFUN.REL,T4DDT.REL .DELETE FOR20.DAT,FOR21.DAT,FOR22.DAT,FOR23.DAT .ERROR ; Check for all required FORTRAN components on this system. .GET SYS:FORTRA .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FORTB.EXE .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FORTC.EXE .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FORTD.EXE .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FORTE.EXE .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FORTF.EXE .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FORTG.EXE .IF (ERROR) .GOTO NOFOR .VERSION .GET SYS:FOROT6.EXE .IF (ERROR) .GOTO NOFOR .VERSION .ERROR % .DIRECT HLP:FORTRA.HLP .IF (ERROR) .GOTO NOFOR .DIRECT SYS:FORLIB.REL .IF (ERROR) .GOTO NOFOR .DIRECT HLP:FORDDT.HLP .IF (ERROR) .GOTO NOFOR .DIRECT SYS:FORDDT.REL .IF (ERROR) .GOTO NOFOR .ERROR .GOTO FORT NOFOR:: ; Complete FORTRAN system not available. . .RUN UTP:SENDER *BLABEL BEGIN: *TEST FORTRA *SEND FORTRAN system not available. *EXIT .GOTO END FORT:: ; Warnings are not permitted either. .ERROR % ; Generate a binary (.REL) and listing (.LST) file ; and verify that they were produced. ; Also check the compiler HELP facility. .R FORTRA *ASCII,ASCII=ASCII.FOR .IF (ERROR) .GOTO B1 */HELP .IF (ERROR) .GOTO B1 *^Z .DIRECT ASCII.LST .IF (ERROR) .GOTO B1 .DIRECT ASCII.REL .IF (ERROR) .GOTO B1 .GOTO EX2 B1:: .R UTP:SENDER *TYPE ERROR *BLABEL FORT: *TEST FORTRA *SEND Errors generating binary or listing file, or getting help. *EXIT .GOTO END EX2:: ; Test to see that all intrinsic functions and Fortran supplied ; subroutines exist in FORLIB. If LINK produces an error such ; as "Undefined Globals", then some of the routines are missing. ; Progam is merely loaded, not executed. .COMPILE LIB.FOR .LOAD LIB.REL .IF (ERROR) .GOTO B2 .GOTO EX3 B2:: .R UTP:SENDER *TYPE ERROR *BLABEL EX2: *TEST FORTRA *SEND Problems with or routines missing from FORLIB.REL. *EXIT ; Continue the tests in this case. EX3:: ; Run FORDDT & make sure it works minimally. ; No errors of any type should appear. .DEBUG T4DDT.FOR /DEBUG:ALL *T4DDT *HELP *PAUSE 10 *START *TYPE X *MODE I *TYPE I *STOP .IF (ERROR) .GOTO B3 .GOTO EX4 B3:: .R UTP:SENDER *TYPE ERROR *BLABEL EX3: *TEST FORTRA *SEND Error in FORDDT test. *EXIT ; Continue the tests in this case. EX4:: ; Test for non-sharable FOROTS. ; ASCII previously compiled. .R LINK *ASCII.REL /OTS:NONSHAR /GO .START .IF (ERROR) .GOTO B4 .GOTO EX5 B4:: .R UTP:SENDER *TYPE ERROR *BLABEL EX4: *TEST FORTRA *SEND Error in Non-sharable FOROTS test. *EXIT ; Continue the tests in this case. EX5:: ; Try FORDDT with the non-sharable FOROTS. .COMPILE T4DDT.FOR /COMP /DEBUG:(DIM,BOU) .R LINK *T4DDT.REL /SEG:LOW /DEBUG:FORTRA /OTS:NONSHAR /GO *T4DDT *PAUSE 10 *START *TYPE X *CONTINUE .IF (ERROR) .GOTO B5 .GOTO EX6 B5:: .R UTP:SENDER *TYPE ERROR *BLABEL EX5: *TEST FORTRA *SEND Error in FORDDT/Non-sharable FOROTS test. *EXIT ; Continue the tests in this case. EX6:: ; Test arrays. .COMPILE ARRAYS.FOR .EXECUTE .IF (ERROR) .GOTO B6 .GOTO EX7 B6:: .R UTP:SENDER *TYPE ERROR *BLABEL EX6: *TEST FORTRA *SEND Error in array test. *EXIT ; Continue the tests in this case. EX7:: ; Same only optimized. .COMPILE ARRAYS.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B7 .GOTO EX8 B7:: .R UTP:SENDER *TYPE ERROR *BLABEL EX7: *TEST FORTRA *SEND Error in array test (/OPT). *EXIT ; Continue the tests in this case. EX8:: ; Test ASCII I/O. .COMPILE ASCII.FOR /COMP .EXECUTE .IF (ERROR) .GOTO B8 .GOTO EX9 B8:: .R UTP:SENDER *TYPE ERROR *BLABEL EX8: *TEST FORTRA *SEND Error in ASCII I/O test. *EXIT ; Continue the tests in this case. EX9:: ; Same only optimized. .COMPILE ASCII.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B9 .GOTO EX10 B9:: .R UTP:SENDER *TYPE ERROR *BLABEL EX9: *TEST FORTRA *SEND Error in ASCII I/O test (/OPT). *EXIT ; Continue the tests in this case. EX10:: ; Test BINARY I/O. .COMPILE BINARY.FOR .EXECUTE .IF (ERROR) .GOTO B10 .GOTO EX11 B10:: .R UTP:SENDER *TYPE ERROR *BLABEL EX10: *TEST FORTRA *SEND Error in BINARY I/O test. *EXIT ; Continue the tests in this case. EX11:: ; Same only optimized. .COMPILE BINARY.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B11 .GOTO EX12 B11:: .R UTP:SENDER *TYPE ERROR *BLABEL EX11: *TEST FORTRA *SEND Error in BINARY I/O test (/OPT). *EXIT ; Continue the tests in this case. EX12:: ; Test DO loops. .COMPILE DO.FOR .EXECUTE .IF (ERROR) .GOTO B12 .GOTO EX13 B12:: .R UTP:SENDER *TYPE ERROR *BLABEL EX12: *TEST FORTRA *SEND Error in DO loop test. *EXIT ; Continue the tests in this case. EX13:: ; Same only optimized. .COMPILE DO.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B13 .GOTO EX14 B13:: .R UTP:SENDER *TYPE ERROR *BLABEL EX13: *TEST FORTRA *SEND Error in DO loop test (/OPT). *EXIT ; Continue the tests in this case. EX14:: ; Test GO TO statements. .COMPILE GOTO.FOR .EXECUTE .IF (ERROR) .GOTO B14 .GOTO EX15 B14:: .R UTP:SENDER *TYPE ERROR *BLABEL EX14: *TEST FORTRA *SEND Error in GO TO test. *EXIT ; Continue the tests in this case. EX15:: ; Same only optimized. .COMPILE GOTO.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B15 .GOTO EX16 B15:: .R UTP:SENDER *TYPE ERROR *BLABEL EX15: *TEST FORTRA *SEND Error in GO TO test (/OPT). *EXIT ; Continue the tests in this case. EX16:: ; Test IF statements. .COMPILE IF.FOR .EXECUTE .IF (ERROR) .GOTO B16 .GOTO EX17 B16:: .R UTP:SENDER *TYPE ERROR *BLABEL EX16: *TEST FORTRA *SEND Error in IF statement test. *EXIT ; Continue the tests in this case. EX17:: ; Same only optimized. .COMPILE IF.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B17 .GOTO EX18 B17:: .R UTP:SENDER *TYPE ERROR *BLABEL EX17: *TEST FORTRA *SEND Error in IF statement test (/OPT). *EXIT ; Continue the tests in this case. EX18:: ; Test IMAGE I/O. .COMPILE IMAGE.FOR .EXECUTE .IF (ERROR) .GOTO B18 .GOTO EX19 B18:: .R UTP:SENDER *TYPE ERROR *BLABEL EX18: *TEST FORTRA *SEND Error in IMAGE I/O test. *EXIT ; Continue the tests in this case. EX19:: ; Same only optimized. .COMPILE IMAGE.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B19 .GOTO EX20 B19:: .R UTP:SENDER *TYPE ERROR *BLABEL EX19: *TEST FORTRA *SEND Error in IMAGE I/O test (/OPT). *EXIT ; Continue the tests in this case. EX20:: ; Test RANDOM access I/O. .COMPILE RANDOM.FOR .EXECUTE .IF (ERROR) .GOTO B20 .GOTO EX21 B20:: .R UTP:SENDER *TYPE ERROR *BLABEL EX20: *TEST FORTRA *SEND Error in RANDOM access I/O test. *EXIT ; Continue the tests in this case. EX21:: ; Same only optimized. .COMPILE RANDOM.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B21 .GOTO EX22 B21:: .R UTP:SENDER *TYPE ERROR *BLABEL EX21: *TEST FORTRA *SEND Error in RANDOM access I/O test (/OPT). *EXIT ; Continue the tests in this case. EX22:: ; Test subroutines and functions. .COMPILE SUBFUN.FOR .EXECUTE .IF (ERROR) .GOTO B22 .GOTO EX23 B22:: .R UTP:SENDER *TYPE ERROR *BLABEL EX22: *TEST FORTRA *SEND Error in subroutine/function test. *EXIT ; Continue the tests in this case. EX23:: ; Same only optimized. .COMPILE SUBFUN.FOR /COMP /OPT .EXECUTE .IF (ERROR) .GOTO B23 .GOTO END B23:: .R UTP:SENDER *TYPE ERROR *BLABEL EX23: *TEST FORTRA *SEND Error in subroutine/function test (/OPT). *EXIT .GOTO END %CERR:: .GOTO UERR %ERR:: .GOTO UERR UERR:: ; An unexpected error occured somewhere. . .RUN UTP:SENDER *TYPE ERROR *BLABEL ERR: *TEST FORTRA *SEND Unknown Fortran error - check .LOG file. *EXIT .GOTO END END:: ; Cleanup and finish. . .NOERROR .DELETE ARRAYS.REL,ASCII.LST,ASCII.REL,BINARY.REL,DO.REL,GOTO.REL,IF.REL .DELETE IMAGE.REL,LIB.REL,RANDOM.REL,SUBFUN.REL,T4DDT.REL .DELETE FOR20.DAT,FOR21.DAT,FOR22.DAT,FOR23.DAT .ERROR .RUN UTP:SENDER *TYPE END *BLABEL END: *TEST FORTRA *SEND End of FORTRAN test. *EXIT %FIN:: ; End of tests.