This example also shows the control language to run in VM/CMS.
/* Test 32 bit headers */
'exec cernlib'
'vfort out32 (noprint '
'filedef iofile20 disk out32 data a4 ( recfm u lrecl 32400 block 32400'
'load out32 ( start '
'erase load map '
'erase out32 text a1'
/*BEGIN OUT32 FORTRAN A3 */
DIMENSION IBUF(8100),A(50000)
CALL EPINIT
CALL EPSETW(20, 1,16200,IERR)
CALL EPSETW(20, 2,100000,IERR)
CALL EPSETW(20, 3, 32 ,IERR)
CALL EPSETW(20,29, 1 ,IERR)
C OUTPUT 4 long LOGICAL RECORDS
C
DO 10 I=1,4
NW=10000 * (I+1)
CALL USER(A,NW,I)
C .................................................
C ROUTINE -USER- HAS STORED NW VALUES IN A TO BE WRITTEN OUT.
C .........................................
CALL EPOUTS(20,3,NW,A,IBUF,IERR)
C IF(IERR.NE.0)STOP 1
10 CONTINUE
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C
C THE FOLLOWING CALL IS ESSENTIAL
C
C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CALL EPCLOS(20,IBUF,IERR)
C .........................................................
C FOLLOWING CALL ONLY NECESSARY ON SOME COMPUTERS (UNIVAC,IBM)
C ON VM (AND MVS?) WE THINK THIS SHOULD BE EPRWND(20,IBUF,IERR)
C WITH APPROPRIATE FILEDEF (IODD IN MVS)
C .........................................................
C CALL EPEND(20,IBUF,IERR)
CALL EPRWND(20,IBUF,IERR)
IF(IERR.NE.0)STOP 2
STOP
END
SUBROUTINE USER(A,NW,I)
INTEGER A(1)
DO 10 J=1,NW
A(J)=I
10 CONTINUE
RETURN
END