- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
I just download and run with IVF v11.
Then I got this problem. I saw many user had also this problem.
But I don't see any suggsted way.
The file is in *.f and have declared
IMPLICIT REAL*8(A-H,O-Z)
CALL TRIDAG(AA,BB,CC,RR,UU,JMAX-2)
but the compiler automatically generate module:
MODULE TRIDAG_mod
INTERFACE
SUBROUTINE TRIDAG(A,B,C,R,U,N)
INTEGER(KIND=4) :: N
REAL(KIND=4) :: A(N)
REAL(KIND=4) :: B(N)
REAL(KIND=4) :: C(N)
REAL(KIND=4) :: R(N)
REAL(KIND=4) :: U(N)
END SUBROUTINE TRIDAG
END INTERFACE
END MODULE TRIDAG_mod
and it's real(4).
I don't have problem for IVF v10.
May I ask how to get away with this?
Thank you in advance.
Mike
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
I just download and run with IVF v11.
Then I got this problem. I saw many user had also this problem.
But I don't see any suggsted way.
The file is in *.f and have declared
IMPLICIT REAL*8(A-H,O-Z)
CALL TRIDAG(AA,BB,CC,RR,UU,JMAX-2)
but the compiler automatically generate module:
MODULE TRIDAG_mod
INTERFACE
SUBROUTINE TRIDAG(A,B,C,R,U,N)
INTEGER(KIND=4) :: N
REAL(KIND=4) :: A(N)
REAL(KIND=4) :: B(N)
REAL(KIND=4) :: C(N)
REAL(KIND=4) :: R(N)
REAL(KIND=4) :: U(N)
END SUBROUTINE TRIDAG
END INTERFACE
END MODULE TRIDAG_mod
and it's real(4).
I don't have problem for IVF v10.
May I ask how to get away with this?
Thank you in advance.
Mike
I set "check the routine interface" to No.
But I am not sure if it may cause some problem.
Why the compiler-generated module is not in real(8)?
Mike
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The generated module is based on the actual routine, not the call. This suggests that the function is not properly declared as REAL(8) in the function. You need to fix that.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The generated module is based on the actual routine, not the call. This suggests that the function is not properly declared as REAL(8) in the function. You need to fix that.
With 32-bit linux x87 code, it was frequently possible to mix various REAL types in function returns, without declaring them. That will not work with the current usual options, and should be diagnosed as an error even if it still happens to work.

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