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

Error calling NNLPF (IMSL routine)

suresh_p_1
Beginner
771 Views

When I'm calling NNLPF (IMSL routine for non-linear optimization). I observed the FCN (subroutine where objective function and constraints are formulated, the signature of FCN is FCN (X, IACT, IRESULT, IERR) ) is NOT getting called with IACT=0. But I see FCN is called with IACT > 0

Per my understanding, when IACT=0, the objective function is formulated. 

Any ideas why FCN is not called with IACT=0?

0 Kudos
13 Replies
Steven_L_Intel1
Employee
771 Views

You will want to provide a test case showing the problem. If I recall correctly, you've migrated from Compaq Visual Fortran. If so, make absolutely sure that in your project properties, under External Procedures, that Calling Convention is set to Default and String Length Argument Passing set to After All Arguments. If you converted a CVF project, these will be set to CVF defaults and callback procedures from IMSL will NOT work properly with that setting.

0 Kudos
suresh_p_1
Beginner
771 Views

steve,

yes i checked the project properties. under External Procedures, that Calling Convention is set to Default and String Length Argument Passing set to After All Arguments.

suresh

0 Kudos
Steven_L_Intel1
Employee
771 Views

Ok, good - I wanted to eliminate a possible problem source. A test case would be good to see - often when constructing one you figure out what the real problem was.

0 Kudos
suresh_p_1
Beginner
771 Views

steve,

I want to ask you some basic question around DNCONF.

I was looking at the documentation. Per documentation, DNCONF should be available. If this available, I rather use this for time being and later plan to migrate to new routine.

However, when I compile using DNCONF. I get "unresolved symbom _DNCONF". So, what settings I need to do to use old math library (with new  Intel(R) Visual Fortran Composer XE 2013 Update 3 )?

Below is the excerpt from the documentation.

The routines in the following list are being deprecated in Version 2.0 of MATH/LIBRARY. A
deprecated routine is one that is no longer used by anything in the library but is being included in
the product for those users who may be currently referencing it in their application. However, any
future versions of MATH/LIBRARY will not include these routines. If any of these routines are
being called within an application, it is recommended that you change your code or retain the
deprecated routine before replacing this library with the next version. Most of these routines were
called by users only when they needed to set up their own workspace. Thus, the impact of these
changes should be limited.
CZADD            DE2LRH             DNCONF                     E3CRG

0 Kudos
Steven_L_Intel1
Employee
771 Views

DNCONF is not supplied by IMSL 6.0. The text you quote really should have been removed from the IMSL documentation years ago. Note that IMSL version 2.0 is some 20 years ago.

0 Kudos
suresh_p_1
Beginner
771 Views

Steve,

Thanks for your reply. But let me reconfirm with you.

Is NNLPF is functionally EQUIVALENT to DNCONF? or Am I barking up the wrong tree?

What do you suggest me?

0 Kudos
Steven_L_Intel1
Employee
771 Views

Sorry, I'm not an expert in the variations of IMSL routines.  I can help you with problems installing, configuring and building applications with IMSL, but not with advice on which routine is best suited for your application.

0 Kudos
Steven_L_Intel1
Employee
771 Views

I exchanged some email with IMSL tech support at Rogue Wave, and they reminded me that DNCONF is one of a set of routines (NCONF, NCONG, DNCONF, DNCONG, N0ONF) that they are not able to include in the IMSL we distribute due to their contract with the author of these routines. They are included in IMSL if you buy it from Rogue Wave.

Others will be able to advise you on suitable substitutes.

0 Kudos
suresh_p_1
Beginner
771 Views

Steve,

Thank you.

This is very useful information. This tells me  "I need to buy FORTRAN Compiler from INTEL and IMSL Libraries (that contains DNCONF) from Roguewave".

We already bought full package from Intel (to avoid multiple vendors) i.e.,  "Intel FORTRAN Compiler with IMSL" :(

suresh

0 Kudos
Steven_L_Intel1
Employee
771 Views

Or you could find an alternative to DNCONF.

0 Kudos
mecej4
Honored Contributor III
771 Views

Suresh p. wrote:
This tells me  "I need to buy FORTRAN Compiler from INTEL and IMSL Libraries (that contains DNCONF) from Roguewave".
The author of the routines appears to disagree. He says on his website (search the Web for "Schittkowski NCONF") There have been no library updates of the above mentioned codes since then! They are outdated and no longer supported by the author. Considering that those routines are 28 years old,  as well, most users would be better off using the replacement routines NNLPF, etc.

0 Kudos
suresh_p_1
Beginner
771 Views

Thank you.

So, can we ask the author what is the real equivalent to DNCONF. Is it NNLPF? What are the guidelines for someone who want to migrate to NNLPF?

0 Kudos
mecej4
Honored Contributor III
771 Views

As with any IMSL routine under consideration, (i) read the IMSL documentation, (ii) understand the argument list and calling conventions,  (iii) write the code, (iv) test for correctness.

0 Kudos
Reply