Difference between revisions of "Fortran3"
Jump to navigation
Jump to search
m (Protected "Fortran3" [edit=sysop:move=sysop]) |
|||
Line 1: | Line 1: | ||
[[Category:Pragmatic Programming]] | [[Category:Pragmatic Programming]] | ||
− | '''Fortran3: | + | '''Fortran3: Object Oriented Fortran''' |
Revision as of 15:32, 7 March 2011
Fortran3: Object Oriented Fortran
Introduction
Only a few of the features of Fortran2003 are supported in gfortran version 4.3, which is the most recent version available on Ubuntu as of July 2009. gfortran-4.4 will support features such as the encapsulation of methods in user-derived types.
Encapsulation
module type_stuff implicit none !! private? integer, parameter :: maxstr = 50 type station real :: frequency ! MHz character(len=maxstr) :: name ! str contains procedure :: init => init_station procedure :: str => str_station end type station contains subroutine init_station(user_type, freq, stat_name) implicit none !! dummy args type(station), intent(out :: user_type real, intent(in) :: freq character(len=maxstr), intent(in) :: stat_name user_type%frequency = freq user_type%name = stat_name end subroutine init_station subroutine str_station(user_type) implicit none !! dummy args type station, intent(in) :: user_type write(6,*) "station name: ", user_type%name write(6,*) "frequency is: ", user_type%frequency end subroutine str_station end module type_stuff ! program encapsulation ! use type_suff ! implicit none ! type(station) :: radio2 ! radio2%init(89.9,"radio 2") ! radio2%str ! end program encapsulation