Page 1 sur 3
Ce document explique comment compiler la version 3.4.1 de WRF (Weather Research &Forecasting) et WPS (WRF Preprocessing system) en utilisant les compilateurs Intel sur ClimServ.
"WRF was developed at the National Center for Atmospheric Research (NCAR)which is operated by the University Corporation for AtmosphericResearch (UCAR). NCAR and UCAR make no proprietary claims, eitherstatutory or otherwise, to this version and release of WRF and considerWRF to be in the public domain for use by any person or entity for anypurpose without any fee or charge. UCAR requests that any WRF userinclude this notice on any partial or full copies of WRF. WRF isprovided on an "AS IS" basis and any warranties, either express orimplied, including but not limited to implied warranties ofnon-infringement, originality, merchantability and fitness for aparticular purpose, are disclaimed. In no event shall UCAR be liablefor any damages, whatsoever, whether direct, indirect, consequential orspecial, that arise out of or in connection with the access, use orperformance of WRF, including infringement actions." (Cette description est issue de la page : http://www.mmm.ucar.edu/wrf/users/public.htm).
Obtenir le code source
Les codes source de WRF peuvent être téléchargés ici.
Pré-requis
Les librairies NetCDF, JASPER, NCARG et HDF5 requises par WRF et WPS sont installées sur ClimServ.
Ce tutoriel est réalisé pour la version 2011 du compilateur PGI (voir article ici ).
Choisir les compilateurs PGF-GCC comme compilateurs MPI par défaut (voir article ici )
mpi-selector --yes --user --set openmpi-1.4.3-pgfgcc-x86_64
# se déloguer et/ou ouvrir une nouvelle session
mpi-selector --query
default:openmpi-1.4.3-pgfgcc-x86_64
level:user
Les commandes suivantes fonctionnent sous SHELL sh ou bash. Si le SHELL par défaut est csh ou tcsh, se placer sous bash :
bash
Compilation de l'application
On suppose dans la suite que l'application est installée dans le répertoire $HOME/WRF.
TOPDIR=$HOME/WRF
WRFDIR=$TOPDIR/WRFV3
WPSDIR=$TOPDIR/WPS
Copier ou déplacer les fichiers WRFV3.4.1.TAR.gz et WPSV3.4.1.TAR.gz dans le répertoire $TOPDIR, puis décompresser les archives :
cd $TOPDIR
tar -zxvf WRFV3.4.1.TAR.gz
tar -zxvf WPSV3.4.1.TAR.gz
Préparation de l'environnement de compilation de WRF et WPS :
# Pour activer le support des "Large Files" en NetCDF :
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
# Définition des chemins d'acces aux librairies NetCDF, JASPER et HDF5 :
export NETCDF=/opt/netcdf/pgf
export JASPERLIB=/usr/lib64
export JASPERINC=/usr/include/jasper
export PHDF5=/opt/hdf5-1.8.5
Compilation de WRF :
# Compilation avec les compilateurs PGI avec GCC + parallèlisme MPI (dmpar) et OpenMP (smpar) : Option 4
cd $WRFDIR
clean -a
./configure
./compile em_real 2>&1 |tee compile.out
Compilation de WPS :
# Compilation avec les compilateurs PGI + parallèlisme MPI (dmpar) : Option 7
cd $WPSDIR
./configure
# Modification du fichier de configuration pour compatibilité avec NCARG :
#echo "g/-L\/data3a\/mp\/gill\/WPS_LIBS\/local\/lib/s/-L\/data3a\/mp\/gill\/WPS_LIBS\/local\/lib/-L\/usr\/lib64/"$'\nw' | ed -s configure.wps
#echo "g/-I\/data3a\/mp\/gill\/WPS_LIBS\/local\/include/s/-I\/data3a\/mp\/gill\/WPS_LIBS\/local\/include/-I\/usr\/include\/libpng12/"$'\nw' | ed -s configure.wps
#echo "g/-L\$(NCARG_ROOT)\/lib/s/-L\$(NCARG_ROOT)\/lib/-L\/usr\/lib64\/ncarg/"$'\nw' | ed -s configure.wps
echo "g/-lX11/s/-lX11/-lX11 -lgfortran -lpng/"$'\nw' | ed -s configure.wps
echo "g/mpif90 -f90=.*/s/mpif90 -f90=.*/mpif90/"$'\nw' | ed -s configure.wps
echo "g/mpicc -cc=.*/s/mpicc -cc=.*/mpicc/"$'\nw' | ed -s configure.wps
# Compilation
./compile 2>&1 |tee compile.out
|