概要
気象の研究とかに使われるメソスケール気候予測数値モデル、WRFのコンパイルで困った時のお話。
WRF3.4.1/Ubuntu13.10/gcc-fortran4.8.1で起こりました。
エラーの内容
どうやらCプリプロセッサで.Fのファイルを.f90にするときとかに
C形式のコメントが残ってしまって、コンパイル時に文法エラーになる模様。
configure.wrfでCPPの-Cオプションを削除しても、WRF内部のMakefileで-Cオプションを利用しているようで同じようなエラーが出る。
error
gfortran -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4 -c -I/usr/local/netcdf-4.3.2/gcc44/include -I../ioapi_share diffwrf.f
diffwrf.f:1.1:
/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
1
Error: Invalid character in name at (1)
diffwrf.f:2.3:
This file is part of the GNU C Library.
1
Error: Unclassifiable statement at (1)
diffwrf.f:4.3:
The GNU C Library is free software; you can redistribute it and/or
1
Error: Unclassifiable statement at (1)
diffwrf.f:4.39:
対処法
gfortranでのコンパイル時に-cppオプションを付ける。
./configureのあとに、configure.wrfの119行目、120行目を以下のように編集。
FORMAT_FIXED = -ffixed-form -cpp
FORMAT_FREE = -ffree-form -ffree-line-length-none -cpp
2014/9/30追記
-Cオプションの削除ではなく、-nosdtincの追加でうまくいくようです(FizFoxさんありがとうございます)。