Skip to content

Instantly share code, notes, and snippets.

@andycasey
Last active December 26, 2015 10:39
Show Gist options
  • Select an option

  • Save andycasey/7138264 to your computer and use it in GitHub Desktop.

Select an option

Save andycasey/7138264 to your computer and use it in GitHub Desktop.
FORTRAN-formatted files are shitty curses on modern programming languages.
import re
shitty_fortran_file_contents = """
43 0.20 0.0718 1.647E+07 2767.7 1.413E-01 8.382E+05 1.385E-01 0.000E+00
44 0.30 0.1681 2.500E+07 2798.9 1.644E-01 9.098E+05 1.472E-01 0.000E+00
45 0.40 0.2657 3.375E+07 2830.3 1.909E-01 9.885E+05 1.560E-01 0.000E+00
46 0.50 0.3645 4.271E+07 2861.8 2.212E-01 1.075E+06 1.649E-01 0.000E+00
47 0.60 0.4641 5.191E+07 2893.4 2.559E-01 1.170E+06 1.738E-01 0.000E+00
48 0.70 0.5643 6.135E+07 2925.3 2.958E-01 1.275E+06 1.827E-01 0.000E+00
49 0.80 0.6649 7.102E+07 2957.5 3.413E-01 1.391E+06 1.917E-01 0.000E+00
50 0.90 0.7659 8.095E+07 2989.9 3.933E-01 1.518E+06 2.007E-01 0.000E+00
51 1.00 0.8669 9.114E+07 3022.7 4.529E-01 1.660E+06 2.100E-01 0.000E+00
52 1.20 1.0693 1.128E+08 3089.4 5.990E-01 1.989E+06 2.295E-01 0.000E+00
53 1.40 1.2714 1.356E+08 3157.8 7.905E-01 2.393E+06 2.506E-01 0.000E+00
54 1.60 1.4729 1.595E+08 3228.0 1.041E+00 2.891E+06 2.737E-01 0.000E+00
55 1.80 1.6735 1.846E+08 3300.3 1.370E+00 3.505E+06 2.990E-01 0.000E+00
56 2.00 1.8732 2.108E+08 3374.6 1.802E+00 4.262E+06 3.269E-01 0.000E+00
k lgTauR KappaRoss Density Mu Vconv Fconv/F RHOX
1 -5.00 7.065E-06 2.242E-0815.192 0.000E+00 0.00000 1.616681E-01
2 -4.80 9.635E-06 3.625E-08 2.822 0.000E+00 0.00000 1.448024E+00
3 -4.60 1.225E-05 5.196E-08 2.625 0.000E+00 0.00000 2.302297E+00
4 -4.40 1.496E-05 7.097E-08 2.476 0.000E+00 0.00000 3.448842E+00
5 -4.20 1.782E-05 9.471E-08 2.378 0.000E+00 0.00000 4.975753E+00
6 -4.00 2.074E-05 1.260E-07 2.326 0.000E+00 0.00000 6.993900E+00
7 -3.80 2.393E-05 1.678E-07 2.326 0.000E+00 0.00000 9.605091E+00
8 -3.60 2.761E-05 2.240E-07 2.325 0.000E+00 0.00000 1.319509E+01
"""
#Notice Density / Mu on line 19? Yeah,.. that shit will cause some troubles.
better_fortran_file_contents = re.sub("E[\+|-]\d{2}", lambda x: x.group(0) + ' ', shitty_fortran_file_contents)
# Now better_fortran_file_contents is like this:
"""
43 0.20 0.0718 1.647E+07 2767.7 1.413E-01 8.382E+05 1.385E-01 0.000E+00
44 0.30 0.1681 2.500E+07 2798.9 1.644E-01 9.098E+05 1.472E-01 0.000E+00
45 0.40 0.2657 3.375E+07 2830.3 1.909E-01 9.885E+05 1.560E-01 0.000E+00
46 0.50 0.3645 4.271E+07 2861.8 2.212E-01 1.075E+06 1.649E-01 0.000E+00
47 0.60 0.4641 5.191E+07 2893.4 2.559E-01 1.170E+06 1.738E-01 0.000E+00
48 0.70 0.5643 6.135E+07 2925.3 2.958E-01 1.275E+06 1.827E-01 0.000E+00
49 0.80 0.6649 7.102E+07 2957.5 3.413E-01 1.391E+06 1.917E-01 0.000E+00
50 0.90 0.7659 8.095E+07 2989.9 3.933E-01 1.518E+06 2.007E-01 0.000E+00
51 1.00 0.8669 9.114E+07 3022.7 4.529E-01 1.660E+06 2.100E-01 0.000E+00
52 1.20 1.0693 1.128E+08 3089.4 5.990E-01 1.989E+06 2.295E-01 0.000E+00
53 1.40 1.2714 1.356E+08 3157.8 7.905E-01 2.393E+06 2.506E-01 0.000E+00
54 1.60 1.4729 1.595E+08 3228.0 1.041E+00 2.891E+06 2.737E-01 0.000E+00
55 1.80 1.6735 1.846E+08 3300.3 1.370E+00 3.505E+06 2.990E-01 0.000E+00
56 2.00 1.8732 2.108E+08 3374.6 1.802E+00 4.262E+06 3.269E-01 0.000E+00
k lgTauR KappaRoss Density Mu Vconv Fconv/F RHOX
1 -5.00 7.065E-06 2.242E-08 15.192 0.000E+00 0.00000 1.616681E-01
2 -4.80 9.635E-06 3.625E-08 2.822 0.000E+00 0.00000 1.448024E+00
3 -4.60 1.225E-05 5.196E-08 2.625 0.000E+00 0.00000 2.302297E+00
4 -4.40 1.496E-05 7.097E-08 2.476 0.000E+00 0.00000 3.448842E+00
5 -4.20 1.782E-05 9.471E-08 2.378 0.000E+00 0.00000 4.975753E+00
6 -4.00 2.074E-05 1.260E-07 2.326 0.000E+00 0.00000 6.993900E+00
7 -3.80 2.393E-05 1.678E-07 2.326 0.000E+00 0.00000 9.605091E+00
8 -3.60 2.761E-05 2.240E-07 2.325 0.000E+00 0.00000 1.319509E+01
"""
# Yeeeeeeeeeeah.split() that shit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment