Intel® Fortran Compilers

Fortran compilers for Windows*, Linux* and OS X*

  • Performance without compromise on Windows*, Linux* and OS X*
  • Broad support for current and previous Fortran standards, plus popular extensions
  • Intel® Math Kernel Library included in suites
  • Optional Rogue Wave IMSL* 7 Fortran Numerical Library on Windows

Limited-time discount for existing Intel® Visual Fortran customers! Click here.

Fortran only:
From $849
Buy Now
Or Download Free Trial

Fortran & C/C++:
From $1,199
Buy Now
Or Download Free Trial

A complete Fortran development environment for Windows*

  • Works with Microsoft Visual Studio* 2008, 2010, 2012 and 2013
  • Don't have Visual Studio? No problem - a Fortran development environment based on Microsoft Visual Studio 2010 Shell is included - nothing else to buy!
  • Develop, build, debug and run from the familiar Visual Studio IDE, or build and run from the command line - your choice!
  • 32-bit and 64-bit development included - no extra charge!
  • Create traditional console applications or advanced graphical interfaces with QuickWin, OpenGL* and Windows API support
  • COM (Component Object Model) and .NET interoperability provided
  • Build mixed-language applications with C++, Visual Basic*, Microsoft C# and more! (requires Microsoft Visual Studio)
  • Tens of thousands of declarations of routines, types and constants for Windows API, OpenGL, POSIX, dialogs, multi-byte character support and more!

Intel Fortran integration into Microsoft Visual Studio

 

  1. Fortran project and source files in Visual Studio
     
  2. Fortran-aware text editor with context-sensitive help,
    Go To Definition, templates, coloring and more
     
  3. Debug Fortran code with full access to Fortran types and arrays
     
  4. Build and debug mixed-language programs in a single Visual Studio solution
     
  5. Set breakpoints at Fortran source lines, with optional conditions


Broad support for current and previous Fortran standards, plus popular extensions

  • Full language Fortran 95, nearly all of Fortran 2003, plus significant Fortran 2008 features
    • Coarrays
    • DO CONCURRENT
    • 31 array dimensions (standard specifies 15)
    • NEWUNIT in OPEN
    • Much more - see release notes for details
  • Also supports FORTRAN IV (FORTRAN-66), FORTRAN 77 and Fortran 90
  • Extensive OpenMP 4.0* support
  • Source compatible with Compaq Visual Fortran* - most projects just need a rebuild

Performance without compromise

  • Industry leading performance on Intel and AMD processors.  Take a look at the benchmarks below that were run by Polyhedron for independent confirmation.


Geomean time in seconds - lower is better
As published 3/10/2014 at http://www.polyhedron.com

  • Extensive optimizations for the latest Intel processors, including Intel® Xeon Phi™ coprocessor
  • Take advantage of multicore, manycore and multiprocessor systems with OpenMP, automatic parallelism, DO CONCURRENT, coarrays and Intel Xeon Phi coprocessor support
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor

Intel® Math Kernel Library

  • Included in Fortran suites that adds advanced math processing
  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • De facto standard APIs for simple code integration
  • Compatible with all C, C++ and Fortran compilers
  • Royalty-free, per developer licensing for low cost deployment
  • Click here for more information and pricing

Rogue Wave IMSL* 7 Fortran Numerical Library

  • Optional add-on to the suites that include Intel Visual Fortran compiler
  • Superior accuracy and reliability through 40 years of refinement
  • A comprehensive set of 1000+ algorithms
  • Supporting parallel processing architectures since 1990
  • Evolves easily with software and hardware upgrades
  • Click here for more information and pricing

Outstanding support

  • One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel Premier Support
  • Active user forums for help from experienced users and Intel engineers

Try & Buy

The Intel® Visual Fortran compiler is available in several development packages as listed below.

Product

Intel® Cluster Studio XE
Who needs this: Develop fast, reliable MPI cluster applications along with the features in Intel® Parallel Studio XE.

Includes: MPI library and MPI profiler along with the Intel C++ and Visual Fortran compiler, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel® Parallel Studio XE
Who needs this: Boost C++ and Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.

