Я определил модуль кода (файл Fortran F90) и снабдил его следующими двумя подпрограммами:
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
Компилятор (Intel Fortran 12, нацеленный на 32-битную Windows, во что бы то ни стало) возвращает одно сообщение об ошибке:
ошибка # 7137: любая процедура, указанная в процедуре PURE, включая
один, на который ссылаются посредством определенной операции или назначения, должен быть
явно объявлено ЧИСТЫМ. [XROTATION]
Я немного озадачен. Как я могу изменить этот код так, чтобы подпрограмма PURE "DummyDummy" компилировалась?