请帮助我解决以下错误。
real(16), parameter :: &
1
Error: Invalid character in name at (1)
包含上述代码的模块如下:
module degree_trig
real(16), parameter :: &
quadpi = 3.141592653589793238462643383279502884197
real(16), parameter :: dgr_to_rad = (quadpi/180)
intrinsic cos, sin, tan
contains
function sind(dgr_argument)
real(4) sind, dgr_argument
sind = sin(dgr_to_rad * dgr_argument)
end function
function cosd(dgr_argument)
real(4) cosd, dgr_argument
cosd = cos(dgr_to_rad * dgr_argument)
end function
function tand(dgr_argument)
real(4) tand, dgr_argument
tand = tan(dgr_to_rad * dgr_argument)
end function
function dsind(dgr_argument)
real(8) dsind, dgr_argument
dsind = sin(dgr_to_rad * dgr_argument)
end function
function dcosd(dgr_argument)
real(8) dcosd, dgr_argument
dcosd = cos(dgr_to_rad * dgr_argument)
end function
function dtand(dgr_argument)
real(8) dtand, dgr_argument
dtand = tan(dgr_to_rad * dgr_argument)
end function
end ! module
答案 0 :(得分:1)
首先,它在gfortran 4.9中编译。
但是你确定你把它保存在.f90文件中吗? 我的意思是错误看起来像编译器期望固定格式。
顺便说一下,存储在常数quadpi中的值不是四倍精度。我建议你定义一个qp整数参数(和sp,dp也用于单精度和双精度)。使用函数selected_real_kind存储对应于四倍精度的种类值,传递该函数的精度(对于四倍精度为33,对于双精度为15,对于单精度为6)。 您必须在数字常量(和_dp,以及其他类型的数字常量的_sp)附加_qp。
我建议你写一下:
module degree_trig
implicit none
integer, parameter :: sp = selected_real_kind(6)
integer, parameter :: dp = selected_real_kind(15)
integer, parameter :: qp = selected_real_kind(33)
real(qp), parameter :: &
quadpi = 3.141592653589793238462643383279502884197_qp
real(qp), parameter :: dgr_to_rad = (quadpi/180.0_qp)
contains
elemental function sind(dgr_argument)
real(sp), intent(in) :: dgr_argument
real(sp) sind
sind = sin(dgr_to_rad * dgr_argument)
end function