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

Compiling Calculix with Visual Studio and ifort

$
0
0

Hello,

I am trying to build Calculix (for example here: https://github.com/prool/ccx_prool/tree/master/CalculiX/ccx_2.15/src) in Visual Studio 2015 with Intel Fortran. Normally it is built with gcc and gfortran. It mixes C and Fortran, and I am having troubles now with arrays dynamically allocated in C because in Fortran ifort expects a dimension.

subroutine calinput(kon)
implicit none 
integer(C_LONG_LONG) kon(*) 

But this is working:

      subroutine calinput_c(kon, kons) bind(C)
      USE, INTRINSIC :: ISO_C_BINDING
!
      implicit none
!
      integer(C_LONG_LONG) kons
      integer(C_LONG_LONG), DIMENSION(kons) ::kon

      kon(1) = kon(1)
      return
      end

Is there a way to get the first variant to compile with ifort?

There was some work done previously to compile calculix, can I get the files?

https://software.intel.com/en-us/forums/intel-c-compiler/topic/536919

Thank you in advance!


Fastest Way to Initialize Variables

$
0
0

Most Efficient Way To Initialize Variables.

Say one has the following variable:

doubleprecision, dimension(6,10000) :: dblResults = 0.0d0

Every analysis cycle one needs to re-zero the dblResults array. The first dimension of 6 is always used to its full extent. The second dimension is “number of members” and is set at 10000 as an upper limit that should never be reached. Assume in this run of the analysis the first 100 positions of the second dimension are actually used, i.e. intNumMem = 100

! which of the following options runs fastest to re-zero the dblResults array for the next analysis cycle and is the preferred way to write the code. (Or is there yet a different and even better way to re-zero the array?)

! option 1

dblResults = 0.0d0

! option 2

dblResults(1:6, 1:intNumMem) = 0.0d0

! option 3

do i = 1, 6

   do j = 1, intNumMem

        dblResults (i, j) = 0.0d0

   end do

end do

! option 4

forall (i=1:6,  j=1,intNumMem) 

       dblResults(i, j) = 0.0d0

end forall

Thank you very much in advance for your comments.

Bob

Comment line beginning with "C" is not shown in green in the editor.

$
0
0

Comment line beginning with "C" is not shown in green in the editor.  On an older PC, it was.  Compilation is correct in both cases.

severe (41): insufficient virtual memory

$
0
0

Windows 10x64, has 76 Gb free real memory, and have very small (1Gb) virtual memory. Program compiled as x64 application, and at the attempt to allocate 3Gb memory matrix ends with message severe (41): insufficient virtual memory. May be (but it strange) it needs namely VIRTUAL, not real memory? Or, what I can do wrong?

Intel Fortran Composer 2019 Update 4 for Windows can not find installed Visual Studio Professional 2019

$
0
0

When trying to link I get the following

C:\Program Files (x86)\IntelSWTools\parallel_studio_xe_2019.4.066\bin>psxevars.bat intel64
Intel(R) Parallel Studio XE 2019 Update 4
Copyright (C) 2009-2019 Intel Corporation. All rights reserved.

ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.

 

I've followed advice from previous posts such as https://software.intel.com/en-us/articles/installing-microsoft-visual-st... - but this workload was already installed before the Intel Fortran composer. Any suggestions greatly appreciated!

Interoperability: Fortran to C++

$
0
0

I would like to develop a Fortran Static Library that include a custom subroutine that takes a long time to complete.
This static library will be linked in my C++ application statically too.

My goal is monitoring that current status of this subroutine in my C++ application in real-time.
So, for each step of a "fortran loop", I would like tosend the loop index to my C++ application.

I'm new in Fortran world, so I was thinking that this task could be something like this:

My C++ header:

extern "C" void fortran_status(int* value);

My Fortran-90 file:

module my_interfaces
    use iso_c_binding
        interface
            subroutine fortran_status(progress_value) bind(C, name = 'fortran_status')
                use, intrinsic :: iso_c_binding
                integer(c_int), intent(out) :: progress_value
            end subroutine fortran_status
        end interface
end module my_interfaces

    
! My long calc subroutine
subroutine my_long_calc(progress_value) BIND(C, name = 'my_long_calc')
    use, intrinsic :: ISO_C_BINDING
    use my_interfaces
    implicit none

    EXTERNAL fortran_status
    
    integer (C_INT), INTENT(INOUT) :: progress_value
    integer (C_INT) :: count
    
    
    do count = 0, 5    
        progress_value = progress_value + 1
        
        ! Send 'progress_value' to a C++ function:
        call fortran_status(progress_value)
        
        ! Wait 1 second:
        call sleep(1)
    end do
    
end subroutine my_long_calc

This code gives me a compile-time error:
 

error #6406: Conflicting attributes or multiple declaration of name.   [FORTRAN_STATUS]       C:\Users\lamar\Desktop\Lib1_interface\Lib1.f90    18 

   

I'm using Microsoft Visual Studio 2019 with Intel Visual Fortran (Windows 10 x64).

How could I monitoring that subroutine status? Or get the fortran loop index in my C++ application?

Unresolved external linker errors with VS2015

$
0
0

I am getting the following Linker error after finally getting things to compile for a project converted from Visual Studio 2005 to Visual Studio 2015 / Intel Parallel Studio XE 2017 (on Windows 10).

libmmt.lib(libm_error.obj) : error LNK2019: unresolved external symbol __snprintf referenced in function _write_message

I've read through similar issues on this forum:

https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-fo...
https://software.intel.com/en-us/articles/configuring-visual-studio-for-...

I've tried to verify consistency between my Fortran and C/C++ projects.  All my C/C++ projects have "Runtime Library" set to "Multi-threaded Debug".  All of my Fortran projects have "Runtime Library" set to "Debug Multithreaded".  In the other posts, how did everyone know that the users had mixed static and dynamic libraries?  I have yet to investigate external libraries referenced.

I've also added the IFORT_COMPILER17 paths to include/library directory lists.

Does anyone have any other ideas?

 

New Interoperability: Fortran to C++ (String case)

$
0
0

I would like to send a Fortran string to my C++ application, I tried to to this, but I got this linker error:

unresolved external symbol for_cpystr referenced in function my_long_calc

My Fortran Static Lib Code (Visual Fortran):

module my_interfaces
    use iso_c_binding
        interface
            subroutine fortran_message(msg) bind(C, name = 'fortran_message')
                use, intrinsic :: iso_c_binding
                
                character(kind = c_char), dimension(*), intent(out) :: msg
                
            end subroutine fortran_message
        end interface
end module my_interfaces

! My long calc subroutine
subroutine my_long_calc() BIND(C, name = 'my_long_calc')
    use, intrinsic :: ISO_C_BINDING
    use my_interfaces
    implicit none
    
    ! A single variable:
    character(len = 40, kind = c_char) :: msg
    
    msg = "this is a msg from fortran"    
    ! Send a message to the C++ application:
    call fortran_message(msg)
end subroutine my_long_calc

My C++ Code:
 

#include <iostream>

extern "C" {
  void my_long_calc(void);
  void fortran_message(char* msg);
}

void fortran_message(char* msg)
{
  std::cout << *msg << std::endl;
}

int main(int argc, char *argv[])
{
    my_long_calc();

    return 0;
}

Please, what I have to do to link this library and get the "msg" string inside the C++ application?


New project property

$
0
0

When a new project created, could I use pre-defined project properties, like F2003, x64 platform in release mode, some libs?

IVF vs CVF Floating Point Results

$
0
0

All,

Have a project originally built in CVF 6.6 which worked properly. I now have IVF XE 2016 Update 3 and have discovered some calculations dealing with Floating Point are yielding results which are close...but not good enough for proper operations.

Example:

REAL        YGRDPT,XGRDPT,YTSPNT,XTSPNT

INTEGER IXS,IYS

YTSPNT=YGRDPT-FLOAT(IYS)+1.
XTSPNT=XGRDPT-FLOAT(IXS)+1.

 

CVF shows the following:

 XGRDPT,YGRDPT,IXS,IXE,IYS,IYE =    293.9000       109.2000        290    297   106    113
 TSS: IXS/IYS  =     290    106
 TSS: X/YGRDPT =    293.9000       109.2000    
 TSS: X/YTSPNT =    4.899963       4.199997    <<<< GOOD!!
 

IVF shows the following:

 XGRDPT,YGRDPT,IXS,IXE,IYS,IYE =    293.8999       109.2000        290    297   106    113
 TSS: IXS/IYS  =     290    106
 TSS: X/YGRDPT =    293.8999       109.2000    
 TSS: X/YTSPNT =    4.899902       4.200012    <<<< BAD!!
 

So, I converted them to REAL*8...CVF shows this:

 XGRDPT,YGRDPT,IXS,IXE,IYS,IYE =    293.9000       109.2000        290    297
    106    113
 TSS: IXS/IYS  =     290    106
 TSS: FXS/FYS  =    290.0000       106.0000    
 TSS: DX/YGRDPT =    293.899963378906        109.199996948242     
 TSS: DX/YTSPNT =    4.89996337890625        4.19999694824219     
 TSS: X/YGRDPT =    293.9000       109.2000    
 TSS: X/YTSPNT =    4.899963       4.199997        <<<< GOOD!!
 

And IVF shows this:

 XGRDPT,YGRDPT,IXS,IXE,IYS,IYE =    293.8999       109.2000        290    297 106    113
 TSS: IXS/IYS  =     290    106
 TSS: FXS/FYS  =    290.0000       106.0000    
 TSS: DX/YGRDPT =    293.899902343750        109.200012207031     
 TSS: DX/YTSPNT =    4.89990234375000        4.20001220703125     
 TSS: X/YGRDPT =    293.8999       109.2000    
 TSS: X/YTSPNT =    4.899902       4.200012     <<<< BAD!!

The X/YTSPNT result in IVF need to match the results in CVF. How do I get that to occur?

Thanks in advance,

Jeff

 

optimization: merging redundant sums into one single sum/loop

$
0
0

Consider the following concise beautiful one-line Fortran code, which computes the mean of a wieghted sample of points,

mean = sum(Weight*Point) / sum(Weight)

Here  real(real64) :: Point(1:np)  contains all the data points and integer(int32) :: Weight(1:np) of the same length contains the wieghts.

However, in a loop implementation of the above code, the two sum() in the above can be merged into a single do-loop, potentially avoiding the extra looping and loop-overhead.

Is ifort smart enough to merge the two sums into a single loop with optimizations enabled, given that both Point(np) and Weight(np) are declared as automatic dummy arrays of the same length np?

Internal formatted read, mixing Compiler version 9.1 and 2019.3 gives runtime error

$
0
0

Hi,

in a project, we use DLLs from different sources. One of them is compiled using Intel Fortran 9.1. It is integrated into a main program and other code compiled with Intel Fortran 2019.3. In the end, the program runs with just the runtime of Fortran 2019.3.

The code compiled in version 9.1 does an internal formatted read like this:

      DOUBLE PRECISION    A
      CHARACTER*15        STRING
      INTEGER             TMPEXP 
         
      A = 3.1415
      WRITE(STRING(1:13),'(SP,E13.6)') A

The next line causes a runtime error:

      READ (STRING(11:13),'(I3)') TMPEXP

forrtl: severe (268): end of record during read, unit -5, file Internal Formatted Read

 

This runtime error only happens within the code compiled in version 9.1 and using the runtime DLL libifcoremd.dll of version 2019.3. Previous runtime versions more recent than 9.1 did work fine.

Is there a way to get this to work? 

 

For completion, I've attached an example of a C main program that calls the Fortran subroutine, including the build commands. If the Fortran file is compiled with 9.1 and when running with the runtime of 2019.3, there is the runtime error.

 

Regards

Holger

AttachmentSize
Downloadapplication/x-7z-compressedFortranTest.7z2.37 MB

coarray

$
0
0

Hi,

I have tested the coarray,but in trouble. 

program hello_world
	write (*,*) 'hello from image ', this_image(), ' out of ', &
		num_images(), ' images.'
end program hello_world

 command line option :
 /Qcoarray:shared /Qcoarray-num-images:4

output:

 hello from image            1  out of            1  images.
 hello from image            1  out of            1  images.
 hello from image            1  out of            1  images.
 hello from image            1  out of            1  images.

 

How to deal with it?

OpenMP Performance Degradation

$
0
0

Hello

I have a Fortran program which heavily utilizes OpenMP for multithreading. The program performs some heavy computations on the input data. I've started to see performance degradation when several successive runs are performed in a single session. This problem does not happen all the time but occasionally. I further investigated the issue via VTune and the result are (OpenMP is told to use 22 threads in both sessions):

Here is a sample of when the performance stays the same across successive runs:

and here is a sample of when the performance drastically decreases between runs (I've omitted some of the threads in this pic to make it smaller):

It appears that in the first session OpenMP reuses the same threads in the second run that where originally created for the first run but in the second session OpenMP creates new threads for the second run. Also the CPU time (load) in the threads created for the second run are considerably lower than those for the first run.

I was wondering if you could point me in the right direction for resolving this issue?

 

minloc error message

$
0
0

Is the compile error correct? It was not what I expected.

program fred
implicit none
integer :: n
integer :: ip 
real    :: harry(5)

harry = [ 1.0, 2.0, 0.5, 4.0, 5.0 ]
N = 3

ip = minloc( harry(1:n) )           ! error #6366: The shapes of the array expressions do not conform.   [IP]
ip = minloc( harry(1:n), dim = 1 )  ! ok

end

 


Intel Fortran to call a VB .NET DLL and pass a string array (! NOT VB.net to call fortran! )

$
0
0

Dear Fortran Guru,

I would like to pass an array of string FROM Inlet Fortran to VB.net but cannot manage it (the problem is not calling from Vb.NET to Fortran but FROM fortran TO call Vb. Net). The VB.NET subroutine doesn't fire.

Please find hereafter and attached a code sample. There are two projects :

- VbDLL is the Vb.NET project that creates the COM DLL to be called by fortran. (compiling it on your computer should register the DLL).

-Fortran is the executable that would call the VbDLL. I used module wizard with automation to create the interface code.

The sample works great for a integer, a real and a string but not for an array of integer ... Simply nothing happens ... No error message Nothing.

The final goal is passing a two dimension string array ...

 

     PROGRAM TESTSOLUTION
      
      USE VbDLL
      USE IFCOM
      USE IFAUTO
      USE IFWINTY
      Use IFCOMTY

      INTEGER(4) ret,Obj
      CHARACTER*20 STR      
      INTEGER(4) iTAB(4)
      

      Type(VARIANT) :: SA ! Variant SafeArray
      Type(sa_bounds) :: bounds(1)      

     
      iTAB(1)=1
      iTAB(2)=2
      iTab(3)=3
      iTab(4)=4
      
      
      call COMInitialize(ret)      
      If(ret.NE.0)GOTO 1159
          
C ----- Initialisation of object pointer ----------------
      call COMCreateObject("VbDLL.VBDLL",Obj,ret)
      If(ret.NE.0)GOTO 1159

C ------- COM TYPE CALL 
      CALL $VBDLL_Hello(Obj,ret)
      CALL $VBDLL_HelloInt(Obj,1,ret)
      CALL $VBDLL_HelloReal(Obj,2.,ret)
      STR="Hello World"
      CALL $VBDLL_HelloString(Obj,STR,ret)

C ------ With this call, Nothing happens......
      CALL $VBDLL_HelloArray1D(Obj,iTab,ret)
      
      
      
C ------ Using SafeArray doesn't allow to compile ....

      bounds(1)%lbound = lbound(iTab,1)
      bounds(1)%extent = ubound(iTab,1)
      
      SA%VT = VT_I4
      SA%VU%PTR_VAL = SafeArrayCreate(VT_I4, 1, bounds(1))
 
C uncomment this line to try       
C      CALL $VBDLL_HelloArray1D(Obj,SA,ret)
      

      
      Istatus = COMRELEASEOBJECT(Obj)
      Call COMUninitialize()
 1159 CONTINUE
      END

 

 

The interface generated by Module Wizard :

! VbDLL.f90

! This module contains the Automation interfaces of the objects defined in 
! C:\Users\vga\AppData\Local\Temp\VbDLL.TLB
! Generated by the Fortran Module Wizard on 08/20/19

	MODULE VbDLL
		USE IFWINTY
		USE IFAUTO
		IMPLICIT NONE
	

		! CLSIDs		
		TYPE (GUID), PARAMETER :: CLSID_VBDLL = &
			GUID(#4C31A291, #FC78, #323B, &
			  CHAR('BF'X)//CHAR('7C'X)//CHAR('31'X)//CHAR('41'X)// &
			  CHAR('FD'X)//CHAR('0F'X)//CHAR('BC'X)//CHAR('9D'X))


		! Module Procedures
		CONTAINS
  			SUBROUTINE $VBDLL_Hello($OBJECT, $STATUS)
				IMPLICIT NONE
	
				INTEGER(INT_PTR_KIND()), INTENT(IN)	:: $OBJECT	 ! Object Pointer
				!DEC$ ATTRIBUTES VALUE	:: $OBJECT
				INTEGER(4), INTENT(OUT), OPTIONAL	:: $STATUS	 ! Method status
				!DEC$ ATTRIBUTES REFERENCE			:: $STATUS
				INTEGER(4) $$STATUS
				INTEGER(INT_PTR_KIND()) invokeargs
				invokeargs = AUTOALLOCATEINVOKEARGS()
				$$STATUS = AUTOINVOKE($OBJECT, 1, invokeargs)
				IF (PRESENT($STATUS)) $STATUS = $$STATUS
				CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
			END SUBROUTINE $VBDLL_Hello
  			SUBROUTINE $VBDLL_HelloArray1D($OBJECT, TableEntier, $STATUS)
				IMPLICIT NONE
	
				INTEGER(INT_PTR_KIND()), INTENT(IN)	:: $OBJECT	 ! Object Pointer
				!DEC$ ATTRIBUTES VALUE	:: $OBJECT
				INTEGER(4), DIMENSION(:), INTENT(INOUT), VOLATILE	:: TableEntier	! (SafeArray)
				!DEC$ ATTRIBUTES REFERENCE	:: TableEntier
				INTEGER(4), INTENT(OUT), OPTIONAL	:: $STATUS	 ! Method status
				!DEC$ ATTRIBUTES REFERENCE			:: $STATUS
				INTEGER(4) $$STATUS
				INTEGER(INT_PTR_KIND()) invokeargs
				invokeargs = AUTOALLOCATEINVOKEARGS()
				CALL AUTOADDARG(invokeargs, '$ARG1', TableEntier, AUTO_ARG_INOUT)
				$$STATUS = AUTOINVOKE($OBJECT, 5, invokeargs)
				IF (PRESENT($STATUS)) $STATUS = $$STATUS
				CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
			END SUBROUTINE $VBDLL_HelloArray1D
  			SUBROUTINE $VBDLL_HelloInt($OBJECT, Entier, $STATUS)
				IMPLICIT NONE
	
				INTEGER(INT_PTR_KIND()), INTENT(IN)	:: $OBJECT	 ! Object Pointer
				!DEC$ ATTRIBUTES VALUE	:: $OBJECT
				INTEGER(4), INTENT(IN)	:: Entier	
				!DEC$ ATTRIBUTES REFERENCE	:: Entier
				INTEGER(4), INTENT(OUT), OPTIONAL	:: $STATUS	 ! Method status
				!DEC$ ATTRIBUTES REFERENCE			:: $STATUS
				INTEGER(4) $$STATUS
				INTEGER(INT_PTR_KIND()) invokeargs
				invokeargs = AUTOALLOCATEINVOKEARGS()
				CALL AUTOADDARG(invokeargs, '$ARG1', Entier)
				$$STATUS = AUTOINVOKE($OBJECT, 2, invokeargs)
				IF (PRESENT($STATUS)) $STATUS = $$STATUS
				CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
			END SUBROUTINE $VBDLL_HelloInt
  			SUBROUTINE $VBDLL_HelloReal($OBJECT, Reel, $STATUS)
				IMPLICIT NONE
	
				INTEGER(INT_PTR_KIND()), INTENT(IN)	:: $OBJECT	 ! Object Pointer
				!DEC$ ATTRIBUTES VALUE	:: $OBJECT
				REAL(4), INTENT(IN)	:: Reel	
				!DEC$ ATTRIBUTES REFERENCE	:: Reel
				INTEGER(4), INTENT(OUT), OPTIONAL	:: $STATUS	 ! Method status
				!DEC$ ATTRIBUTES REFERENCE			:: $STATUS
				INTEGER(4) $$STATUS
				INTEGER(INT_PTR_KIND()) invokeargs
				invokeargs = AUTOALLOCATEINVOKEARGS()
				CALL AUTOADDARG(invokeargs, '$ARG1', Reel)
				$$STATUS = AUTOINVOKE($OBJECT, 3, invokeargs)
				IF (PRESENT($STATUS)) $STATUS = $$STATUS
				CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
			END SUBROUTINE $VBDLL_HelloReal
  			SUBROUTINE $VBDLL_HelloString($OBJECT, Str, $STATUS)
				IMPLICIT NONE
	
				INTEGER(INT_PTR_KIND()), INTENT(IN)	:: $OBJECT	 ! Object Pointer
				!DEC$ ATTRIBUTES VALUE	:: $OBJECT
				CHARACTER(LEN=*), INTENT(IN)	:: Str	! BSTR
				INTEGER(4), INTENT(OUT), OPTIONAL	:: $STATUS	 ! Method status
				!DEC$ ATTRIBUTES REFERENCE			:: $STATUS
				INTEGER(4) $$STATUS
				INTEGER(INT_PTR_KIND()) invokeargs
				invokeargs = AUTOALLOCATEINVOKEARGS()
				CALL AUTOADDARG(invokeargs, '$ARG1', Str, AUTO_ARG_IN, VT_BSTR)
				$$STATUS = AUTOINVOKE($OBJECT, 4, invokeargs)
				IF (PRESENT($STATUS)) $STATUS = $$STATUS
				CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
			END SUBROUTINE $VBDLL_HelloString
	END MODULE

 

 

 

 

 

 

And VB .NET code : 

Imports System.Runtime.InteropServices ' Required for using MarshalAs

<Microsoft.VisualBasic.ComClass()> Public Class VBDLL

    Public Sub Hello()
        MsgBox("This function demonstrate the 'Hello World' with No Argument")
    End Sub

    Public Sub HelloInt(ByVal Entier As Integer)
        MsgBox("This function demonstrate the 'Hello World' with Integer : "& Entier)
    End Sub

    Public Sub HelloReal(ByVal Reel As Single)
        MsgBox("This function demonstrate the 'Hello World' with Real : "& Reel)
    End Sub

    Public Sub HelloString(ByVal Str As String)
        MsgBox("This function demonstrate the 'Hello world' with a string : "& Str)
    End Sub


    ' I also tried this declaration type but it doesn't work either.
    'Public Sub HelloArray1D(<MarshalAs(UnmanagedType.SafeArray, SafeArraySubType:=VarEnum.VT_I4)> ByRef TableEntier() As Integer)

    Public Sub HelloArray1D(ByRef TableEntier() As Integer)
        ' When calling this function from fortran nothing happens.
        For i = 0 To TableEntier.Length - 1
            MsgBox("This function demonstrate the 'Hello world' with an array of 1 dimension : "& TableEntier(i))
        Next
    End Sub



    ' This are the next step that I would like to do. 

    'Public Sub HelloArray2D(ByRef TableEntier(,) As Integer)
    '    MsgBox("This function demonstrate the 'Hello world' with an array of 2 dimension : "& TableEntier(0, 0))
    'End Sub

    'Public Sub HelloArray2DString(ByRef TableStr(,) As String)
    '    MsgBox("This function demonstrate the 'Hello world' with an array of 2 dimension : "& TableStr(0, 0))
    'End Sub


End Class

 

AttachmentSize
Downloadapplication/zipFortran Calls VB.zip936.96 KB

How to find LNK2019 unresolved external symbol

$
0
0

Hello,

I am working with a very large Fortran program containing several hundred subroutines using Intel Parallel Studio XE 2020 (Beta) and ran into a difficulty today after editing over 500 instances of a variable named MTYP.  The following error occurs:

1>Sourcefile.obj : error LNK2019: unresolved external symbol _MTYP@4 referenced in function _vfe$0003T187$BLK

I obviously messed something up in my editing, but did not see any obvious error in the source file that produced Sourcefile.obj.  Is there any way to tell what function is being referenced in the message: _vfe$0003T187$BLK?  Thanks.

Bill

Progress bars and OpenMP

$
0
0

I have a compute intensive loop parallelized using OpenMP:

!$omp parallel do

do j = 1, nc

call sub1(.....

call sub2(.....

......

.end do

!$omp end parallel do

The software I am developing uses a progress bar, and even with the parallelization the loop can be slow. I would like to insert a progress bar update into it. The progress bar works by checking how long a time has elapsed since it was last updated; if it is greater than a certain limit, then the update occurs via:

call updateProgressBar()

Is there any way of doing this?

 

lapack dsyevx

intel math kernel library

$
0
0

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

I want to calculate the eigenvalue eigenvector fortranda.
I have a few questions here.
1- Select dynamic or static linking: what is dynamic static, single dynamic library
2- Select interface layer: 32 or 64
3- Select threading layer: open mpı squental ...?
4- Select OpenMP library: What is intel libiomp5md.lib
5- Select MPI library: What if I choose paralleling even if my program is not parallel?
6- Select the Fortran 95 interfaces: when should I check this
7- Use this link line: where do we use the links here?
8- Compiler options: where do we write this part?

Viewing all 5691 articles
Browse latest View live


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