[ad_1]
I’m making an attempt to change from IFORT to IFX. Compilation works effective for my utility, nonetheless, I encountered an issue in debugger. I narrowed the issue to following code:
PROGRAM TEST
embody 'frequent.inc'
integer*4, allocatable :: c(:,:,:)
nx = 100
ny = 75
nz = 50
allocate ( c(nx,ny,nz) )
name callTest ( c )
deallocate ( c )
name exit ( 0 )
END
subroutine callTest ( c )
embody 'frequent.inc'
integer(4), dimension(nx,ny,nz) :: c
integer(4) :: components
components = dimension(c)
return
finish subroutine callTest
The file ‘frequent.inc’ accommodates following:
integer(4) :: nx, ny, nz
COMMON /FrequentlyUsedCommon/ nx, ny, nz
If I run debugger and add the array c to Watch, I can see it has right dimension earlier than the decision to subroutine callTest:
Nevertheless, entering into the known as subroutine causes array dimensions in Watches to vary:
The variety of components obtained utilizing the perform dimension is nonetheless right.
Compiler choices are: /nologo /debug:full /MP /Od /fastened /extend-source:132 /Qopenmp /fpscomp:common /Qdiag-disable:5462,8291,10448 /warn:declarations /warn:unused /warn:truncated_source /warn:noalignments /warn:uncalled /warn:form /warn:interfaces /assume:byterecl /fpe:0 /module:”x64Debug” /object:”x64Debug” /Fd”x64Debugvc170.pdb” /traceback /test:pointer /test:bounds /test:uninit /test:format /test:output_conversion /test:stack /libs:dll /threads /dbglibs /Qmkl:parallel /c
Linker choices are: /OUT:”x64DebugTest.exe” /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:”x64DebugTest.exe.intermediate.manifest” /MANIFESTUAC:”stage=”asInvoker” uiAccess=”false”” /DEBUG /PDB:”D:…Take a look at.pdb” /SUBSYSTEM:CONSOLE /STACK:1000000000
[ad_2]