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

Array Visualizer

abhimodak
New Contributor I
870 Views

Sorry to post this one on this forum but the array visualizer forum seems to be dead....or probably the issue below has been asked many many times. I would appreciate a quick pointers or two. Thanks!

------------------

Although I have searched through quite a few threads on this forum, I haven't found an answer. pardon me for asking this question, but "I have problem using the visualizer in the debug mode in VS 2005 with Intel Fortran." The view array remain greyed out.What is (can be) wrong?

(1) I did uninstall and install of the AV using the link available from the opening threads of this forum.
(2) I have added the library and include paths for the correct build environment (x64).
(3) I am using 64 bit XP professional with VS 2005 professional.
(4) The AV is installed in C:/Program Files/Intel and not in C:/Program File (x86)/Intel

As an additional question, even after adding the library and include paths, athough I don't get an error with use of "Use AvFRT", I cannot call the libary subroutines (unresolved symbols). My guess is that I need to update the path to include the dll in bin directory. Is that right?

Sincerely
Abhi

0 Kudos
6 Replies
jimdempseyatthecove
Honored Contributor III
870 Views

Abhi

I have been using AV for several years now and I am quite pleased with it.

On my x64 system I have placed the AV files into

Program Files (x86)IntelArray Visualizer

I also modified the make files and the batch file that runs the two make files. Visual Studio prefers to place the binaries below the source directory so I made alterations to the effect.

Add to the include path (assuming you build to this directory)

C:Program Files (x86)IntelArray VisualizersrcAvFRT$(PlatformName)Debug

Or ...Release as the case may be

My modified files below.

Also, I plot a very large number of items and found it necessary to modify AvCRTAvList.h. Near the bottom

MAX_AVLIST_ELEMENTS=5000

It used to be 100. For some reason this is not dynamicly allocated. This specifies a table of pointers so it could be arbitrarily large and not consume unreasonable ammount of unnecessary memory.

Jim Dempsey

--- C:Program Files (x86)IntelArray Visualizersrcdobuild.bat ---
SET PLATFORM=EM64
cd AvCRT
nmake /f AvCRT.mak
nmake /f AvCRT.mak CFG="Debug"
cd ..
cd AvFRT
nmake /f AvFRT.mak
nmake /f AvFRT.mak CFG="Debug"
cd ..
-----------------------------------------------------------------
--- C:Program Files (x86)IntelArray VisualizersrcAvCRTAvCRT.mak ---
#
# Copyright (C) 2005 Intel Corporation. All rights reserved.
#
# The information and source code contained herein is the exclusive property
# of Intel Corporation and may not be disclosed, examined, or reproduced in
# whole or in part without explicit written authorization from the Company.
#
#
# Makefile for AvCRT library
LINKER=link.exe
RSC=rc.exe
PROJ=AvCRT
!if "$(CC)" == ""
CC=cl
!endif
!if "$(PLATFORM)" == ""
!message setting PLATFORM=EM64
PLATFORM=EM64
!endif
INCLUDEDIR=/I "../../include" /I "../../AvLib" /I .
BASEFLAGS= /D "WIN32" /D "_MBCS" 
!IF "$(PLATFORM)" == "IA64"
BASEFLAGS=$(BASEFLAGS) /D "_IA64_" /wd4163 /wd4996
!ELSEIF "$(PLATFORM)" == "EM64"
BASEFLAGS=$(BASEFLAGS) /D "_EM64T_" /wd4163 /wd4996
!ENDIF
BASEFLAGS=$(BASEFLAGS) /W3 /EHsc /nologo /c
COMMONFLAGS=$(BASEFLAGS) /D "_LIB" /D "_WINDOWS" /Zl 
DEBUGFLAGS=/Od /D "_DEBUG" /EHsc /Wp64 /Zi
RELEASEFLAGS=/O2 /Ob1 /D "NDEBUG" /D "_ATL_STATIC_REGISTRY" /GF /Gy
CRT= ML
DEBUGFLAGS=$(DEBUGFLAGS) /$(CRT)d
RELEASEFLAGS=$(RELEASEFLAGS) /$(CRT)
LINKLIBS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
UNICODEFLAGS=/D "_UNICODE" /D "UNICODE"
CFLAGS_V7=/RTC1
!IF "$(PLATFORM)" == "IA64" 
LINKFLAGS= $(LINKFLAGS) /machine:IA64 /LIBPATH:"$(TOPDIR)"lib
!ELSEIF "$(PLATFORM)" == "EM64"
LINKFLAGS= $(LINKFLAGS) /machine:X64 /LIBPATH:"$(TOPDIR)"lib
!ELSE
LINKFLAGS= $(LINKFLAGS) /machine:I386
!ENDIF
!IF "$(PLATFORM)" == "IA64" 
OUTDIR=./Itanium
INTDIR=./Itanium
!ELSEIF "$(PLATFORM)" == "EM64"
OUTDIR=./X64
INTDIR=./X64
!ELSE
OUTDIR=.
INTDIR=.
!ENDIF
!IF "$(CFG)" == "Debug"
OUTDIR=$(OUTDIR)/Debug
INTDIR=$(INTDIR)/Debug
DEBUGFLAGS = $(DEBUGFLAGS) /Fd"$(OUTDIR)/$(PROJ)d.pdb"
CFLAGS=$(INCLUDEDIR) $(COMMONFLAGS) $(DEBUGFLAGS)
LINKFLAGS=$(LINKFLAGS) /out:"$(OUTDIR)/$(PROJ)d.lib"
!ELSE
#default case: "$(CFG)" == "Release"
OUTDIR=$(OUTDIR)/Release
INTDIR=$(INTDIR)/Release
CFLAGS=$(INCLUDEDIR) $(COMMONFLAGS) $(RELEASEFLAGS)
LINKFLAGS=$(LINKFLAGS) /out:"$(OUTDIR)/$(PROJ).lib"
!ENDIF
CFLAGS=$(CFLAGS) /Fo"$(OUTDIR)/" 

