포트란 파일 f, f77, f95 변환 문제

xiangyue의 이미지

안녕하세요

포트란 컴파일을 하다가 궁금한 것이 있어서 질문올립니다.
이를테면 asdf.f77은 포트란 77 형식으로 짜인 것이고
asdf.f95는 포트란 95 형식으로 짜인 것이라고 합시다.

asdf.f95는 프리포맷으로 짜여있기 때문에 f77로 컴파일하면 에러를 내뱉습니다.
f95로 컴파일하면 잘됩니다.

그런데 asdf.f95를 asdf.f 로 확장자를 변경하면 에러가 발생합니다.
asdf.f77은 asdf.f로 변경해도 컴파일이 잘됩니다.

즉, *.f 는 f77 로 컴파일된다는 말입니다.
이는 f95로 컴파일한 결과입니다. 즉 컴파일러 문제는 아닌 것 같고 파일 형식의 문제인 것 같습니다.
(이부분은 좀 햇갈립니다.)

이를 어떻게 변경하여 f95 형식의 파일을 .f 로 변경하여 컴파일할 수 있을지 궁금합니다.

@. 덧붙여 꼬랑지 질문 하나 드리면 vi asdf.f95 하면 처음에는 f77의 syntax highlighting이 들어가고 약간 내용을 만든 후에 vi 종료 후 다시 vi로 같은 파일을 열면 f95의 syntax highlighting 이 들어갑니다. 같은 문제인 것 같기도 한데 해결 가능할까요?

palsuet의 이미지

처음 질문은 무슨 말씀이신지 잘 모르겠네요. 자유 형식으로 짜여진 포트란95 소스 코드의 파일 확장자를 .f로 저장하고 포트란 95 컴파일러로 컴파일 하려고 하면 에러가 발생한다는 말씀인가요? 조금 더 구체적으로 설명해 주시면 좋겠네요. 어떤 컴파일러를 쓰는지도 알려주시고요. 두번째 문제는 저도 겪은 적이 있는데, 저는 ~/.vim/ftpluginfortran.vim이라는 파일을 만들고 다음과 같은 내용을 써 넣어서 해결했습니다.

setlocal expandtab
 
let s:extfname = expand("%:e")
 
if s:extfname ==? "f90"
    let fortran_free_source=1
    unlet! fortran_fixed_source
    setlocal shiftwidth=2
    setlocal tabstop=2
else
    let fortran_fixed_source=1
    unlet! fortran_free_source
    setlocal shiftwidth=2
    setlocal tabstop=2
endif

첫번째 줄은 그리 중요하지 않고요, 그 뒤의 내용은 파일의 확장자를 확인해서 f90이면 자유 형식으로, 그렇지 않으면 고정 형식으로 지정해 주는 것입니다.
--
feel the gravity

feel the gravity

wkpark의 이미지

> 이를 어떻게 변경하여 f95 형식의 파일을 .f 로 변경하여 컴파일할 수 있을지 궁금합니다.

Makefile을 통해서 컴파일할 때를 말씀하시는 듯 하군요..?

그것이 아니라면 포트란 컴파일러에 옵션을 지정하여 .f를 .f90으로 지정하실 수 있습니다.
어떤 컴파일러를 쓰느냐에 따라서 옵션은 각각 틀리구요.

온갖 참된 삶은 만남이다 --Martin Buber

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.