1PROGRAM Test_INTEGER_select 2 3! Every wrong branch leads to destruction. 4 5 INTEGER, PARAMETER :: maxI = HUGE (maxI) 6 INTEGER, PARAMETER :: minI = -1 * maxI 7 INTEGER :: I = 0 8 9 SELECT CASE (I) 10 CASE (:-1) 11 STOP 1 12 CASE (1:) 13 STOP 2 14 CASE DEFAULT 15 CONTINUE 16 END SELECT 17 18 SELECT CASE (I) 19 CASE (3,2,1) 20 STOP 3 21 CASE (0) 22 CONTINUE 23 CASE DEFAULT 24 STOP 4 25 END SELECT 26 27! Not aborted by here, so it worked 28! See about weird corner cases 29 30 I = maxI 31 32 SELECT CASE (I) 33 CASE (:-1) 34 STOP 5 35 CASE (1:) 36 CONTINUE 37 CASE DEFAULT 38 STOP 6 39 END SELECT 40 41 SELECT CASE (I) 42 CASE (3,2,1,:0) 43 STOP 7 44 CASE (maxI) 45 CONTINUE 46 CASE DEFAULT 47 STOP 8 48 END SELECT 49 50 I = minI 51 52 SELECT CASE (I) 53 CASE (:-1) 54 CONTINUE 55 CASE (1:) 56 STOP 9 57 CASE DEFAULT 58 STOP 10 59 END SELECT 60 61 SELECT CASE (I) 62 CASE (3:,2,1,0) 63 STOP 11 64 CASE (minI) 65 CONTINUE 66 CASE DEFAULT 67 STOP 12 68 END SELECT 69 70END 71 72