!message $(CFLAGS)
ALL : "$(OUTDIR)$(PROJ).lib"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CFLAGS) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CFLAGS) $<
<<
#LINKFLAGS= $(LINKFLAGS) /NODEFAULTLIB

LINK_OBJS=
"$(INTDIR)AvCRT.obj"
"$(INTDIR)Dataset.obj"
"$(INTDIR)Globals.obj"
"$(INTDIR)RootObj.obj"
"$(INTDIR)Type.obj"
"$(INTDIR)Viewer.obj"
"$(INTDIR)FileLoaderImpl.obj"
"$(INTDIR)StdAfx.obj"


"$(OUTDIR)/$(PROJ).lib" : "$(OUTDIR)" $(DEF_FILE) $(LINK_OBJS)
$(LINKER) -lib @<<
$(LINKFLAGS) $(DEF_FLAGS) $(LINK_OBJS)
<<
-----------------------------------------------------------------
--- C:Program Files (x86)IntelArray VisualizersrcAvFRTAvFRT.mak ---
# 
# Copyright (C) 2005 Intel Corporation. All rights reserved.
#
# The information and source code contained herein is the exclusive property
# of Intel Corporation and may not be disclosed, examined, or reproduced in
# whole or in part without explicit written authorization from the Company.
#
#
# enviroment variables
LINKER=link.exe
RSC=rc.exe
PROJ=AvFRT
!if "$(CC)" == ""
CC=cl
!endif
!if "$(FC)" == ""
FC=ifort
!endif
FFLAGS= /c
!if "$(PLATFORM)" == ""
!message setting PLATFORM=EM64
PLATFORM=EM64
!endif
INCLUDEDIR=/I ../AvCRT /I "../../include" /I "../../AvLib" /I .
MODDIR=../../include
FFLAGS=$(FFLAGS) /module:$(INTDIR)
BASEFLAGS= /D "WIN32" /D "_MBCS" /wd4163 /wd4996 
!IF "$(PLATFORM)" == "IA64"
BASEFLAGS=$(BASEFLAGS) /D "_IA64_"
!ELSEIF "$(PLATFORM)" == "EM64"
FC="$(IFORT_COMPILER91)EM64TBinifort"
BASEFLAGS=$(BASEFLAGS) /D "_EM64T_"
!ENDIF
BASEFLAGS=$(BASEFLAGS) /W3 /EHsc /nologo /c
COMMONFLAGS=$(BASEFLAGS) /D "_LIB" /D "_WINDOWS" /Zl 
DEBUGFLAGS=/Od /D "_DEBUG" /EHsc /Wp64 /Zi
RELEASEFLAGS=/O2 /Ob1 /D "NDEBUG" /D "_ATL_STATIC_REGISTRY" /GF /Gy
CRT= ML
DEBUGFLAGS=$(DEBUGFLAGS) /$(CRT)d
RELEA SEFLAGS=$(RELEASEFLAGS) /$(CRT)
LINKLIBS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
UNICODEFLAGS=/D "_UNICODE" /D "UNICODE"
CFLAGS_V7=/RTC1
!IF "$(PLATFORM)" == "IA64" 
LINKFLAGS= $(LINKFLAGS) /machine:IA64 /LIBPATH:"$(TOPDIR)"lib
!ELSEIF "$(PLATFORM)" == "EM64"
LINKFLAGS= $(LINKFLAGS) /machine:X64 /LIBPATH:"$(TOPDIR)"lib
!ELSE
LINKFLAGS= $(LINKFLAGS) /machine:X86
!ENDIF
!IF "$(PLATFORM)" == "IA64" 
OUTDIR=./itanium
INTDIR=./itanium
!ELSEIF "$(PLATFORM)" == "EM64"
OUTDIR=./x64
INTDIR=./x64
!ELSE
OUTDIR=.
INTDIR=.
!ENDIF
!IF "$(CFG)" == "Debug"
OUTDIR=$(OUTDIR)/Debug
INTDIR=$(INTDIR)/Debug
DEBUGFLAGS = $(DEBUGFLAGS) /Fd"$(OUTDIR)/$(PROJ)d.pdb"
CFLAGS=$(INCLUDEDIR) $(COMMONFLAGS) $(DEBUGFLAGS)
LINKFLAGS=$(LINKFLAGS) /out:"$(OUTDIR)/$(PROJ)d.lib"
!ELSE
#default case: "$(CFG)" == "Release"
OUTDIR=$(OUTDIR)/Release
INTDIR=$(INTDIR)/Release
CFLAGS=$(INCLUDEDIR) $(COMMONFLAGS) $(RELEASEFLAGS)
LINKFLAGS=$(LINKFLAGS) /out:"$(OUTDIR)/$(PROJ).lib"
!ENDIF
CFLAGS=$(CFLAGS) /Fo"$(OUTDIR)/" 
ALL : "$(OUTDIR)$(PROJ).lib" "$(INTDIR)AvFRT.mod" "$(INTDIR)AvObjMod.mod"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
$(INTDIR)/Dataset.obj : ../AvCRT/Dataset.cpp
$(CC) $(CFLAGS) ../AvCRT/Dataset.cpp
$(INTDIR)/Globals.obj : ../AvCRT/Globals.cpp
$(CC) $(CFLAGS) ../AvCRT/Globals.cpp
$(INTDIR)/RootObj.obj : ../AvCRT/RootObj.cpp
$(CC) $(CFLAGS) ../AvCRT/RootObj.cpp
$(INTDIR)/Type.obj : ../AvCRT/Type.cpp
$(CC) $(CFLAGS) ../AvCRT/Type.cpp
$(INTDIR)/Viewer.obj : ../AvCRT/Viewer.cpp
$(CC) $(CFLAGS) ../AvCRT/Viewer.cpp