Includes: Intel® C++ and Visual Fortran compilers, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel® Fortran Studio XE
Who needs this: Boost Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.
Includes: Intel Visual Fortran compiler (no C++), math library, thread prototyping tool, memory and threading error checking and performance profiler.

Free Trial

Buy

Intel® Composer XE
Who needs this: Boost C++ and Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes:  Intel C++ and Visual Fortran compiler, threading library, math library and media and data library.

Free Trial

Buy

Intel® Fortran Composer XE
Who needs this: Boost Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes: Intel Visual Fortran compiler (no C++) and math library.

Free Trial

Buy

Works with your familiar development environment

  • Uses gcc tools, including gdb debugger
  • Link compatible with C and C++ from gcc
  • 32-bit and 64-bit compilers included – no extra charge!

Broad support for current and previous Fortran standards, plus popular extensions

  • Full language Fortran 95, nearly all of Fortran 2003, plus significant Fortran 2008 features
    • Coarrays
    • DO CONCURRENT
    • 31 array dimensions (standard specifies 15)
    • NEWUNIT in OPEN
    • Much more - see release notes for details
  • Also supports FORTRAN IV (FORTRAN-66), FORTRAN 77 and Fortran 90
  • Extensive OpenMP 4.0* support

Performance without compromise

  • Industry leading performance on Intel and AMD processors. Take a look at the benchmarks below that were run by Polyhedron for independent confirmation.


Geomean time in seconds - lower is better
As published 3/10/2014 at http://www.polyhedron.com

  • Extensive optimizations for the latest Intel processors including Intel® Xeon Phi™ coprocessor
  • Take advantage of multicore, manycore and multiprocessor systems with OpenMP, automatic parallelism, DO CONCURRENT, coarrays and Intel Xeon Phi coprocessor support
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor

Intel® Math Kernel Library

  • Included in Fortran suites that adds advanced math processing
  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • De facto standard APIs for simple code integration
  • Compatible with all C, C++ and Fortran compilers
  • Royalty-free, per developer licensing for low cost deployment
  • Click here for more information

Outstanding support

  • One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel Premier Support
  • Active user forums for help from experienced users and Intel engineers

Try & Buy

The Intel Fortran compiler is available in several development packages as listed below.

Product

Intel® Cluster Studio XE
Who needs this: Develop fast, reliable MPI cluster applications along with the features in Intel® Parallel Studio XE.

Includes: MPI library and MPI profiler along with the Intel C++ and Fortran compiler, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel Parallel Studio XE
Who needs this: Boost C++ and Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.

Includes: Intel C++ and Fortran compiler, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel® Fortran Studio XE
Who needs this: Boost Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.
Includes: Intel Fortran compiler (no C++), math library, thread prototyping tool, memory and threading error checking and performance profiler.

Free Trial

Buy

Intel® Composer XE
Who needs this: Boost C++ and Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes:  Intel C++ and Fortran compiler, threading library, math library and media and data library.

Free Trial

Buy

Intel® Fortran Composer XE
Who needs this: Boost Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes: Intel Fortran compiler (no C++) and math library.

Free Trial

Buy

Works with your familiar development environment

  • Build from command line or use Xcode integration (limited feature)
  • Link compatible with C and C++ from gcc
  • 32-bit and 64-bit compilers included – no extra charge!

Broad support for current and previous Fortran standards, plus popular extensions

  • Full language Fortran 95, nearly all of Fortran 2003, plus significant Fortran 2008 features
    • DO CONCURRENT
    • 31 array dimensions (standard specifies 15)
    • NEWUNIT in OPEN
    • Much more - see release notes for details
  • Also supports FORTRAN IV (FORTRAN-66), FORTRAN 77 and Fortran 90
  • Extensive OpenMP 4.0* support

Performance without compromise

  • Industry leading performance
  • Extensive optimizations for the latest Intel processors
  • Take advantage of multicore, manycore and multiprocessor systems with OpenMP, automatic parallelism, DO CONCURRENT
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor

Intel® Math Kernel Library

  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • De facto standard APIs for simple code integration
  • Compatible with all C, C++ and Fortran compilers
  • Royalty-free, per developer licensing for low cost deployment
  • Included in Intel® Fortran Composer XE
  • Click here for more information

