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

Do LOOP fails when NOWHERE NEAR LIMITS

$
0
0

This do loop example has NO passes thru it.

   dk4=100000000

    khi4=huge(k4)/2 ! nowhere near upper limit
    klo4=-khi4  !  nowhere near lower limit
   kount=(khi4-klo4)/dk4+1
    print *,"klo,hi=",klo4,khi4," kount 4=",kount
    do k4=klo4,khi4,dk4
        print *,"k4=",k4
    enddo

It gives the correct result (22) for KOUNT, but the compiler apparently gives ZERO for the same thing.

All variables are integer(4)


Character Declaration

$
0
0

In the topic "Declarations of Character Types" of the IVF users reference, it says:

The form CHARACTER*(*) is an obsolescent feature in Fortran 95.

I'm puzzled with the saying "CHARACTER*(*)". The question is elementary maybe, but does it mean the form of old FORTRAN standard " CHARACTER*(some_len_things)" or the * Length Character Syntax which is to be removed from the future standard ?

finding the max number of iterations needed to get convergence for DLCONF

$
0
0

On rare occasions, my function DLCONF from the IMSL library exceeds maximum number of function evaluations and I guess it is because my function is flat for some iterations. To avoid that problem, I am curious if there is a way to compute a maximum number of iterations needed to get a convergence as in DZBREN (another IMSL library)?

So before calling DLCONF, I would like to compute the number of iterations needed to get a convergence and call some other routine if maximum number of iterations exceeds my preset value of MAXFCN. So I can avoid that particular iteration with a different routine and my program does not stop iterating? DLCONF so far is fast and I don’t want to entirely switch to a new subroutine.

best

How to build and object file for 64 bit system?

$
0
0

Dear all,

My system is 64 bit with Windows 7.

I want to run ABAQUS 6.13 with a subroutine which should be compiled by Fortran compiler. I have Intel Composer XE 2013 (Intel Compiler 14), which is able to build 32bit and 64bit applications.

The general settings are OK because Abaqus Verfication says it can work with a sample subroutine.

But when I want to do my own simulation it gives again the error:

LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

When Ichanged abaqus_v6.env file (machine type in link_sl and link_exe from /machine:AMD64 to /machine:X86), the error again changed to

export.def : error LNK2001: unresolved external symbol _forceCRTManifestCUR

standardU.lib : fatal error LNK1120: 1 unresolved externals

I first build an object file from my fortran code and the pass it to Abaqus. Maybe the object file is built for a 32 bit application type. I do not know how I can say ifort to build it for a 64bit application type. I searched but no luck. Can you please help me?

Thank you very much,

Vahid

ICE with PDT

$
0
0
MODULE test
 
 IMPLICIT NONE
 
 PUBLIC
 
 INTEGER, PARAMETER, DIMENSION(6), PRIVATE :: kind_params = [0,1,3,7,9,14]
 
 
 TYPE :: dt(kind)
  INTEGER, KIND :: kind
  REAL,DIMENSION(kind_params(kind))  :: comps
 END TYPE dt
 
END MODULE test

The above code is a stripped down example of something I'm trying to compile that generates an internal compiler error due to the parameter array kind_params being used in the dimension specification of comps.

DISLIN

$
0
0

Dear Steve:

DISLIN is a neat program for drawing plots written by Helmet Michaels in Germany. The program is free for non -commercial use. I bought the really excellent manual whihc explains how to install the libraries.  

The library files are installed in a folder called c:\DISLIN 

The Module File for DISLIN DISLIN.F90 and DISLIN.MOD is stored in c:\DISLIN\IFC

I set the path command to point to the point to the correct places

Set the DISLIN environment variable to c:\dislin and include
     c:\dislin\win in your path. If you have installed DISLIN in a
     different directory, you have to use that directory for the 
     environment variables above.

 

I then used a VS 2012 Command prompt to run the sample program provided with DISLIN

I also tried setting up a VS 2012 solution and run it from VS.  