$(INTDIR)/FileLoaderImpl.obj : ../AvCRT/FileLoaderImpl.cpp
$(CC) $(CFLAGS) ../AvCRT/FileLoaderImpl.cpp
$(INTDIR)/AvFRT.mod : $(MODDIR)/AvFRT.f90
$(FC) $(FFLAGS) $(MODDIR)/AvFRT.f90
$(INTDIR)/AvObjMod.mod : $(MODDIR)/AvObjMod.f90
$(FC) $(FFLAGS) $(MODDIR)/AvObjMod.f90

.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CFLAGS) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CFLAGS) $<
<<
#LINKFLAGS= $(LINKFLAGS) /NODEFAULTLIB

LINK_OBJS=
"$(INTDIR)AvFRT.obj"
"$(INTDIR)Dataset.obj"
"$(INTDIR)Globals.obj"
"$(INTDIR)RootObj.obj"
"$(INTDIR)Type.obj"
"$(INTDIR)AvObjMod.obj"
"$(INTDIR)Viewer.obj"
"$(INTDIR)FileLoaderImpl.obj"


#LINKLIBS = ole32.lib oleaut32.lib
"$(OUTDIR)/$(PROJ).lib" : "$(OUTDIR)" $(DEF_FILE) $(LINK_OBJS)
$(LINKER) -lib @<<
$(LINKFLAGS) $(DEF_FLAGS) $(LINK_OBJS)
<<
-----------------------------------------------------------------

					
				
			
			
				
			
			
			
			
			
			
			
		
0 Kudos
abhimodak
New Contributor I
870 Views
Hi Jim

