intel-fortran

The mysterious nature of Fortran 90 modules

∥☆過路亽.° 提交于 2019-12-03 12:44:29
Fortran 90 modules are evanescent creatures. I was using a (singular) module for a while with some success (compiling using Intel Visual Fortran and Visual Studio 2010). Then I wrote another module and tried to USE it in another function, before receiving this error: error #7002: Error in opening the compiled module file. Check INCLUDE paths. So I deleted the offending module. But now I receive the same error after when trying to access my original module! How can I locate these mysterious creatures? Why does one module work but not two? I'm assuming that I need to delete and recompile them,

Fixing FORTRAN IV warning: “The number of arguments is incompatible with intrinsinc procedure, assume 'external' ”

南笙酒味 提交于 2019-12-02 21:00:41
问题 I need to run an old FORTRAN IV code I was given (which is supposed to run just fine). I downloaded a trial version of Intel compiler and tried to compile the source file I was given with the command: ifort -f66 abel.for -o mycode where abel.for is the name of the source file. I got a bunch of warnings and errors. I wanted to ask about the first warning I was given: The number of arguments is incompatible with intrinsinc procedure, assume 'external'. [KNOT] where KNOT is a function defined as

How do I compile this Fortran code with new 2017 ifort?

混江龙づ霸主 提交于 2019-12-02 17:58:09
问题 I have the following fortran code that compiles with pre 2017 ifort: program parallel_m contains character(500) function PARALLEL_message(i_ss) character(50) :: Short_Description = " " integer :: i_s =0 integer :: n_threads = 0 ! PARALLEL_message=" " ! if (i_s>0) then if (len_trim("test this ")==0) return endif ! if (i_s==0) then PARALLEL_message=trim("10")//"(CPU)" if (n_threads>0) PARALLEL_message=trim(PARALLEL_message)//"-"//trim("200")//"(threads)" else PARALLEL_message=trim("a")//"

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

泪湿孤枕 提交于 2019-12-02 13:52:06
问题 and thanks ahead of time for any help! I have compiled a program (which I did not write) and it works just fine on Mac's but when I try to execute the program on Windows I get the following error message shortly after execution of the program began: forrt1: severe (170): Program Exception - stack overflow I am not an ifort or Fortran user, but trying to compile a program for work. I did an "ifort --version" and I am using Intel Visual Fortran Compiler XE with verion 12.0.0.104. I have been

Fixing FORTRAN IV warning: “The number of arguments is incompatible with intrinsinc procedure, assume 'external' ”

泄露秘密 提交于 2019-12-02 13:24:54
I need to run an old FORTRAN IV code I was given (which is supposed to run just fine). I downloaded a trial version of Intel compiler and tried to compile the source file I was given with the command: ifort -f66 abel.for -o mycode where abel.for is the name of the source file. I got a bunch of warnings and errors. I wanted to ask about the first warning I was given: The number of arguments is incompatible with intrinsinc procedure, assume 'external'. [KNOT] where KNOT is a function defined as: C AAOK0162 C PROCEDURE FOR LOCATING THE SPLINE SECTION TO WHICH AN AAOK0163 C ARGUMENT BELONGS.

Unresolved references using IFORT with nvcc and CUSP

大兔子大兔子 提交于 2019-12-02 08:40:15
I have a program which I'm compiling like this: (...) Some ifort *.f -c nvcc -c src/bicgstab.cu -o bicgstab.o -I/home/ricardo/apps/cusp/cusplibrary (...) Some more *.for -c ifort *.o -L/usr/local/cuda-5.5/lib64 -lcudart -lcublas -lcusparse -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -o program Everything worked fine until i added the CUSP support where i have this wrapper (bicgstab.cu): #include <cusp/csr_matrix.h> #include <cusp/krylov/bicgstab.h> #if defined(__cplusplus) extern "C" { #endif void bicgstab_(int * device_I, int * device_J, float * device_V, float * device_x, float *

Calling a subroutine in Fortran (Segmentation fault)

廉价感情. 提交于 2019-12-02 05:22:47
问题 The following code gives segmentation error when compiled with pgf90 on the Linux system, while is run successfully when I used the Intel Visual FORTRAN on Windows. program main implicit none integer:: a(3), b(3) ,c(3) a=[3, 4, 5] b=[1, 2, 3] call sub(a,b,c) write(*,*)'a+b = ',c end program main subroutine sub(a,b,c) implicit none integer, intent(in)::a(:),b(:) integer, intent(out)::c(:) c=a+b end subroutine sub Any explanation for this ? 回答1: When you call a subroutine which has assumed

2D array concatenation in fortran

落爺英雄遲暮 提交于 2019-12-02 04:03:14
问题 Fortran 2003 has square bracket syntax for array concatenation, Intel fortran compiler supports it too. I wrote a simple code here for matrix concatenation: program matrix implicit none real,dimension (3,3) :: mat1,mat2 real,dimension(3,6):: mat3 integer i mat1=reshape( (/1,2,3,4,5,6,7,8,9/),(/3,3/)) mat2=reshape( (/1,2,3,4,5,6,7,8,9/),(/3,3/)) mat3=[mat1,mat2] !display do i=1,3,1 write(*,10) mat3(i,:) 10 format(F10.4) end do end program But I get error as mat3=[mat1,mat2] Error: Incompatible

2D array concatenation in fortran

你说的曾经没有我的故事 提交于 2019-12-02 02:11:41
Fortran 2003 has square bracket syntax for array concatenation, Intel fortran compiler supports it too. I wrote a simple code here for matrix concatenation: program matrix implicit none real,dimension (3,3) :: mat1,mat2 real,dimension(3,6):: mat3 integer i mat1=reshape( (/1,2,3,4,5,6,7,8,9/),(/3,3/)) mat2=reshape( (/1,2,3,4,5,6,7,8,9/),(/3,3/)) mat3=[mat1,mat2] !display do i=1,3,1 write(*,10) mat3(i,:) 10 format(F10.4) end do end program But I get error as mat3=[mat1,mat2] Error: Incompatible ranks 2 and 1 in assignment I expect the output as 1 2 3 1 2 3 4 5 6 4 5 6 7 8 9 7 8 9 Can someone

Calling a subroutine in Fortran (Segmentation fault)

故事扮演 提交于 2019-12-02 01:24:14
The following code gives segmentation error when compiled with pgf90 on the Linux system, while is run successfully when I used the Intel Visual FORTRAN on Windows. program main implicit none integer:: a(3), b(3) ,c(3) a=[3, 4, 5] b=[1, 2, 3] call sub(a,b,c) write(*,*)'a+b = ',c end program main subroutine sub(a,b,c) implicit none integer, intent(in)::a(:),b(:) integer, intent(out)::c(:) c=a+b end subroutine sub Any explanation for this ? When you call a subroutine which has assumed shape dummy arguments (as is the case in this program), an explicit interface is required. The easiest way to