Fortran refactoring for legacy systems

The motivation of this work comes from a Global Climate Model (GCM) Software which was in great need of being updated. This software was implemented by scientists in the ’80s as a result of meteorological research. Written in Fortran 77, this program has been used as an input to make climate predict...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Méndez, Mariano
Otros Autores: Tinetti, Fernando Gustavo
Formato: Tesis Tesis de maestria
Lenguaje:Inglés
Publicado: 2011
Materias:
Acceso en línea:http://sedici.unlp.edu.ar/handle/10915/4201
https://doi.org/10.35537/10915/4201
Aporte de:
id I19-R120-10915-4201
record_format dspace
institution Universidad Nacional de La Plata
institution_str I-19
repository_str R-120
collection SEDICI (UNLP)
language Inglés
topic Informática
Fortran; legacy systems; refactoring; Photran; software engineering
spellingShingle Informática
Fortran; legacy systems; refactoring; Photran; software engineering
Méndez, Mariano
Fortran refactoring for legacy systems
topic_facet Informática
Fortran; legacy systems; refactoring; Photran; software engineering
description The motivation of this work comes from a Global Climate Model (GCM) Software which was in great need of being updated. This software was implemented by scientists in the ’80s as a result of meteorological research. Written in Fortran 77, this program has been used as an input to make climate predictions for the Southern Hemisphere. The execution to get a complete numerical data set takes several days. This software has been programmed using a sequential processing paradigm. In these days, where multicore processors are so widespread, the time that an execution takes to get a complete useful data set can be drastically reduced using this technology. As a first objective to reach this goal of reengineering we must be able to understand the source code. An essential Fortran code characteristic is that old source code versions became unreadable, not comprehensive and sometimes “ejects” the reader from the source code. In that way, we can not modify, update or improve unreadable source code. Then, as a first step to parallelize this code we must update it, turn it readable and easy to understand. The GCM has a very complex internal structure. The program is divided into about 300 .f (Fortran 77) files. These files generally implement only one Fortran subroutine. Less than 10% of the files are used for common blocks and constants. Approximately 25% of the lines in the source code are comments. The total number of Fortran source code lines is 58000. A detailed work within the source code brings to light that [74]: 1 About 230 routines are called/used at run time. Most of the runtime is spent in routines located at deep levels 5 to 7 in the dynamic call graph from the main routine. 2 The routine with most of the runtime (the top routine from now on) requires more than 9% of the total program runtime and is called about 315000 times. 3 The top 10 routines (the 10 routines at the top of the flat profile) require about 50% of total runtime. Two of them are related to intrinsic Fortran functions. Our first approach was using a scripting language and Find & Replace tools trying to upgrade the source code, this kind of code manipulation do not guarantee preservation of software behavior. Then, our goal was to develop an automated tool to transform legacy software in more understandable, comprehensible and readable applying refactoring as main technique. At the same time a catalog of transformation to be applied in Fortran code is needed as a guide to programmers through this process.
author2 Tinetti, Fernando Gustavo
author_facet Tinetti, Fernando Gustavo
Méndez, Mariano
format Tesis
Tesis de maestria
author Méndez, Mariano
author_sort Méndez, Mariano
title Fortran refactoring for legacy systems
title_short Fortran refactoring for legacy systems
title_full Fortran refactoring for legacy systems
title_fullStr Fortran refactoring for legacy systems
title_full_unstemmed Fortran refactoring for legacy systems
title_sort fortran refactoring for legacy systems
publishDate 2011
url http://sedici.unlp.edu.ar/handle/10915/4201
https://doi.org/10.35537/10915/4201
work_keys_str_mv AT mendezmariano fortranrefactoringforlegacysystems
bdutipo_str Repositorios
_version_ 1764820473147817985