Outstanding support

  • One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel Premier Support
  • Active user forums for help from experienced users and Intel engineers

Try & Buy

The Intel Fortran compiler is available as listed below.

Product

Intel® Fortran Composer XE
Who needs this: Boost Fortran application performance on OS X*

Includes: Intel Fortran compiler and math library.

Free Trial

Buy

Videos to help you get started.

  • Introduction to Intel® Visual Fortran in the Microsoft* Visual Studio* Development Environment
  • Optimizing your application with Intel® C++ and Fortran Compilers for Windows* and Linux*

Register for future Webinars


Previously recorded Webinars:

  • OpenMP 4.0 for SIMD and Affinity Features with Intel® Xeon® Processors and Intel® Xeon Phi™ Coprocessor
  • Learn to be an Intel® Visual Fortran Power User
  • Optimizing and Compilation for Intel® Xeon Phi™ Coprocessor

Featured Articles

Kein Inhalt gefunden

More Tech Articles

Webinar: Get Ready for Intel® Math Kernel Library on Intel® Xeon Phi™ Coprocessors
By Zhang Z (Intel)Posted 12/05/20121
Intel recently unveiled the new Intel® Xeon Phi™ product – a coprocessor based on the Intel® Many Integrated Core architecture. Intel® Math Kernel Library (Intel® MKL) 11.0 introduces high-performance and comprehensive math functionality support for the Intel® Xeon Phi™ coprocessor. You can downloa…
Intel® Compilers for Linux*: Compatibility with GNU Compilers
By om-sachan (Intel)Posted 09/25/20122
This paper describes compatibility between the Intel® Compilers for Linux* and the GNU* compilers in terms of source, binary and command-line compatibility. The Intel® C++ and Fortran Compilers help make your software run at top speed on Intel's platforms, including those based on IA-32 and Intel®…
The Heterogeneous Programming Model
By Ronald W Green (Intel)Posted 09/09/20120
Compiler Methodology for Intel® MIC Architecture Choosing a Programming Model, The Heterogeneous Offload Model Overview In this chapter, we examine the Intel® Composer XE 2013 Heterogeneous Offload programming model for the Intel® MIC Architecture. Topics The Intel® Composer XE 2013 supports a prog…
Native and Offload Programming Models
By Ronald W Green (Intel)Posted 09/09/20120
Compiler Methodology for Intel® MIC Architecture   Native and Offload Programming Models Overview This chapter details the various programming models available on the Intel® MIC Architecture. These include the Native programming model, the Heterogeneous Offload model, and the Cilk_Offoad model.…

Seiten

 abonnieren

Supplemental Documentation

Kein Inhalt gefunden
 abonnieren

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