I get a variety of errors depending on how I configure the VS properties, but the main and first error is ifconsol.lib cannot open file.  Helmut suggested the following - this morning 

John,

the ifconsol.lib file is part of the Intel Fortran compiler. It seems that the Microsoft linker does not find
this library. I'm just using Visual Studio 2010, where I don't have such a problem. What happens when you
replace the link command by the ifort command. For example:

              ifort /c /Ic:\dislin\ifc   exa_f90.f90                                                   for compiling
              ifort exa_f90.obj  c:\dislin\disifl.lib  gdi32.lib user32.lib              for linking

Best regards,

Helmut

 

I keep getting the same error - as shown on the attached image  whether I use the command line or VS.   - I have set the complier variables using the BATCH file.  

 

 

I am running on a WINDOWS 10 machine - using VS 2012 and the latest Intel Complier - I am not having trouble running any of my other Fortran programs using this system.

 

Your thoughts would be appreciated - I realize it is something simple - but I am lost

 

JMN

intel version 10 windows visual fortran

$
0
0

Question 1.

In the version  10 windows fortran compiler, can the cpu be specifically set to

use which of these floating point calculation modes 

single mode (32 bit floating) 

or

double mode(64 bit mode)

or

double extgended mode(80-bit)

WHich of the above 3 modes (32,64,80 bit) is the default??

 

Question 2

In a more up to date version of the fortran compiler

is there more control to instruct the cpu to specifically use for example 64 bit mode floating point calculations

 

WHat we are seeing is ONLY when the fortran dlls are being run through an EXCEL spreadsheet interface,

sometimes the first time the excel is run values are returned ; but then the second and subsequent runs of the excel

interface produce a consistent set of values that are slightly different from the first set of values (usually differences start

after about 5 significant digits).

 

the hypothesis is that

1. excel opens and sets the floating point mode

2 the first time the fortran dll loads there is some static initialization that changes the floating point mode.

3 the first run completes

4 control returns to excel which sets the floating point mode back to "normal"

5 the second time the fortran dll is called from excel, there is no further static initialization, so all

floating point numbers are now being calculated in excels mode.......

 

SO, in version 10 fortran can the floating point mode be set, or what is the default

 

In more recent fortran releases are there likely to be compiler options that could

clear the problem that run 1 is different from runs 2 and subsequent.

 

ANy comment is very appreciated.

 

Thanks

