- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I use the intrinsic function DABS on a complex(8) variable the compiler tells me:
C:\\Users\\erg\\Documents\\Visual Studio 2010\\Projects\\Meas\\Dll1\\Hankel.f90(13): warning #7319: This argument's data type is incompatible with this intrinsic procedure; procedure assumed EXTERNAL. [DABS]
C:\\Users\\erg\\Documents\\Visual Studio 2010\\Projects\\Meas\\Dll1\\Hankel.f90(13): error #6404: This name does not have a type, and must have an explicit type. [DABS]
When I use ABS it compiles just fine.
No matter how the complex variable is declared this error results.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That's because DABS is specific for REAL(8), and ABS is generic (i.e. it overloads several specific types). For complex(8), you can use CDABS, but in my opinion ABS is highly preferred.
The only place where you must use specific rather than generic is fairly obscure: it is when you pass the intrinsic routine itself as an actual argument to an EXTERNAL dummy.
The only place where you must use specific rather than generic is fairly obscure: it is when you pass the intrinsic routine itself as an actual argument to an EXTERNAL dummy.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, but then the help is incorrect because I looked up DABS and it says that complex is an option. But you are right that I should stick to the generic function.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting Earl Geddes
Thanks, but then the help is incorrect because I looked up DABS and it says that complex is an option.
Not on the Intel help that I am looking at.
Les
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The only reference to DABS I can find in the Intel documentation shows DABS as a specific name that takes a REAL(8) argument only. Earl, where do you see something different?

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