pro mg_by_reference_test, x
compile_opt strictarr
print, 'Passed as ' + (arg_present(x) ? 'named variable.': 'expression.')
print, 'Before, value = ' + strjoin(strtrim(x, 2), ', ')
x++
print, 'After, inside routine, value = ' + strjoin(strtrim(x, 2), ', ')
end
a = 5
mg_by_reference_test, a
print, 'After, outside routine, value = ' + strjoin(strtrim(a, 2), ', ')
print
arr = fltarr(3)
mg_by_reference_test, arr
print, 'After, outside routine, value = ' + strjoin(strtrim(arr, 2), ', ')
print
mg_by_reference_test, arr[0]
print, 'After, outside routine, value = ' + strjoin(strtrim(arr[0], 2), ', ')
end