Issues after removing intel parallel studio
By prodigyaj@gmail.com9
Hi, Visual Studio 2008 was building my fortran project fine until I removed the intell parallel studio from the control panel. Now it gives me a microsoft development evnironment message saying "Configurtaion Debug|Win32 requires compiler support for the Win32 platform but not installed. What has gone wrong here?   Thanks Ajay
calling the subroutine expecting multi-dimension array with the address of one-dimension array
By liuhuafei3
Hello!    I write a subroutine setrx and setix expecting a multi-dimensional array.When they are called in main code, an address of a location in a one dimensional arraycan be passed to them.  It works well.   But After I put the setrx and setix in a interface, calling the setx with the addressof one-dimension array will lead compile errors.  I  need the help. Thanks in advance.!#########################################################program main!#########################################################implicit noneinterface setx  subroutine setrx(m,n,x)  integer,intent(in) :: m  integer,intent(in) :: n  real,intent(out)   :: x(m,*)  end subroutine setrx  subroutine setix(m,n,x)  integer,intent(in) :: m  integer,intent(in) :: n  integer,intent(out):: x(m,*)  end subroutine setixend interface setxreal    :: rx(10),rxx(3,10)integer :: ix(10),ixx(4,10)call setrx(1,10,rx)call setix(1,10,ix)call setrx(3,10,rxx)call setix(4,10,ixx)!!  the following calls will lead two errors!! error #6285:…
CONTIGUOUS attribute for dummy arguments: what happens when the actual argument is not contiguous?
By FortranFan11
Steve, The code listed below compiles and runs without any errors in Intel Fortran XE 2013 Update 2 (13.1.0.149).  And it writes out a result value of false for the statement on line 27.  But do you think this is correct?  I was expecting a compiler error given the CONTIGUOUS attribute on the dummy argument in AssumedShape subroutine?  Does it not require that the actual argument has to be simply contiguous and which is not the case here? You would recall from the Fortran 2008 standard: 5 5.3.7 CONTIGUOUS attribute 6 C530 An entity with the CONTIGUOUS attribute shall be an array pointer or an assumed-shape array. 7 1 The CONTIGUOUS attribute specifies that an assumed-shape array can only be argument associated with a 8 contiguous effective argument, or that an array pointer can only be pointer associated with a contiguous target. 9 2 An object is contiguous if it is 10 (1) an object with the CONTIGUOUS attribute, 11 (2) a nonpointer whole array that is not assumed-shape, 12 (3) an as…
input data file
By mehmet c.2
i wanna input data which is txt or dat file. i dont do this. i saw a few example in internet but i dont this.  in instance input data  file 1 25 2 33 3 37 4 45 how fortran can  read this data do you know, help me
output from fortran to excel
By mehmet c.1
hi everybody, at firts i apologise my english after that, i am using visual fortran for my acedemic thesis. i dont know fortran very well. in my programme, i took a output excel file but when i took my output every data, all my data wrote first box in excel. for example i wanna took data for  first iteration a1, a2, a3 and second b1, b2, b3 but every data write one by one in a1 and b1.   how can i correct my false, would you help me    
OpenMP parallel loop crashes (?)
By Marios G.8
Hello everybody, I am trying to make the section of my code to run parallel: ....             EL=0.0d0 !$OMP parallel DO SHARED(S,COUL) PRIVATE(I1,J1,ID,JD) reduction(+:EL) DO J1=1,NY DO I1=1,NX IF ((J1/=J.OR.I1/=I).AND.(J1/=J.OR.I1/=IP(I)).AND.(J1/=J.OR.I1/=IM(I)).AND.(J1/=JP(J).OR.I1/=I).AND.(J1/=JM(J).OR.I1/=I)) THEN IF (ABS(FLOAT(I)-FLOAT(I1)) <= ABS(FLOAT(I)+LLEN-FLOAT(I1))) THEN ID= INT(ABS(FLOAT(I)-FLOAT(I1))) ELSE ID= INT(ABS(FLOAT(I)+LLEN-FLOAT(I1))) END IF IF (ABS(FLOAT(J)-FLOAT(J1)) <= ABS(FLOAT(J)+LLEN-FLOAT(J1))) THEN JD= INT(ABS(FLOAT(J)-FLOAT(J1))) ELSE JD= INT(ABS(FLOAT(J)+LLEN-FLOAT(J1))) END IF EL= EL + LAMDA*COUL(ID,JD)*dble(S(I1,J1)) ! Cen(I,J)= Cen(I,J) + LAMDA*COUL(ID,JD)*dble(S(I1,J1)) END IF END DO END DO !$OMP END PARALLEL DO ... where COUL is a matrix determined earlier in the code. I get no compilation or build errors but at run time the pro…
OpenMP and polymorphic entities
By MarkLewy4
Consider this simple program: program OpenMP_and_class implicit none type link_t integer :: id end type link_t type link_element_t type(link_t), allocatable :: element end type link_element_t type es_link_t class(link_t), pointer :: link_ptr => null() end type es_link_t type(link_element_t), allocatable, target :: links(:) integer, parameter :: n_links = 10 integer :: i type(es_link_t) :: this_link allocate(links(n_links)) do i = 1, n_links allocate(links(i)%element) links(i)%element%id = i end do !$OMP parallel do private(this_link) do i = 1, n_links call set_es_link_t(this_link, i) call process_link(this_link) end do !$OMP end parallel do contains subroutine set_es_link_t(this_link, i) type(es_link_t), intent(inout) :: this_link integer, intent(in) :: i this_link%link_ptr => links(i)%element end subroutine set_…
copy an array section within an array without temporary copy
By Espen M.17
I have some medium sized 3d arrays (approx 500x500x10) for which I sometimes need to copy a section of the array to a different (non-intersecting) section of the same array. E.g.: a(:,:,1:3) = a(:,:,4:6) I was surprised to find out that a temporary copy is made (inferred from the stack overflow I get which I don't get if the last subscripts are constants) in this case since it's trivial to confirm that the sections do not overlap. The sollution is then to use a loop, but I find that "unattractive" compared to using the array section language feature. Is it possible to avoid a copy in some other way? And another, related question: if the subscript bounds are not literal constants but (scalar) variables I find that not even the loop approach works, i.e. j = 3 DO i = 1,3     a(:,:,i) = a(:,:,i+j) END DO also produce a stack overflow. I fail to see what could possibly require the temporary copy in this case... Is it possible to circumvent that in this case? I know that I can increase …

Seiten

Foren abonnieren

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


Failed on compilation of WRF3.5.1 by ifort
By Parichat W.1
Hello, I'm a postdoctoral in Thailand. I wanna use WRF for my research but I tap on the errors of installation. I have a problem when I am trying to compile em_real case on Linux_x86_64, RHEL 5 (Centos, AMD Optron) using Intel Parallel Studio XE 2013 (ifort and icc), openmpi-1.6.5 and netcdf-3.6.3. I have no idea what is wrong. There is many errors in "compile.log" file. I didn't see executable that should be made in main directory. Any help will be appreciated please. Thank you for your read. ------------------------------------------------------------------------- **I have been followed this link to install required library: -------------------------------------------------------------------------http://software.intel.com/en-us/articles/wrf-and-wps-v311-installation-b... Remark: Additionally, I add "-i_dynamic" flag to DM_FC and DM_CC to link both math libraries: libimf and libm.    -------------------------------------------------------------------- ** .bashrc ---------------…
MPI application portable?
By jinliang w.4
Hi there, My fortran code uses MPI, with all MPI lines prefixed with !$ for conditional compilation. Compiling the code using ifort on a Linux cluster, with command lines: ifort -O2 -ip -ipo -inline-factor=100 -unroll-aggressive -openmp -o a.out *.f90 mpif90 -O2 -ip -ipo -inline-factor=100 -unroll-aggressive -openmp -o a-mpi.out *.f90 I got 2 binaries, a.out and a-mpi.out, which both work fine on the cluster. However, when they are tested by my colleague on his Linux machine, he had no problem with a.out, but had an error message ./a.out: error while loading shared libraries: libmpichf90nc.so.2: cannot open shared object file: No such file or directory with a-mpi.out. It seems the library libmpichf90nc.so.2 is needed for run using MPI. When he tested the binary again with the library libmpichf90nc.so.2 provided by me, he got another different error message 'a_mpi.out: error while loading shared libraries: libmpichf90nc.so.2: invalid ELF header' Can you kindly help me out of the proble…
Puzzle: changing the order of outer loops leads to significant performance increase
By Wentao Z.4
Hi, I have a puzzling finding that changing the order of the outer loops led to significant performance increase. I am playing with the following two versions of a small code piece: Version 1: ii, k, j, i 1529 do ii = iis, iie 1530 value = vals(ii) 1531 do k = ks, ke 1532 do j = js, je 1533 ind_offset = ( (k-1)*N2 + (j-1) ) * N1g 1534 !DIR$ SIMD 1535 do i = is, ie 1536 l0 = ind_offset + i 1537 dF(l0) = dF(l0) + value * F(l0 + ii) 1538 end do 1539 end do 1540 end do 1541 end doVersion 2: k, ii, j, i 1529 do k = ks, ke 1530 do ii = iis, iie 1531 value = vals(ii) 1532 do j = js, je 1533 ind_offset = ( (k-1)*N2 + (j-1) ) * N1g 1534 !DIR$ SIMD 1535 do i = is, ie 1536 l0 = ind_offset + i 1537 dF(l0) = dF(l0) + value * F(l0 + ii) 1538 …
Fixing multiplicity of common blocks in library
By Jonathan B.2
Can identical common blocks of mutually exclusive subroutines be merged within a library? Current results show multiplicity. I modified a Fortran 77 package to use common blocks in lieu of internally saved variables to allow checkpointing. Several subroutines within the package use identical (or subset of) variables in the common blocks. So, I've written a few header files which define the maximal necessary common blocks to interface with the code. This provides a consistent chunk of external variables that will work with any subroutine in the package. Compiling each program and building the library works fine, but when I check the library after the fact, I find that there are multiple copies of each common block with identical names. Aside from wasted space, I'm concerned about the name resolution and verifying that the external and internal routines are using the same data. As an illustration, the following are in testLibrary.a: header.h integer i,j,k common /iteratives/ i,j,k …
Distributable binary for Mac OS X
By jinliang w.2
Hi there, I am using the latest Intel fortran composer on Mac OS X (10.9.2) to compile my code, with command ifort -O1 -ip *.f90 The binary generated, a.out, works fine on my Mac. However, when my colleague tested it on him Mac with the same OS, he got an error message: ./colony2s-mac-i.out: line 1: syntax error near unexpected token `<' ./colony2s-mac-i.out: line 1: `<!DOCTYPE html><html lang="en" xmlns:fb="http://ogp.me/ns/fb#" xml:lang="en" class="media-desktop" xmlns="http://www.w3.org/1999/xhtml"><head><script type="text/javascript">' Can anybody tell me what is the problem, and how to solve it? Do I need to distribute some library files together with the binary? Thanks a lot!
Coarray type with an allocatable component of length zero
By Raul L.5
I get a SIGSEGV when running the following code  type t   real, allocatable :: a(:)  end type t  type(t) :: data[*]  allocate(data%a(0))  print*, size(data[1]%a) end program If, instead of the last line I put print*, size(data%a) it runs successfully by printing 0 for each image. In principle I could work out the problem by using 'allocated' statements, but allocated(data[1]%a) produces The argument to the ALLOCATED intrinsic cannot be a coindexed object. On the other hand, using 'allocated(data%a)' correctly prints T for each image, but I specifically need to use the square brackets with either 'size' or 'allocated' in my code. Thanks
Bad performance with bitwise operations
By Vladimir F.19
Hello, I noticed this is noticably slower with ifort 14.0.0 than with gfortran. Is there anything to make the result run faster?   use iso_fortran_env real(real32) :: x32 integer(int64) :: t1, t2, trate call system_clock(count_rate=trate) call system_clock(count=t1) do i=1,int(2E9) x32 = swapb32(x32) end do call system_clock(count=t2) print *,x32,"time",real(t2-t1)/trate contains function swapb32(x) result(res) real(real32) :: res real(real32),intent(in) :: x character(4) :: bytes integer(int32) :: t bytes = transfer(x,bytes) !equivalence very slightly faster, but problematic. t = ichar(bytes(4:4),int64) t = ior( ishftc(ichar(bytes(3:3),int32),8), t ) t = ior( ishftc(ichar(bytes(2:2),int32),16), t ) t = ior( ishftc(ichar(bytes(1:1),int32),24), t ) res = transfer(t, res) end function end  > gfortran-4.9 -Ofast bitperf.f90 > ./a.out 0.00000000 time 5.0082…
Compiler not detecting missing OMP4 declare target variable
By Alexander G.4
Most of the time, the compiler will complain if a global variable used in an OMP4 target region is not declared for the target (!$omp declare targt(foo)) But now I had a (very big) program that compiled without errors (finally after fixing all the missing declares) but failed at runtime with the message: On the remote process, dlopen() failed. The error message sent back from the sink is /tmp/coi_procs/1/56338/load_lib/ifortoutfGrs7D: undefined symbol: control_parameters_mp_surface_pressure_ On the sink, dlopen() returned NULL. The result of dlerror() is "/tmp/coi_procs/1/56338/load_lib/ifortoutfGrs7D: undefined symbol: control_parameters_mp_surface_pressure_" offload error: cannot load library to the device 0 (error code 20) Investigating the code, I found that in module "control_parameters" a real variable "surface_pressure" was declared and used inside a target region. Nothing special there, just omp target, parallel do and do simd. However the compiler did not detect it. How is …

Seiten

Foren abonnieren