- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Compiling the following code
c ifort ICE
interface random_seed
subroutine x (a, *)
end subroutine x
end interface random_seed
call random_seed(i, *20)
20 continue
end
I get:
uname -a
Linux nero32 5.6.19-300.fc32.x86_64 #1 SMP Wed Jun 17 16:10:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ifort -S -V ierr231.f
Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.2.275 Build 20200623
Copyright (C) 1985-2020 Intel Corporation. All rights reserved.
ifort: NOTE: The evaluation period for this product ends on 30-sep-2020 UTC.
Intel(R) Fortran 19.1-1648
ierr231.f(6): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
call random_seed(i, *20)
^
[ Aborting due to internal error. ]
compilation aborted for ierr231.f (code 1)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
*20 is not valid Fortran. Remove the *
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Andrew_Smith wrote "*20 is not valid Fortran. Remove the *".
Not so fast! The code uses an obsolescent feature, the "alternate return". The CALL statement does not match the provided interface, since the first argument in the call is of type integer , whereas the corresponding dummy argument is of type real (unless there are outer-scope declarations that we have not been shown). The name "random_seed" is the same as that of an intrinsic.
These points, however, do not matter since the compiler ran into an ICE instead of giving diagnostic messages.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Andrew, "*20" is still valid Fortran, although obsolescent.
There are tons of dusty decks around containing this form of alternate return.
Please check your manuals before posting.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
LOL! The Alt return was obsolescent in Fortran 90 so only 30 years ago.... If the deck is that dusty maybe leave the box in the basement because it will have no end of other cludge in it. The ICE is a compiler error so file a support ticket and maybe it will get fixed at some point.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page