root / synthbench / euroben-dm / mod2cr / taylor.f @ 0:839f52ef7657
History | View | Annotate | Download (2 kB)
1 | 0:839f52ef7657 | louridas | Subroutine taylor( n1, n2, n3 ) |
---|---|---|---|
2 | 0:839f52ef7657 | louridas | ! ---------------------------------------------------------------------- |
3 | 0:839f52ef7657 | louridas | Use mpi_module |
4 | 0:839f52ef7657 | louridas | Implicit None |
5 | 0:839f52ef7657 | louridas | |
6 | 0:839f52ef7657 | louridas | Integer :: n1, n2, n3 |
7 | 0:839f52ef7657 | louridas | |
8 | 0:839f52ef7657 | louridas | Integer :: m, n12, ntot, nsize |
9 | 0:839f52ef7657 | louridas | ! ---------------------------------------------------------------------- |
10 | 0:839f52ef7657 | louridas | n12 = n1*n2 |
11 | 0:839f52ef7657 | louridas | ntot = n12*n3 |
12 | 0:839f52ef7657 | louridas | m = sizes(me) |
13 | 0:839f52ef7657 | louridas | ! ---------------------------------------------------------------------- |
14 | 0:839f52ef7657 | louridas | ! --- Determine bounds for upper diagonals. |
15 | 0:839f52ef7657 | louridas | |
16 | 0:839f52ef7657 | louridas | la1 = 1 |
17 | 0:839f52ef7657 | louridas | ua1 = m |
18 | 0:839f52ef7657 | louridas | If ( me == ( nodes - 1 ) ) ua1 = ua1 - 1 |
19 | 0:839f52ef7657 | louridas | nsize = ntot - n1 |
20 | 0:839f52ef7657 | louridas | If ( glb > nsize ) Then |
21 | 0:839f52ef7657 | louridas | la2 = ntot + 1 !<-- Make lower bound so high that loop |
22 | 0:839f52ef7657 | louridas | Else ! never will execute. |
23 | 0:839f52ef7657 | louridas | la2 = 1 |
24 | 0:839f52ef7657 | louridas | End If |
25 | 0:839f52ef7657 | louridas | If ( nsize < gub ) Then |
26 | 0:839f52ef7657 | louridas | ua2 = nsize - glb |
27 | 0:839f52ef7657 | louridas | Else |
28 | 0:839f52ef7657 | louridas | ua2 = m |
29 | 0:839f52ef7657 | louridas | End If |
30 | 0:839f52ef7657 | louridas | nsize = ntot - n12 |
31 | 0:839f52ef7657 | louridas | If ( glb > nsize ) Then |
32 | 0:839f52ef7657 | louridas | la3 = ntot + 1 !<-- Make lower bound so high that loop |
33 | 0:839f52ef7657 | louridas | Else ! never will execute. |
34 | 0:839f52ef7657 | louridas | la3 = 1 |
35 | 0:839f52ef7657 | louridas | End If |
36 | 0:839f52ef7657 | louridas | If ( nsize < gub ) Then |
37 | 0:839f52ef7657 | louridas | ua3 = nsize - glb |
38 | 0:839f52ef7657 | louridas | Else |
39 | 0:839f52ef7657 | louridas | ua3 = m |
40 | 0:839f52ef7657 | louridas | End If |
41 | 0:839f52ef7657 | louridas | ! ---------------------------------------------------------------------- |
42 | 0:839f52ef7657 | louridas | ! --- Determine bounds for lower diagonals. |
43 | 0:839f52ef7657 | louridas | |
44 | 0:839f52ef7657 | louridas | lb1 = 1 |
45 | 0:839f52ef7657 | louridas | ub1 = m |
46 | 0:839f52ef7657 | louridas | If ( me == 0 ) lb1 = 2 |
47 | 0:839f52ef7657 | louridas | nsize = n1 |
48 | 0:839f52ef7657 | louridas | If ( glb > nsize ) Then |
49 | 0:839f52ef7657 | louridas | lb2 = 1 |
50 | 0:839f52ef7657 | louridas | Else |
51 | 0:839f52ef7657 | louridas | lb2 = nsize - glb + 1 |
52 | 0:839f52ef7657 | louridas | End If |
53 | 0:839f52ef7657 | louridas | If ( gub > nsize ) Then |
54 | 0:839f52ef7657 | louridas | ub2 = m |
55 | 0:839f52ef7657 | louridas | Else |
56 | 0:839f52ef7657 | louridas | ub2 = 0 !<-- Make upper bound so low that loop |
57 | 0:839f52ef7657 | louridas | End If ! will never execute. |
58 | 0:839f52ef7657 | louridas | nsize = n12 |
59 | 0:839f52ef7657 | louridas | If ( glb > nsize ) Then |
60 | 0:839f52ef7657 | louridas | lb3 = 1 |
61 | 0:839f52ef7657 | louridas | Else |
62 | 0:839f52ef7657 | louridas | lb3 = nsize - glb + 1 |
63 | 0:839f52ef7657 | louridas | End If |
64 | 0:839f52ef7657 | louridas | If ( gub > nsize ) Then |
65 | 0:839f52ef7657 | louridas | ub3 = m |
66 | 0:839f52ef7657 | louridas | Else |
67 | 0:839f52ef7657 | louridas | ub3 = 0 !<-- Make upper bound so low that loop |
68 | 0:839f52ef7657 | louridas | End If ! will never execute. |
69 | 0:839f52ef7657 | louridas | ! ---------------------------------------------------------------------- |
70 | 0:839f52ef7657 | louridas | End Subroutine taylor |