How to name output files, making it related to a variable (in fortran)? [duplicate]

浪尽此生 提交于 2019-12-08 06:40:50

问题


Eg. The integer variable (m) will take the following values one by one:

1, 2, 3, ....

For each value of m, an array

p(i) (i=1,2,..., 1000)

is obtained and written in a output file with

open() and write()

Could you tell me how to name these output files as

file1.dat, file2.dat, file3.dat, …

Thanks.


回答1:


So, here is a suggestion:

integer :: m
integer :: fu
character(len=10) :: file_id
character(len=50) :: file_name

! Write the integer into a string:
write(file_id, '(i0)') m

! Construct the filename:
file_name = 'file' // trim(adjustl(file_id)) // '.dat'

! Open the file with this name
open(file = trim(file_name), unit = fu)

Note, that you could also obtain leading zeroes with the iX.Y format string.




回答2:


Googling "internal write fortran" shows how to create strings that embed the integer variable, which is demonstrated in the following program, which creates the string "file1.dat".

program internal_write
character (len=10) :: file_name
write (file_name,"('file',i0,'.dat')") 1
print*,"file name is ",trim(file_name)
end program internal_write


来源:https://stackoverflow.com/questions/22694626/how-to-name-output-files-making-it-related-to-a-variable-in-fortran

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!