Making legacy Fortran code type safe through automated program transformation

Fortran is still widely used in scientific computing, and a very large corpus of legacy as well as new code is written in FORTRAN 77. In general this code is not type safe, so that incorrect programs can compile without errors. In this paper, we present a formal approach to ensure type safety of leg...

Full description

Saved in:
Bibliographic Details
Published in:The Journal of supercomputing Vol. 78; no. 2; pp. 2988 - 3028
Main Author: Vanderbauwhede, Wim
Format: Journal Article
Language:English
Published: New York Springer US 01.02.2022
Springer Nature B.V
Subjects:
ISSN:0920-8542, 1573-0484
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Fortran is still widely used in scientific computing, and a very large corpus of legacy as well as new code is written in FORTRAN 77. In general this code is not type safe, so that incorrect programs can compile without errors. In this paper, we present a formal approach to ensure type safety of legacy Fortran code through automated program transformation. The objective of this work is to reduce programming errors by guaranteeing type safety. We present the first rigorous analysis of the type safety of FORTRAN 77 and the novel program transformation and type checking algorithms required to convert FORTRAN 77 subroutines and functions into pure, side-effect free subroutines and functions in Fortran 90. We have implemented these algorithms in a source-to-source compiler which type checks and automatically transforms the legacy code. We show that the resulting code is type safe and that the pure, side-effect free and referentially transparent subroutines can readily be offloaded to accelerators.
AbstractList Fortran is still widely used in scientific computing, and a very large corpus of legacy as well as new code is written in FORTRAN 77. In general this code is not type safe, so that incorrect programs can compile without errors. In this paper, we present a formal approach to ensure type safety of legacy Fortran code through automated program transformation. The objective of this work is to reduce programming errors by guaranteeing type safety. We present the first rigorous analysis of the type safety of FORTRAN 77 and the novel program transformation and type checking algorithms required to convert FORTRAN 77 subroutines and functions into pure, side-effect free subroutines and functions in Fortran 90. We have implemented these algorithms in a source-to-source compiler which type checks and automatically transforms the legacy code. We show that the resulting code is type safe and that the pure, side-effect free and referentially transparent subroutines can readily be offloaded to accelerators.
Author Vanderbauwhede, Wim
Author_xml – sequence: 1
  givenname: Wim
  orcidid: 0000-0001-6768-0037
  surname: Vanderbauwhede
  fullname: Vanderbauwhede, Wim
  email: wim.vanderbauwhede@glasgow.ac.uk
  organization: School of Computing Science, University of Glasgow
BookMark eNp9kE1LAzEQhoNUsK3-AU8Bz6uTj_3IUYpVweJFz2GaTbZb201Ndg_996atIHjoaYbhfWbeeSdk1PnOEnLL4J4BlA-RMc7LDDjLQFRCZeqCjFleigxkJUdkDIpDVuWSX5FJjGsAkKIUY7JY4FfbNXRjGzR7OvehD9hR42tL-_3O0ogudavgh2ZFcej9Fntb013wTcAtPaij8yFNW99dk0uHm2hvfuuUfM6fPmYv2dv78-vs8S0zohB9prhcQu1AWOekw9IVqsTClblwcmkRjBBmqbhwNUpQjLO8qutKmQJ5jTlDMSV3p73JxvdgY6_XfghdOql5wXnBmACeVPykMsHHGKzTu9BuMew1A32ITZ9i0yk2fYxNqwRV_yDT9sfn0qvt5jwqTmhMd7rGhj9XZ6gfDPeEwg
CitedBy_id crossref_primary_10_3390_a16050241
Cites_doi 10.1145/1238844.1238856
10.21105/joss.00865
10.1145/2179280.2179281
10.1007/978-3-642-13217-9_2
10.1016/0022-0000(78)90014-4
10.1145/1145319.1145331
10.1016/0010-4655(94)90212-7
10.1016/0010-4655(96)00093-8
10.1145/2541348.2541356
10.1007/978-3-642-00820-7
10.1109/MCSE.2016.17
10.1145/328239.333386
10.1016/j.uclim.2020.100625
10.1016/j.procs.2014.05.052
10.1049/sej.1990.0017
10.1016/j.compfluid.2018.06.005
10.1145/3206214.3206215
ContentType Journal Article
Copyright The Author(s) 2021
The Author(s) 2021. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
Copyright_xml – notice: The Author(s) 2021
– notice: The Author(s) 2021. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
DBID C6C
AAYXX
CITATION
JQ2
DOI 10.1007/s11227-021-03839-9
DatabaseName Springer Nature OA Free Journals
CrossRef
ProQuest Computer Science Collection
DatabaseTitle CrossRef
ProQuest Computer Science Collection
DatabaseTitleList ProQuest Computer Science Collection
CrossRef

DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 1573-0484
EndPage 3028
ExternalDocumentID 10_1007_s11227_021_03839_9
GrantInformation_xml – fundername: Engineering and Physical Sciences Research Council
  grantid: EP/L00058X/1
  funderid: http://dx.doi.org/10.13039/501100000266
GroupedDBID -4Z
-59
-5G
-BR
-EM
-Y2
-~C
.4S
.86
.DC
.VR
06D
0R~
0VY
123
199
1N0
1SB
2.D
203
28-
29L
2J2
2JN
2JY
2KG
2KM
2LR
2P1
2VQ
2~H
30V
4.4
406
408
409
40D
40E
5QI
5VS
67Z
6NX
78A
8TC
8UJ
95-
95.
95~
96X
AAAVM
AABHQ
AACDK
AAHNG
AAIAL
AAJBT
AAJKR
AANZL
AAOBN
AARHV
AARTL
AASML
AATNV
AATVU
AAUYE
AAWCG
AAYIU
AAYOK
AAYQN
AAYTO
AAYZH
ABAKF
ABBBX
ABBXA
ABDBF
ABDPE
ABDZT
ABECU
ABFTD
ABFTV
ABHLI
ABHQN
ABJNI
ABJOX
ABKCH
ABKTR
ABMNI
ABMQK
ABNWP
ABQBU
ABQSL
ABSXP
ABTEG
ABTHY
ABTKH
ABTMW
ABULA
ABWNU
ABXPI
ACAOD
ACBXY
ACDTI
ACGFS
ACHSB
ACHXU
ACKNC
ACMDZ
ACMLO
ACOKC
ACOMO
ACPIV
ACUHS
ACZOJ
ADHHG
ADHIR
ADIMF
ADINQ
ADKNI
ADKPE
ADMLS
ADQRH
ADRFC
ADTPH
ADURQ
ADYFF
ADZKW
AEBTG
AEFIE
AEFQL
AEGAL
AEGNC
AEJHL
AEJRE
AEKMD
AEMSY
AENEX
AEOHA
AEPYU
AESKC
AETLH
AEVLU
AEXYK
AFBBN
AFEXP
AFGCZ
AFLOW
AFQWF
AFWTZ
AFZKB
AGAYW
AGDGC
AGGDS
AGJBK
AGMZJ
AGQEE
AGQMX
AGRTI
AGWIL
AGWZB
AGYKE
AHAVH
AHBYD
AHSBF
AHYZX
AI.
AIAKS
AIGIU
AIIXL
AILAN
AITGF
AJBLW
AJRNO
AJZVZ
ALMA_UNASSIGNED_HOLDINGS
ALWAN
AMKLP
AMXSW
AMYLF
AMYQR
AOCGG
ARCSS
ARMRJ
ASPBG
AVWKF
AXYYD
AYJHY
AZFZN
B-.
B0M
BA0
BBWZM
BDATZ
BGNMA
BSONS
C6C
CAG
COF
CS3
CSCUP
DDRTE
DL5
DNIVK
DPUIP
DU5
EAD
EAP
EAS
EBD
EBLON
EBS
EDO
EIOEI
EJD
EMK
EPL
ESBYG
ESX
F5P
FEDTE
FERAY
FFXSO
FIGPU
FINBP
FNLPD
FRRFC
FSGXE
FWDCC
GGCAI
GGRSB
GJIRD
GNWQR
GQ6
GQ7
GQ8
GXS
H13
HF~
HG5
HG6
HMJXF
HQYDN
HRMNR
HVGLF
HZ~
H~9
I-F
I09
IHE
IJ-
IKXTQ
ITM
IWAJR
IXC
IZIGR
IZQ
I~X
I~Z
J-C
J0Z
JBSCW
JCJTX
JZLTJ
KDC
KOV
KOW
LAK
LLZTM
M4Y
MA-
N2Q
N9A
NB0
NDZJH
NPVJJ
NQJWS
NU0
O9-
O93
O9G
O9I
O9J
OAM
OVD
P19
P2P
P9O
PF0
PT4
PT5
QOK
QOS
R4E
R89
R9I
RHV
RNI
ROL
RPX
RSV
RZC
RZE
RZK
S16
S1Z
S26
S27
S28
S3B
SAP
SCJ
SCLPG
SCO
SDH
SDM
SHX
SISQX
SJYHP
SNE
SNPRN
SNX
SOHCF
SOJ
SPISZ
SRMVM
SSLCW
STPWE
SZN
T13
T16
TEORI
TSG
TSK
TSV
TUC
TUS
U2A
UG4
UOJIU
UTJUX
UZXMN
VC2
VFIZW
VH1
W23
W48
WH7
WK8
YLTOR
Z45
Z7R
Z7X
Z7Z
Z83
Z88
Z8M
Z8N
Z8R
Z8T
Z8W
Z92
ZMTXR
~8M
~EX
AAPKM
AAYXX
ABBRH
ABDBE
ABFSG
ABJCF
ABRTQ
ACSTC
ADHKG
ADKFA
AEZWR
AFDZB
AFFHD
AFHIU
AFKRA
AFOHR
AGQPQ
AHPBZ
AHWEU
AIXLP
ARAPS
ATHPR
AYFIA
BENPR
BGLVJ
CCPQU
CITATION
HCIFZ
K7-
M7S
PHGZM
PHGZT
PQGLB
PTHSS
JQ2
ID FETCH-LOGICAL-c363t-924b0df03eff4fa7f697a6f753f4bea0c33cb923fda40912158dd89c6a2da51a3
IEDL.DBID RSV
ISICitedReferencesCount 4
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000673426700001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0920-8542
IngestDate Thu Sep 25 00:43:40 EDT 2025
Tue Nov 18 20:47:43 EST 2025
Sat Nov 29 04:27:41 EST 2025
Fri Feb 21 02:46:32 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue 2
Keywords Type system
Type safety
Acceleration
Program transformation
Fortran
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c363t-924b0df03eff4fa7f697a6f753f4bea0c33cb923fda40912158dd89c6a2da51a3
Notes ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
ORCID 0000-0001-6768-0037
OpenAccessLink https://link.springer.com/10.1007/s11227-021-03839-9
PQID 2622611302
PQPubID 2043774
PageCount 41
ParticipantIDs proquest_journals_2622611302
crossref_primary_10_1007_s11227_021_03839_9
crossref_citationtrail_10_1007_s11227_021_03839_9
springer_journals_10_1007_s11227_021_03839_9
PublicationCentury 2000
PublicationDate 2022-02-01
PublicationDateYYYYMMDD 2022-02-01
PublicationDate_xml – month: 02
  year: 2022
  text: 2022-02-01
  day: 01
