WRF, WPS y WRF Domain Wizard en Scientific Linux

30 de marzo de 2012

Seguir lo que dice en el siguiente manual
-----------------------------------------

    http://www.cmc.org.ve/mediawiki/index.php?title=%E2%97%A6_WRF


Para descargarse las librerías, hay una lista de esos datos a bajar
-------------------------------------------------------------------

    http://www.mmm.ucar.edu/wrf/users/download/get_sources.html


Sistema operativo: GNU/Linux
Distribución: Scientific Linux
Versión: 6.1
------------------------------
------------------------------


1. Descargar software necesario
-------------------------------

Descarga de WRF y WPS desde la página oficial. Se ha instalado la versión 3.3.1

http://www.mmm.ucar.edu/wrf/src/

Datos de topografía

www.mmm.ucar.edu/wrf/src/wps_files/geog.tar.gz

Librerías adicionales necesarias

www.mmm.ucar.edu/wrf/src/wps_files/jasper-1.701.0.tar.gz
www.mmm.ucar.edu/wrf/src/wps_files/libpng-1.2.12.tar.gz
www.mmm.ucar.edu/wrf/src/wps_files/zlib-1.2.3.tar.gz

NetCDF (la librería más importante para WRF). La última versión (ahora es la versión 4.1.3).

http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

WRFDomainWizard

http://wrfportal.org/domainwizard/WRFDomainWizard.zip

2. Instalación de compiladores y paquetes adicionales
-----------------------------------------------------

    NOTA IMPORTANTE: Para todos los paquetes que se instalen y compilen en adelante, se debe utilizar las MISMAS VERSIONES de los compiladores.
    ---------------

# yum install gcc
# yum install gcc-gfortran
# yum install gcc-c++ (necesario para compilar NetCDF)
# yum install make
# yum install perl (en Scientific Linux ya está instalado por defecto)
# yum install java (necesario para correr WRFDomianWizard)

3. Instalación de librerías adicionales
---------------------------------------

Se recomienda instalar un editor llamado nano, para poder hacer cualquier creación o modificación de scripts en lo posterior mediante consola (terminal): # yum install nano.

ZLIB (Instalar con -fPIC: export CFLAGS=-fPIC antes de todo)

$ zlib-1.2.3.tar.gz
$ cd zlib-1.2.3
$ ./configure
$ make
$ make check
# make install


JASPER

$ tar -xvzf jasper-1.701.0.tar.gz
$ cd jasper-1.701.0
$ ./configure
$ make
$ make check
# make install

LIBPNG

$ tar -xvzf libpng-1.2.12.tar.gz
$ cd libpng-1.2.12
$ ./configure
$ make

    ERROR:    /usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
        /usr/local/lib/libz.a: could not read symbols: Bad value
        collect2: ld returned 1 exit status

    Posible solución: http://www.gentoo.org/proj/en/base/amd64/howtos/index.xml?part=1&chap=3

    Si al momento de contruir (make) sale un error que pide que se recompile con -fPIC, se debe inicializar la variable CFLAGS = "-O3 -fPIC". Y luego de eso volver a ./configure. Así:
        $ export CFLAGS="-O3 -fPIC"
        $ ./configure

    Se puede ver el contenido de una variable de la sigui./run_DomainWizard
ente manera:
   
        $ echo $NOMBRE_VARIABLE

    Se puede borrar el valor de una variable de la siguiente manera:

        $ unset NOMBRE_VARIABLE

        NO PUDE ARREGLAR EL ERROR. Se puede instalar con: # yum install libpng. En Scientific Linux 6.1 ya está instalada la versión 1.2.46-2
        --------------------------
   
$ make check
# make install

4. Instalación NetCDF
---------------------

Se lo ha puesto como un subtítulo puesto que es la librería más importante para WRF.

$ tar -xvzf netcdf-4.1.3.tar.gz
$ cd netcdf-4.1.3
$ ./configure --disable-netcdf-4
$ make
$ make check
# make install

Para comprobar la instalación (se lo debe hacer pues es muy importante para WRF) se puede usar el siguiente comando:

ls /usr/local/include/netcdf*

El resultado debe contener los siguientes archivos:

/usr/local/include/netcdfcpp.h
/usr/local/include/netcdf.h
/usr/local/include/netcdf.hh
/usr/local/include/netcdf.inc
/usr/local/include/netcdf.mod

El siguiente comando:

ls /usr/local/lib/libnetcdf*

El resultado debe contener los siguientes archivos:

