Statistics
| Branch: | Revision:

root / synthbench / euroben-dm / mod1h / .svn / text-base / rand_vpe.f.svn-base @ 0:839f52ef7657

History | View | Annotate | Download (1.1 kB)

1
      Subroutine rand_vpe( npes, info, lst )
2
! ----------------------------------------------------------------------
3
      Use      numerics
4
      Implicit None
5
      Integer  :: npes
6
      Integer, Intent(Out), Dimension(0:npes-1) :: lst 
7
      Logical, Intent(Out), dimension(0:npes-1) :: info
8
      Integer, Dimension (0:(npes/2) - 1) :: pv
9
      Logical  :: f
10
      Integer  :: i, j, k, n, np 
11
      Real(l_) :: r
12
! ---------------------------------------------------------------------- 
13
      np = npes/2
14
      Do i = 0, np-1
15
         pv(i) = i + np
16
      End Do
17
      Do i = 0, np-1
18
         j = pv(i)
19
         Call random_number( Harvest = r )
20
         k = Int( r*(np-1) + 0.5_l_ )
21
         pv (i) = pv(k)
22
         pv (k) = j
23
      End Do
24
      Do i = 0, np - 1
25
         lst (i) = pv(i)
26
         lst (pv(i)) = i
27
         Call random_number( Harvest = r )
28
         n = Int( r + 0.5_l_ )
29
         f = .FALSE.
30
         if ( n == 0 ) f = .TRUE. 
31
         info (i) = f
32
         info(pv(i)) = .NOT. f
33
      End Do
34
! ---------------------------------------------------------------------- 
35
      End subroutine rand_vpe