PublicationDecade 2020
PublicationPlace New York
PublicationPlace_xml – name: New York
PublicationSubtitle An International Journal of High-Performance Computer Design, Analysis, and Use
PublicationTitle The Journal of supercomputing
PublicationTitleAbbrev J Supercomput
PublicationYear 2022
Publisher Springer US
Springer Nature B.V
Publisher_xml – name: Springer US
– name: Springer Nature B.V
References ContrastinMRiceADanishMOrchardDUnits-of-measure correctness in Fortran programsComput Sci Eng201618110210710.1109/MCSE.2016.17
KämpfJOcean modelling for beginners: using open-source software2009BerlinSpringer10.1007/978-3-642-00820-7
Reid J (2018) The new features of Fortran 2018. In: ACM SIGPLAN fortran forum, vol 37. ACM New York, NY, USA, pp 5–43
Overbey J, Xanthos S, Johnson R, Foote B (2005) Refactorings for fortran and high-performance computing. In: Proceedings of the second international workshop on Software engineering for high performance computing system applications. ACM, pp 37–39
TakemiTYoshidaTHoriguchiMVanderbauwhedeWLarge-eddy-simulation analysis of airflows and strong wind hazards in urban areasUrban Clim20203210062510.1016/j.uclim.2020.100625
VanderbauwhedeWThe glasgow Fortran source-to-source compilerJ Open Source Softw201833286510.21105/joss.00865
ScottNKilpatrickPMaleyDThe formal specification of abstract data types and their implementation in Fortran 90Comput Phys Commun199484120122510.1016/0010-4655(94)90212-70874.68040
MaleyDKilpatrickPSchreinerEScottNDiercksenGThe formal specification of abstract data types and their implementation in Fortran 90: implementation issues concerning the use of pointersComput Phys Commun199698116718010.1016/0010-4655(96)00093-80938.68718
Liao C, Quinlan DJ, Panas T, De Supinski BR (2010) A rose-based openmp 3.0 research compiler supporting multiple runtime libraries. In: International workshop on OpenMP. Springer, Berlin, pp 15–28
PierceBCBenjaminCTypes and programming languages2002CambridgeMIT Press0995.68018
Abramson D, Lees M, Krzhizhanovskaya V, Dongarra J, Sloot PM, Yamamoto K, Uno A, Murai H, Tsukamoto T, Shoji F, Matsui S, Sekizawa R, Sueyasu F, Uchiyama H, Okamoto M, Ohgushi N, Takashina K, Wakabayashi D, Taguchi Y, Yokokawa M (2014) In: 2014 International conference on computational science the k computer operations: experiences and statistics. Procedia Computer Science, vol 29, pp 76–585
ColbrookASmytheCFormal specification of data abstraction in Fortran 77: abstract arraysSoftw Eng J19905315115910.1049/sej.1990.0017
Orchard D, Rice A (2013) Upgrading Fortran source code using automatic refactoring. In: Proceedings of the 2013 ACM workshop on refactoring tools, WRT’13. ACM, New York, NY, USA, pp 29–32. https://doi.org/10.1145/2541348.2541356
MilnerRA theory of type polymorphism in programmingJ Comput Syst Sci197817334837551684410.1016/0022-0000(78)90014-4
Reid N, Wray J (1999) A prescriptive semantics of fortran 95. In: ACM SIGPLAN fortran forum, vol 18. ACM New York, NY, USA, pp 2–3
Tinetti FG, Méndez M (2012) Fortran legacy software: source code update and possible parallelisation issues. In: ACM SIGPLAN fortran forum, vol 31. ACM, pp 5–22
VanderbauwhedeWDavidsonGDomain-specific acceleration and auto-parallelization of legacy scientific code in Fortran 77 using source-to-source compilationComput Fluids201817315384363910.1016/j.compfluid.2018.06.005
Gordon S, McBride BJ (1994) Computer program for calculation of complex chemical equilibrium. NASA reference publication 1311
Hudak P, Hughes J, Peyton Jones S, Wadler P (2007) A history of Haskell: being lazy with class. In: Proceedings of the third ACM SIGPLAN conference on history of programming languages, pp 12–1–12–55
ANSI A (1978) Standard x3. 9-1978, programming language Fortran (revision of ansi x2. 9-1966). American National Standards Institute. Inc., NY, 197(8)
3839_CR2
3839_CR1
J Kämpf (3839_CR7) 2009
3839_CR11
3839_CR12
3839_CR14
3839_CR15
T Takemi (3839_CR17) 2020; 32
W Vanderbauwhede (3839_CR19) 2018; 3
3839_CR18
R Milner (3839_CR10) 1978; 17
BC Pierce (3839_CR13) 2002
N Scott (3839_CR16) 1994; 84
A Colbrook (3839_CR3) 1990; 5
W Vanderbauwhede (3839_CR20) 2018; 173
M Contrastin (3839_CR4) 2016; 18
D Maley (3839_CR9) 1996; 98
3839_CR8
3839_CR6
3839_CR5
References_xml – reference: PierceBCBenjaminCTypes and programming languages2002CambridgeMIT Press0995.68018
– reference: ColbrookASmytheCFormal specification of data abstraction in Fortran 77: abstract arraysSoftw Eng J19905315115910.1049/sej.1990.0017
– reference: MaleyDKilpatrickPSchreinerEScottNDiercksenGThe formal specification of abstract data types and their implementation in Fortran 90: implementation issues concerning the use of pointersComput Phys Commun199698116718010.1016/0010-4655(96)00093-80938.68718
– reference: ScottNKilpatrickPMaleyDThe formal specification of abstract data types and their implementation in Fortran 90Comput Phys Commun199484120122510.1016/0010-4655(94)90212-70874.68040
– reference: VanderbauwhedeWThe glasgow Fortran source-to-source compilerJ Open Source Softw201833286510.21105/joss.00865
– reference: Reid J (2018) The new features of Fortran 2018. In: ACM SIGPLAN fortran forum, vol 37. ACM New York, NY, USA, pp 5–43
– reference: Liao C, Quinlan DJ, Panas T, De Supinski BR (2010) A rose-based openmp 3.0 research compiler supporting multiple runtime libraries. In: International workshop on OpenMP. Springer, Berlin, pp 15–28
– reference: ANSI A (1978) Standard x3. 9-1978, programming language Fortran (revision of ansi x2. 9-1966). American National Standards Institute. Inc., NY, 197(8)
– reference: Tinetti FG, Méndez M (2012) Fortran legacy software: source code update and possible parallelisation issues. In: ACM SIGPLAN fortran forum, vol 31. ACM, pp 5–22
– reference: Reid N, Wray J (1999) A prescriptive semantics of fortran 95. In: ACM SIGPLAN fortran forum, vol 18. ACM New York, NY, USA, pp 2–3
– reference: Gordon S, McBride BJ (1994) Computer program for calculation of complex chemical equilibrium. NASA reference publication 1311
– reference: Overbey J, Xanthos S, Johnson R, Foote B (2005) Refactorings for fortran and high-performance computing. In: Proceedings of the second international workshop on Software engineering for high performance computing system applications. ACM, pp 37–39
– reference: Hudak P, Hughes J, Peyton Jones S, Wadler P (2007) A history of Haskell: being lazy with class. In: Proceedings of the third ACM SIGPLAN conference on history of programming languages, pp 12–1–12–55
– reference: ContrastinMRiceADanishMOrchardDUnits-of-measure correctness in Fortran programsComput Sci Eng201618110210710.1109/MCSE.2016.17
– reference: Abramson D, Lees M, Krzhizhanovskaya V, Dongarra J, Sloot PM, Yamamoto K, Uno A, Murai H, Tsukamoto T, Shoji F, Matsui S, Sekizawa R, Sueyasu F, Uchiyama H, Okamoto M, Ohgushi N, Takashina K, Wakabayashi D, Taguchi Y, Yokokawa M (2014) In: 2014 International conference on computational science the k computer operations: experiences and statistics. Procedia Computer Science, vol 29, pp 76–585
– reference: Orchard D, Rice A (2013) Upgrading Fortran source code using automatic refactoring. In: Proceedings of the 2013 ACM workshop on refactoring tools, WRT’13. ACM, New York, NY, USA, pp 29–32. https://doi.org/10.1145/2541348.2541356
– reference: TakemiTYoshidaTHoriguchiMVanderbauwhedeWLarge-eddy-simulation analysis of airflows and strong wind hazards in urban areasUrban Clim20203210062510.1016/j.uclim.2020.100625
– reference: VanderbauwhedeWDavidsonGDomain-specific acceleration and auto-parallelization of legacy scientific code in Fortran 77 using source-to-source compilationComput Fluids201817315384363910.1016/j.compfluid.2018.06.005
– reference: MilnerRA theory of type polymorphism in programmingJ Comput Syst Sci197817334837551684410.1016/0022-0000(78)90014-4
– reference: KämpfJOcean modelling for beginners: using open-source software2009BerlinSpringer10.1007/978-3-642-00820-7
– ident: 3839_CR6
  doi: 10.1145/1238844.1238856
