|
5 | 5 | ! It returns 0 on success (odd input), or among a few error codes otherwise.
|
6 | 6 |
|
7 | 7 | program check_odd_number
|
8 |
| - implicit none |
| 8 | + implicit none |
9 | 9 |
|
10 |
| - integer, parameter :: SUCCESS = 0 |
11 |
| - integer, parameter :: INVALID_ARGUMENT = 1 |
12 |
| - integer, parameter :: NOT_AN_INTEGER = 2 |
13 |
| - integer, parameter :: NOT_ODD = 3 |
| 10 | + integer, parameter :: SUCCESS = 0 |
| 11 | + integer, parameter :: INVALID_ARGUMENT = 1 |
| 12 | + integer, parameter :: NOT_AN_INTEGER = 2 |
| 13 | + integer, parameter :: NOT_ODD = 3 |
14 | 14 |
|
15 |
| - character(len=1024) :: buffer |
16 |
| - integer :: ierr,ln,the_number |
| 15 | + character(len=1024) :: buffer |
| 16 | + integer :: ierr,ln,the_number |
17 | 17 |
|
18 |
| - ! If the argument is missing or not an integer, return an error flag |
19 |
| - if (command_argument_count()/=1) stop INVALID_ARGUMENT |
| 18 | + ! If the argument is missing or not an integer, return an error flag |
| 19 | + if (command_argument_count()/=1) stop INVALID_ARGUMENT |
20 | 20 |
|
21 |
| - ! Get command argument |
22 |
| - call get_command_argument(1,value=buffer,length=ln,status=ierr) |
| 21 | + ! Get command argument |
| 22 | + call get_command_argument(1,value=buffer,length=ln,status=ierr) |
23 | 23 |
|
24 |
| - ! On invalid string |
25 |
| - if (ln<1 .or. ierr/=0) stop INVALID_ARGUMENT |
| 24 | + ! On invalid string |
| 25 | + if (ln<1 .or. ierr/=0) stop INVALID_ARGUMENT |
26 | 26 |
|
27 |
| - ! Read to int |
28 |
| - read(buffer(:ln),*,iostat=ierr) the_number |
| 27 | + ! Read to int |
| 28 | + read(buffer(:ln),*,iostat=ierr) the_number |
29 | 29 |
|
30 |
| - ! On invalid integer |
31 |
| - if (ierr/=0) stop NOT_AN_INTEGER |
| 30 | + ! On invalid integer |
| 31 | + if (ierr/=0) stop NOT_AN_INTEGER |
32 | 32 |
|
33 |
| - ! Check if it is odd or even |
34 |
| - if (mod(the_number,2)==0) then |
35 |
| - ! Is even |
36 |
| - stop NOT_ODD |
37 |
| - else |
38 |
| - ! Is odd |
39 |
| - stop SUCCESS |
40 |
| - end if |
| 33 | + ! Check if it is odd or even |
| 34 | + if (mod(the_number,2)==0) then |
| 35 | + ! Is even |
| 36 | + stop NOT_ODD |
| 37 | + else |
| 38 | + ! Is odd |
| 39 | + stop SUCCESS |
| 40 | + end if |
41 | 41 |
|
42 | 42 | end program check_odd_number
|
0 commit comments