我希望FORTRAN WRITE语句的格式取决于某个变量。例如,我可以写:

write(*,'(3f15.3,3f9.2)') x,y,z,(var(i),i=1,nvari)

其中nvari = 3。但是,如果在某些情况下,我实际上有4个变量(即nvari = 4)。我想写这样的东西:
write(*,'(3f15.3,nvari(f9.2))') x,y,z,(var(i),i=1,nvari)

现在,nvari可以是任何东西,输出将按我喜欢的方式工作。我怎样才能让这样的东西发挥作用?

最佳答案

如果您使用的是“英特尔Fortran”,它有一个专门的扩展名——您可以在尖括号中包含一个现有变量作为说明符:

  write(*,'(3f15.3,<nvari>f9.2)') x,y,z,(var(i),i=1,nvari)

08-06 19:39