LINUX.ORG.RU

История изменений

Исправление grem, (текущая версия) :

В 2003 фортране можно делать примерно так:

program test_srt

  character(len=:), allocatable :: filename
  character(len=80) :: buf, z0_str, phi0_str
  real :: z0, phi0

  z0 = 2.4
  phi0 = 1.5

  write(z0_str, '(f3.1)') z0
  write(phi0_str, '(f3.1)') phi0

  buf = "z0" // "_" // trim(z0_str) // "_" // trim(phi0_str) // ".fits"

  filename = trim(buf)
  print *, "filename:[", filename, "]"

end program test_srt
вывод:
 filename:[z0_2.4_1.5.fits]

Не то чтобы сильно отличалось и стало намного удобнее, но зато есть дополнительная переменная filename, у которой длина изменяется динамически при присваивании. Внутрь процедур такая переменная тоже должна без проблем передаваться, емнип. Объявляться внутри процедуры она должна так же. Можно дописать процедуру, в уоторую будет передаваться переменная для записи имени файла (выходная переменная) и числа (входные параметры), которые будут внутри преобразовываться в строки с «нужной точностью».

Исходная версия grem, :

В 2003 фортране можно делать примерно так:

program test_srt

  character(len=:), allocatable :: filename
  character(len=80) :: buf, z0_str, phi0_str
  real :: z0, phi0

  z0 = 2.4
  phi0 = 1.5

  write(z0_str, '(f3.1)') z0
  write(phi0_str, '(f3.1)') phi0

  buf = "z0" // "_" // trim(z0_str) // "_" // trim(phi0_str) // ".fits"

  filename = trim(buf)
  print *, "filename:[", filename, "]"

end program test_srt
вывод:
 filename:[z0_2.4_1.5.fits]

Не то чтобы сильно отличалось и стало намного удобнее, но зато есть дополнительная переменная filename, у которой длина изменяется динамически при присваивании. Внутрь процедур такая переменная тоже должна без проблем передаваться, емнип. Объявляться внутри процедуры она должна так же.