Bill  (billg5@yahoo.com

A foolproof way to calculate DO LOOP iterations.

$
0
0

An afterthought ;

Why not use REAL(16) arithmetic to calculate that?

We are always guaranteed to get the correct answer for ANY combination of inputs,

and the most extreme range (-huge to +huge)

You get  a REAL(16) result, which you would round off to get the final number.

NO_STEPS = (real(STOP,16) - real(start,16)+real(step,16))/real(step,16)

Since the compiler supports REAL(16) arithmetic, this should not cause any problems.

Anyway, I wanted to see what the compiler guys think about this, since it completely

avoids the integer overflow curse.


Problem with Redistributable Files

$
0
0

I am using VisualStudio2013Pro and Intel(R) Visual Fortran Composer XE 2013 SP1 Update 3 Integration for Microsoft Visual Studio* 2013, 14.0.0092.12.

After compiling/linking in release mode, then sending the executable file to a user, when he runs it, the error message, that libifcoremd.dll is missing, is displayed.

I either need to: (1) link that dll file so that the executable file contains it (preferred, if possible), or (2) have that dll file available to him.  I cannot find a way to do (1); if you know of a way, please respond.  As far as (2), I have tried sending him the dll file and having the user to place it in the same folder as the program executable file.  Then, when he runs the program, it stops unexpectedly.

So, after some investigation, and finding almost no documentation, on (2) above, I am asking for your help.  What I really need is a tutorial on how to do this.  Some hints exist on the Internet that, along with the Intel Fortran, an executable file or msi file exists for installing, on a user's computer, all the redistributable files.  All I find there, however, besides all those dll files, is a msm file which could possibly be used for this purpose (file structure below).  I do have InstallShield2013, as well, and I could possibly use this msm file, but no instructions are there to do so.

Surely someone else has experienced this same dilemma.  Please help.

C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\intel64\compiler

06/17/2014  11:05 AM    <DIR>          1033
06/17/2014  11:05 AM    <DIR>          1041
04/23/2014  04:36 AM           305,808 cilkrts20.dll
04/23/2014  04:36 AM           265,216 cilkrts20.pdb
04/23/2014  08:34 AM           429,496 ifdlg100.dll
06/17/2014  11:04 AM    <DIR>          irml
06/17/2014  11:04 AM    <DIR>          irml_c
04/23/2014  08:34 AM           212,920 libicaf.dll
04/23/2014  08:34 AM         1,482,680 libifcoremd.dll
04/23/2014  08:34 AM         1,482,680 libifcoremdd.dll
04/23/2014  08:34 AM         1,470,904 libifcorert.dll
04/23/2014  08:34 AM         1,470,904 libifcorertd.dll
04/23/2014  08:34 AM           307,128 libifportmd.dll
04/23/2014  08:34 AM         1,075,640 libiomp5md.dll
04/23/2014  04:37 AM           592,896 libiomp5md.pdb
04/23/2014  08:34 AM            79,800 libiompstubs5md.dll
04/23/2014  08:34 AM         3,438,008 libmmd.dll
04/23/2014  08:34 AM         3,580,344 libmmdd.dll
04/23/2014  08:34 AM           467,384 liboffload.dll
04/23/2014  08:34 AM         9,050,040 svml_dispmd.dll
04/25/2014  06:47 PM        19,910,656 w_fcompxe_redist_intel64_2013_sp1.3.202.msm

Hexadecimal Constant Representation

$
0
0

Is there any difference between representations " Z'd[d...]' " and " [s] [[base] #] nnn... " which can be used to represent integer constants ? In my program, the follow two lines generate wired results ( IVF 15.0.1.148 [IA-32] is in use):

! First: This one is all right.
INTEGER(KIND=8), PARAMETER :: MaxValue1 = Z'7FFFFFFFFFFFFFFF'
! Second: This one gives an error message: "error #6384: The INTEGER(KIND=4) value is out-of-range."
INTEGER(KIND=8), PARAMETER :: MaxValue2 = #'7FFFFFFFFFFFFFFF'

I have clearly declared the integers all have KIND=8 kind type, but why the Second is wrong and the error is about INTEGER(KIND=4) ?

 

Webinar May 13 - What's New in Intel Fortran 16.0

$
0
0

Wed, May 13, 2015 12:00 PM - 1:00 PM EDT

This session will cover new features in the Intel® Fortran compiler version 16, part of Intel® Parallel Studio XE 2016. Topics include new features from Fortran standards, new OpenMP* features and changes for users of Microsoft Visual Studio*.

Register here

This session will be recorded and the recording made available sometime afterward.

Another way to avoid the INTEGER OVERFLOW problem

$
0
0

The advantage of this method, is:

You don't have to resort to a higher order arithmetic, and you always get the correct result.

integer(8) function two_int(istart,istop,istep)
integer(8) istart,istop,istep,i1m,i2m,i1d,i2d
  i1m=mod(istart,istep)
  i1d=istart/istep
  i2m=mod(istop,istep)
  i2d=istop/istep
  two_int=i2d-i1d+(i2m-i1m+istep)/istep
end function

This method also works for 4 byte quantities.

Or any number of bytes.

Problems about UMAT in ABAQUS when using Fortran

$
0
0

Hi there,

  I'm facing a very serious problem about how to use subroutines functionally now, so if you guys are so kind, please give some help and I really appreciate this!

Here is the deal, my software combo is VS2012+ABAQUS6.13+Intel Fortran2013 SP1, OS is WIN7-64bit, and I'm trying to do the research about RVE problems. The attachments are the codes and input files what I'm using now, and also including the picture of showing the error.

  As you can see from the fortran codes, if I separate them into two parts: subroutine(including UMAT, DISP, URDFIL and UEXTERNALDB) and user subroutine(including CMKirchhoff, IdentityTensor,  NodeCurrent, NodeInitial, NodesCoords, ReadKM, ReadRVEvolume, RVEvolume, StressM and StressTensors), the prompt will show "subroutine.obj: error  lnk2019 unresolved external symbol ***(which is the names of the user subroutines), this symbol is referenced in function ***(umat.R or urdfil and so on)". However, if I add these user subroutines into the subroutine code file, there will be other problems. So this make me confused.

   Anyway, I'm wondering that if anyone can help me get out of this annoying issue? many thx!

   BTW: All the codes and input files are included in the UMAT.rar showing in the attachment (because the forum can not allow me to upload .inp file...)

AttachmentSize
DownloadUMAT.rar147.8 KB

Executing a Windows program during a Fortran run

$
0
0

Hello everyone,

I am working on an optimization code, in which an external program should provide a data file, to be read by Fortran. My question is: how could I execute the external program during the Fortran run?

Thanks,

 

Paulo

 

VS2012 plus Fortran XE 2013 SP1 - redistributables

$
0
0

Hi

I have a C# console app calling a Fortran DLL.  Both are x64. (at least I thought so)

It runs fine on my PC but when I port it to another machine it falls over with Exception encountered An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B).

