Abaqus 6.14-5 & 2018 Free Form F90 F95 UMAT with GFortran compiler on Linux

Abaqus is usually configured to compile subroutines with the proprietary  Intel Fortran Compiler, which will either cost you a lot of money or access to a university license.

This is how you can get Abaqus 6.14-5 and 2018 to use the GFortran Compiler and to have GFortran interpret the code in the F90 Free form format.

This method was completely successfully tested on Debian Buster with Abaqus 6.14-5 and on Linux Mint 18 (based on Ubuntu 16.04) with Abaqus 2018. For testing on Abaqus 2016 on Debian Buster see the last section.

Locate your abaqus_v6.env file or for Abaqus2016 the lnx86_64.env. You can either use a default file in the directory where you installed Abaqus in, or a copy of a complete abaqus_v6.env (for both cases) in the directory in which you are executing Abaqus.

Change the following:

  1. From

    fortCmd = “ifort” # <– Fortran compiler

    To

    fortCmd = “gfortran”

  2. From

    compile_fortran = [fortCmd,
    ‘-V’,
    ‘-c’, ‘-fPIC’, ‘-auto’, ‘-mP2OPT_hpo_vec_divbyzero=F’, ‘-extend_source’,
    ‘-fpp’, ‘-WB’, ‘-I%I’]

    To

    compile_fortran = (fortCmd + ” -ffree-form -c -fPIC -I%I -extend_source -free”)

  3. From

    link_sl = [fortCmd,
    ‘-V’,
    ‘-cxxlib’, ‘-fPIC’, ‘-threads’, ‘-shared’,’-Wl,–add-needed’,
    ‘%E’, ‘-Wl,-soname,%U’, ‘-o’, ‘%U’, ‘%F’, ‘%A’, ‘%L’, ‘%B’, ‘-parallel’,
    ‘-Wl,-Bdynamic’, ‘-shared-intel’]

    To

    link_sl = (fortCmd +
    ” -gcc-version=%i -fPIC -shared ” +
    “%E -Wl,-soname,%U -o %U %F %A %L %B -Wl,-Bdynamic ” +
    ” -lifport -lifcoremt”)

Since Abaqus only accepts file extensions which do NOT imply a version of F90 or above, gfortran will automatically compile it as a nonfree F77 program, leeding to severe errors. The -ffree-form flag as used the second point is crucial to make it work.

You should be able to successfully run

abq6145 job=YourJOB user=YourUmat interactive

If you have a valid YourJOB.inp and a valid YourUmat.f

Abaqus 2016

The compiling works for Abaqus 2016 on Debian Buster as well, but with an error on linking.

End Compiling Abaqus/Standard User Subroutines
Begin Linking Abaqus/Standard User Subroutines
Abaqus Error: The Abaqus user subroutine library could not be found.

This might be due to a corruption of my Abaqus 2016 installation. Note: Abaqus 2016 has been installed on Debian Jessie and the test was now done with this installation taken over to Debian Buster. This might be an explanation for the error (even though the Abaqus 6.14-5 installation has endured the same procedure!).

Thanks to Saiwal and the GFortran Option Summary

Title image source: Hans

Texstudio and Texmaker crash on closing & refresh of internal pdf viewer on Debian Buster

Affected versions:

  • texstudio 2.11.2+debian-1 and 2.12.6+debian-2 (and probably any other version)
  • libsynctex1 2017.20170613.44572-8+b1

Affected OS: Debian Buster, 4.14.0-3-amd64 #1 SMP Debian 4.14.13-1 (2018-01-14) x86_64 GNU/Linux

How to reproduce: On closing the internal pdf viewer, be it manually by the user or be it by recompiling the document, the internal PDF-Viewer crashes.

Cause: This is caused by the synctex-package. But this problem cannot be solved by turning synctex of by changing the command to -synctex=0.

Solution: It can be resolved by doing a downgrade:

aptitude -t stable install libsynctex1

which will install the version 2016.20160513.41080.dfsg-2 You might have some struggle to resolve downgrade conflicts.

Note: Since nobody has really reported this particular bug and because of laziness, I put this little guidance here to maybe help somebody who is desperately searching for help.

Source of title image: TexStudio Twitter