Results 1 to 4 of 4

Thread: Missing functions from IMSL Fortran Library

  1. #1
    Junior Member
    Join Date
    May 2019
    Posts
    2

    Missing functions from IMSL Fortran Library

    Hi: I am wondering if there are some libraries missing from the IMSL Fortran library.

    But first, System: Windows 7, using Ms Visual Studio. Installed the IMSL Fortran library (fnl-2018.0.0-win700in170x64-eval, Student license), validated using Intel Compiler 17.0 Update 8 Intel(R) 64 Visual Studio, followed the quick example on page 8 of this link: https://docs.roguewave.com/imsl/fort..._evalguide.pdf. (This example uses the DENSE_LP function). Builds fine. Running the executable generated by Visual Studio, I got the optimization results shown on the page listed above, which means all is fine.

    I however noticed some functions are not listed in the include\dll directory. The subroutines neqnf and dneqnf were for example missing, as I found out when I tried to compile and link a legacy fortran program which contains calls to dneqnf. I only found neqnf_int.mod, and I am wondering if that module has replaced both neqnf and dneqnf. If that's not the case, can you help point me to where I can find any information on this?

    Thanks.

  2. #2
    Junior Member
    Join Date
    Feb 2009
    Location
    Houston, TX
    Posts
    29
    neqnf_int.mod is the interface for both the single precision neqnf and double precision dneqnf function. Review the documentation for neqnf for details on how to use the function. The interface which allows you to call neqnf with either single or double precision input or call the precision specific function.
    Jennifer Locke
    Product Manager, IMSL, Views, JViews, Elixir and Stingray
    P: 713.954.6454

  3. #3
    Senior Member mecej4's Avatar
    Join Date
    Dec 2009
    Posts
    129
    Quote Originally Posted by aroble View Post
    Hi: I am wondering if there are some libraries missing from the IMSL Fortran library.
    ...
    I however noticed some functions are not listed in the include\dll directory. The subroutines neqnf and dneqnf were for example missing, as I found out when I tried to compile and link a legacy fortran program which contains calls to dneqnf. I only found neqnf_int.mod, and I am wondering if that module has replaced both neqnf and dneqnf.
    The following comments may help clear up your views on how to use IMSL routines.

    The original Fortran 77 routines NEQNF and DNEQNF may be called using their implicit interfaces, without any need for USE statements to provide explicit interfaces. For such routines, there may be no provided interfaces in the INCLUDE directory.

    The same routines may also be accessed through the Fortran 9X generic name NEQNF, which gets resolved to the specific names S_NEQNF and D_NEQNF, depending on the types of the actual arguments used. Some of the arguments to the generic routine name NEQNF are optional, and the arguments may be specified as keyword=value pairs, whereas the Fortran 77 routines have to be called with all arguments present and in the specified order. For such calls, the rules of the language require that explicit interfaces be provided.

    Furthermore, the *.mod files in the INCLUDE directory are Fortran module files, not object "module" files. They are used only by the compiler, whereas the object module files (after having been combined into LIB files) are processed by the linker.
    Last edited by mecej4; 05-30-2019 at 12:51 PM.

  4. #4
    Junior Member
    Join Date
    May 2019
    Posts
    2
    Quote Originally Posted by jlo View Post
    neqnf_int.mod is the interface for both the single precision neqnf and double precision dneqnf function. Review the documentation for neqnf for details on how to use the function. The interface which allows you to call neqnf with either single or double precision input or call the precision specific function.
    Thanks.

    Quote Originally Posted by mecej4 View Post
    The following comments may help clear up your views on how to use IMSL routines.

    The original Fortran 77 routines NEQNF and DNEQNF may be called using their implicit interfaces, without any need for USE statements to provide explicit interfaces. For such routines, there may be no provided interfaces in the INCLUDE directory.

    The same routines may also be accessed through the Fortran 9X generic name NEQNF, which gets resolved to the specific names S_NEQNF and D_NEQNF, depending on the types of the actual arguments used. Some of the arguments to the generic routine name NEQNF are optional, and the arguments may be specified as keyword=value pairs, whereas the Fortran 77 routines have to be called with all arguments present and in the specified order. For such calls, the rules of the language require that explicit interfaces be provided.

    Furthermore, the *.mod files in the INCLUDE directory are Fortran module files, not object "module" files. They are used only by the compiler, whereas the object module files (after having been combined into LIB files) are processed by the linker.
    Thanks for the detailed reply. It was the case that ineeded the "USE" statement was not needed. This was (as you can tell) my first encounter with anything Fortran.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •