Edited at

WRF3.4.1のコンパイル

More than 3 years have passed since last update.


概要

気象の研究とかに使われるメソスケール気候予測数値モデル、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さんありがとうございます)。


参考

http://forum.wrfforum.com/viewtopic.php?f=5&t=6086