– volume: 3
  start-page: 865
  issue: 32
  year: 2018
  ident: 3839_CR19
  publication-title: J Open Source Softw
  doi: 10.21105/joss.00865
– ident: 3839_CR18
  doi: 10.1145/2179280.2179281
– ident: 3839_CR5
– ident: 3839_CR8
  doi: 10.1007/978-3-642-13217-9_2
– volume-title: Types and programming languages
  year: 2002
  ident: 3839_CR13
– ident: 3839_CR2
– volume: 17
  start-page: 348
  issue: 3
  year: 1978
  ident: 3839_CR10
  publication-title: J Comput Syst Sci
  doi: 10.1016/0022-0000(78)90014-4
– ident: 3839_CR12
  doi: 10.1145/1145319.1145331
– volume: 84
  start-page: 201
  issue: 1
  year: 1994
  ident: 3839_CR16
  publication-title: Comput Phys Commun
  doi: 10.1016/0010-4655(94)90212-7
– volume: 98
  start-page: 167
  issue: 1
  year: 1996
  ident: 3839_CR9
  publication-title: Comput Phys Commun
  doi: 10.1016/0010-4655(96)00093-8
– ident: 3839_CR11
  doi: 10.1145/2541348.2541356
– volume-title: Ocean modelling for beginners: using open-source software
  year: 2009
  ident: 3839_CR7
  doi: 10.1007/978-3-642-00820-7
