!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ! OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. !COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1981,1983 ! VERSION 7 FORTRA.VER Jan 83 ! Mini-test of Fortran using UETP @DEFINE UTP: PS: @DEFINE DSK: PS:,UTP: BEGIN:: ! Files needed in the UETP area: ! FORTRA.VER This file ! ARRAYS.FOR ! ASCII.FOR ! BINARY.FOR ! CHARIO.FOR ! CHFUN.FOR ! COMEQ.FOR ! DO.FOR ! GOTO.FOR ! IF.FOR ! IFTHEL.FOR ! IMAGE.FOR ! INTFIL.FOR ! IOEXPR.FOR ! LIB.FOR ! NAMLST.DAT ! NAMLST.FOR ! RANDOM.FOR ! SUBFUN.FOR ! SUBSTR.FOR ! T4DDT.FOR ! V7DO.FOR ! V7LIB.FOR @RUN UTP:SENDER *TYPE START *BLABEL BEGIN: *TEST FORTRA *SEND Start of Fortran test. *EXIT ! Clean up area. @NOERROR @DELETE ARRAYS.REL,ASCII.LST,ASCII.REL,BINARY.REL,DO.REL,GOTO.REL, @EXPUNGE @ @DELETE IF.REL,IMAGE.REL,LIB.REL,RANDOM.REL,SUBFUN.REL,T4DDT.REL, @EXPUNGE @ @DELETE CHARIO.REL,CHDATA.REL,CHFUN.REL,COMEQ.REL, @EXPUNGE @ @DELETE IFTHEL.REL,INTFIL.REL,IOEXPR.REL,NAMLST.REL,SUBSTR.REL, @EXPUNGE @ @DELETE V7DO.REL,V7LIB.REL, @EXPUNGE @ @DELETE FOR20.DAT,FOR21.DAT,FOR22.DAT,FOR23.DAT, @EXPUNGE @ @ERROR ! Check for all required FORTRAN components on this system. @GET SYS:FORTRA @IF (ERROR) @GOTO NOFOR @INFORMATION VERSION @GET SYS:FOROT7 @IF (ERROR) @GOTO NOFOR @INFORMATION VERSION @GET SYS:LINK @IF (ERROR) @GOTO NOFOR @INFORMATION VERSION @ERROR % @DIRECT SYS:FORTRA.HLP @IF (ERROR) @GOTO NOFOR @DIRECT SYS:FORLIB.REL @IF (ERROR) @GOTO NOFOR @DIRECT SYS:FORDDT.HLP @IF (ERROR) @GOTO NOFOR @DIRECT SYS:FORDDT.REL @IF (ERROR) @GOTO NOFOR @ERROR @GOTO FORT NOFOR:: ! Complete FORTRAN system not available. @ @R 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 */EXIT @IF (ERROR) @GOTO B1 @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. ! Program 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 /LANGUAGE-SWITCH:"/DEBUG:ALL" @IF (ERROR) @GOTO B3 *T4DDT @IF (ERROR) @GOTO B3 *HELP @IF (ERROR) @GOTO B3 *PAUSE 10 @IF (ERROR) @GOTO B3 *START @IF (ERROR) @GOTO B3 *TYPE X @IF (ERROR) @GOTO B3 *MODE I @IF (ERROR) @GOTO B3 *TYPE I @IF (ERROR) @GOTO B3 *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 /LANGUAGE-SWITCH:"/DEBUG:(DIM,BOU)" @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 EX25 B23:: @R UTP:SENDER *TYPE ERROR *BLABEL EX23: *TEST FORTRA *SEND Error in subroutine/function test (/OPT). *EXIT EX25:: ! Character I/O @EXECUTE CHARIO.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B25:: @GOTO EX26:: B25:: @R UTP:SENDER *TYPE ERROR *BLABEL EX25: *TEST FORTRA *SEND Error in Character I/O *EXIT EX26:: ! Character data in DATA stmts @EXECUTE CHDATA.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B26:: @GOTO EX27:: B26:: @R UTP:SENDER *TYPE ERROR *BLABEL EX26: *TEST FORTRA *SEND Error in Character data in DATA stmts *EXIT EX27:: ! Character functions @EXECUTE CHFUN.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B27:: @GOTO EX28:: B27:: @R UTP:SENDER *TYPE ERROR *BLABEL EX27: *TEST FORTRA *SEND Error in Character functions *EXIT EX28:: ! Character Common / Equivalence @EXECUTE COMEQ.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B28:: @GOTO EX29:: B28:: @R UTP:SENDER *TYPE ERROR *BLABEL EX28: *TEST FORTRA *SEND Error in Character Common / Equivalence *EXIT EX29:: ! IF-THEN-ELSE @EXECUTE IFTHEL.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B29:: @GOTO EX30:: B29:: @R UTP:SENDER *TYPE ERROR *BLABEL EX29: *TEST FORTRA *SEND Error in IF-THEN-ELSE *EXIT EX30:: ! Expressions in I/O @EXECUTE IOEXPR.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B30:: @GOTO EX31A:: B30:: @R UTP:SENDER *TYPE ERROR *BLABEL EX30: *TEST FORTRA *SEND Error in Expressions in I/O *EXIT EX31A:: ! Namelist I/O @EXECUTE NAMLST.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B31A:: @GOTO EX31B:: B31A:: @R UTP:SENDER *TYPE ERROR *BLABEL EX31A: *TEST FORTRA *SEND Error in Namelist I/O *EXIT EX31B:: B31B:: EX32:: ! Character substrings @EXECUTE SUBSTR.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B32:: @GOTO EX33:: B32:: @R UTP:SENDER *TYPE ERROR *BLABEL EX32: *TEST FORTRA *SEND Error in Character substrings *EXIT EX33:: ! ANSII-77 DO loops @EXECUTE V7DO.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B33:: @GOTO EX34:: B33:: @R UTP:SENDER *TYPE ERROR *BLABEL EX33: *TEST FORTRA *SEND Error in ANSII-77 DO loops *EXIT EX34:: ! ANSII-77 library functions @COMPILE V7LIB.FOR /FORTRAN/COMP @IF (ERROR) @GOTO B34:: @GOTO EX35:: B34:: @R UTP:SENDER *TYPE ERROR *BLABEL EX34: *TEST FORTRA *SEND Error in ANSII-77 library functions *EXIT EX35:: @GOTO END %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, @EXPUNGE @ @DELETE IF.REL,IMAGE.REL,LIB.REL,RANDOM.REL,SUBFUN.REL,T4DDT.REL, @EXPUNGE @ @DELETE CHARIO.REL,CHDATA.REL,CHFUN.REL,COMEQ.REL, @EXPUNGE @ @DELETE IFTHEL.REL,INTFIL.REL,IOEXPR.REL,NAMLST.REL,SUBSTR.REL, @EXPUNGE @ @DELETE V7DO.REL,V7LIB.REL, @EXPUNGE @ @DELETE FOR20.DAT,FOR21.DAT,FOR22.DAT,FOR23.DAT, @EXPUNGE @ @ERROR @RUN UTP:SENDER *TYPE END *BLABEL END: *TEST FORTRA *SEND End of FORTRAN test. *EXIT %FIN:: ! End of tests.