SELECT CASE (n) ! n est un entier
CASE (0) ! si n=0, alors on execute x=x+1
x=x+1
CASE (1,2) ! si n=1 ou 2 alors on execute x=x+2
x=x+2
CASE (3:10) ! si 3<= n <= 10 alors on execute x=x+10
x=x+10
CASE DEFAULT ! sinon on execute x =x+102
x =x+102
END SELECT
Evidemment, on peut faire la même chose en utilisant l'instruction
IF, mais pour
la lisibilité du programme ceci est mieux adapté dans ce cas.
La construction CASE se présente de façon générale :
[nom:] SELECT CASE (expr)
CASE (selecteur1)
bloc1
CASE (selecteur2)
bloc2
.
.
[CASE DEFAULT
bloc ]
END SELECT [nom]
L'expression expr doit être de type caractère, logique ou entier et bien
sûr sélecteur doit être du même type. Par exemple
SELECT CASE (char) ! char est de type caractere
CASE ('c','d','r') ! si char = c, d ou r
type_ch = .true.
CASE ('I':'N') ! si char = I, J, K, L, M ou N
type_int = .true.
CASE DEFAULT ! sinon on execute x =x+102
typr_reel = .true.
END SELECT