Difference between revisions of "Fortran3"
Jump to navigation
Jump to search
Line 8: | Line 8: | ||
=Encapsulation= | =Encapsulation= | ||
− | < | + | <source lang="Fortran"> |
module type_stuff | module type_stuff | ||
Line 70: | Line 70: | ||
− | </ | + | </source> |
Revision as of 17: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