Fortran90 中的变量相关格式
Variable dependent formatting in Fortran90
我正在尝试理解"variable dependent formatting",特别是 FORTRAN 格式语句中的重复计数是变量而不是固定数字的地方。我已经完成了 one of the similar questions here,这是通过定义格式变量来解决的。我试图实现类似类型的测试代码,但出现 运行 时间错误,提示“Fortran 运行 时间错误:格式 中缺少初始左括号”。我附上了我拥有的代码。你能告诉我哪里错了吗?
谢谢
program main
implicit none
integer num,i
real,dimension(:),allocatable :: logar
character(len = 100) fmt
print*, "enter any number"
read*,num
allocate(logar(num))
do i = 1,num
logar(i) = log(i/3.14)
end do
open(unit=200,file="num.txt",status="unknown")
write(fmt,'( I4,"(f10.5)" )') num
print*,fmt
write(200,fmt) (logar(i),i=1,num)
end program
改变
write(fmt,'( I4,"(f10.5)" )') num
至
write(fmt,'(a, I4,"(f10.5)",a )') '(', num, ')'
否则,您缺少 fmt
中的括号。格式字符串由括号分隔。
我正在尝试理解"variable dependent formatting",特别是 FORTRAN 格式语句中的重复计数是变量而不是固定数字的地方。我已经完成了 one of the similar questions here,这是通过定义格式变量来解决的。我试图实现类似类型的测试代码,但出现 运行 时间错误,提示“Fortran 运行 时间错误:格式 中缺少初始左括号”。我附上了我拥有的代码。你能告诉我哪里错了吗?
谢谢
program main
implicit none
integer num,i
real,dimension(:),allocatable :: logar
character(len = 100) fmt
print*, "enter any number"
read*,num
allocate(logar(num))
do i = 1,num
logar(i) = log(i/3.14)
end do
open(unit=200,file="num.txt",status="unknown")
write(fmt,'( I4,"(f10.5)" )') num
print*,fmt
write(200,fmt) (logar(i),i=1,num)
end program
改变
write(fmt,'( I4,"(f10.5)" )') num
至
write(fmt,'(a, I4,"(f10.5)",a )') '(', num, ')'
否则,您缺少 fmt
中的括号。格式字符串由括号分隔。