这个问题似乎很尴尬,因为我们可以从外部文件而不是代码中读取向量的值(例如下面的a
)。下面是我尝试的方法,但是我想Fortran不能在一行中包含这么多字符。另外,恐怕这一行不能“无休止地”分成几行。
Program main
implicit none
REAL(8),dimension(1500)::a = (/, , , , ... ,/)
End program
变量a
有1500个元素,我希望这些值直接包含在代码中。因此,我不使用read()
命令。我们需要将这条长线手动分成几行吗?
答案 0 :(得分:1)
作为替代方案,您可以编写许多短行,这些短行写入数组的一小部分。
示例:
program main
implicit none
integer, parameter :: rk = selected_real_kind(15)
real(kind=rk),dimension(30)::a
a(1:3) = [0.25733572697493723_rk, 0.03225738644740617_rk, 0.5414564639489547_rk]
a(4:6) = [0.19327589136191725_rk, 0.49311615953762833_rk, 0.6433831692863491_rk]
a(7:9) = [0.6859277892633444_rk, 0.641803334817996_rk, 0.2699446411426851_rk]
a(10:12) = [0.3734332997800017_rk, 0.6383656815065594_rk, 0.6497673624736408_rk]
a(13:15) = [0.698560401584833_rk, 0.8550812707577452_rk, 0.2429165361432739_rk]
a(16:18) = [0.8083661742072051_rk, 0.21096311180256644_rk, 0.4482114317600794_rk]
a(19:21) = [0.4254204225869541_rk, 0.30299480014092506_rk, 0.18464410073699633_rk]
a(22:24) = [0.2020883904853492_rk, 0.793469769164798_rk, 0.010725578232863464_rk]
a(25:27) = [0.597774960426935_rk, 0.23743374381177218_rk, 0.6515133874064444_rk]
a(28:30) = [0.9372245495970037_rk, 0.22530033395862548_rk, 0.9991480087266069_rk]
end program
该示例故意缩短。