• Daum
  • |
  • 카페
  • |
  • 메일
  • |
 
카페정보
카페 프로필 이미지
VFUN
 
 
 
 

친구 카페

 
 
카페 게시글
포트란 Q&A 리눅스에서 포트란 컴파일 명령과 관련해서 질문 드립니다.
Paradism 추천 0 조회 237 13.03.04 10:55 댓글 8
게시글 본문내용
 
다음검색
댓글
  • 작성자 13.03.04 12:12

    첫댓글 참고로 컴파일러는 intel linux fortran 입니다.

  • 13.03.05 17:28

    1. 이유는 리눅스용이 아닌 윈도용이라서 그렇습니다. 각 컴파일러 동작 옵션 명령, 파일확장자규칙..등등..
    당연히 리눅스상에선 동작하지 않습니다.
    실행파일 확장자도 EXE로 붙이는 것이 너무 눈에 띄죠?(이건 에러의 원인은 아닙니다만..)
    --------------------------------------------------------------------------------------------------------------------------------------------------
    규칙 설명
    2. .f -> .obj 가 만들어지는 것은 Make 의 suffixes 규칙을 공부하시면 됩니다. (결과는 보시는 것과 같고.. makefile의 매크로 동작 규칙을 공부하면 됩니다.)

  • 13.03.05 17:21

    작동 수행 과정은 make 명령을 내리면 makefile에 적힌 수행을 하고
    위 파일에선
    기본동작으로 SPHYSICS_3D.exe: $(OBJFILES) 을 수행하고
    $(OBJFILES)가 확장되서 OBJFILES = 에 있는 파일을 요구하게 됩니다.
    각 objfile의 항목은 suffix 규칙에 의해

    .f.obj:
    ifort $(OPTIONS) $(COPTIONS) /O3 /c $<
    부분이 실행됩니다. $< 같은 독특한 표현은 make 의 규칙입니다. 파일 이름에 대한 의미를 담고 있습니다. 몇 가지 더 되고요.

    + 코멘트 1 : 위에 COPTIONS라는 변수를 만들어 최적화 레벨에 대한 컴파일 옵션을 변수를 통해 사용하려 했으나..
    그냥 고정적으로 O3를 컴파일 명령에 집어 넣는.. 좀 거시기한 사용을 보여주네요.

  • 13.03.05 17:24

    원래의 머릿속에는
    위쪽에
    COPTIONS= /03 /C
    로 하고
    ifort $(OPTIONS) $(COPTIONS) $<
    로 할 생각이었을 것인데..

    실행이 완료되면 차례로 각 단계가 복귀 되면서
    xilink /OUT:$@ $(OPTIONS) $(OBJFILES)
    로 실행파일이 만들어 집니다.
    + 코멘트 2 :. 이거 일반적인 Make형식이 아니고 윈도우 비주얼 포트란 계열에서 제공하는 NMAKE 툴의 형식인 듯 보이는데요..

  • 13.03.05 17:42

    그리고 make파일은 탭문자가 정확해야합니다. 그래야 오해의 소지가 없습니다.
    남에게 보여주기 위해 이렇게 올릴 때는 파일 자체로 올려야 합니다. 이렇게 글로 옮기면 탭이 무너지니..

  • 13.03.05 17:47

    SPHYSICS라고 구글에 검색하니 이 프로젝트인가 보네요.

    https://wiki.manchester.ac.uk/sphysics/index.php/SPHYSICS_FAQ

    중간에 보면

    How do I generate a geometry using SPHysics in fortran codes?
    이하 문단에
    (iii) ifort on windows: NMAKE/f"SPHYSICSgen_win_ifort.mak"
    라는 것이 보이네요... 역시 이 파일은 NMAKE용 make파일입니다.

    (i) gfortran on linux/Mac/cygwin: make -f SPHYSICSgen_gfortran.mak
    (ii) ifort on linux: make -f SPHYSICSgen_ifort.mak
    (iii) ifort on windows: NMAKE/f"SPHYSICSgen_win_ifort.mak"
    (iv) FTN95 on windows: mk32 -f SPHYSICSgen_ftn95.mak

  • 13.03.05 17:48


    (ii) ifort on linux ^^;

  • 작성자 13.03.07 13:08

    답변 감사드립니다. makefile 자체는 linux 용 옵션으로 만들었는데, 저렇게 보니 window 용으로 잘못 생성이 되어 있군요. 덕분에 문제 해결했습니다. 감사합니다. ^^

최신목록