]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - GEANT321/gparal/gpsumhr.F
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / GEANT321 / gparal / gpsumhr.F
diff --git a/GEANT321/gparal/gpsumhr.F b/GEANT321/gparal/gpsumhr.F
deleted file mode 100644 (file)
index 1307823..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-*CMZ :          08/23/94  15.20.00  by  John Apostolakis CERN GP-MIMD 2
-*FCA :          05/01/99  08:37:02  by  Federico Carminati
-*               Inverted the position of #endif and END so the
-*               routine can be compiled even with the CERNLIB_PARA
-*               flag not selected.
-*-- Author :
-      subroutine GPSUMHR( idh, file, chopt )
-c
-c     Saves histograms into a single RZ file, putting each
-c     process' histogram into a subdirectory, as well as saving the
-c     running total in the subdirectory 'totals'. At the end the
-c     directory 'totals' will contain the sum total of all
-c     contributions from all processes.
-c
-c       ( A 'replacement' for hrput for parallel Geant.)
-c
-c.    Implementation notes:
-c.
-c.          Currently chopt is ignored!
-c.
-c-------------------------------------------------------------------------
-#if defined(CERNLIB_PARA)
-      IMPLICIT NONE
-      INTEGER       idh
-      CHARACTER*(*) file, chopt
-
-      INTEGER myid
-      character*13  myname
-#include "geant321/mpifinc.inc"
-#include "geant321/multiprox.inc"
-C
-      INTEGER istat, icycle, lunhist
-C
-      integer       iquest(100), nrec, itag
-      integer       npstat(MPI_STATUS_SIZE), ierr
-      integer       idebgsvh, npnext, nfirst, indivout
-      character*1   filemode
-      common /quest/  iquest
-      data    nrec / 1024 /
-      data    itag / 1001 /
-      data    idebgsvh / 1 /
-      data    indivout / 1 /
-      data    lunhist / 29 /
-      parameter (nfirst=0)
-c----------------------------------------------------------------------
-c J. Apostolakis: Use a directory for each process and a
-c                     a directory called 'totals' for totals,
-c                 v0.1 February 9, 1994   using mvlock/mvunlock
-c                 v0.2 August   4, 1994   using mpi_{send,recv}
-c
-c     Node 0 creates the file, others wait their turn (a message goes
-c       around that each node receives, does its stuff and sends on)
-c       [ Older idea was to use a barrier: call mpi_barrier( MPI_COMM_WORLD ) ]
-c
-c     Notes:
-c     x     The current scheme is not robust, but has worked well.
-c     x   The potential problem is if one node fails before getting to
-c     x   this point or during its call to gpsumhr. The former could be
-c     x   handled by replacing the current method with a robust scheme
-c     x   capable of handling node failures, by using lockf/unlockf to
-c     x   lock the file ...
-c     x
-c     x   For file creation, having all nodes try to create a new hbook
-c     x   file will not work, since one will overwrite another ...
-c      
-      if( nprank .eq. nfirst )  then
-          filemode= 'N'
-          nrec= 1024
-      else
-          filemode= 'U'
-          nrec= 0
-c
-c         Wait here until the previous node is finished !
-c
-          call mpi_recv( istat, 1, MPI_INTEGER,
-     &                   nprank-1, itag, MPI_COMM_WORLD, npstat, ierr )
-      endif
-
-      CALL HROPEN ( LUNHIST, 'OUTPUT', file, filemode, nrec, istat)
-
-      if(istat.ne.0) then
-          print *, ' HROPEN of ', file, ' on node ', nprank,
-     &             ' failed in gpsumhr. Istat = ', istat
-      else
-          print *, ' HROPEN of ', file, ' on node ', nprank,
-     &             ' succeeded and gave nrec=', nrec
-      endif
-
-      myid = nprank
-      if( myid.ge.10000 ) then
-          print *, 'Warning in gpsumhr: The id (',myid,
-     &            ')is too big to be used in gpsumhr.f'
-          myid = mod(myid, 10000)
-      endif
-      write (myname, '(a7,i6)')  'process',myid+10000
-      myname(8:8)='0'
-
-      if( idebgsvh .eq. 1 ) then
-          call hldir  ( '//PAWC', ' ' )
-          call hldir  ( '//OUTPUT', 't' )
-      endif
-
-      call hcdir  ( '//OUTPUT', ' ' )
-
-c     Could make 'indivout' an option: it creates subdirectories with
-c     each node's output.
-      if( indivout .eq. 1 ) then
-          call hmdir  ( myname, ' ' )
-          call hcdir  ( myname, ' ' )   !  if it has been created already ...
-          CALL HROUT  ( idh, icycle,' ')
-      endif
-
-      if( nprank .eq. nfirst ) then
-          call hmdir  ( '//OUTPUT/TOTALS','S')
-      else
-          call hcdir  ( '//OUTPUT/TOTALS',' ')
-          CALL HRIN   ( idh, 888888, 99999)
-      endif
-c                                ! 99999 is an undocumented feature => it adds
-c                                        the histograms to the ones in memory
-c     ------------------------------------------------------------------
-      call hrout  ( idh, icycle, 'T')
-
-      CALL HREND  ('OUTPUT')
-      close( LUNHIST )
-c
-c     Send a message to the next node, which is waiting until this one
-c      is finished !
-c
-      npnext = nprank+1
-      if ( npnext .ge. npsize ) npnext = npnext - npsize
-      call mpi_send( istat, 1, MPI_INTEGER,
-     &               npnext,   itag, MPI_COMM_WORLD, ierr  )
-
-c
-c     Finally have the first node receive the last node's message!
-c
-      if( nprank .eq. nfirst ) then
-          call mpi_recv( istat, 1, MPI_INTEGER,
-     &                   npsize-1, itag, MPI_COMM_WORLD, npstat, ierr  )
-      endif
-c-----------------------------------------------------------------------
-
-      RETURN
-#endif
-      END