Statistics
| Branch: | Revision:

root / synthbench / euroben-dm / mod2cr / taylor.f @ 0:839f52ef7657

History | View | Annotate | Download (2 kB)

1
      Subroutine taylor( n1, n2, n3 )
2
! ----------------------------------------------------------------------
3
      Use        mpi_module
4
      Implicit   None
5

    
6
      Integer :: n1, n2, n3
7

    
8
      Integer :: m, n12, ntot, nsize
9
! ----------------------------------------------------------------------
10
      n12  = n1*n2
11
      ntot = n12*n3
12
      m    = sizes(me)
13
! ----------------------------------------------------------------------
14
! --- Determine bounds for upper diagonals.
15

    
16
      la1 = 1
17
      ua1 = m
18
      If ( me == ( nodes - 1 ) ) ua1 = ua1 - 1
19
      nsize = ntot - n1
20
      If ( glb > nsize ) Then
21
         la2 = ntot + 1         !<-- Make lower bound so high that loop
22
      Else                      !    never will execute.
23
         la2 = 1
24
      End If
25
      If ( nsize < gub ) Then
26
         ua2 = nsize - glb
27
      Else
28
         ua2 = m
29
      End If
30
      nsize = ntot - n12
31
      If ( glb > nsize ) Then
32
         la3 = ntot + 1         !<-- Make lower bound so high that loop
33
      Else                      !    never will execute.
34
         la3 = 1
35
      End If
36
      If ( nsize < gub ) Then
37
         ua3 = nsize - glb
38
      Else
39
         ua3 = m
40
      End If
41
! ----------------------------------------------------------------------
42
! --- Determine bounds for lower diagonals.
43

    
44
      lb1 = 1
45
      ub1 = m
46
      If ( me == 0 ) lb1 = 2
47
      nsize = n1
48
      If ( glb > nsize ) Then
49
         lb2 = 1
50
      Else
51
         lb2 = nsize - glb + 1
52
      End If
53
      If ( gub > nsize ) Then
54
         ub2 = m
55
      Else
56
         ub2 = 0                !<-- Make upper bound so low that loop
57
      End If                    !    will never execute.
58
      nsize = n12
59
      If ( glb > nsize ) Then
60
         lb3 = 1
61
      Else
62
         lb3 = nsize - glb + 1
63
      End If
64
      If ( gub > nsize ) Then
65
         ub3 = m
66
      Else
67
         ub3 = 0                !<-- Make upper bound so low that loop
68
      End If                    !    will never execute.
69
! ----------------------------------------------------------------------
70
      End Subroutine taylor