Quantcast
Channel: Intel® Software - Intel® Visual Fortran Compiler for Windows*
Viewing all 5691 articles
Browse latest View live

libcmt.lib(chkstk.obj) : module machine type 'X86' conflicts with target machine type 'x64'

$
0
0

Hi all

My computer is 64 bit . I inistalled fortran in the following order:  1. installed microsoft sdk  2. installed microsoft visual studio 10.(64bit version)

 3. installed fortran compiler 9.1 for 64-bit applications, and 32-bit

 

After that i updated my system variables. 

After that, i open  command window fortran compiler 9.1 for 64-bit applications and typed ifort -o example.exe *.f (to create a exe file example by executing all fortran files of my source code)

Ifort created object files for all my fortran files in my sourcecode. and then at the end it showed the error 

 

libcmt.lib(chkstk.obj) : fatal error lnk1112: module machine type x86 conflicts with target machine type x64.


StackOverflow wtih function pack() for big arrays

$
0
0

Hi @all,

Could you please comment on the following issue?

I need to convert 2D (or 3D) array to 1D array.

If I use simple do-loop construction everything works fine.

If I use function pack() then for big array size I get StackOverflow. One workaround is to increase stack size in VisualStudio. But this is not the best solution for general case.

 

I like using standard functions due to their brevity, but I got some examples when they could not work due to stack size, and I have to switch back to do-loops.

 

My Example (see attached files):

Main programs call subroutine Array_2D_to_1D for different array sizes (2**k, 2**k)

If I set to use function pack() by setting IsPackUse = .true.

I got

Start calc for k=           8

Start calc for k=           9

forrtl: severe (170): Program Exception - stack overflow

If I set to use do-loops (IsPackUse = .false.)  it works Fine

I got

 Start calc for k=           8

 Start calc for k=           9

 Start calc for k=          10

 Start calc for k=          11

 Start calc for k=          12

 Start calc for k=          13

 Start calc for k=          14

 Program end

Press any key to continue . . .

 

AttachmentSize
Downloadapplication/octet-streamM_Arrays_2D_to_1D.f901.06 KB
Downloadapplication/octet-streamMain.f90867 bytes

Omp affinity thread binding issue?

$
0
0

Hi

I'm having some trouble with omp_places and seem to find contradictory information
From http://openmp.org/mp-documents/OpenMP_Examples_4.0.1.pdf

I find that:
omp_places={0:2}:8:2 
is equivalent to:
omp_places="{0,1},{2,3},{4,5},{6,7},{8,9},{10,11},{12,13},{14,15}"

In my code I automatically builds a string depending on the amount of cores detected in the system and user specification about numa spreading etc.

When there is no spreading I often end up with the following string:
OMP_PLACES={0:16}:1:16
which I would assume is equivalent to:
OMP_PLACES={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}

The problem is that the first one throws a warning about threads trying to get bound to ID 16-31 which is outside the range.

I'm guessing my issue is the last 16 in the "OMP_PLACES={0:16}:1:16" line, but I don't really understand why.

My understanding of what these parameters do are the following:
OMP_PLACES={a:b}:c:d

a = first thread ID in a group
b = number of threads to bind in this grouping
c = number of groups to create
d = the shift in first thread ID from one group to the following

Now obviously something is wrong with my understanding, so could anyone please enlighten me?

truncated strings

$
0
0

I was just surprised by a bug in my code about which I did not get a warning:

character(LEN=4) :: name

name = "DAVID"

There is no compiler warning that "DAVID" gets truncated when stored in name.

Is there any compiler setting to force this warning?  I could not see one.

Thanks,

David

Fortran code Error explanantions

$
0
0

Hi,

I ran the following code on Fortran. These were my results:

 

FUNCTION PKLEQ(XLO, XHI)

 

DOUBLE PRECISION A,B,C,D,E,F,H, O,P,Q,R,S,T,U,V,W,X,Y,Z

 

INTEGER I,J,K,L,M,N

 

DIMENSION XI(5), WI(6)

 

C

 

XI(1) = 0.148874338981631

 

XI(2) = 0.433395394129247

 

XI(3) = 0.679409568299024

 

XI(4) = 0.865063366688985

 

XI(5) = 0.973906528517172

 

C

 

WI(1) = 0.295524224714753

 

