| VAST/77to90
VAST/77to90 from Pacific-Sierra Research (PSR) is a Fortran 77 to Fortran 90 translator that allows you to upgrade your existing Fortran 77 programs to a higher level. Whether you are just learning to write Fortran 90 programs or have already become a Fortran 90 expert, you will find that VAST/77to90 is the right tool to enhance your applications. Fortran 77 to Fortran 90With VAST/77to90 you can easily update all your existing Fortran 77 programs to clean and efficient Fortran 90. This is much more than a source form reformatter. For example,VAST/77to90's sophisticated Fortran 90 capability provides automatic generation of multi-dimensional array syntax. Developed over many years in PSR's VAST-2 product line, this capability was first delivered to users in 1985, and has been used extensively by many computer manufacturers. Some of the conversions performed by VAST/77to90:
For an independent review of VAST/77to90's superior Fortran 77 to Fortran 90 conversion capabilities, please look at the in-depth article Automatic Translation of Fortran 77 to Fortran 90 Using VAST-90, which was published in the July/August 1993 issue of Fortran Journal. How is VAST/77to90 used?VAST/77to90 is easy to use. Simply provide the 77to90 executable with the name or list of names of your Fortran 77 files to be converted into Fortran 90. VAST/77to90 uses a set of documented defaults for converting your code. However, you can easily change any of the defaults in addition to modifying output format parameters to fit your specific requirements. VAST/77to90 ExampleF77 Input:
subroutine demo(a,b,c,n)
dimension a(n), b(n), c(n)
common /ecom/scratch(10000)
do 100 i = 1, n
a(i) = b(i) + c(i)
if ( a(i).gt.100.0) then
a(i) = a(i) + scratch(i)
go to 100
endif
c(i) = a(i)*2
100 continue
end
Created Fortran 90 Module:module Vecom real, dimension(10000) :: scratch end module Vecom Created Fortran 90 Code:
subroutine demo(a, b, c, n)
!---------------------------
! Modules
!---------------------------
USE Vecom
implicit none
!---------------------------
! Dummy Arguments
!---------------------------
integer n
real, dimension(n) :: a, b,c
!---------------------------
! Local Variables
!---------------------------
integer :: i
!---------------------------
a = b + c
where (a > 100.0 )
a = a + scratch(:n)
elsewhere
c = a*2
end where
end subroutine demo
Download a demo version (3.3 MB) of VAST/77to90 that allows you translate up to 250 lines of code. VAST is a registered trademark of Pacific-Sierra Research Corporation. |