********************************************************************
* *
* *
* This is FORTRAN. Followed by an assembler routine *
* called ADDR that has to be linkedited with the object *
* code from this testcase, and the CSR stubs. *
* *
********************************************************************
@PROCESS DC(BPAGEFOR)
PROGRAM BPAGEFOR
C
INCLUDE 'SYS1.SAMPLIB(CSRBPFOR)'
C
C Multiply two arrays together - testing CSRIRP, CSRRRP services
C
C
INTEGER M /200/
INTEGER N /200/
INTEGER P /200/
PARAMETER (NKELEMENT_SIZE=4)
INTEGER RC,RSN
COMMON /WINCOM/A(200,200)
COMMON /WINCOM/B(200,200)
COMMON /WINCOM/C(200,200)
C
C Initialize the arrays
C
CALL CSRIRP(A(1,1),
* M*N*NKELEMENT_SIZE,
* CSR_FORWARD,
* M*NKELEMENT_SIZE,
* 0,
* 20,
* RC,
* RSN)
CALL CSRIRP(B(1,1),
* N*P*NKELEMENT_SIZE,
* CSR_FORWARD,
* N*NKELEMENT_SIZE,
* 0,
* 20,
* RC,
* RSN)
DO 102 J = 1, N
DO 100 I = 1, M
A(I,J) = I + J
100 CONTINUE
102 CONTINUE
DO 106 J = 1, P
DO 104 I = 1, N
B(I,J) = I + J
104 CONTINUE
106 CONTINUE
C
CALL CSRRRP(A(1,1),
* M*N*NKELEMENT_SIZE,
* RC,
* RSN)
CALL CSRRRP(B(1,1),
* N*P*NKELEMENT_SIZE,
* RC,
* RSN)
C
C Multiply the two arrays together
C
CALL CSRIRP (A(1,1),
* M*N*NKELEMENT_SIZE,
* CSR_FORWARD,
* N*NKELEMENT_SIZE,
* (N-1)*KELEMENT_SIZE,
* 50,
* RC,
* RSN)
CALL CSRIRP (B(1,1),
* N*P*NKELEMENT_SIZE,
* CSR_FORWARD,
* NKELEMENT_SIZE*N,
* 0,
* 20,
* RC,
* RSN)
DO 112 I = 1, M
DO 110 J = 1, N
DO 108 K = 1, P
C(I,J) = C(I,J) + A(I,K) * B(K,J)
108 CONTINUE
110 CONTINUE
112 CONTINUE
CALL CSRRRP (A(1,1),
* M*N*NKELEMENT_SIZE,
* RC,
* RSN)
CALL CSRRRP (B(1,1),
* N*P*NKELEMENT_SIZE,
* RC,
* RSN)
STOP
END
******************************************************************** 00010000
* * 00020000
* THIS IS THE JCL THAT COMPILES THE PROGRAM. * 00030000
* * 00020000
******************************************************************** 00080000
//FORTJOB JOB 00090007
// MSGCLASS=H,RDR=R, 00110007
// MSGLEVEL=(1,1),CLASS=T 00120000
//* 00130000
//* 00140000
//* COMPILE AND LINKEDIT FOR FORTRAN 00150000
//* 00160000
//* 00170000
//* 00180000
//VSF2CL PROC FVPGM=FORTVS2,FVREGN=2100K,FVPDECK=NODECK, 00190000
// FVPOLST=NOLIST,FVPOPT=0,FVTERM='SYSOUT=A', 00200000
// PGMNAME=MAIN,PGMLIB='&&GOSET',FVLNSPC='3200,(25,6)' 00210000
//* 00220000
//* COPYRIGHT: 5668-806 00230000
//* (C) COPYRIGHT IBM CORP 1985, 1988 00240000
//* LICENSED MATERIALS - PROPERTY OF IBM 00250000
//* REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 00260000
//* 00270000
//* STATUS: 02.03.00 (VV.RR.MM) 00280000
//* 00290000
//* PARAMETER DEFAULT-VALUE USAGE 00300000
//* 00310000
//* FVPGM FORTVS2 COMPILER NAME 00320000
//* FVREGN 2100K FORT-STEP REGION 00330000
//* FVPDECK NODECK COMPILER DECK OPTION 00340000
//* FVPOLST NOLIST COMPILER LIST OPTION 00350000
//* FVPOPT 0 COMPILER OPTIMIZATION 00360000
//* FVTERM SYSOUT=A FORT.SYSTERM OPERAND 00370000
//* FVLNSPC 3200,(25,6) FORT.SYSLIN SPACE 00380000
//* PGMLIB &&GOSET LKED.SYSLMOD DSNAME 00390000
//* PGMNAME MAIN LKED.SYSLMOD MEMBER NAME 00400000
//* 00410000
//FORT EXEC PGM=&FVPGM,REGION=&FVREGN,COND=(4,LT), 00420000
// PARM='&FVPDECK,&FVPOLST,OPT(&FVPOPT)' 00430000
//STEPLIB DD DSN=D24PP.FORT230.VSF2COMP,DISP=SHR 00440000
//SYSPRINT DD SYSOUT=A,DCB=BLKSIZE=3429 00450000
//SYSTERM DD &FVTERM 00460000
//SYSPUNCH DD SYSOUT=B,DCB=BLKSIZE=3440 00470000
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, 00480000
// SPACE=(&FVLNSPC),DCB=BLKSIZE=3200 00490000
//LKED EXEC PGM=HEWL,REGION=768K,COND=(4,LT), 00500000
// PARM='LET,LIST,XREF' 00510000
//SYSPRINT DD SYSOUT=A 00520000
//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR 00530000
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(200,20)) 00540000
//SYSLMOD DD DSN=&PGMLIB.(&PGMNAME),DISP=(,PASS),UNIT=SYSDA, 00550000
// SPACE=(TRK,(10,10,1),RLSE) 00560000
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) 00570000
// DD DDNAME=SYSIN 00580000
// PEND 00590000
// EXEC VSF2CL,FVTERM='SYSOUT=H', 00600000
// PGMNAME=FORTRAN,PGMLIB='REFPAT.USER.LOAD' 00680008
//FORT.SYSIN DD DSN=REFPAT.SAMPLE.PROG(FORTRAN),DISP=SHR 00690008
//LKED.SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR 00700000
//LKED.SYSLMOD DD DSN=REFPAT.USER.LOAD,DISP=SHR 00710007
//LKED.SYSIN DD * 00720000
INCLUDE IN(CSRIRP,CSRRRP,ADDR) 00730000
NAME BPGFORT(R) 00740006
/* 00750000
//* THE CSR STUBS ARE AVAILABLE IN SYS1.CSSLIB, 00760007
//* THE OBJ FOR THE ADDR ROUTINE IS IN TEST.OBJ 00770007
//* 00780000
//LKED.IN DD DSN=SYS1.CSSLIB,DISP=SHR 00790007
// DD DSN=REFPAT.TEST.OBJ,DISP=SHR 00mm0007
******************************************************************** 00010000
* * 00020000
* THIS IS THE JCL I USE TO EXECUTE THE PROGRAM. * 00030000
* * 00060000
******************************************************************** 00070000
//FONO1 JOB MSGLEVEL=(1,1),TIME=1440 00080003
//VSF2G PROC GOPGM=MAIN,GOREGN=100K, 00090000
//* 00100000
//* 00110000
//* EXECUTE A FORTRAN TESTCASE - CHANGE ALL CRTFONXX TO CRTFONZZ 00120000
//* 00130000
// GOF5DD='DDNAME=SYSIN', 00140000
// GOF6DD='SYSOUT=A', 00150000
// GOF7DD='SYSOUT=B' 00160000
//* 00170000
//* COPYRIGHT: 5668-806 00180000
//* (C) COPYRIGHT IBM CORP 1985, 1988 00190000
//* LICENSED MATERIALS - PROPERTY OF IBM 00200000
//* REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 00210000
//* 00220000
//* STATUS: 02.03.00 (VV.RR.MM) 00230000
//* 00240000
//* PARAMETER DEFAULT-VALUE USAGE 00250000
//* 00260000
//* GOPGM MAIN PROGRAM NAME 00270000
//* GOREGN 100K GO-STEP REGION 00280000
//* GOF5DD DDNAME=SYSIN GO.FT05F001 DD OPERAND 00290000
//* GOF6DD SYSOUT=A GO.FT06F001 DD OPERAND 00300000
//* GOF7DD SYSOUT=B GO.FT07F001 DD OPERAND 00310000
//* 00320000
//* 00330000
//GO EXEC PGM=&GOPGM,REGION=&GOREGN,COND=(4,LT) 00340000
//STEPLIB DD DSN=CEE.SCEERUN,DISP=SHR 00350004
//FT05F001 DD &GOF5DD 00360000
//FT06F001 DD &GOF6DD 00370000
//FT07F001 DD &GOF7DD 00380000
// PEND 00390000
//GO EXEC VSF2G,GOPGM=BPGFORT,GOREGN=999K 00400004
//GO.STEPLIB DD DSN=WINDOW.D24PP.FORTLIB,DISP=SHR, 00410004
// VOL=SER=VM2TSO,UNIT=3380 00410104
// DD DSN=WINDOW.R40.VSF2LOAD,DISP=SHR, 00411004
// VOL=SER=VM2TSO,UNIT=3380 00412004
// DD DSN=REFPAT.USER.LOAD,DISP=SHR, 00420003
// VOL=SER=VM2TSO,UNIT=3380 00430004