/usr/local/lib/libnetcdf.a    
/usr/local/lib/libnetcdf_c++.la
/usr/local/lib/libnetcdf_c++.a
/usr/local/lib/libnetcdf.la

5. Instalación de WRF
---------------------

$ tar -xvzf WRFV3.3.1.TAR.gz
$ cd WRFV3

Necesitaremos ahora agregar unas nuevas líneas al /etc/bashrc. Son las que se ven a continuación:

$ export JASPERLIB=/opt/jasper-1.701.0
$ export JASPERINC=/opt/jasper-1.701.0
$ ulimit -s unlimited

Para actualizar las variables de ambiente, como es usual:

$ source /etc/bashrc

$ ./configure

Aparece lo siguiente:

checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]

decimos "y" e incluimos los PATH:

/usr/local/include
/usr/local/lib

en cada uno de los casos que pregunta. Si hemos hecho todo bien aparecerá un menú (al principio de todo indica que se han reconocido los caminos a la biblioteca JASPER):

Please select from among the following supported platforms.

   1.  Linux x86_64, PGI compiler with gcc  (serial)
   2.  Linux x86_64, PGI compiler with gcc  (smpar)
   3.  Linux x86_64, PGI compiler with gcc  (dmpar)
   4.  Linux x86_64, PGI compiler with gcc  (dm+sm)
   5.  Linux x86_64, PGI accelerator compiler with gcc  (serial)
   6.  Linux x86_64, PGI accelerator compiler with gcc  (smpar)
   7.  Linux x86_64, PGI accelerator compiler with gcc  (dmpar)
   8.  Linux x86_64, PGI accelerator compiler with gcc  (dm+sm)
   9.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (serial)
  10.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (smpar)
  11.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (dmpar)
  12.  Linux x86_64 i486 i586 i686, ifort compiler with icc  (dm+sm)
  13.  Linux i486 i586 i686 x86_64, PathScale compiler with pathcc  (serial)
  14.  Linux i486 i586 i686 x86_64, PathScale compiler with pathcc  (dmpar)
  15.  x86_64 Linux, gfortran compiler with gcc   (serial)
  16.  x86_64 Linux, gfortran compiler with gcc   (smpar)
  17.  x86_64 Linux, gfortran compiler with gcc   (dmpar)
  18.  x86_64 Linux, gfortran compiler with gcc   (dm+sm)
  19.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (seri./run_DomainWizard
al)
  20.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (smpar)
  21.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (dmpar)
  22.  Cray XT CLE/Linux x86_64, PGI compiler with gcc  (dm+sm)
  23.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (serial)
  24.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (smpar)
  25.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (dmpar)
  26.  Cray XT CLE/Linux x86_64, Cray CCE compiler with gcc  (dm+sm)

Enter selection [1-26] : 15

Compile for nesting? (0=no nesting, 1=basic, 2=preset moves, 3=vortex following) [default 0]: 1

Configuration successful. To build the model type compile .

Testing for NetCDF, C and Fortran compiler

no entry nc.o in archive
This installation NetCDF is
C compiler is 64-bit
Fortran compiler is 64-bit
It will build in

¡YA!
----

$ ./compile em_real

Y SE COMIENZA A COMPILAR
------------------------

Para comprobar que se haya realizado con éxito la compilación. Se deben encontrar en el directorio main (dentro de WRFV3), entre otros, los siguientes archivos:

