CERNLIB (x86-64) Page of Harald Vogt

PAW example


Using the paw commands:

    
hi/file 2 aptuple.hbook
ntuple/loop 10 test_rnd.f
 
with the user code "test_rnd.f":
      REAL FUNCTION test_rnd()
c********************************************************
c                                                       *
c This file was generated by HUWFUN.                    *
c                                                       *
c********************************************************
c
c     Ntuple Id:      1    
c     Ntuple Title:   prodV2.1 LAY01
c     Creation:       24/04/01 09.15.22
c
c********************************************************
c
c      implicit none
          include ?
c
      logical start
      integer RunNumber_1
      real gau(2),prescale
      integer  ranlux
      external ranlux

      data start/.true./

      if (start) then
         call rluxgo(4,87973028,0,0)
         start = .false.
      endif
      call rnormx(gau,2,ranlux)
      call ranmar(prescale,1)

      print *,prescale,gau
      test_rnd = 0
      if (test_rnd .eq. 0) stop

      return
      end    
"rnormx" and "ranlux" are internal paw routines. The problem with this example is the 3rd argument in "call rnormx" which is an external and its value (address) is stored relative to the address of the "jumpad" external.
 

A faster execution of the "ntuple/loop" instruction can be obtained using dynamically loaded user code. But this requires to replace the

          include ?
by the code included with it. A paw kumac file should then look like this:
hi/file 2 aptuple.hbook
appl comis quit
!file 0.csl
!file test_rnd_sh.f
quit
ntuple/loop 10 test_rnd