【发布时间】:2011-11-11 17:07:11
【问题描述】:
在下面的子程序中,我想传递一个名为str 的字符串变量。如果是'poly'、'gaus'、'slat',那么它有一个预定义的操作(fval = 参见下面的代码)。我想让用户指定要使用的函数并将其作为字符串变量传递。
那是……
如果str = '3*cos(i*t)',那么我希望fval 等于3*cos(i*t)。如何让 Fortran 将输入的字符串解释为由 Fortran 执行的命令?
subroutine f(fval, i, t, str)
implicit none
integer, parameter :: ikind = selected_int_kind(8)
integer, parameter :: dbl = selected_real_kind(15,307)
integer(kind = ikind) :: i
real(kind = dbl) :: fval, t
character str*100
if(str .eq. 'poly') then
fval = t**i
elseif(str .eq. 'slat') then
fval = exp(-i*t)
elseif(str .eq. 'gaus') then
fval = exp(-i*t*t)
else
fval = ???
endif
end subroutine
【问题讨论】:
标签: string fortran fortran90 subroutine