WI(2) = 0.269266719309996

 

WI(3) = 0.219086362515982

 

WI(4) = 0.149451349150581

 

WI(5) = 0.066671344308688

 

C

 

PKLEQ = 0.0

 

C

 

XM = (XHI + XLO) / TWO

 

XR = (XHI – XLO) / TWO

 

C

 

DO 10 I = 1 TO 5

 

C

 

DX = XR * XI(I)

 

PKLEQ = PKLEQ + WI(I) * (FUNC(XM + DX) + FUNC(XM - DX))

 

C

 

10 CONTINUE

 

C

 

PKLEQ = PKLEQ * XR

 

C

 

RETURN

 

END

 

Error Messages:

Error 1 error #5078: Unrecognized token 'XHI?' skipped C:\Users\FortranCompiler\Desktop\Cost Uncertainty Codes\PKLEQ.f 41

 

Error 2 error #5082: Syntax error, found IDENTIFIER 'TO5' when expecting one of: .EQV. .NEQV. .XOR. .OR. .AND. .LT. < .LE. <= .EQ. == .NE. /= .GT. > ... C:\Users\FortranCompiler\Desktop\Cost Uncertainty Codes\PKLEQ.f 45

 

Error 3 error #6385: The highest data type rank permitted is INTEGER(KIND=8). [TO5] C:\Users\FortranCompiler\Desktop\Cost Uncertainty Codes\PKLEQ.f 45

 

Error 4 Compilation Aborted (code 1) C:\Users\FortranCompiler\Desktop\Cost Uncertainty Codes\PKLEQ.f 1

 

Please let me know your thoughts on these few errors and how I could approach fixing them. Thanks!

INTEGER (KIND = 1) and CHARACTER (LEN = 1) equivalence?

$
0
0

I am trying to implement CRC-32 code in Fortran.  The obvious problems with signed and unsigned INTEGER arguments are somewhat bypassed if one makes judicious use of the elemental bit functions (IBSET, IBCLR, IEOR, ...).  The remaining hindrance I am having in implementing this code logic is in the use of CHARACTER arguments.

My application requires a CRC-32 of a CHARACTER string.  If I could interpret this as a string of bytes (INTEGER (1)) then all bit manipulation would be at my disposal.  Do I need to resort to EQUIVALENCE or other non-standard constructs to make this work?

assembler compatibility with ifort -S

$
0
0

Is there a way to make ml64 or some assembler accept ifort .asm files?  ml64 rejects the code labels beginning with '.'.

I'm looking for a way to test the "ALIGN     16" code alignment directives which come and go with various ifort releases, particularly when AVX2 is set. 

A related confusing issue comes up when setting AVX2 reduces the unrolling.  Opt-report (and Advisor) don't report unrolling when it is not done consistent with Qunroll: or setting.

When I run VTune or Advisor on ifort generated .exe, sometimes where ifort decides to align, the alignments come out different by up to 3 bytes.  This doesn't appear to hurt, even when the loop is placed 3 bytes ahead of an aligned address.

In a few cases where gfortran decides to align code, but ifort doesn't, there may be a 30% speedup with alignment on my Haswell.  I'm guessing it makes Loop Stream Detection more effective.

PSXE 2015 Update 7 (15.0.7) has no Fortran changes

$
0
0

An Update 7 to Intel Parallel Studio XE 2015 was recently released - this has a small number of bug fixes for C++ only and no new Fortran changes. I mention this only because you might get a notification from Intel Software Manager about it. 


bugs bugs bugs

$
0
0

I've been trying to report a bug and the system keeps shifting me to RSS

Brooks

ULARC

$
0
0

I have been using this program since 1981.  It is a great program, but I have never used it with multiple load cases, really do not need to do that with coal loads - so big everything else is a nuisance.

I have been writing a paper over the last two days on beam elements with varying moments of inertia -- not a common element, but my interest in some old math stuff I have not touched since 2004 arose from a paper by Dr Lewis from England -- quite interesting in an Ivory Tower sort of way. I thought I would use the arch examples in the paper on ULARC, I had used it for a lot of arches.

Lewis gives an example of an arch with zero moments -- nifty really - so I was putting the data into ULARC and getting the output as 3 loads, self weight, applied load and total load. 

