Fortran Subroutine Extractor
2018 July 15

I’ve been working on a fortran codebase with a lot of code duplicated between subroutines, so I came up with this little bash function using awk to extract subroutines, so I can find the difference between them.

# $1 - complete exact name of subroutine, not a partial name or wildcard
# $2 - name of the file to extract subroutine from
function extract_f_sub() {
    awk "/subroutine $1\(/,/end subroutine/" $2

The awk in the function dumps the text from a file between the 2 given deliminators to standard output. In this case we look for the begining of the subroutine, then find the ending block of the subroutine.

I would use this to extract 2 similar subroutines to files, and then compare them using vimdiff. This allowed me to quickly spot the similarlarities between them and remove the duplicated code.

Remember you can also subscribe using RSS at the top of the page!

Share this on → Mastodon Twitter LinkedIn Reddit

A selected list of related posts that you might enjoy:

Written by Henry J Schmale on 2018 July 15
Hit Counter