Средства: Ubuntu 10.04 LTS, WRF ARW model, Internet
Это первая часть "step-by-step" инструкции по установке и запуску негидростатической мезомасштабной атмосферной модели WRF версии 3.1 на ОС Linux. В ней описываются особенности сборки и компиляции двух главных компонент модели WRF: собственно WRF и WPS.
В качестве среды Linux был использована довольно старая версия Ubuntu 10.04 LTS (Lucid Lynx). Все описанные ниже действия являются русифицированным аналогом онлайн учебника, который Вы можете найти здесь Wrf OnLineTutorial . Итак, приступим.
N.B. Библиотека Netcdf версии 4.1 была собрана без возможности использовать hdf5 (т.е. новый) формат. С установкой HDF5 возникли сложности, как и с WRF версии 3.3.
Netcdf 4.1 + WRF3.1 оказалось хорошим к установке сочетанием для этой версии Ububntu.
I. NetCDF installing. Сборка библиотеки netcdf.
Для сборки и работы модели нужна библиотека netcdf. Скачиваем netcdf 4.1.1 , распаковываем архив в любую папку ("Загрузки", например):
gunzip netcdf-4.1.1.tar.gz
tar -xf netcdf-4.1.1.tar
Открываем в аналоге блокнота файл INSTALL и ... читаем =). Здесь будет использована сборка netcdf без поддержки нового формата hdf5. Для этого прописываем следующее в терминале, в директории с распакованным netcdf:
./configure --prefix=/usr/local/netcdf --disable-netcdf-4
sudo make check install
Второе без sudo может завершиться ошибкой. Собственно конструкция --prefix= указывает путь, где будет располагаться Ваш netcdf. Обычно его ставят в /usr/local/netcdf, но можно указать и другой путь. После правильной установки в окне терминала появится следующее:
+----------------------------------------------------------+
| Congratulations! You have successfully installed netCDF! |
| *** |
+----------------------------------------------------------+
Установим путь для окружения netcdf через команду export:
export NETCDF=/usr/local/netcdf
В учебнике приводится конструкция setenv. Разница между ними по синтаксису в нашем случае такая:
setenv VAR /path1/path2
export VAR=/path1/path2
Всё, с netcdf худо-бедно разобрались.
II. WRF configure & compile. Сборка WRF.
Быстро зарегистрировавшись, загружаем модель (WRF 3.1) и соответствующую ей по версии систему предварительной обработки (WPS 3.1) с Get_wrf3.1_sources .
Создаем папку в домашней папке и копируем туда архивы:
pwd
/home/user/
mkdir WRF
Разархивируем оба архива в новую папку WRF:
gunzip WRFV3.1.TAR.gz
tar -xf WRFV3.1.TAR
gunzip WPSV3.1.TAR.gz
tar -xf WPSV3.1.TARtar -xf WRFV3.1.TAR
gunzip WPSV3.1.TAR.gz
После разархивации появятся две папки: WRFV3 и WPS. Сначала соберём сам WRF. Для этого заходим в папку WRFV3:
cd WRFV3
Определяем параметры сборки. Пишем в терминале:
./configure
В открывшемся меню выбираем 1 (gfortran serial) и 1 (basic). Далее стоит (но необязательно вроде как) указать путь для поддержки крупных по размерам файлов (система сама подскажет насчёт этого). Сделаем это:
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
Всё, мы готовы компилировать:
./compile
Если всё хорошо, то далее
./compile em_real >& compile.log
Если в итоге в папке main появились exe-шники real.exe wrf.exe, значит всё получилось!
III. WPS configure & compile. Сборка системы подготовки WPS.
Собственно здесь всё аналогично. Переходим в папку WPS (cd WPS).
Важно снова указать путь для netcdf:
export NETCDF=/usr/local/netcdf
Определяем конфигурацию сборки:
./configure
Здесь использовался номер 13 (gfortran with NO GRIB2, т.к. GRIB2 требует JAVA-библиотеки JASPER, с которой были проблемы)
Собираем:
./compile em_real >& compile.log
Если всё ОК, то в папке WPS появятся ссылки на exe-шники (metgrid.exe, ungrib.exe, geogrid.exe и сами exe-файлы в соответствующих папках в /src)
Итого: мы установили библиотеку netcdf, собрали саму модель WRF и систему подготовки данных. Следующим шагом будет настройка основных параметров и запуск модели.
Добрый день!
ОтветитьУдалитьСпасибо за простые и точные инструкции. В общем все собралось нормально. Как то очень быстро прошла инструкция сборки системы подготовки WPS ./compile em_real >& compile.log ...
Прошу сообщить где можно взять данные для проверки работы системы.
С уважением, Александр.
ont_07@mail/ru
Добрый день, Александр!
ОтветитьУдалитьТестовые данные можно взять тут:
http://www.mmm.ucar.edu/wrf/OnLineTutorial/DATA/index.html
Установил netcdf 4.2 ,wrf 3.4
Удалитькомпиляция не получается,нет файла
/usr/local/netcdf/include/netcdf.inc
После
./compile em_real >& compile.log
В compile.log получаем
wrf_io.o: In function `__ext_ncd_support_routines_MOD_netcdf_err.part.0':
wrf_io.f:(.text+0x1f): undefined reference to `nf_strerror_'
wrf_io.o: In function `__ext_ncd_support_routines_MOD_gettimeindex':
wrf_io.f:(.text+0x81da): undefined reference to `nf_put_vara_text_'
wrf_io.o: In function `ext_ncd_get_var_td_char_':
wrf_io.f:(.text+0x12c9f): undefined reference to `nf_inq_varid_'
wrf_io.f:(.text+0x12ced): undefined reference to `nf_inq_var_'
Что делать ?
К сожалению, не могу Вам помочь с данной проблемой. Моей компетенции явно не хватает, чтобы решить возникшую проблему. Могу порекомендовать установить более ранние версии библиотеки netcdf. Скорее всего это может помочь.
Удалитьподскажите пожалуйста как исправить ошибку
ОтветитьУдалитьcdf.lo netcdf.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../fortran -I../libsrc -c netcdf.cpp
../libtool: line 981: g++: command not found
make[1]: *** [netcdf.lo] Error 1
make[1]: Leaving directory `/home/ivan/w/netcdf-4.1.1/cxx'
make: *** [check-recursive] Error 1
Анонимный, к сожалению не могу Вам помочь с данной ошибкой. Я давно не работаю с WRF. Написал вот только первую часть установки модели. Надеюсь, что даже это немногое кому-то поможет.
УдалитьМожет быть позже, когда будут подходящие условия, я продолжу и доведу инструкцию до ума.