Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28455 Discussions

Problems between 32 bit and 64 bit - Installation

mortain
Beginner
533 Views
Hi,
I made a program in fortran running under a 32 bit architecture.
Now, I passed on a 64 bit (I changed PC) and I downloaded intel fortran compiler. I tried to use the same program (force 3.0 64 bit) but it doesn't give me the results as the 32 bit ones. So, I downloaded intel fortran compiler because the sofware force is a beta release. I try to install but it gives me this advice:Problema installazione.

I have to deliver a project, hot to solve this problem?
Why I can't install intel fortran compiler? ( I download this version "w_cprof_p_11.1.046_ia64" average 370 MB)

I attach the program, the problem is in the subroutine combustore, I think the parameter alfa is the problem in that do while cycle.

Thank you
0 Kudos
6 Replies
mortain
Beginner
533 Views
I solved in a strange way.
I make the executable in my laptop 32 bit and then I took it on the 64 bit. So, the compiler has made its work on a 32 bit instead the executable ca run on a 64 bit.

p.s. I can't make changes sigh

Thanks to all
0 Kudos
TimP
Honored Contributor III
533 Views
In your 64-bit installation failure, it appears you have skipped one of the necessary components of Visual Studio:
1. C++ compiler
2. X64 add-on component of C++ compiler
3. service pack

You could have made your source code much more readable by indentation and use of SUM and DOT_PRODUCT intrinsics. As you are mixing single and (the non-standard form of) double precision, it may not be surprising if the convergence of your do while changes according to whether you select compile options which promote single precision expressions to double. Perhaps you have made it difficult for yourself to follow your own code.

The ability of the 64-bit OS to run 32-bit executables was not considered "strange" by its designers; it was a big selling point. In a case such as yours, it would postpone the need to deal with non-portability in applications.
0 Kudos
mortain
Beginner
533 Views
On the first step, would you mind explaining me how to? I have to install a C++ compiler or X64 or service pack or all together? How install them?

If I insert indentation it is more readable but how many rows it takes?
What is the use of sum and product?
I don't understand the point about convergence of the do while. I have to use only double precision?

What is the non-portability in applications?

As you can see you will have to gain white belt....

Thank you

0 Kudos
Steven_L_Intel1
Employee
533 Views
Do you have a licemse for Intel Visual Fortran or are you downloading the evaluation version? If you have a license, and do not have Microsoft Visual C++ already installed, please download the "full" installer with a filename of w_cprof_p_11.1.046.exe. When you run this it will install the necessary Visual Studio components. If you are using an evaluation license, you must obtain Visual Studio separately. You can get a 90-day free trial from Microsoft. When you install Visual Studio, you must choose a Custom install and select the "x64 Compiler and Tools" component of Visual C++. This is explained in the Fortran release notes.
0 Kudos
mortain
Beginner
533 Views
Do you have a licemse for Intel Visual Fortran or are you downloading the evaluation version? If you have a license, and do not have Microsoft Visual C++ already installed, please download the "full" installer with a filename of w_cprof_p_11.1.046.exe. When you run this it will install the necessary Visual Studio components. If you are using an evaluation license, you must obtain Visual Studio separately. You can get a 90-day free trial from Microsoft. When you install Visual Studio, you must choose a Custom install and select the "x64 Compiler and Tools" component of Visual C++. This is explained in the Fortran release notes.
I'm downloading: "Visual Studio 2008 Professional Edition" evaluation version, 3,5 GB.

Thank you.

And for the double precisione in the do while.......

Thank you.
0 Kudos
Steven_L_Intel1
Employee
533 Views
I think Tim wanted you to replace:

do while (abs(diff).gt.0.00000001)

with:

do while (abs(diff).gt.0.00000001D0)

and make similar changes elsewhere where you have similar expressions. The problem is that without the D0 (or _8), the value is single precision and may not convert to double in a way you expect. In general, you should avoid "mixed-mode" expressions where the operands have different types or kinds (precision level).
0 Kudos
Reply