It seems when I examine the Fortran DLL with Dependency Walker that it's hoping to load c:\program files (x86)\common files\intel\shared libraries\redist\ia32\compiler\LIBIFCOREMDD.DLL etc.

how can I ensure that the correct 64 bit support is redistributed with the 64 bit Fortran dll...

I have checked the other posts on similar questions but it's not clear to me what I am missing.  

I am not even sure where to start looking :-}

Many thanks for your help!

Best wishes
Paul


reg query commands in scripting failing due to users not having admin rights

$
0
0

I perform sys ad work in a classified environment that is very restrictive with user rights/permissions.  The sequence of scripts called when executing C:\Program Files (x86)\Intel\Composer XE 2013\bin\ipsxe-comp-vars.bat fails because it tiers down into scripts that perform "reg query" commands to set environment variables.  Group policy has been set up to "Prevent access to registry editing tools" and no regular users will ever be granted admin rights.  The only way I could make this work was to hard code all the environment variables the "reg query" commands set.  This is a very tedious process especially when software versions are updated regularly.

Does anyone have a easier approach to remedy this issue other than sequentially commenting out all the calls to code that performs "reg query" commands and hard coding environment variables?

More threads than cores

$
0
0

Steve, Colleagues,

What does a Release-2015-compiler-produced executable do if it wants 4 cores [ CALL OMP_SET_NUM_THREADS(4) ] and it is run on a machine with an old Intel chip there are only two cores? We're trying to predict behavior on user machines that date back a while.

David

is it possible for two users to write a common Direct Access file?

$
0
0

It means the two(or more) users write different records to the same file by different programs.

How to write to the shared file by Fortran implementation?

fortcom.exe not found; How to set up command line for 64 bit builds?

$
0
0

Hello,

I am running ifort via command line (via the windows start menu). I am receiving the following error:

ifort: error #10037: could not find 'fortcom'

ifort: error #10273: Fatal error in fortcom, terminated by 0Xffffffff

I have noticed that fortcom.exe is not within bin/intel64. However, there is a copy in bin/ia32. I'm guessing my install is not setup for 64 bit builds. How do I set it up to do so? Can I simply copy fortcom.exe over to bin/intel64.

Note that everything worked fine until I did an intel software update...

Thanks!

String encrypting in Fortran

Viewing all 5691 articles
Browse latest View live


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