所以我有一些基本上可以做到这一点的代码:
REAL, DIMENSION(31) :: month_data
INTEGER :: no_days
no_days = get_no_days()
month_data = [fill array with some values]
WRITE(1000,*) (month_data(d), d=1,no_days)
所以我有一个数组,其中包含每个月的值,在一个循环中,我根据该月的天数将数组填充一定数量的值,然后将结果写入一个文件。
我花了很长时间才把整个写作的“一次性写出一个数组”,但这似乎是可行的。
但是这样,它会像这样写出数组中的数字(例如一月,所以是31个值):
0.00000 10.0000 20.0000 30.0000 40.0000 50.0000 60.0000
70.0000 80.0000 90.0000 100.000 110.000 120.000 130.000
140.000 150.000 160.000 170.000 180.000 190.000 200.000
210.000 220.000 230.000 240.000 250.000 260.000 270.000
280.000 290.000 300.000
因此,它会在许多空格前加上前缀(即使数组中有较大的值,也可能使列排成一行),并且它会换行以使行不超过某个宽度(我认为是128个字符?不确定)。
我真的不介意额外的空间(虽然它们会大大增加我的文件大小,所以修复它也会很好…)但是拆分行会破坏我的其他工具。我试过阅读几本Fortran手册,但是虽然其中有些提到了“输出格式”,但我还没有找到一本提到换行或列的手册。
那么,在Fortran中使用上述语法时,如何控制数组的写出方式?
(同时,当我们在这里的时候,我如何控制小数位数的nr?我知道这些都是整数值,所以我想省略所有小数,但由于种种原因,我无法在代码中将数据类型更改为整数。