Fortran

Linking .lib file with visual studio

I have a MAIN file that calls a couple of functions in a apples.lib file. I drag the oranges.f and apples.lib file into the solution explorer, under the "Source Files". After pressing "Build Solution", 3 errors come up : "Fatal error LNK1120: 2 unresolved externals", "error LNK2019 : unresolved external symbol ABC referenced in function _MAIN__", "error LNK2019: unresolved external symbol XYZ in function _MAIN__".

binary compatibility

We have run into a problem installing multiple versions of our application which uses the Intel Fortran runtime libraries.

The scenario is this. 

Application version 1 uses some Fortran dlls compiled with a 2013 Fortran version.  The install for this application thus uses the runtime libraries from 2013 Fortran (Version numbers vary here a little, but in general the binaries have major version number 14).

Is this standard Fortran 2008?

Is this code standard Fortran 2008?

MODULE PRECISION
IMPLICIT NONE
INTEGER,PARAMETER :: DP = 8
END MODULE PRECISION
MODULE M
USE PRECISION
IMPLICIT NONE
INTERFACE
    REAL(KIND=DP) MODULE FUNCTION F(X)
        REAL(KIND=DP),INTENT(IN) :: X
    END FUNCTION F
END INTERFACE
END MODULE M

I have another compiler who complains that DP in the "REAL(KIND=DP) MODULE FUNCTION F(X)" statement is not defined.
 

Feature (or change?) request: "j1" and "j11"

It appears as though with some of the newer compilers (I recently jumped from 12.0.4 to 15.0.2), "j1" and "j11" are now reserved symbols.  I'm getting very obscure errors from the linker about dwarf version 3, though the true error is just above this in that "j1" is defined in real/j1.c (which is also a function name in my program).  If this is an internal Fortran function that is not designed to be called externally, maybe it would be best to do some name mangling on it or put one of the usual "for__" prefixes on it?  I can also see people using such short names as global variables when li

PrefetchInsertionOpt="prefetchAggressive"

I'm trying to change a few compiler flags to get a faster run time on ifort 2015 Update 4, x64, on E5-2699v3 and E5-1650v3.  I started with:

                <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" MultiProcessorCompilation="true" Optimization="optimizeFull" GenAlternateCodePaths="codeForCommonAVX512" IntegerKIND="integerKIND8" RealKIND="realKIND8" LocalSavedScalarsZero="true" FloatingPointExceptionHandling="fpe0" FloatingPointModel="source" FlushDenormalResultsToZero="true" Traceback="true"/>

Stack overflow issue

The following line in my code creates a stack overflow:

J(1:N,1:M) = J_COARRAY[IMG]%VALUES

VALUES is a rank 2 array with dimensions smaller than those of J. The compiler is set so that warnings are issued when temporary arguments are created (which I suppose, is not really the case here since no warnings were issued). Does the transfer of data from one image to an other requires the creation of a temporary buffer (which would cause the stack overflow)?

I suppose the work around is to allocate arrays on the heap then?
 

Suscribirse a Fortran