I was plotting the results and thought - they look strange.  Went got the manual -- seemed normal operation for using 3 loads one after the other -- but that is not the case.  Took me  awhile to track down the code location - total load at each node is summed after each analysis --

C
C     UPDATE MEMBER QUANTITIES
C
      DO 310 NE=1,NELS
C
              DO 270 I=1,3
                  STOT(NE,I)=STOT(NE,I)+RATIO*S(NE,I)
                  VP(NE,I)=VP(NE,I)*RATIO
  270         VPTOT(NE,I)=VPTOT(NE,I)+VP(NE,I)
C
C     ACCUMULATE MAXIMUM ROTATIONS
C
          DO 280 I=2,3
              IF (VPTOT(NE,I).GT.VPTP(NE,I)) VPTP(NE,I)=VPTOT(NE,I)
              IF (VPTOT(NE,I).LT.VPTN(NE,I)) VPTN(NE,I)=VPTOT(NE,I)
  280     CONTINUE
C
C     SET NEW HINGE CODES
C
          IF (IBUST.NE.0) GO TO 310
          IF (NE.NE.INEL) GO TO 300
          IHI(NE)=1
          write (1,290) NE,NODI(NE)
  290     FORMAT(//20H HINGE FORMS, MEMBER,I4,6H, NODE,I4)
  300     IF (NE.NE.JNEL) GO TO 310
          IHJ(NE)=1
          write (1,290) NE,NODJ(NE)
  310 CONTINUE

Weird

AttachmentSize
Downloadapplication/pdfLewis Arch.pdf641.98 KB

Bug in IVF 16 r3

$
0
0

If this is not a bug then it is a poor design flaw. I have 3 subroutines associated with a menu item that are maintained in a single file. When I compile this file, the listing that I want produced has some problems. It is just fine for the first 2 subroutines but the Symbol Cross Reference for the 3rd subroutine has all the cross references for all 3 subroutines. This is just wrong. I cannot look at the cross reference and easily tell if it is from the 1st, 2nd, or 3rd subroutine. I use the listing file to self document my code and this just makes it incorrect. I will have to go through my code and separate all subroutines into their own file. I can no longer use 'contains' clauses. Can someone at Intel get this into the hands of the 2017 developers so thwy can fix this.
I'm using Intel Parallel Studio for Fortran  Composer Edition XE 2016 R3.

Brooks

AttachmentSize
Downloadapplication/zipListing.zip8.07 KB

How can i speed up my running ?

$
0
0

hi

I have a serial fortran code and use VS with intel parallel 2015. Running process use about 25 percent of my cpu. In C Sharp i used task rule simply for speed up but in fortran can't find any thing.I can use about 70 percent of cpu.

does any one can help?

with regard

 

License Question

$
0
0

I want to buy a license for Intel Fortran for Windows.  If I buy a license now from the web site, will it work with the Intel Fortran 11.1.072 version (which works with Microsoft Visual Studio 2005) and with the Fortran Composer XE 2013 (which works with Microsoft Visual Studio 2013).  At this time these are the only versions that I want to use.  The current version is really of no use to me.

Array Sizes

$
0
0

I could ask this in MKL - but this is more a  straight FORTRAN problem.

Before you call PARDISO - you pack the n by n Stiffness matrix into a set of vectors to take up less space. mecej4 showed me in MAGNI how to pack efficiently - the following code does the packing for taking a stiffness matrix from and turns it into the packed vectors, Pardiso needs the length of the vectors essentially NNZ.

I measure the number of degrees of freedom of the problem which gives you a size, but trying to relate NNZ to the degrees of freedom is interesting -

I was thinking just counting the number of non-zero elements in the stiffness matrix and than set NNZ - but I have to loop thru a large matrix

Is there a simpler method, I was just using 9 times the number of degrees of freedom and that usually works, but it did not on the current problem

    subroutine PardisoSolver(GK,nl,nk,ndf,X)


    implicit none
    include 'mkl_pardiso.fi'

    integer nl,nk,ndf

    REAL (KIND=dp) GK(nl,nk),X(ndf)

    REAL (KIND=dp), ALLOCATABLE :: a(:), b(:), c(:,:), atemp(:)
    integer, allocatable :: ja(:), ia(:), iatemp(:), jatemp(:)
    INTEGER :: nnodes = 5
    integer error, iaN
    integer :: nnz , istat, i, j , count
    integer :: size = 0
    integer :: size1 = 0
    integer :: size2 = 0
    integer :: flag = 0
    REAL (KIND=dp) :: delta = 0.000000000000001
   
    nnz = 90*ndf


    !open(16, file="a.mat", STATUS = 'old')

    ! read(16,*)count
    count = ndf

    !nnodes = count
    iaN = count+1

    ALLOCATE (a(nnz), ja(nnz), ia(iaN), jatemp(nnz), iatemp(iaN), b(count), c(count,count), atemp(nnz), STAT=istat)
    IF (istat.NE.0) THEN
        WRITE (*, *) '*** Could not allocate some arrays in LINSOLVE'
        STOP
    END IF

    b = 1.0D0
    a = 0.0d0
    c = 0.0d0
    iatemp = 0
    jatemp = 0
    atemp = 0
    ia = 0
    ja = 0
    do 200 i = 1, count
        flag = 0
        do 300 j = 1, count
            c(i,j) = gk(i,j)
            if(abs(c(i,j)) .gt. delta) then
                size = size + 1
                if(size .gt. nnz) then
                    Write(*,2030)nnz, ndf
2030                Format( "        NNZ is set at :: ",I6, "    NDF is :: ",I6)                   
                    stop    '        Insufficient memory allocation in PARDISO to solve the inversion problem'
                endif
                jatemp(size) = j
                iatemp(size1 + 1) = size+1
                atemp(size) = c(i,j)
                if(flag .eq. 0) then
                    size1 = size1 + 1
                    iatemp(size1) = size
                    flag = 1
                endif
            endif
300 end do
400 format(5(1x,F10.3))
200 end do

 

 

fortran compiler

$
0
0

 

i need the fortran compiler 11 or higher to run nonmem

i am not sure if i need the composer or professional 

can i speak with some one for advice before purchasing

 

clifford dilea

cdilea@aclairo.com

cell 202-351-9611


Error Codes

$
0
0

Steve:

I was compiling some old code and I got an error

Error 8284 If the actual argument is scalar the dummy argument shall be scalar:

The code dates from '72 and it has not been modified. 

Error 7983 The storage extend of the the dummy argument exceeds that of the actual argument

Ideas?

John

Invalid serial number

$
0
0

Dear Intel Fortran user,

I just bought the Intel Visual Fortran Composer XE 2011. When I tried to install the code and give the serial number, I received the following reply: “Activation rights do not allow this software to be installed. This could be due to expired subscription or incompatible serial number.” The company which sold the code to me does not help me, but says that I have to solve the problem by myself. Can you help me?

Best Regards,

Kari Santaoja

How to install Compaq Visual Fortran under Windows 10

$
0
0

Yesterday I  wanted to install Compaq Fortran 6.1 in a 64 bit professional
Windows 10 environment.  As regards my office computer I ran the file from the
installation CD: D:\x86\setupx86.exe. (D is the DVD Drive). I had no problem,
the installation was successful on drive C which was a hard disk. I could also
compile and build one of my Fortran 95 programs. A short test run was also
successful.

 

As regards my home computer, however, I failed: when I started setupx86.exe
the first icon with the tree menu items

 

Install Visual Fortan
View Release Notes
Exit

 

appeared on the screen. When, however, I clicked on

Install Visual Fortran the program disappeared from the Task Manager

list and nothing happened.

 

Both computers run Windows 10 professional, but the C drive is an SSD ram
in my home computer. The operating system is also Windows 10 professional 64
bit.

 

My I ask what I have done wrong?
Or the problem is something else?

 

Thank you for any idea or advice in advance.

WhiteEagle

READ String

$
0
0
100 READ  (sr,('(A)')) LINE

Why does taking the '(a)' out and using a * not work with a string line that has spaces in it?

Line is character*72 - A72 does not work unless string is 72 - hard in a text file.

 

warning #5142: Invalid use of $ character in identifier

$
0
0

Why is the statement

use gdi32, LineTo => MSFWIN$LineTo

considered a warning in a .f90 file when I've disabled Specific Diagnostics:

6413,7025,6477,7028,5142,5142

Yet I still get it in IVF 16.0 R3?

Thanks,

Brooks

 

Viewing all 5691 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>