$ ls run/*.exe

wrf.exe
real.exe
nup.exe
ndown.exe
tc.exe
ndown.exe

Para hacer una prueba se puede bajar el siguiente archivo empaquetado: http://www.mmm.ucar.edu/wrf/src/data/jan00_wps.tar.gz

Se lo pone dentro de test/em_real

$ cd test/em_real
$ tar -xvzf jan00_wps.tar.gz
$ cp namelist.input.jan00 namelist.input
$ ./real.exe

    Puede salir el siguiente error: ./real.exe: error while loading shared libraries: libnetcdff.so.5: cannot open shared object file: No such file or directory
    Solución: $ export LD_LIBRARY_PATH=/usr/local/lib


Para recompilar

$ ./clean -a
$ ./configure
$ ./compile

INSTALACIÓN WPS
---------------

$ tar -xvzf WPSV3.3.1.TAR.gz
$ cd WPS/
$ export JASPERLIB=/opt/jasper-1.701.0
$ export JASPERINC=/opt/jasper-1.701.0

    NOTA: Aquí se muestra cómo hacer para que se configure WPS con grib2: https://nesccdocs.rdhpcs.noaa.gov/wiki/index.php/WPS
    Básicamente se tiene que poner en configure.wps
        COMPRESSION_LIBS = -ljasper -lpng12 -lpng -lz

$ ./configure
** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]
y
Enter full path to NetCDF include directory on your system
/usr/local/include
Enter full path to NetCDF library directory on your system
/usr/local/lib
created new ./netcdf_links directory
total 0
lrwxrwxrwx. 1 angelv angelv 18 mar  5 16:31 include -> /usr/local/include/
lrwxrwxrwx. 1 angelv angelv 14 mar  5 16:31 lib -> /usr/local/lib/
Will use NETCDF in dir: /home/angelv/WPS/netcdf_links
$JASPERLIB or $JASPERINC not found in environment, configuring to build with grib2 I/O...
------------------------------------------------------------------------
Please select from among the following supported platforms.

   1.  PC Linux x86_64, Intel compiler    serial, NO GRIB2
   2.  PC Linux x86_64, Intel compiler    serial
   3.  PC Linux x86_64, Intel compiler    DM parallel, NO GRIB2
   4.  PC Linux x86_64, Intel compiler    DM parallel
   5.  PC Linux x86_64, gfortran compiler,    serial, NO GRIB2
   6.  PC Linux x86_64, gfortran compiler,    serial
   7.  PC Linux x86_64, gfortran compiler,    DM PARALLEL, NO GRIB2
   8.  PC Linux x86_64, gfortran compiler,    DM PARALLEL
   9.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, serial, NO GRIB2
  10.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, serial
  11.  Cray XT/XE Linux x86_64 (Opteron), PGI compiler 5.2 or higher, DM parallel
  12.  Cray XT/XE Linux x86_64 (Opteron), PGI compiler 5.2 or higher, DM parallel, NO GRIB2
  13.  Cray XT/XE Linux x86_64 (Opteron), Cray CCE compiler 7.0 or higher, DM parallel
  14.  Cray XT/XE Linux x86_64 (Opteron), Cray CCE compiler 7.0 or higher, DM parallel, NO GRIB2
  15.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, DM parallel, NO GRIB2
  16.  PC Linux x86_64 (IA64 and Opteron), PGI compiler 5.2 or higher, DM parallel
  17.  PC Linux x86_64 (IA64 and Opteron), PathScale compiler 2.1 or higher, serial, NO GRIB2
  18.  PC Linux x86_64 (IA64 and Opteron), PathScale compiler 2.1 or higher, DM parallel, NO GRIB2
  19.  PC Linux x86_64, g95 compiler,    serial, NO GRIB2
  20.  PC Linux x86_64, g95 compiler,    serial
  21.  PC Linux x86_64, g95 compiler,    DM PARALLEL, NO GRIB2
  22.  PC Linux x86_64, g95 compiler,    DM PARALLEL

Enter selection [1-22] : 8
------------------------------------------------------------------------
Configuration successful. To build the WPS, type: compile
------------------------------------------------------------------------

$ ./compile

**********************************************************************************************************************
**************************************  WRFDomainWizard  *************************************************************
**********************************************************************************************************************

WRFDomainWizard
---------------
---------------

Descompresión del programa. Se lo ha realizado dentro de la carpeta personal /home/angelv/WRFDomainWizard

$ unzip WRFDomainWizard.zip (este comando descomprime los archivos donde esté WRFDomainWizard.zip)

Cambiamos los permisos de ejecución del lanzador del programa (http://belinuxmyfriend.blogspot.com/2007/04/chmod-jugando-con-los-permisos.html):

$ chmod 777 run_DomainWizard

$ ./run_DomainWizard

Datos no transitorios
---------------------

Descargar datos geográficos (454 MB) de: http://www.mmm.ucar.edu/wrf/src/wps_files/geog.tar.gz

Descomprimir los datos geográficos (13 GB). Se lo puede hacer en cualquier directorio; en este caso se lo ha descomprimido en el directorio donde está WPS (/home/angelv/WPS).

$ tar -xvzf geog.tar.gz

Uso de WRFDomainWizard
----------------------

NOTA: Por facilidad (para no usar línea de comandos) se ha creado un lanzador o acceso directo a WRFDomainWizard para acceder desde el escritorio.
    Click derecho en el Escritorio
    Crear Lanzador
    Se ingresan los siguientes datos
        Tipo: Aplicación
        Nombre: WRFDomainWizard (Este nombre puede ser cualquiera)
        Comando: java -Xmx575m -jar /home/angelv/WRFDomainWizard/WRFDomainWizard.jar
        Comentario: GUI para uso de WPS (Puede ser cualquier comentario)

Primero se configuran los parámetros de WRFDomainWizard

    NOTA: Se crea un directorio para los resultados de ejecución de WPS (para usarlo en el parámetro Domains al momento de configurar WRFDomainWizard): $ mkdir /home/angelv/WPS/Domains

Computer (se rellena automáticamente luego de ingresar los siguientes tres parámetros): localhost.localdomain
WPS Programs: /home/angelv/WPS
Geography: /home/angelv/WPS/geog
Domains: /home/angelv/WPS/Domains

NOTA: Para ver el uso de WRFDomainWizard: http://wrfportal.org/DomainWizard.html


Para instalar Skype en Scientific Linux: http://unix.stackexchange.com/questions/25846/skype-missing-gpg-key


PRUEBA DE EJECUCIÓN CON WRF
---------------------------

$ ./real.exe

    Salió este error:
-------------- FATAL CALLED ---------------
 FATAL CALLED FROM FILE:    LINE:     693
  input_wrf.F: SIZE MISMATCH:  namelist ide,jde,num_metgrid_levels=         100         132          65 ; input data ide,jde,num_metgrid_levels=         100         132          27

Aquí tuve pistas para resolver el problema: http://forum.wrfforum.com/viewtopic.php?f=9&t=2781

El error dice que no hay consistencia entre el valor configurado en la variable num_metgrid_levels y los valores que existen para hacer la corrida. Hay que editar el valor de la variable, cambiando de 65 a 27 (como se indica en el archivo mismo).

Luego de una ejecución exitosa debe aparecer el siguiente resultado:

 Domain  1: Current date being processed: 2012-03-30_00:00:00.0000, which is loop #   9 out of    9
 configflags%julyr, %julday, %gmt:        2012          90   0.0000000   
  metgrid input_wrf.F first_date_input = 2012-03-30_00:00:00
  metgrid input_wrf.F first_date_nml = 2012-03-29_00:00:00
 d01 2012-03-30_00:00:00 Timing for input          0 s.
 d01 2012-03-30_00:00:00          flag_soil_layers read from met_em file is  1
 Using sfcprs3 to compute psfc
 d01 2012-03-30_00:00:00 Old data, no inland lake information
  Assume Noah LSM input
 LAND  CHANGE =            0
 WATER CHANGE =            0
 d01 2012-03-30_00:00:00 Timing for processing          0 s.
 LBC valid between these times 2012-03-29_21:00:00.0000 2012-03-30_00:00:00    
 d01 2012-03-30_00:00:00 Timing for output          0 s.
 d01 2012-03-30_00:00:00 Timing for loop #    9 =          1 s.
 d01 2012-03-30_00:00:00 real_em: SUCCESS COMPLETE REAL_EM INIT

$ ./wrf.exe

Timing for Writing wrfout_d01_2012-03-29_03:00:00 for domain        1:    0.30800 elapsed seconds.
 d01 2012-03-29_03:00:00 wrf: SUCCESS COMPLETE WRF

ERROR ERROR ERROR
-----------------
-----------------

Por aquí puede estar la solución: http://forum.wrfforum.com/viewtopic.php?f=6&t=2531


[angelv@localhost em_real]$ ./wrf.exe
 Namelist dfi_control not found in namelist.input. Using registry defaults for variables in dfi_control
 Namelist tc not found in namelist.input. Using registry defaults for variables in tc
 Namelist scm not found in namelist.input. Using registry defaults for variables in scm
 Namelist fire not found in namelist.input. Using registry defaults for variables in fire
 --- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
 --- NOTE: grid_fdda is 0 for domain      1, setting gfdda interval and ending time to 0 for that domain.
 --- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      1, setting sgfdda interval and ending time to 0 for that domain.
 --- NOTE: obs_nudge_opt is 0 for domain      1, setting obs nudging interval and ending time to 0 for that domain.
 --- NOTE: num_soil_layers has been set to      4
 WRF V3.3.1 MODEL
  *************************************
  Parent domain
  ids,ide,jds,jde            1         100           1         132
  ims,ime,jms,jme           -4         105          -4         137
  ips,ipe,jps,jpe            1         100           1         132
  *************************************
 DYNAMICS OPTION: Eulerian Mass Coordinate
    alloc_space_field: domain            1 ,             596733464  bytes allocated
   med_initialdata_input: calling input_input
Timing for processing wrfinput file (stream 0) for domain        1:    0.17400 elapsed seconds.
 INPUT LandUse = "USGS"
 LANDUSE TYPE = "USGS" FOUND          33  CATEGORIES           2  SEASONS WATER CATEGORY =           16  SNOW CATEGORY =           24
 INITIALIZE THREE Noah LSM RELATED TABLES
  LANDUSE TYPE = USGS FOUND          27  CATEGORIES
  INPUT SOIL TEXTURE CLASSIFICATION = STAS
  SOIL TEXTURE CLASSIFICATION = STAS FOUND          19  CATEGORIES
Timing for Writing wrfout_d01_2012-03-29_00:00:00 for domain        1:    0.86100 elapsed seconds.
Timing for processing lateral boundary for domain        1:    0.04900 elapsed seconds.
 WRF TILE   1 IS      1 IE    100 JS      1 JE    132
 WRF NUMBER OF TILES =   1
Timing for main: time 2012-03-29_00:03:00 on domain   1:   25.85200 elapsed seconds.
Timing for main: time 2012-03-29_00:06:00 on domain   1:   15.83300 elapsed seconds.
Timing for main: time 2012-03-29_00:09:00 on domain   1:   15.50600 elapsed seconds.
Timing for main: time 2012-03-29_00:12:00 on domain   1:   16.01300 elapsed seconds.
Timing for main: time 2012-03-29_00:15:00 on domain   1:   15.59900 elapsed seconds.
Timing for main: time 2012-03-29_00:18:00 on domain   1:   16.03300 elapsed seconds.
 Flerchinger USEd in NEW version. Iterations=          10
 Flerchinger USEd in NEW version. Iterations=          10
 Flerchinger USEd in NEW version. Iterations=          10
  WOULD GO OFF TOP: KF_ETA_PARA I,J,DPTHMX,DPMIN          52          89             NaN   5000.0000
Violación de segmento

--------------------
--------------------
ERROR ERROR ERROR

-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
***************************** INSTALACIÓN DE ARW POST *******************************************************************************
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------

VIDEO QUE DA CÓMO COMPILAR http://youtu.be/zXvfQ4i0IJE

ARWpost:
ARWpost, is a Fortran program that reads WRF ARW input and output file and generate GrADS output files.

Once the output files have been generated, GrADS can be used to producing horizontal or vertical cross section plots of scalar fields (contours) or vector fields (barbs or arrows), vertical profiles and soundings.

$ tar -xvzf ARWpost_V3.tar.gz
$ cd ARWpost
$ ./configure

** WARNING: No path to NETCDF and environment variable NETCDF not set.
** would you like me to try to fix? [y]
y
Enter full path to NetCDF include directory on your system
/usr/local/include
Enter full path to NetCDF library directory on your system
/usr/local/lib
created new ./netcdf_links directory
total 0
lrwxrwxrwx. 1 angelv angelv 18 abr 18 15:41 include -> /usr/local/include/
lrwxrwxrwx. 1 angelv angelv 14 abr 18 15:41 lib -> /usr/local/lib/
Will use NETCDF in dir: /home/angelv/ARWpost/netcdf_links
------------------------------------------------------------------------
Please select from among the following supported platforms.

   1.  PC Linux i486 i586 i686 x86_64, PGI compiler   
   2.  PC Linux i486 i586 i686 x86_64, Intel compiler   
   3.  PC Linux i486 i586 i686 x86_64, gfortran compiler

Enter selection [1-3] : 2  
------------------------------------------------------------------------
Configuration successful. To build the ARWpost, type: compile
------------------------------------------------------------------------

$ ./compile

Se dió el siguiente error:

    module_interp.f:(.text+0x6ece): undefined reference to `ncvgt_'
    collect2: ld devolvió el estado de salida 1
    make: [ARWpost.exe] Error 1 (no tiene efecto)

Instalación de Vis5D

Descargar desde la página web oficial: http://www.ssec.wisc.edu/~billh/vis5d.html

$ tar -xvzf vis5d+-1.3.0-beta.tar.gz
$ cd vis5d+-1.3.0-beta
$ ./configure

****************************************************
You need to install a 3D graphics library, preferably
the free OpenGL replacement, Mesa.  You can download
Mesa from the Mesa home page:
          http://www.mesa3d.org/
and install it by running:
       ./configure && make && su -c 'make install'
in the Mesa directory.
You may also need to run /sbin/ldconfig as root
to update the system after installing Mesa.
(First, add '/usr/local/lib' to /etc/ld.so.conf if
you installed Mesa under /usr/local, the default.)
****************************************************

Related Posts with Thumbnails