Как перейти на новую строку в Фортране при печати? - PullRequest
1 голос
/ 28 сентября 2019

Это очень простой запрос, но я не могу найти точное решение.Как перейти на новую строку при печати в Фортране?

например

print*,'This is first line'
print*,'This is second line'

Я хочу следующий вывод

This is first line

This is Second line

То есть добавить пробел между двумя строками.

В Java мы используем \n, а в html, используя <br>, работает ли ... но как добиться того же в Fortran?

Ответы [ 2 ]

3 голосов
/ 28 сентября 2019

Есть несколько способов управлять тем, что вы хотите.Мы можем либо напечатать пустые записи , либо явно добавить символ новой строки.

Символ новой строки возвращается встроенной функцией NEW_LINE:

print '(2A)', 'First line', NEW_LINE('a')
print '(A)', 'Second line'

NEW_LINE('a')может иметь такой эффект, как ACHAR(10) или CHAR(10,KIND('a')).

Пустая запись может быть напечатана без вывода элемента:

print '(A)', 'First line'
print '(A)'
print '(A)', 'Second line'

Или мы можем использовать косая чертаedit :

print '(A,/)', 'First line'
print '(A)', 'Second line'

Если мы не используем несколько операторов печати, мы можем даже объединить письмо, используя эти же идеи.Такие как:

print '(A,:/)', 'First line', 'Second line'
print '(*(A))', 'First line', NEW_LINE('a'), NEW_LINE('a'), 'Second line'

NEW_LINE('a') также могут быть использованы в строке формата, но это, кажется, не добавляет много значения после редактирования косой черты.

2 голосов
/ 28 сентября 2019

Существует несколько способов печати двух строк вывода.

program foo
   print *, 'This is the first line'
   print *, 'This is the second line'
end program

- это один из способов достижения того, что вы хотите.Другой способ сделать

program foo
   write(*,'(A,/,A)') 'This is the first line', 'This is the second line'
end program foo

И еще один способ

program foo
   write(*,'(A)') 'A' // achar(13) // achar(10) // 'B'
end program foo

А с некоторыми компиляторами вы можете использовать опции

program foo
   write(*,'(A)') 'A\r\nB'
end program foo

gfortran -oz -fbackslash a.f90 && ./zB

...