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

HELP! A problem about CXML provided Iterative Solver

dwzhao
Beginner
755 Views
HELP! A problem about CXML provided Iterative Solver

Hi, I'm greenhand at fortran programming. I have encounter some problems when I try to use CXML provided Iterative Solver to solve linear system. The detail as follows:

When I compile the CXML provided sample progrm "EXAMPLE_ITSOL_5.F"(at X:Program FilesMicrosoft Visual StudioDF98CXMLSAMPLES, X is the VF install driver), the VF6.6 report:"Error: The attributes of this name conflict with those made accessible by a USE statement. [DMATVEC_DRIVER]. The corresponding sentence is:

EXTERNAL DMATVEC_DRIVER, DPCONDL_DRIVER, DPCONDR_DRIVER

The "DMATVEC_DRIVER, DPCONDL_DRIVER, DPCONDR_DRIVER" are CXML library subroutines, and must be defined as External.

How to modify the program?

THANKS!

P.S. I have added the "include 'cxml_include'" sentence
0 Kudos
4 Replies
Jugoslav_Dujic
Valued Contributor II
755 Views
The error message suggests that DMATVEC_DRIVER is declared twice -- once in module CXML, another time as EXTERNAL. Deleting the EXTERNAL line would probably solve it.

Jugoslav
0 Kudos
Steven_L_Intel1
Employee
755 Views
Your adding the INCLUDE line is what triggered the problem, as this example was written assuming it wasn't there.

Steve
0 Kudos
dwzhao
Beginner
755 Views
Thank all guys for reply.

Remove the "External" declaration can't settle this problem, because those routine-name was regard as variable of another subroutine and must be declared to EXTERNAL.

If NOT adding the include sentence, these CXML library provided routines such as "DMATVEC_UDIA, DCREATE_ILU_UDIA ..." will be unresolved, however, adding it will bring conflict.

How to altering this program can avoid this paradox?

THANKS
0 Kudos
Steven_L_Intel1
Employee
755 Views
As this example was written, you must explicitly name cxml.lib when you link.

If you wish to use the INCLUDE, you must make the following changes:

Remove DMATVEC_DRIVER from the EXTERNAL declaration.
Change the declaration of DUM to be DUM(1).

Steve
0 Kudos
Reply