- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Does anybody know what this compilation error message mean:
Error: A non-optional actual argument must be present when invoking a procedure with an explicit interface. [Y3]
CALL ARC(FI, P, D1, D2, D3)
I have no Y3 throughout the whole program.
Error: A non-optional actual argument must be present when invoking a procedure with an explicit interface. [Y3]
CALL ARC(FI, P, D1, D2, D3)
I have no Y3 throughout the whole program.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The subroutine ARC was defined with an interface including the formal argument called Y3, probably the sixth argument, which you didn't specify when you made the call to ARC in your program. Make sure your actual argument and formal argument lists match.
James
James
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you James. I know now. The reason was that the ARC is a (reserved) Fortran graphics function which looks like this:
result = ARC (x1, y1, x2, y2, x3, y3, x4, y4)
I have to change my subroutine's name.
result = ARC (x1, y1, x2, y2, x3, y3, x4, y4)
I have to change my subroutine's name.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There are no reserved names in Fortran. My guess is that you had a USE DFLIB, but did not have an explicit interface for your routine ARC. The best solution is to use an ONLY clause on the USE DFLIB to import only those names you are using, or to use a renaming clause to rename DFLIB's ARC to something else. You should then add an explicit interface for your ARC, though that is not strictly required.
You should not change the name of your routine.
Steve
You should not change the name of your routine.
Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you Steve. Yes, there is a USE DFLIB there and I could guess the same thing myself too, because I had the same call to ARC in another routine where I didn't get any compile time error message. But I did change the name of the routine anyway, because many other people here, now or in the future, are going to use this routine and perhaps together with DFLIB, and they are going to get the same error without knowing the reason, which means several lost hours.
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