Most programming languages offer support for subroutines.
When execution changes between subroutines, different sets of variables and functions ("scopes") are available to the program.
Frequently these sets are defined by the placement of the variable and function declarations ("static scoping" or "lexical scoping").
These sets may also be defined by special modifiers to the variable and function declarations.

Show the different scope modifiers available in your language and briefly explain how they change the scope of their variable or function.
If your language has no scope modifiers, note it.

OUTER
 SET OUT=1,IN=0
 WRITE "OUT = ",OUT,!
 WRITE "IN = ",IN,!
 DO INNER
 WRITE:$DATA(OUT)=0 "OUT was destroyed",!
 QUIT
INNER
 WRITE "OUT (inner scope) = ",OUT,!
 WRITE "IN (outer scope) = ",IN,!
 NEW IN
 SET IN=3.14
 WRITE "IN (inner scope) = ",IN,!
 KILL OUT
 QUIT