next up previous contents index
Next: User Routines Up: Examples Previous: Data Selection and

Writing 32 bit physical Headers, logical Headers and Data.

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


Janne Saarela
Tue May 16 09:44:28 METDST 1995