Many many thanks for your detailed answer. I think I am doing something really dumb that I am still not getting "View Array"; it remains greyed out!

Here are a few questions that may hint what I am missing here:-

(1) Why do I need to rebuild the libs? When I installed, it already have created libraries under include and lib for em64t. That is, I can see AvFRT.lib and AvCRT.lib files in C:Program Files (x86)IntelArray Visualizerlibem64t and corresponding header files in the include directory.

(2) I have added these directories to the INCLUDES and LIBRARIES under Tool --> Options -->Intel Fortran for target platform x64.

(3) Below is a simple program to see an array. I am expecting to create an xy plot. I run it in the debug mode with breakpoint at the print statement. When it is hit, I go to debug menu (or right click on n_sq) and view array is greyed out. My plan is to get this "View Array" working and then start using "Use AvFRT".

(4) I did rebuild using your makefiles and generated new libraries. However, even when those are set in the corresponding INCLUDES and LIBRARIES, I still cannot get View Array.

--------------------------------------
Program Test_ArrayVis
!
! Purpose: Test the use of Array Visualizer.
!
Implicit None
!
Integer, Parameter :: Nmax = 100
Integer :: n_sq(Nmax)
Integer :: n
!
!
!###################
!
do n=1,Nmax
n_sq(n) = n * n
end do
!
Print *, "Success?"
!
End Program Test_ArrayVis
!
!===============================================================================
!><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
!===============================================================================
!
0 Kudos
jimdempseyatthecove
Honored Contributor III
870 Views

Abhi,

In the ArrayVisualizerin folder reside the Av*.OCX files. These are the Internet Explorer plug-ins.
Also in the ArrayVisualizerin folder is a file named REGALL.BAT.
If you double click on this file it will register the .OCX files.

Note, you may need to acknowledge the "Install ActiveX..." on (under)the IE tool bar if you have "Query for installation of ActiveX"

Jim

0 Kudos
abhimodak
New Contributor I
870 Views
Hi Jim

(1) Running the reall.bat file displayed the follwing output:

Registering AV dlls
Registering AV ocxs
Regirstering AV exes
'avflexlm' is not recognized as an internal or external command,....etc

(2) On the other hand if I run AvRegAll.exe it runs successfully. (it opened a new window)

(3) Internet explorer did nothing while doing both the steps above.

(4) I still don't get the "View Array".....:(

Before I irritate you with my incessant replies, can you see the "View Array" for my sample problem?

Sincerely
Abhi



0 Kudos
jimdempseyatthecove
Honored Contributor III
870 Views

Abhi,

I can View Array (doing the above) on WinXP x32

Hmm...

However, prior to doing so "View Array" was not greyed out but had problems with un-registered files.

On a different system running Windows Server 2003 x64 the "View Array" is greyed out and running the registration batch file succeeds but does not ungrey the option.

On the x32 system I used to have an older version of AV (the one that was issued with IVF 8.n.n)now both systems have the last version offered as unsupported and not integrated with IVF.

I usually do not use View Array, instead I use the programming API to build my plots. Probably why I did not notice the "View Array" problem.

This sounds like a VS integration issue.

I looked around but have not found anything yet. Maybe this is addressed in the installation documentation. Or maybe someone else can provide the hint.

Jim

0 Kudos
abhimodak
New Contributor I
870 Views
Hi Jim

I sincerely appreciate your help. I will dig into the installation documentation. So far neither view array nor using API has worked for me....I hope I get it right soon.

Sincerely
Abhi
0 Kudos
Reply