Clicky

Fortran Wiki
proc_component_example (changes)

Skip the Navigation Links | Home Page | All Pages | Recently Revised | Authors | Feeds | Export |

Showing changes from revision #3 to #4: (追記) Added (追記ここまで) | (削除) Removed (削除ここまで) | (削除) Chan (削除ここまで)(追記) ged (追記ここまで)

(削除) Posted (削除ここまで)(追記) This example was (追記ここまで)(削除) to (削除ここまで)(追記) posted (追記ここまで)(追記) to (追記ここまで)comp.lang.fortran (削除) . (削除ここまで)(追記) (追記ここまで)(追記) by (追記ここまで)(追記) "Simulate" (追記ここまで)(追記) on (追記ここまで)(追記) December (追記ここまで)(追記) 12, (追記ここまで)(追記) 2008. (追記ここまで)

module proc_component_example
 type t
 real :: a
 procedure(print_int), pointer, (削除) & (削除ここまで)(削除) 
 (削除ここまで)nopass :: proc
 end type t
 abstract interface
 subroutine print_int (arg, lun)
 import
 type(t), intent(in) :: arg
 integer, intent(in) :: lun
 end subroutine print_int
 end interface
contains
 subroutine print_me (arg, lun)
 type(t), intent(in) :: arg
 integer, intent(in) :: lun
 write (lun,*) arg%a
 end subroutine print_me
 subroutine print_my_square (arg, lun)
 type(t), intent(in) :: arg
 integer, intent(in) :: lun
 write (lun,*) arg%a**2
 end subroutine print_my_square
end module proc_component_example
program main
 use proc_component_example
 use iso_fortran_env, only : output_unit
 type(t) :: x
 x%a = 2.71828
 x%proc => print_me
 call x%proc(x, output_unit)
 x%proc => print_my_square
 call x%proc(x, output_unit)
end program main

category: code

Revised on March 16, 2010 14:46:45 by Jason Blevins (75.178.9.182) (1187 characters / 0.0 pages)
Edit | Back in time (3 revisions) | Hide changes | History | Views: Print | TeX | Source | Linked from: Code, HowTo, Procedure pointers

AltStyle によって変換されたページ (->オリジナル) /