First, choose a name for your module. Second, write FORTRAN ``subroutines'' for each entrypoint you wish to use; the subroutines should have no arguments. The subroutines will access event data either through common blocks or ZEBRA banks.
I put ``subroutines'' in quotes, because I prefer to use the FORTRAN ENTRY statement. Let me tell you how it works: you write a single subroutine (with one END statement), but inside it are several ENTRY statements, each with a RETURN statement. You call (actually, you tell DASH to call) the ENTRY statements. The convenience is that the value of variables used in the subroutine are available to all of the entrypoints without a common block.
Here is an example, using all of the DASH entrypoints:
SUBROUTINE EXAMPLE ! Never actually called IMPLICIT NONE ! You should always use this INCLUDE 'MUA93_COMMON.INC' ! The event data lives here INTEGER LEN CHARACTER*8 VERB REAL CUT1, CUT2 ENTRY EXAMPLE_INIT ! Called when the program starts CALL LOAD_MY_CONSTANTS RETURN ENTRY EXAMPLE_BEGINRUN ! Called for a new run number NPASSED = 0 RETURN ENTRY EXAMPLE_EVENT ! Called for each event CALL HFILL(1000,XYZ,0.,1.) IF (XYZ .GT. CUT1) THEN NPASSED = NPASSED + 1 END IF RETURN ENTRY EXAMPLE_ENDRUN ! Called at end of run WRITE(*,*) ' N passed = ',NPASSED RETURN ENTRY EXAMPLE_BOOK ! c.l.i. command BOOK EXAMPLE CALL HBOOK1(1000,'The XYZ variable', & 100,0.,10.,0.) RETURN ENTRY EXAMPLE_TALK ! DASH> TALK EXAMPLE CUT1 1.5 CALL KUGETC(VERB,LEN) IF (VERB(1:4) .EQ. 'CUT1') THEN CALL KUGETR(CUT1) ELSE IF (VERB(1:4) .EQ. 'HELP') THEN WRITE(*,*) ' Valid commands are: ' WRITE(*,*) ' CUT1 ' END IF RETURN ENTRY EXAMPLE_FINISH ! Called when program ends WRITE(*,*) ' I love DASH! ' RETURN END
So, in a FORTRAN program, when the line CALL EXAMPLE_BEGINRUN occurs, the subroutine EXAMPLE begins with the line NPASSED = 0. You could replace every ENTRY with SUBROUTINE, but then you would have to declare the local variables separately and pass them around somehow. If you are more comfortable with explicit subroutine statements, go ahead and do it this way; it will work just the same.