我定義的代碼模塊(一個Fortran F90文件),並與這兩個子程序提供它:需要更改哪些內容才能生成Fortran 90子程序「純」?
pure Subroutine XRotation (x, y, z, Xrot, xp, yp, zp)
! Rotate about X-axis through the angle Xrot
real*4, INTENT(IN) :: x, y, z, xrot
real*4, INTENT(OUT) :: xp, yp, zp
real*4 xrad
Xrad = Xrot * 3.141592627/180 ! Convert to radians
yp = y * COS(Xrad) + z * SIN(Xrad)
xp = x
zp = z * COS(Xrad) - y * SIN(Xrad)
END
Pure Subroutine DummyDummy()
Call XRotation(1,2,3,4,5,6,7)
End Subroutine
編譯器(英特爾Fortran 12,針對32位Windows,不管什麼是值得)返回單個錯誤消息:
錯誤#7137:在PURE過程引用的任何過程,包括 一個通過定義的操作或任務引用,必須是 明確聲明PURE。 [XROTATION]
我有點難倒了。如何更改此代碼,以便PURE子程序「DummyDummy」編譯?
請務必使用標籤[tag:fortran],並在必要時添加版本以區分您的問題是否具體。例如,你不能使用Fortran 2008,但只能使用Fortran 90. – 2015-12-17 11:52:16