1! Copyright 2005-2018 ECMWF.
2!
3! This software is licensed under the terms of the Apache Licence Version 2.0
4! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
5!
6! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
7! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
8
9integer function kind_of_size_t()
10  integer(2), dimension(2) :: x2 = (/1, 2/)
11  integer(4), dimension(2) :: x4 = (/1, 2/)
12  integer(8), dimension(2) :: x8 = (/1, 2/)
13  character(len=1) :: ret
14
15  kind_of_size_t=-1
16
17  call check_size_t(x2(1),x2(2),ret)
18  if (ret == 't') then
19   kind_of_size_t=2
20   return
21  endif
22
23  call check_size_t(x4(1),x4(2),ret)
24  if (ret == 't') then
25   kind_of_size_t=4
26   return
27  endif
28
29  call check_size_t(x8(1),x8(2),ret)
30  if (ret == 't') then
31   kind_of_size_t=8
32   return
33  endif
34
35end function kind_of_size_t
36
37integer function kind_of_int()
38  integer(2), dimension(2) :: x2 = (/1, 2/)
39  integer(4), dimension(2) :: x4 = (/1, 2/)
40  integer(8), dimension(2) :: x8 = (/1, 2/)
41  character(len=1) :: ret
42
43  kind_of_int=-1
44
45  call check_int(x2(1),x2(2),ret)
46  if (ret == 't') then
47   kind_of_int=2
48   return
49  endif
50
51  call check_int(x4(1),x4(2),ret)
52  if (ret == 't') then
53   kind_of_int=4
54   return
55  endif
56
57  call check_int(x8(1),x8(2),ret)
58  if (ret == 't') then
59   kind_of_int=8
60   return
61  endif
62
63end function kind_of_int
64
65program same_int_size_t
66  integer ki,kl
67
68  ki=kind_of_int()
69  kl=kind_of_size_t()
70  if (ki /= kl) then
71    write (*,'(i1)') 0
72  else
73    write (*,'(i1)') 1
74  endif
75end program same_int_size_t
76
77