- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
when i use cvf with imsl 4 i can use this DBSJ0(.......) Double precisionbut when i use imsl 7there is not Double precision only this function BSJ0.
How can i use DBSJ0 in imsl 7 ?
How can i use DBSJ0 in imsl 7 ?
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
First of all, IMSL FNL-7 is sold and supported by Roguewave, not Intel. The version of FNL available from Intel is FNL-6, instead.
That said, the changes from IMSL 4 to IMSL 7 are, at least for the present purpose, the same as from IMSL 4 to IMSL 6. The main changes are:
(1) Full support for F90/F95 style calls to IMSL.
(2) The specific function names for j0(x) are S_BESJ0() and D_BESJ0(), and the generic name is BESJ0().
It is recommended that the program unit that references the Bessel function contain a "USE BSJ0_INT" statement.
Here is an example.
[fortran]program tbessel use BSJ0_INT implicit none integer, parameter :: dp=kind(0d0) integer, parameter :: sp=kind(0.0) real(sp) :: x = 3.0_sp real(dp) :: y = 3.0_dp write(*,10)x,bsj0(x),s_bsj0(x) write(*,20)y,bsj0(y),d_bsj0(y) 10 format(' Single precision : ',3E15.7) 20 format(' Double precision : ',3D25.17) end program tbessel [/fortran]
That said, the changes from IMSL 4 to IMSL 7 are, at least for the present purpose, the same as from IMSL 4 to IMSL 6. The main changes are:
(1) Full support for F90/F95 style calls to IMSL.
(2) The specific function names for j0(x) are S_BESJ0() and D_BESJ0(), and the generic name is BESJ0().
It is recommended that the program unit that references the Bessel function contain a "USE BSJ0_INT" statement.
Here is an example.
[fortran]program tbessel use BSJ0_INT implicit none integer, parameter :: dp=kind(0d0) integer, parameter :: sp=kind(0.0) real(sp) :: x = 3.0_sp real(dp) :: y = 3.0_dp write(*,10)x,bsj0(x),s_bsj0(x) write(*,20)y,bsj0(y),d_bsj0(y) 10 format(' Single precision : ',3E15.7) 20 format(' Double precision : ',3D25.17) end program tbessel [/fortran]
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
First of all, IMSL FNL-7 is sold and supported by Roguewave, not Intel. The version of FNL available from Intel is FNL-6, instead.
That said, the changes from IMSL 4 to IMSL 7 are, at least for the present purpose, the same as from IMSL 4 to IMSL 6. The main changes are:
(1) Full support for F90/F95 style calls to IMSL.
(2) The specific function names for j0(x) are S_BESJ0() and D_BESJ0(), and the generic name is BESJ0().
It is recommended that the program unit that references the Bessel function contain a "USE BSJ0_INT" statement.
Here is an example.
[fortran]program tbessel use BSJ0_INT implicit none integer, parameter :: dp=kind(0d0) integer, parameter :: sp=kind(0.0) real(sp) :: x = 3.0_sp real(dp) :: y = 3.0_dp write(*,10)x,bsj0(x),s_bsj0(x) write(*,20)y,bsj0(y),d_bsj0(y) 10 format(' Single precision : ',3E15.7) 20 format(' Double precision : ',3D25.17) end program tbessel [/fortran]
That said, the changes from IMSL 4 to IMSL 7 are, at least for the present purpose, the same as from IMSL 4 to IMSL 6. The main changes are:
(1) Full support for F90/F95 style calls to IMSL.
(2) The specific function names for j0(x) are S_BESJ0() and D_BESJ0(), and the generic name is BESJ0().
It is recommended that the program unit that references the Bessel function contain a "USE BSJ0_INT" statement.
Here is an example.
[fortran]program tbessel use BSJ0_INT implicit none integer, parameter :: dp=kind(0d0) integer, parameter :: sp=kind(0.0) real(sp) :: x = 3.0_sp real(dp) :: y = 3.0_dp write(*,10)x,bsj0(x),s_bsj0(x) write(*,20)y,bsj0(y),d_bsj0(y) 10 format(' Single precision : ',3E15.7) 20 format(' Double precision : ',3D25.17) end program tbessel [/fortran]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am replying to a non-private post so that this will also be non-private.
I advised you to use the Fortran standard intrinsic function BESSEL_J0, which does support quad precision. To learn more about the Fortran language, there are several excellent books on the market (usually with the words "Modern Fortran" in the title.) The Intel documentation is a reference, it does not try to teach the language.
If you read about "modern Fortran" language features, please be aware that the Intel compiler implements almost all of Fortran 2003, and a lot from Fortran 2008, but not all of either standard. Refer to the Intel documentation to see if a particular feature is supported.
I advised you to use the Fortran standard intrinsic function BESSEL_J0, which does support quad precision. To learn more about the Fortran language, there are several excellent books on the market (usually with the words "Modern Fortran" in the title.) The Intel documentation is a reference, it does not try to teach the language.
If you read about "modern Fortran" language features, please be aware that the Intel compiler implements almost all of Fortran 2003, and a lot from Fortran 2008, but not all of either standard. Refer to the Intel documentation to see if a particular feature is supported.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
I would like to borrow this topic to ask a more or less relevant and simple question about IMSL 6.
Does the subroutines in IMSL 6 support quadruple precision calculation?
In the user guide I know it definitely support SP and DP, but how about other precision format?
Sincerely
Meng-Chieh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
IMSL 6 does not support quadruple precision.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page