Commit | Line | Data |
---|---|---|
b811d2c2 | 1 | ! Copyright 2009-2020 Free Software Foundation, Inc. |
5d7cb8df JK |
2 | ! |
3 | ! This program is free software; you can redistribute it and/or modify | |
4 | ! it under the terms of the GNU General Public License as published by | |
5 | ! the Free Software Foundation; either version 3 of the License, or | |
6 | ! (at your option) any later version. | |
7 | ! | |
8 | ! This program is distributed in the hope that it will be useful, | |
9 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | ! GNU General Public License for more details. | |
12 | ! | |
13 | ! You should have received a copy of the GNU General Public License | |
14 | ! along with this program. If not, see <http://www.gnu.org/licenses/>. | |
15 | ||
f55ee35c JK |
16 | module mod1 |
17 | integer :: var_i = 1 | |
c2b0a229 JK |
18 | integer :: var_const |
19 | parameter (var_const = 20) | |
f55ee35c | 20 | end module mod1 |
5d7cb8df | 21 | |
f55ee35c JK |
22 | module mod2 |
23 | integer :: var_i = 2 | |
24 | end module mod2 | |
25 | ||
530e8392 KB |
26 | module mod3 |
27 | integer :: mod2 = 3 | |
28 | integer :: mod1 = 3 | |
29 | integer :: var_i = 3 | |
30 | end module mod3 | |
31 | ||
f55ee35c JK |
32 | module modmany |
33 | integer :: var_a = 10, var_b = 11, var_c = 12, var_i = 14 | |
34 | end module modmany | |
35 | ||
32019081 JK |
36 | module moduse |
37 | integer :: var_x = 30, var_y = 31 | |
38 | end module moduse | |
39 | ||
f55ee35c JK |
40 | subroutine sub1 |
41 | use mod1 | |
42 | if (var_i .ne. 1) call abort | |
43 | var_i = var_i ! i-is-1 | |
44 | end | |
45 | ||
46 | subroutine sub2 | |
47 | use mod2 | |
48 | if (var_i .ne. 2) call abort | |
49 | var_i = var_i ! i-is-2 | |
50 | end | |
51 | ||
530e8392 KB |
52 | subroutine sub3 |
53 | USE mod3 | |
54 | var_i = var_i ! i-is-3 | |
55 | END | |
56 | ||
f55ee35c JK |
57 | program module |
58 | ||
59 | use modmany, only: var_b, var_d => var_c, var_i | |
32019081 | 60 | use moduse, var_z => var_y |
f55ee35c JK |
61 | |
62 | call sub1 | |
63 | call sub2 | |
530e8392 | 64 | call sub3 |
f55ee35c JK |
65 | |
66 | if (var_b .ne. 11) call abort | |
67 | if (var_d .ne. 12) call abort | |
68 | if (var_i .ne. 14) call abort | |
32019081 JK |
69 | if (var_x .ne. 30) call abort |
70 | if (var_z .ne. 31) call abort | |
f55ee35c | 71 | var_b = var_b ! a-b-c-d |
5d7cb8df | 72 | end |