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. |