next up previous contents
Next: Linking: Examples using Unix Up: DASH: A Data Analysis Previous: References

EXAMPLE.FOR: An example DASH_DECL subroutine

 

      PROGRAM EXAMPLE
      CALL DASH_CLI
c     CALL IGEND		! Uncomment if using HIGZ
      END

      SUBROUTINE DASH_DECL
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c THIS SUBROUTINE SHOULD BE CALLED DASH_DECL, HOWEVER THE FILE NAME
c SHOULD BE DESCRIPTIVE OF THE EXECUTABLE, eg. MYPROGRAM_DECL.FOR
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c This is the declaration subroutine for a DASH executable. You, the
c programmer provides this subroutine and DASH will call it on startup.
c This contains subroutine calls that are used to make a list of all
c the modules one can use and which entry-points they have. Possible 
c entrypoints: INIT BOOK EVENT BEGINRUN ENDRUN TALK FINI. Read/write
c modules will also have OPEN and CLOSE entrypoints. In the calls to
c DASH_DEC_MOD you need only specify the first few characters of 
c these keywords.
c
c *** To add an analysis module, the user must modify this routine,
c *** adding 1) EXTERNAL declarations for each entrypoint and
c *** and 2) a call to DASH_DEC_MODULE for each entrypoint.
c
c In addition, one module be declared a read-module, from which events 
c are read in. Similarly, one module should be declared a write module
c to write events out.
c
c *** You should also allocate arrays and initialize packages in this 
c *** subroutine, such as PAW, HBOOK and KUIP.
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
      IMPLICIT NONE
      INTEGER PAW
      COMMON/PAWC/PAW(800000)
      INTEGER KWTYPE
c-----------------------------------------------------------------------
      EXTERNAL MADREAD_EVENT
      EXTERNAL MADREAD_OPEN
      EXTERNAL MADREAD_CLOSE
      EXTERNAL MADREAD_TALK
c-----------------------------------------------------------------------
      EXTERNAL MADWRITE_EVENT
      EXTERNAL MADWRITE_OPEN
      EXTERNAL MADWRITE_CLOSE
      EXTERNAL MADWRITE_TALK
c-----------------------------------------------------------------------
      EXTERNAL MADDUMP_EVENT
      EXTERNAL MADDUMP_TALK
c-----------------------------------------------------------------------
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
c     Initialize packages:
c     ====================
      CALL HLIMIT(760000)
      CALL KUINIT(40000)
c
c     Initialize graphics (if using HIGZ):
c     ====================================
C      CALL IGINIT(0)		! Initialize HIGZ
C      CALL IGWKTY(KWTYPE)	! Get workstation
C      CALL IGSSE(6,KWTYPE)	! Errors go to Unit 6
C      CALL DASH_DEPOSIT('KWTYPE',KWTYPE)
c
c     Declarations for module MADREAD:
c     ================================
      CALL DASH_DEC_MOD('MADREAD','EVNT',MADREAD_EVENT)
      CALL DASH_DEC_MOD('MADREAD','OPEN',MADREAD_OPEN)
      CALL DASH_DEC_MOD('MADREAD','CLOS',MADREAD_CLOSE)
      CALL DASH_DEC_MOD('MADREAD','TALK',MADREAD_TALK)
      CALL DASH_DEC_REA('MADREAD')
c 
c     Declarations for module MADDUMP:
c     ================================
      CALL DASH_DEC_MOD('MADDUMP','EVNT',MADDUMP_EVENT)
      CALL DASH_DEC_MOD('MADDUMP','TALK',MADDUMP_TALK)
c
c     Declarations for module MADWRITE:
c     =================================
      CALL DASH_DEC_MOD('MADWRITE','EVNT',MADWRITE_EVENT)
      CALL DASH_DEC_MOD('MADWRITE','OPEN',MADWRITE_OPEN)
      CALL DASH_DEC_MOD('MADWRITE','CLOS',MADWRITE_CLOSE)
      CALL DASH_DEC_MOD('MADWRITE','TALK',MADWRITE_TALK)
      CALL DASH_DEC_WRI('MADWRITE')
c
      RETURN
      END



ETK