{'fraction_non_alphanumeric': 0.01818181818181818, 'fraction_numerical': 0.020363636363636365, 'mean_word_length': 4.68595041322314, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Re-Engineering the Finite Element Library : The Transformation of a Legacy Fortran Library

The Finite Element Library (FELIB) [1, 2, 3] was first designed and implemented in the early 1980s and since then there have been four releases of the software Release 4 is the current release. Many individuals and groups have made use of FELIB in developing finite element based applications and in the teaching of finite element techniques. Some 3000 known copies of the library are known to exist (through monitoring httpd and ftp accessing) and there are probably many other copies obtained through third parties. This report details the re-design and re-engineering of the original Fortran 77 FELIB to make use of the new features of Fortran 90/95. This process provides a very useful way in assessing some of the software tools which can assist in this transformation and re-design. The report contains short summaries on tool such as TOOLPACK and plusFORT used in this work. The basic design goals are discussed in light of Fortran 90/95 features and methods of implementation detailed. There is a short debate on whether to use POINTERs to arrays or ALLOCATABLE arrays and the overall MODULE structure of this implementation is described. Full details of the Fortran 77 and Fortran 90/95 versions of FELIB are to found on the Mathematical Software Group Web site under FELIB.