Diferencia entre revisiones de «Ejemplo WRF»

De NLHPC
 
(No se muestran 27 ediciones intermedias de otro usuario)
Línea 1: Línea 1:
== Ejecución de WRF mediante el uso de módulos==
== Ejecución de WRF mediante el uso de módulos==
Este documento tiene por objetivo guiar a los usuario del Laboratorio Nacional de Supercomputación NLHPC en en el proceso de ejecución de una simulación del modelo WRF mediante la cargar los módulos disponibles en nuestro Gestor de Módulos LMOD.
Este documento tiene por objetivo guiar a los usuario del [https://www.nlhpc.cl/ Laboratorio Nacional de Supercomputación NLHPC] en en el proceso de ejecución de una simulación del modelo '''WRF''' mediante la cargar los módulos disponibles en nuestro [https://wiki.nlhpc.cl/Lmod Gestor de Módulos LMOD].


Los pasos necesarios para realizar una simulación son los siguientes:
Los pasos necesarios para realizar una simulación son los siguientes:


== Realizar la carga de módulos correspondiente a la versión de WRF/WPS deseada por el usuario ==
== Realizar la carga de módulos correspondiente a la versión de WRF/WPS deseada por el usuario ==
En este paso, el usuario podrá buscar mediante el sistema gestor de módulos LMOD las versiones de WRF y WPS disponibles, considerando que para una correcta ejecución de una simulación las versiones de WRF y WPS deben ser lo mas parecidas posibles.
En este paso, el usuario podrá buscar mediante el [https://wiki.nlhpc.cl/Lmod Gestor de Módulos LMOD] las versiones de '''WRF''' y '''WPS''' disponibles, considerando que para una correcta ejecución de una simulación las versiones de WRF y WPS deben ser lo mas parecidas posibles.


Para realizar la búsqueda de módulos WRF y WPS, el usuario deberá ejecutar los comandos <code>ml spider WRF</code> y <code>ml spider WPS</code>. Lo que mostrará la siguiente información
Para realizar la búsqueda de módulos, el usuario deberá ejecutar los comandos <code>ml spider WRF</code> y <code>ml spider WPS</code>. Lo que mostrará la siguiente información


<pre>
<pre>
Línea 63: Línea 63:
</pre>
</pre>


Mismo procedimiento para el caso de WPS
Mismo procedimiento para el caso de '''WPS'''


<pre>
<pre>
Línea 152: Línea 152:
  fg_name = 'FILE'
  fg_name = 'FILE'
/
/
</pre>
O bien puede descargarlo directamente para continuar con el ejercicio:
<pre>
wget https://raw.githubusercontent.com/nlhpc-training/Tutorial-WRF/main/namelist.wps
</pre>
</pre>


En este ejemplo se ha descargado la data geog mandatoria, pero existe data opcional en caso de ser necesaria.
En este ejemplo se ha descargado la data geog mandatoria, pero existe data opcional en caso de ser necesaria.


WPS_GEOG se descargó en <code>/home/nombre_usuario/TEST_WRF/WPS-4.2</code> pero cada usuario puede descargarla donde desee. Y como se puede apreciar, la ruta <code>geog_data_path</code> es la que debe apuntar a esta carpeta.
'''WPS_GEOG''' se descargó en <code>/home/nombre_usuario/TEST_WRF/WPS-4.2</code> pero cada usuario puede descargarla donde desee. Y como se puede apreciar, la ruta <code>geog_data_path</code> es la que debe apuntar a esta carpeta.


== Enlazar simbólicamente la Vtable a utilizar, el cual debe quedar en la ruta donde está el preprocesador WPS ==
== Enlazar simbólicamente la Vtable a utilizar, el cual debe quedar en la ruta donde está el preprocesador WPS ==
Línea 173: Línea 179:
== Descargar datos de CI y CB para realizar el preproceso de datos ==
== Descargar datos de CI y CB para realizar el preproceso de datos ==


En este caso, clonaremos desde el git NLHPC datos de prueba, los cuales nos permitirán ejecutar los procesos de ungrib.exe y metgrid.exe respectivamente. En este proceso, copiaremos los datos y desde la carpeta de WPS realizaremos el proceso de linkeo a dichos datos mediante el script link_grib.csh. Finalmente ejecutaremos ungrib.exe y metgrid.exe
En este caso, clonaremos desde el [https://github.com/nlhpc-training git NLHPC] los datos de prueba, los cuales nos permitirán ejecutar los procesos de '''ungrib.exe''' y '''metgrid.exe''' respectivamente. En este proceso, copiaremos los datos y desde la carpeta de '''WPS''' realizaremos el proceso de linkeo a dichos datos mediante el <code>script link_grib.csh</code>. Finalmente ejecutaremos <code>ungrib.exe</code> y <code>metgrid.exe</code>


<pre>
<pre>
cd ~/TEST_WRF/
cd ~/TEST_WRF/
wget https://github.com/nlhpc-training/Tutorial-WRF/archive/refs/heads/main.zip
mkdir CI_CB
unzip main.zip
cd CI_CB
wget https://github.com/nlhpc-training/Tutorial-WRF/raw/main/fnl_20210130_12_00.grib2
wget https://github.com/nlhpc-training/Tutorial-WRF/raw/main/fnl_20210130_18_00.grib2
cd ~/TEST_WRF/WPS-4.2/
cd ~/TEST_WRF/WPS-4.2/
./link_grib.csh ~/TEST_WRF/Tutorial-WRF-main/
./link_grib.csh ~/TEST_WRF/CI_CB/fnl*
srun ungrib.exe
srun ungrib.exe
srun metgrid.exe
srun metgrid.exe
Línea 186: Línea 194:


En este ejemplo se ha ejecutado interactivamente el preproceso de datos ya que el dominio y la data han sido pensados para un ejercicio de poca duración.  
En este ejemplo se ha ejecutado interactivamente el preproceso de datos ya que el dominio y la data han sido pensados para un ejercicio de poca duración.  
Ahora bien, en el caso de que el usuario deba preprocesar información de largo aliento, se recomienda crear un script y lanzarlo mediante sbatch.
Ahora bien, en el caso de que el usuario deba preprocesar información de largo aliento, se recomienda crear un script y lanzarlo mediante sbatch. (Para mayor información, véase apartado de [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS#Ejecutando_trabajos ejecución de trabajos])


== Crear el archivo de configuración namelist.input según lo requerido ==
== Crear el archivo de configuración namelist.input según lo requerido ==


Para este caso, ingresamos a la carpeta run de WRF y editaremos el archivo <code>namelist.input</code>  
Para este caso, ingresamos a la carpeta '''run''' de '''WRF''' y editaremos el archivo <code>namelist.input</code>  


<pre>
<pre>
Línea 305: Línea 313:
  nio_groups = 1,
  nio_groups = 1,
  /
  /
</pre>
O bien, puede descargarlo directamente para continuar con el ejercicio:
<pre>
wget https://raw.githubusercontent.com/nlhpc-training/Tutorial-WRF/main/namelist.input
</pre>
</pre>


== Ejecución de real.exe ==
== Ejecución de real.exe ==


En este punto, debemos linkear los datos met_em resultantes del proceso <code>metgrid.exe</code> y posteriormente ejecutar el comando <code>real.exe</code>.
En este punto, debemos linkear los datos '''''met_em''''' resultantes del proceso <code>metgrid.exe</code> y posteriormente ejecutar el comando <code>real.exe</code>.


<pre>
<pre>
Línea 325: Línea 339:
#---------------Script SBATCH - NLHPC ----------------
#---------------Script SBATCH - NLHPC ----------------
#SBATCH -J TestJob_wrf
#SBATCH -J TestJob_wrf
#SBATCH -p slims
#SBATCH -p main
#SBATCH -n 20
#SBATCH -n 20
#SBATCH --ntasks-per-node=20
#SBATCH --ntasks-per-node=20
Línea 342: Línea 356:
# ----------------Comando--------------------------
# ----------------Comando--------------------------
cd ~/TEST_WRF/WRF-4.1.3/run/
cd ~/TEST_WRF/WRF-4.1.3/run/
time mpiexec wrf.exe
time wrf.exe
</pre>
 
O bien, podemos descargarlo para continuar con el ejercicio.
 
<pre>
wget https://raw.githubusercontent.com/nlhpc-training/Tutorial-WRF/main/lanza-wrf.sh
</pre>
</pre>


Línea 350: Línea 370:
sbatch lanza-wrf.sh
sbatch lanza-wrf.sh
</pre>
</pre>
== Enlaces de interés ==
University Corporation for Atmospheric Research UCAR: https://www.mmm.ucar.edu/<br>
National Oceanic and Atmospheric Administrarion NOAA: https://esrl.noaa.gov/gsd/wrfportal/<br>
NOAA (Tutoriales WRF): https://esrl.noaa.gov/gsd/wrfportal/html-tutorial.html<br>
NCEP Central Operations (Descarga de datos): https://www.nco.ncep.noaa.gov/pmb/products/gfs/<br>

Revisión actual - 21:41 29 abr 2024

Ejecución de WRF mediante el uso de módulos

Este documento tiene por objetivo guiar a los usuario del Laboratorio Nacional de Supercomputación NLHPC en en el proceso de ejecución de una simulación del modelo WRF mediante la cargar los módulos disponibles en nuestro Gestor de Módulos LMOD.

Los pasos necesarios para realizar una simulación son los siguientes:

Realizar la carga de módulos correspondiente a la versión de WRF/WPS deseada por el usuario

En este paso, el usuario podrá buscar mediante el Gestor de Módulos LMOD las versiones de WRF y WPS disponibles, considerando que para una correcta ejecución de una simulación las versiones de WRF y WPS deben ser lo mas parecidas posibles.

Para realizar la búsqueda de módulos, el usuario deberá ejecutar los comandos ml spider WRF y ml spider WPS. Lo que mostrará la siguiente información

(base) [usuario@leftraru1 run]$ ml spider WRF

-------------------------------------------------------------------------------------------------------------------
  WRF:
-------------------------------------------------------------------------------------------------------------------
    Description:
      The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale numerical weather prediction system designed to serve both operational
      forecasting and atmospheric research needs. 

     Versions:
        WRF/3.7.1-dm+sm-polar
        WRF/3.7.1-dm+sm
        WRF/3.9.1-dm+sm+chem
        WRF/3.9.1-dm+sm-polar
        WRF/3.9.1-dmpar+chem
        WRF/4.0.3-dm+sm
        WRF/4.1-dm+sm
        WRF/4.1.2-dm+sm+oasis
        WRF/4.1.2-dm+sm
        WRF/4.1.3-dmpar
        WRF/4.1.5-dm+sm
        WRF/4.1.5-dmpar
        WRF/4.2.1-dmpar+xios+oasis
        WRF/4.2.2-dm+sm+chem
        WRF/4.2.2-dm+sm
        WRF/4.2.2-dmpar+chem
        WRF/4.3-dmpar
        WRF/4.3.1-dmpar+da
        WRF/4.3.2-dm+sm+chem
        WRF/4.3.2-dm+sm
        WRF/4.3.2-dmpar+chem
        WRF/4.3.2-dmpar
        WRF/4.3.3-dmpar
        WRF/4.4-dm+sm+chem+kpp
        WRF/4.4-dm+sm+chem
        WRF/4.4-dmpar+chem
        WRF/4.4-dmpar
     Other possible modules matches:
        CALWRF  WRFDA  WRFPLUS

-------------------------------------------------------------------------------------------------------------------
  To find other possible module matches execute:

      $ module -r spider '.*WRF.*'

-------------------------------------------------------------------------------------------------------------------
  For detailed information about a specific "WRF" module (including how to load the modules) use the module's full name.
  For example:

     $ module spider WRF/4.3.3-dmpar
-------------------------------------------------------------------------------------------------------------------

Mismo procedimiento para el caso de WPS

(base) [usuario@leftraru1 run]$ ml spider WPS

-------------------------------------------------------------------------------------------------------------------
  WPS:
-------------------------------------------------------------------------------------------------------------------
    Description:
      WRF Preprocessing System (WPS) for WRF. The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale numerical weather prediction system
      designed to serve both operational forecasting and atmospheric research needs. 

     Versions:
        WPS/3.7.1-dmpar
        WPS/4.0.3-dmpar
        WPS/4.1-dmpar
        WPS/4.2-dmpar
        WPS/4.3.1-dmpar

-------------------------------------------------------------------------------------------------------------------
  For detailed information about a specific "WPS" module (including how to load the modules) use the module's full name.
  For example:

     $ module spider WPS/4.3.1-dmpar
-------------------------------------------------------------------------------------------------------------------

Ahora bien, una vez elegidos los módulos indicados, se procede a su carga en el sistema

ml WRF/4.1.3-dmpar
ml WPS/4.2-dmpar

Crear un directorio de trabajo para alojar la versión de WRF/WPS cargados previamente.

cd ~
mkdir TEST_WRF
cp -rv /home/lmod/software/WRF/4.1.3-intel-2019b-dmpar/WRF-4.1.3 ~/TEST_WRF
cp -rv /home/lmod/software/WPS/4.2-intel-2019b-dmpar/WPS-4.2 ~/TEST_WRF

Descargar y descomprimir el archivo WPS_GEOG

cd ~/TEST_WRF/WPS-4.2
wget https://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory.tar.gz
tar -xvzf geog_high_res_mandatory.tar.gz

Editar el archivo namelist.wps, de manera que pueda linkear apropiadamente los datos de geografía

&share
 wrf_core = 'ARW',
 max_dom = 1,
 start_date = '2021-01-30_12:00:00','2021-01-30_12:00:00',
 end_date   = '2021-01-30_18:00:00','2021-01-30_21:00:00',
 interval_seconds = 10800
/

&geogrid
 parent_id         =   1,   1,
 parent_grid_ratio =   1,   3,
 i_parent_start    =   1,  53,
 j_parent_start    =   1,  25,
 e_we              =  150, 220,
 e_sn              =  130, 214,
 geog_data_res = 'default','default',
 dx = 27000,
 dy = 27000,
 map_proj = 'lambert',
 ref_lat   = -33.00,
 ref_lon   = -80.00,
 truelat1  =  -32.0,
 truelat2  =  -34.0,
 stand_lon = -71.0,
 geog_data_path = './WPS_GEOG/'
/

&ungrib
 out_format = 'WPS',
 prefix = 'FILE',
/

&metgrid
 fg_name = 'FILE'
/

O bien puede descargarlo directamente para continuar con el ejercicio:

wget https://raw.githubusercontent.com/nlhpc-training/Tutorial-WRF/main/namelist.wps

En este ejemplo se ha descargado la data geog mandatoria, pero existe data opcional en caso de ser necesaria.

WPS_GEOG se descargó en /home/nombre_usuario/TEST_WRF/WPS-4.2 pero cada usuario puede descargarla donde desee. Y como se puede apreciar, la ruta geog_data_path es la que debe apuntar a esta carpeta.

Enlazar simbólicamente la Vtable a utilizar, el cual debe quedar en la ruta donde está el preprocesador WPS

cd ~/TEST_WRF/WPS-4.2
ln -s ungrib/Variable_Tables/Vtable.GFS Vtable

Ejecutar el comando geogrid.exe, el cual nos permitirá generar nuestro dominio.

srun geogrid.exe

Descargar datos de CI y CB para realizar el preproceso de datos

En este caso, clonaremos desde el git NLHPC los datos de prueba, los cuales nos permitirán ejecutar los procesos de ungrib.exe y metgrid.exe respectivamente. En este proceso, copiaremos los datos y desde la carpeta de WPS realizaremos el proceso de linkeo a dichos datos mediante el script link_grib.csh. Finalmente ejecutaremos ungrib.exe y metgrid.exe

cd ~/TEST_WRF/
mkdir CI_CB
cd CI_CB
wget https://github.com/nlhpc-training/Tutorial-WRF/raw/main/fnl_20210130_12_00.grib2
wget https://github.com/nlhpc-training/Tutorial-WRF/raw/main/fnl_20210130_18_00.grib2
cd ~/TEST_WRF/WPS-4.2/
./link_grib.csh ~/TEST_WRF/CI_CB/fnl*
srun ungrib.exe
srun metgrid.exe

En este ejemplo se ha ejecutado interactivamente el preproceso de datos ya que el dominio y la data han sido pensados para un ejercicio de poca duración. Ahora bien, en el caso de que el usuario deba preprocesar información de largo aliento, se recomienda crear un script y lanzarlo mediante sbatch. (Para mayor información, véase apartado de ejecución de trabajos)

Crear el archivo de configuración namelist.input según lo requerido

Para este caso, ingresamos a la carpeta run de WRF y editaremos el archivo namelist.input

cd ~/TEST_WRF/WRF-4.1.3/run/
vi namelist.input

De manera tal que quede como el siguiente.

 &time_control
 run_days                            = 0,
 run_hours                           = 6,
 run_minutes                         = 0,
 run_seconds                         = 0,
 start_year                          = 2021, 2021,
 start_month                         = 01,   01,
 start_day                           = 30,   29,
 start_hour                          = 12,   00,
 end_year                            = 2021, 2021,
 end_month                           = 01,   02,
 end_day                             = 30,   01,
 end_hour                            = 18,   00,
 interval_seconds                    = 10800
 input_from_file                     = .true.,.true.,
 history_interval                    = 60,  60,
 frames_per_outfile                  = 1, 1,
 restart                             = .false.,
 restart_interval                    = 7200,
 io_form_history                     = 2
 io_form_restart                     = 2
 io_form_input                       = 2
 io_form_boundary                    = 2
 /

 &domains
 time_step                           = 60,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 1,
 e_we                                = 150,    220,
 e_sn                                = 130,    214,
 e_vert                              = 45,     45,
 dzstretch_s                         = 1.1
 p_top_requested                     = 5000,
 num_metgrid_levels                  = 34,
 num_metgrid_soil_levels             = 4,
 dx                                  = 27000,
 dy                                  = 27000,
 grid_id                             = 1,     2,
 parent_id                           = 0,     1,
 i_parent_start                      = 1,     53,
 j_parent_start                      = 1,     25,
 parent_grid_ratio                   = 1,     3,
 parent_time_step_ratio              = 1,     3,
 feedback                            = 1,
 smooth_option                       = 0
 /

 &physics
 physics_suite                       = 'CONUS'
 mp_physics                          = -1,    -1,
 cu_physics                          = -1,    -1,
 ra_lw_physics                       = -1,    -1,
 ra_sw_physics                       = -1,    -1,
 bl_pbl_physics                      = -1,    -1,
 sf_sfclay_physics                   = -1,    -1,
 sf_surface_physics                  = -1,    -1,
 radt                                = 15,    15,
 bldt                                = 0,     0,
 cudt                                = 0,     0,
 icloud                              = 1,
 num_land_cat                        = 21,
 sf_urban_physics                    = 0,     0,
 fractional_seaice                   = 1,
 /

 &fdda
 /

 &dynamics
 hybrid_opt                          = 2,
 w_damping                           = 0,
 diff_opt                            = 2,      2,
 km_opt                              = 4,      4,
 diff_6th_opt                        = 0,      0,
 diff_6th_factor                     = 0.12,   0.12,
 base_temp                           = 290.
 damp_opt                            = 3,
 zdamp                               = 5000.,  5000.,
 dampcoef                            = 0.2,    0.2,
 khdif                               = 0,      0,
 kvdif                               = 0,      0,
 non_hydrostatic                     = .true., .true.,
 moist_adv_opt                       = 1,      1,
/ scalar_adv_opt                      = 1,      1,
/ gwd_opt                             = 1,      0,
 /

 &bdy_control
 spec_bdy_width                      = 5,
 specified                           = .true.
 /

 &grib2
 /

&diags
 diag_nwp2 = 1
 /

 &namelist_quilt
 nio_tasks_per_group = 0,
 nio_groups = 1,
 /

O bien, puede descargarlo directamente para continuar con el ejercicio:

wget https://raw.githubusercontent.com/nlhpc-training/Tutorial-WRF/main/namelist.input

Ejecución de real.exe

En este punto, debemos linkear los datos met_em resultantes del proceso metgrid.exe y posteriormente ejecutar el comando real.exe.

cd ~/TEST_WRF/WRF-4.1.3/run/
ln -s ~/TEST_WRF/WPS-4.2/met_em.d01.2021-01-30_1* .
srun real.exe 

Realizar un Script de ejecución de WRF, de tal manera que se pueda enviar esta tarea al gestor SLURM para su procesamiento

Creamos el archivo lanza-wrf-sh y lo editamos de la siguiente manera.

#!/bin/bash
#---------------Script SBATCH - NLHPC ----------------
#SBATCH -J TestJob_wrf
#SBATCH -p main
#SBATCH -n 20
#SBATCH --ntasks-per-node=20
#SBATCH -c 1
#SBATCH --mem-per-cpu=2300
#SBATCH --mail-user=usuario@nlhpc.cl
#SBATCH --mail-type=ALL
#SBATCH -o asd_%j.out
#SBATCH -e asd_%j.err

#-----------------Toolchain---------------------------
ml purge
ml intel/2019b
# ----------------Modulos----------------------------
ml  WPS/4.2-dmpar   WRF/4.1.3-dmpar  
# ----------------Comando--------------------------
cd ~/TEST_WRF/WRF-4.1.3/run/
time wrf.exe

O bien, podemos descargarlo para continuar con el ejercicio.

wget https://raw.githubusercontent.com/nlhpc-training/Tutorial-WRF/main/lanza-wrf.sh

Finalmente ejecutamos este script mediante el comando sbatch

sbatch lanza-wrf.sh

Enlaces de interés

University Corporation for Atmospheric Research UCAR: https://www.mmm.ucar.edu/
National Oceanic and Atmospheric Administrarion NOAA: https://esrl.noaa.gov/gsd/wrfportal/
NOAA (Tutoriales WRF): https://esrl.noaa.gov/gsd/wrfportal/html-tutorial.html
NCEP Central Operations (Descarga de datos): https://www.nco.ncep.noaa.gov/pmb/products/gfs/