[COLOR=#a020f0]program[/color] unit_vector
[COLOR=#2e8b57][b]implicit[/b][/color] [COLOR=#2e8b57][b]none[/b][/color]
[COLOR=#2e8b57][b]double precision[/b][/color], [COLOR=#2e8b57][b]dimension[/b][/color]([COLOR=#ff00ff]3[/color]) :: u, v, z, e
u [COLOR=#804040][b]=[/b][/color] ([COLOR=#804040][b]/[/b][/color][COLOR=#ff00ff]1.d0[/color], [COLOR=#ff00ff]2.d0[/color], [COLOR=#ff00ff]1000.00001d0[/color][COLOR=#804040][b]/[/b][/color])
v [COLOR=#804040][b]=[/b][/color] ([COLOR=#804040][b]/[/b][/color][COLOR=#ff00ff]1.d0[/color], [COLOR=#ff00ff]2.d0[/color], [COLOR=#ff00ff]1000.d0[/color][COLOR=#804040][b]/[/b][/color])
z [COLOR=#804040][b]=[/b][/color] u [COLOR=#804040][b]-[/b][/color] v
e [COLOR=#804040][b]=[/b][/color] z[COLOR=#804040][b]/[/b][/color]norm(z)
[COLOR=#0000ff]!print *, 'u = (', u, ')'[/color]
[COLOR=#0000ff]!print *, 'v = (', v, ')'[/color]
[COLOR=#0000ff]!print *, 'z = u - v = (', z, ')'[/color]
[COLOR=#0000ff]!print *, 'norm(z)=', norm(z)[/color]
[COLOR=#0000ff]!print *, 'e = (', e, ')'[/color]
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]10[/color], [COLOR=#ff00ff]'u = ('[/color], u([COLOR=#ff00ff]1[/color]), [COLOR=#ff00ff]', '[/color], u([COLOR=#ff00ff]2[/color]), [COLOR=#ff00ff]', '[/color], u([COLOR=#ff00ff]3[/color]), [COLOR=#ff00ff]')'[/color]
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]10[/color], [COLOR=#ff00ff]'v = ('[/color], v([COLOR=#ff00ff]1[/color]), [COLOR=#ff00ff]', '[/color], v([COLOR=#ff00ff]2[/color]), [COLOR=#ff00ff]', '[/color], v([COLOR=#ff00ff]3[/color]), [COLOR=#ff00ff]')'[/color]
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]10[/color], [COLOR=#ff00ff]'z = u - v = ('[/color], z([COLOR=#ff00ff]1[/color]), [COLOR=#ff00ff]', '[/color], z([COLOR=#ff00ff]2[/color]), [COLOR=#ff00ff]', '[/color], z([COLOR=#ff00ff]3[/color]), [COLOR=#ff00ff]')'[/color]
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]20[/color], [COLOR=#ff00ff]'norm(z) = '[/color], norm(z)
[COLOR=#804040][b]print[/b][/color] [COLOR=#ff00ff]10[/color], [COLOR=#ff00ff]'e = ('[/color], e([COLOR=#ff00ff]1[/color]), [COLOR=#ff00ff]', '[/color], e([COLOR=#ff00ff]2[/color]), [COLOR=#ff00ff]', '[/color], e([COLOR=#ff00ff]3[/color]), [COLOR=#ff00ff]')'[/color]
[COLOR=#6a5acd]10[/color] [COLOR=#804040][b]format[/b][/color](a15 [COLOR=#008080]f10.5[/color] a2 [COLOR=#008080]f10.5[/color] a2 [COLOR=#008080]f10.5[/color] a)
[COLOR=#6a5acd]20[/color] [COLOR=#804040][b]format[/b][/color](a15 [COLOR=#008080]f10.5[/color])
[COLOR=#a020f0]contains[/color]
[COLOR=#a020f0]function[/color] norm(vector)
[COLOR=#0000ff]! Find the norm of vector[/color]
[COLOR=#2e8b57][b]double precision[/b][/color] :: norm
[COLOR=#2e8b57][b]double precision[/b][/color], [COLOR=#2e8b57][b]intent[/b][/color] ([COLOR=#2e8b57][b]in[/b][/color]), [COLOR=#2e8b57][b]dimension[/b][/color] (:) :: vector
[COLOR=#2e8b57][b]integer[/b][/color] :: i
norm[COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]0[/color]
[COLOR=#804040][b]do[/b][/color] i [COLOR=#804040][b]=[/b][/color][COLOR=#ff00ff]1[/color], [COLOR=#008080]size[/color](vector)
norm[COLOR=#804040][b]=[/b][/color]norm[COLOR=#804040][b]+[/b][/color]vector(i)[COLOR=#804040][b]**[/b][/color][COLOR=#ff00ff]2[/color]
[COLOR=#804040][b]end do[/b][/color]
norm[COLOR=#804040][b]=[/b][/color] [COLOR=#008080]sqrt[/color](norm)
[COLOR=#a020f0]end function[/color] norm
[COLOR=#a020f0]end program[/color] unit_vector