– volume: 18
  start-page: 102
  issue: 1
  year: 2016
  ident: 3839_CR4
  publication-title: Comput Sci Eng
  doi: 10.1109/MCSE.2016.17
– ident: 3839_CR15
  doi: 10.1145/328239.333386
– volume: 32
  start-page: 100625
  year: 2020
  ident: 3839_CR17
  publication-title: Urban Clim
  doi: 10.1016/j.uclim.2020.100625
– ident: 3839_CR1
  doi: 10.1016/j.procs.2014.05.052
– volume: 5
  start-page: 151
  issue: 3
  year: 1990
  ident: 3839_CR3
  publication-title: Softw Eng J
  doi: 10.1049/sej.1990.0017
– volume: 173
  start-page: 1
  year: 2018
  ident: 3839_CR20
  publication-title: Comput Fluids
  doi: 10.1016/j.compfluid.2018.06.005
– ident: 3839_CR14
  doi: 10.1145/3206214.3206215
SSID ssj0004373
Score 2.2965698
Snippet Fortran is still widely used in scientific computing, and a very large corpus of legacy as well as new code is written in FORTRAN 77. In general this code is...
SourceID proquest
crossref
springer
SourceType Aggregation Database
Enrichment Source
Index Database
Publisher
StartPage 2988
SubjectTerms Algorithms
Automation
Compilers
Computer Science
Errors
FORTRAN
Interpreters
Processor Architectures
Programming Languages
Safety
Subroutines
Transformations
Title Making legacy Fortran code type safe through automated program transformation
URI https://link.springer.com/article/10.1007/s11227-021-03839-9
https://www.proquest.com/docview/2622611302
Volume 78
WOSCitedRecordID wos000673426700001&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVAVX
  databaseName: SpringerLINK Contemporary 1997-Present
  customDbUrl:
  eissn: 1573-0484
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0004373
  issn: 0920-8542
  databaseCode: RSV
  dateStart: 19970101
  isFulltext: true
  titleUrlDefault: https://link.springer.com/search?facet-content-type=%22Journal%22
  providerName: Springer Nature
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LS8QwEA66evDiW1xdJQdvWmiaNI-jiIuXXcQXeytpk4iwdGXbFfz3JmlqVVTQSyk0LWWSdL7pzDcfACc8T2WhGIqMNmlEEMKRoIjaQ5IbTkzCuPJiE2w85pOJuA6ksKqtdm9Tkv5L3ZHdUJKwyJUUxDasEpFYBivW3XEn2HBz-9CxIXGTVxY2MOIpSQJV5vtnfHZHHcb8khb13ma48b_33ATrAV3C82Y5bIElXW6DjVa5AYaNvANGIy9CBaf6URavcGgxuPVZ0PHbofspCytp7Fmj4QPlop5ZYKsVDNVcsP4Ad2flLrgfXt5dXEVBWCEqMMV1ZGOuPFYmxtoYYiQzVDBJjY1cDMm1jAuMi9wiP6OkDf9c_wmuFBcFlYmSKZJ4D_TKWan3ASRSodzCmFxTRgRhnKRKKuy71lCqVR-g1r5ZEbqOO_GLadb1S3b2yqy9Mm-vTPTB6fs9z03PjV9HD9ppy8L-q7KEWliJXFK2D87aaeou__y0g78NPwRrieND-DLuAejV84U-AqvFS_1UzY_9unwDkqfbtQ
linkProvider Springer Nature
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV3fS8MwED50Cvri_InTqXnwTQtNk6bNo4hj4jZEp_hW0iYRYXSydoL_vUl_WBUV9KUUmpZySXrf9e77DuA4jH2RyAA7WmnfoRgThzPMzMGLdUi1F4SyaDYRjEbhwwO_rkhhWV3tXqckiy91Q3bDnhc4tqTANWEVd_giLFHjsaxi_s3tfcOGJGVemZvAKPSpV1Flvn_GZ3fUYMwvadHC2_Ta_3vPdVir0CU6K5fDBiyodBPadecGVG3kLRgOiyZUaKIeRfKKegaDG5-FLL8d2Z-yKBPanJU9fJCY51MDbJVEVTUXyj_A3Wm6DXe9i_F536kaKzgJYSR3TMwVu1K7RGlNtQg044Fg2kQumsZKuAkhSWyQn5bChH9WfyKUMuQJE54UPhZkB1rpNFW7gKiQODYwJlYsoJwGIfWlkKRQrWFMyQ7g2r5RUqmO2-YXk6jRS7b2ioy9osJeEe_Ayfs9z6Xmxq-ju_W0RdX-yyKPGViJbVK2A6f1NDWXf37a3t-GH8FKfzwcRIPL0dU-rHqWG1GUdHehlc_m6gCWk5f8KZsdFmv0Degy3pk
linkToPdf http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1bS8MwFD7oFPHFecXp1Dz4psWlSdPmUdSi6MbAC3sraZOIMLqxdYL_3qQXO0UF8aUUmoZyknC-r-d85wAcB7EnEuljRyvtORRj4nCGmbm4sQ6odv1A5s0m_F4vGAx4f07Fn2e7VyHJQtNgqzSl2dlY6rNa-IZd13dsekHHUCzu8EVYojaR3vL1-6daGUmKGDM3JCnwqFvKZr6f47NrqvHmlxBp7nnC5v-_eR3WStSJzottsgELKt2EZtXRAZUHfAu63bw5FRqqZ5G8odBgc-PLkNW9I_uzFk2FNndFbx8kZtnIAF4lUZnlhbI5GDxKt-ExvHq4uHbKhgtOQhjJHMPF4o7UHaK0plr4mnFfMG0YjaaxEp2EkCQ2iFBLYWihrUsRSBnwhAlXCg8LsgONdJSqXUBUSBwbeBMr5lNO_YB6UkiSV7NhTMkW4MrWUVJWI7dNMYZRXUfZ2isy9opye0W8BScf74yLWhy_jm5XSxiV53IauczATWyDtS04rZasfvzzbHt_G34EK_3LMLq76d3uw6prJRN5pncbGtlkpg5gOXnNXqaTw3y7vgM1iOd9
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Making+legacy+Fortran+code+type+safe+through+automated+program+transformation&rft.jtitle=The+Journal+of+supercomputing&rft.au=Vanderbauwhede+Wim&rft.date=2022-02-01&rft.pub=Springer+Nature+B.V&rft.issn=0920-8542&rft.eissn=1573-0484&rft.volume=78&rft.issue=2&rft.spage=2988&rft.epage=3028&rft_id=info:doi/10.1007%2Fs11227-021-03839-9&rft.externalDBID=NO_FULL_TEXT
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0920-8542&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0920-8542&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0920-8542&client=summon