Flang is a Fortran language front-end designed for integration with LLVM.
Flang is a Fortran compiler targeting LLVM.
The source is at http://github.com/flang-compiler/. There are 4 repositories:
This binary release was created from the flang_20190329 tag of Flang. It contains the binaries and libraries suitable for running Flang (LLVM 7.0) on x86_64 and OpenPOWER distributions.
We have mailing lists for announcements and developers. Here's the link with the sign-up information:
http://lists.flang-compiler.org/mailman/listinfo
We have a flang-compiler channel on Slack. Slack is invitation only but anyone can join. Here's the link:
https://join.slack.com/t/flang-compiler/shared_invite/MjExOTEyMzQ3MjIxLTE0OTk4NzQyNzUtODQzZWEyMjkwYw
To install the binary release, untar the .tgz file in a location suitable for you. Add the bin directory to your PATH and lib directory to your LD_LIBRARY_PATH, after which you should be able to execute Flang.
To test your installation, create a simple "hello world" program, like the following:
program hello
print *, 'hello world'
end
Next, compile the program in the following manner. We will assume the program is in a file called hello.f90
$ flang hello.f90
If the build succeeds, then you can execute the program:
$ ./a.out
Below are the minimum requirements to compile and run Flang:
Host Processor:
64-bit OpenPOWER
64-bit x86 (including AMD64 and Intel 64)
OpenPOWER Linux:
Ubuntu 14.04, 16.04
Red Hat Enterprise Linux 7.3, 7.4 for IBM Power (POWER8)
Red Hat Enterprise Linux 7.4 for IBM Power LE (POWER9)
x86-64 Linux:
CentOS 5 or newer
OpenSuSE 11 or newer including OpenSuSE Leap 42.2
SUSE Linux Enterprise Server (SLES) 11 or newer
Red Hat Enterprise Linux 5 or newer
Fedora Core 6 or newer
Ubuntu 12.04 or newer
Below is a list of files in the tar archives for x86-64 and OpenPOWER:
bin/flang
bin/flang1
bin/flang2
include/ieee_arithmetic_la.mod
include/ieee_arithmetic.mod
include/ieee_exceptions_la.mod
include/ieee_exceptions.mod
include/ieee_features.mod
include/iso_c_binding.mod
include/iso_fortran_env.mod
include/omp_lib.h
include/omp_lib_kinds.mod
include/omp_lib.mod
lib/libflang.a
lib/libflang.so
lib/libflangmain.a
lib/libflangrti.a
lib/libflangrti.so
lib/libomp.a
lib/libomp.so
lib/libompstub.a
lib/libompstub.so
lib/libpgmath.a
lib/libpgmath.so
For a list of compiler options, enter
$ flang -help
The Flang compiler supports all clang 7.0 compiler options as well as the following Flang-specific compiler options:
Option | Description |
---|---|
-byteswapio | Swap byte-order for unformatted input/output |
-cpp | Preprocess Fortran files |
-fbackslash | Treat backslash as C-style escape character |
-fdefault-integer-8 | Treat INTEGER and LOGICAL as INTEGER8 and LOGICAL8 |
-fdefault-real-8 | Treat REAL as REAL*8 |
-ffixed-form | Enable fixed-form format for Fortran |
-ffixed-line-length- |
Set line length in fixed-form format Fortran, current supporting only 72 and 132 characters |
-ffree-form | Enable free-form format for Fortran |
-fno-backslash | Treat backslash like any other character in character strings |
-fno-fixed-form | Disable fixed-form format for Fortran |
-fno-fortran-main | Don't link in Fortran main |
-fno-free-form | Disable free-form format for Fortran |
-Mallocatable= |
Select semantics for assignments to allocatables (F03 or F95) |
-Minfo | Diagnostic information about all successful optimizations |
-Minform= |
Set error level of messages to display |
-Minfo= |
Diagnostic information about successful optimizations |
-Mneginfo | Diagnostic information about all missed optimizations |
-Mneginfo= |
Diagnostic information about missed optimizations |
-nocpp | Don't preprocess Fortran files |
-no-flang-libs | Do not link against Flang libraries |
-static-flang-libs | Link using static Flang libraries |
See the GitHub issues list for the known issues with Flang: http://github.com/flang-compiler/flang/issues
The following "check-flang" tests fail on OpenPOWER:
f90_correct/lit/ieee18flushz.sh
f90_correct/lit/ieee19flushz.sh
ncar_kernels/CAM5_mg2_pgi/lit/t1.sh
ncar_kernels/HOMME_vlaplace_sphere_wk/lit/t1.sh
ncar_kernels/PORT_binterp/lit/t1.sh
ncar_kernels/PORT_reftra_sw/lit/t1.sh
ncar_kernels/PORT_rtrnmc/lit/t1.sh
ncar_kernels/PORT_sw_reftra/lit/t1.sh
ncar_kernels/PORT_sw_spcvmc/lit/t1.sh
Flang is a Fortran compiler targeting LLVM.
The source is at http://github.com/flang-compiler/. There are 3 repositories:
This binary release was created from the flang_20181226 tag of Flang. It contains the binaries and libraries suitable for running Flang (LLVM 6.0) on x86_64 and OpenPOWER distributions.
We have mailing lists for announcements and developers. Here's the link with the sign-up information:
http://lists.flang-compiler.org/mailman/listinfo
We have a flang-compiler channel on Slack. Slack is invitation only but anyone can join. Here's the link:
https://join.slack.com/t/flang-compiler/shared_invite/MjExOTEyMzQ3MjIxLTE0OTk4NzQyNzUtODQzZWEyMjkwYw
To install the binary release, untar the .tgz file in a location suitable for you. Add the bin directory to your PATH and lib directory to your LD_LIBRARY_PATH, after which you should be able to execute Flang.
To test your installation, create a simple "hello world" program, like the following:
program hello
print *, 'hello world'
end
Next, compile the program in the following manner. We will assume the program is in a file called hello.f90
$ flang hello.f90
If the build succeeds, then you can execute the program:
$ ./a.out
Below are the minimum requirements to compile and run Flang:
Host Processor:
64-bit OpenPOWER
64-bit x86 (including AMD64 and Intel 64)
OpenPOWER Linux:
Ubuntu 14.04, 16.04
Red Hat Enterprise Linux 7.3, 7.4 for IBM Power (POWER8)
Red Hat Enterprise Linux 7.4 for IBM Power LE (POWER9)
x86-64 Linux:
CentOS 5 or newer
OpenSuSE 11 or newer including OpenSuSE Leap 42.2
SUSE Linux Enterprise Server (SLES) 11 or newer
Red Hat Enterprise Linux 5 or newer
Fedora Core 6 or newer
Ubuntu 12.04 or newer
Below is a list of files in the tar archives for x86-64 and OpenPOWER:
bin/clang
bin/clang-6.0
bin/clang++
bin/flang
bin/flang1
bin/flang2
include/ieee_arithmetic_la.mod
include/ieee_arithmetic.mod
include/ieee_exceptions_la.mod
include/ieee_exceptions.mod
include/ieee_features.mod
include/iso_c_binding.mod
include/iso_fortran_env.mod
include/omp_lib.h
include/omp_lib_kinds.mod
include/omp_lib.mod
lib/libflang.a
lib/libflang.so
lib/libflangmain.a
lib/libflangrti.a
lib/libflangrti.so
lib/libomp.a
lib/libomp.so
lib/libompstub.a
lib/libompstub.so
lib/libpgmath.a
lib/libpgmath.so
For a list of compiler options, enter
$ flang -help
The Flang compiler supports all clang 6.0 compiler options as well as the following Flang-specific compiler options:
Option | Description |
---|---|
-byteswapio | Swap byte-order for unformatted input/output |
-cpp | Preprocess Fortran files |
-fbackslash | Treat backslash as C-style escape character |
-fdefault-integer-8 | Treat INTEGER and LOGICAL as INTEGER*8 and LOGICAL*8 |
-fdefault-real-8 | Treat REAL as REAL*8 |
-ffixed-form | Enable fixed-form format for Fortran |
-ffixed-line-length-value | Set line length in fixed-form format Fortran, current supporting only 72 and 132 characters |
-ffree-form | Enable free-form format for Fortran |
-fno-backslash | Treat backslash like any other character in character strings |
-fno-fixed-form | Disable fixed-form format for Fortran |
-fno-fortran-main | Don't link in Fortran main |
-fno-free-form | Disable free-form format for Fortran |
-Mallocatable=value | Select semantics for assignments to allocatables (F03 or F95) |
-Minfo | Diagnostic information about all successful optimizations |
-Minform=value | Set error level of messages to display |
-Minfo=value | Diagnostic information about successful optimizations |
-Mneginfo | Diagnostic information about all missed optimizations |
-Mneginfo=value | Diagnostic information about missed optimizations |
-nocpp | Don't preprocess Fortran files |
-no-flang-libs | Do not link against Flang libraries |
-static-flang-libs | Link using static Flang libraries |
See the GitHub issues list for the known issues with Flang: http://github.com/flang-compiler/flang/issues
The following "check-flang" tests fail on OpenPOWER:
f90_correct/daz.f90
f90_correct/lit/ieee18flushz.sh
f90_correct/lit/ieee19flushz.sh
Flang is a Fortran compiler targeting LLVM.
The source is at http://github.com/flang-compiler/. There are 3 repositories:
This binary release was created from the flang_20180921 tag of Flang. It contains the binaries and libraries suitable for running Flang (LLVM 6.0) on x86_64 and OpenPOWER distributions.
We have mailing lists for announcements and developers. Here's the link with the sign-up information:
http://lists.flang-compiler.org/mailman/listinfo
We have a flang-compiler channel on Slack. Slack is invitation only but anyone can join. Here's the link:
https://join.slack.com/t/flang-compiler/shared_invite/MjExOTEyMzQ3MjIxLTE0OTk4NzQyNzUtODQzZWEyMjkwYw
To install the binary release, untar the .tgz file in a location suitable for you. Add the bin directory to your PATH and lib directory to your LD_LIBRARY_PATH, after which you should be able to execute Flang.
To test your installation, create a simple "hello world" program, like the following:
program hello
print *, 'hello world'
end
Next, compile the program in the following manner. We will assume the program is in a file called hello.f90
$ flang hello.f90
If the build succeeds, then you can execute the program:
$ ./a.out
Below are the minimum requirements to compile and run Flang:
Host Processor:
64-bit OpenPOWER
64-bit x86 (including AMD64 and Intel 64)
OpenPOWER Linux:
Ubuntu 14.04, 16.04
Red Hat Enterprise Linux 7.3, 7.4 for IBM Power (POWER8)
Red Hat Enterprise Linux 7.4 for IBM Power LE (POWER9)
x86-64 Linux:
CentOS 5 or newer
OpenSuSE 11 or newer including OpenSuSE Leap 42.2
SUSE Linux Enterprise Server (SLES) 11 or newer
Red Hat Enterprise Linux 5 or newer
Fedora Core 6 or newer
Ubuntu 12.04 or newer
Below is a list of files in the tar archives for x86-64 and OpenPOWER:
bin/flang
bin/flang1
bin/flang2
include/ieee_arithmetic_la.mod
include/ieee_arithmetic.mod
include/ieee_exceptions_la.mod
include/ieee_exceptions.mod
include/ieee_features.mod
include/iso_c_binding.mod
include/iso_fortran_env.mod
include/omp_lib.h
include/omp_lib_kinds.mod
include/omp_lib.mod
lib/libflang.a
lib/libflang.so
lib/libflangmain.a
lib/libflangrti.a
lib/libflangrti.so
lib/libomp.a
lib/libomp.so
lib/libompstub.a
lib/libompstub.so
lib/libpgmath.a
lib/libpgmath.so
For a list of compiler options, enter
$ flang -help
The Flang compiler supports all clang 6.0 compiler options (LLVM 6.0) as well as the following Flang-specific compiler options:
Option | Description |
---|---|
-byteswapio | Swap byte-order for unformatted input/output |
-cpp | Preprocess Fortran files |
-fbackslash | Treat backslash as C-style escape character |
-fdefault-integer-8 | Treat INTEGER and LOGICAL as INTEGER8 and LOGICAL8 |
-fdefault-real-8 | Treat REAL as REAL*8 |
-ffixed-form | Enable fixed-form format for Fortran |
-ffixed-line-length- |
Set line length in fixed-form format Fortran, current supporting only 72 and 132 characters |
-ffree-form | Enable free-form format for Fortran |
-fno-backslash | Treat backslash like any other character in character strings |
-fno-fixed-form | Disable fixed-form format for Fortran |
-fno-fortran-main | Don't link in Fortran main |
-fno-free-form | Disable free-form format for Fortran |
-Mallocatable= |
Select semantics for assignments to allocatables (F03 or F95) |
-Minfo | Diagnostic information about all successful optimizations |
-Minform= |
Set error level of messages to display |
-Minfo= |
Diagnostic information about successful optimizations |
-Mneginfo | Diagnostic information about all missed optimizations |
-Mneginfo= |
Diagnostic information about missed optimizations |
-nocpp | Don't preprocess Fortran files |
-no-flang-libs | Do not link against Flang libraries |
-static-flang-libs | Link using static Flang libraries |
See the GitHub issues list for the known issues with Flang: http://github.com/flang-compiler/flang/issues
The following "check-flang" tests fail on OpenPOWER:
f90_correct/daz.f90
f90_correct/lit/ieee18flushz.sh
f90_correct/lit/ieee19flushz.sh
f90_correct/lit/in19.sh
f90_correct/lit/in20.sh
f90_correct/lit/in22.sh
Staging new binary release for Flang; this is a work in progress.